Bird
Raised Fist0
Prompt Engineering / GenAIml~10 mins

RAG evaluation metrics in Prompt Engineering / GenAI - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to calculate the recall score for RAG model predictions.

Prompt Engineering / GenAI
from sklearn.metrics import [1]
recall = [1](true_labels, predicted_labels)
Drag options to blanks, or click blank then click option'
Af1_score
Bprecision_score
Caccuracy_score
Drecall_score
Attempts:
3 left
💡 Hint
Common Mistakes
Using precision_score instead of recall_score
Using accuracy_score which is less informative for retrieval tasks
2fill in blank
medium

Complete the code to compute the F1 score for RAG model outputs.

Prompt Engineering / GenAI
from sklearn.metrics import [1]
f1 = [1](true_labels, predicted_labels)
Drag options to blanks, or click blank then click option'
Af1_score
Baccuracy_score
Crecall_score
Dprecision_score
Attempts:
3 left
💡 Hint
Common Mistakes
Using accuracy_score which does not balance precision and recall
Confusing precision_score with f1_score
3fill in blank
hard

Fix the error in the code to calculate precision for RAG evaluation.

Prompt Engineering / GenAI
from sklearn.metrics import precision_score
precision = precision_score(true_labels, [1])
Drag options to blanks, or click blank then click option'
Apredicted_labels
Btrue_labels
Cpredictions
Dlabels
Attempts:
3 left
💡 Hint
Common Mistakes
Passing true_labels twice
Using an undefined variable like 'labels'
4fill in blank
hard

Fill both blanks to create a dictionary of evaluation metrics for RAG.

Prompt Engineering / GenAI
metrics = {
    'precision': [1](true_labels, predicted_labels),
    'recall': [2](true_labels, predicted_labels)
}
Drag options to blanks, or click blank then click option'
Aprecision_score
Brecall_score
Cf1_score
Daccuracy_score
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up precision_score and recall_score
Using accuracy_score which is less relevant here
5fill in blank
hard

Fill all three blanks to compute precision, recall, and F1 score for RAG evaluation.

Prompt Engineering / GenAI
results = {
    'precision': [1](true_labels, predicted_labels),
    'recall': [2](true_labels, predicted_labels),
    'f1': [3](true_labels, predicted_labels)
}
Drag options to blanks, or click blank then click option'
Aprecision_score
Brecall_score
Cf1_score
Daccuracy_score
Attempts:
3 left
💡 Hint
Common Mistakes
Using accuracy_score instead of f1_score
Swapping recall_score and precision_score

Practice

(1/5)
1. What does RAG evaluation metrics primarily measure in a retrieval-augmented generation system?
easy
A. Both the quality of generated answers and the relevance of retrieved documents
B. Only the speed of document retrieval
C. The size of the training dataset
D. The number of layers in the neural network

Solution

  1. Step 1: Understand RAG system components

    RAG combines document retrieval and answer generation, so evaluation must cover both parts.
  2. Step 2: Identify what metrics measure

    Metrics check answer quality (like accuracy) and retrieval quality (like precision).
  3. Final Answer:

    Both the quality of generated answers and the relevance of retrieved documents -> Option A
  4. Quick Check:

    RAG metrics = answer + retrieval quality [OK]
Hint: RAG means check both answer and retrieval quality [OK]
Common Mistakes:
  • Thinking RAG only measures answer quality
  • Confusing retrieval speed with quality
  • Ignoring document relevance in evaluation
2. Which of the following is a common metric used to evaluate the retrieval part of a RAG system?
easy
A. Mean squared error
B. BLEU score
C. Cross-entropy loss
D. Retrieval precision

Solution

  1. Step 1: Identify retrieval metrics

    Retrieval precision measures how many retrieved documents are relevant.
  2. Step 2: Match metric to retrieval

    BLEU is for text generation, cross-entropy and MSE are loss functions, not retrieval metrics.
  3. Final Answer:

    Retrieval precision -> Option D
  4. Quick Check:

    Retrieval metric = precision [OK]
Hint: Precision measures retrieval relevance, not BLEU or loss [OK]
Common Mistakes:
  • Choosing BLEU which is for generation
  • Confusing loss functions with evaluation metrics
  • Ignoring retrieval-specific metrics
3. Consider this Python snippet evaluating a RAG model's answer quality using F1 score:
from sklearn.metrics import f1_score
true_answers = ["cat", "dog", "bird"]
pred_answers = ["cat", "dog", "cat"]
f1 = f1_score(true_answers, pred_answers, average='macro')
print(round(f1, 2))
What will be the output?
medium
A. Error due to string inputs
B. 0.75
C. 0.56
D. 1.00

Solution

  1. Step 1: Verify f1_score handles strings

    sklearn's f1_score supports string labels directly via internal encoding.
  2. Step 2: Compute macro F1

    Classes: 'bird', 'cat', 'dog'
    • 'bird': F1 = 0 (TP=0, predicted 0 times)
    • 'cat': prec=1/2=0.5, rec=1/1=1, F1=2×0.5×1/(0.5+1)=0.67
    • 'dog': F1=1
    Macro F1 = (0 + 0.67 + 1)/3 ≈ 0.5556, round(0.56, 2) = 0.56
  3. Final Answer:

    0.56 -> Option C
  4. Quick Check:

    macro F1 = (0 + 0.67 + 1)/3 = 0.56 [OK]
Hint: f1_score works on strings; macro F1=(0+0.67+1)/3=0.56 [OK]
Common Mistakes:
  • Computing micro F1 or accuracy (0.67)
  • Expecting error due to strings
  • Wrong per-class calculation (0.75)
4. You have this code snippet to compute retrieval precision but it gives wrong results:
retrieved_docs = ["doc1", "doc2", "doc3"]
relevant_docs = ["doc2", "doc4"]
precision = len(set(retrieved_docs) & set(relevant_docs)) / len(relevant_docs)
print(round(precision, 2))
What is the bug and how to fix it?
medium
A. Divide by len(retrieved_docs) instead of len(relevant_docs)
B. Use union instead of intersection in numerator
C. Convert lists to tuples before set operations
D. No bug, code is correct

Solution

  1. Step 1: Understand precision formula

    Precision = relevant retrieved / total retrieved, so denominator must be retrieved docs count.
  2. Step 2: Identify denominator mistake

    Code divides by len(relevant_docs), which is recall formula denominator.
  3. Step 3: Fix denominator

    Change denominator to len(retrieved_docs) to compute precision correctly.
  4. Final Answer:

    Divide by len(retrieved_docs) instead of len(relevant_docs) -> Option A
  5. Quick Check:

    Precision denominator = retrieved docs count [OK]
Hint: Precision divides by retrieved docs count, not relevant docs [OK]
Common Mistakes:
  • Mixing precision with recall formula
  • Using union instead of intersection
  • Ignoring set conversion issues
5. You want to evaluate a RAG model combining answer F1 score and retrieval precision into a single metric. Which approach is best to fairly combine these metrics?
hard
A. Add F1 score and retrieval precision directly
B. Calculate the harmonic mean of F1 score and retrieval precision
C. Use only the higher of the two scores
D. Multiply F1 score by retrieval precision without normalization

Solution

  1. Step 1: Understand metric combination needs

    Combining metrics requires balancing both scores fairly, avoiding dominance by one.
  2. Step 2: Evaluate combination methods

    Harmonic mean balances low and high values well; addition or multiplication can skew results.
  3. Step 3: Choose harmonic mean

    Harmonic mean is common for combining precision and recall, so it suits combining F1 and retrieval precision.
  4. Final Answer:

    Calculate the harmonic mean of F1 score and retrieval precision -> Option B
  5. Quick Check:

    Harmonic mean balances combined metrics [OK]
Hint: Use harmonic mean to balance combined metrics fairly [OK]
Common Mistakes:
  • Adding metrics without normalization
  • Ignoring metric scale differences
  • Choosing max score only