Bird
Raised Fist0
Prompt Engineering / GenAIml~8 mins

Sentence transformers in Prompt Engineering / GenAI - Model Metrics & Evaluation

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
Metrics & Evaluation - Sentence transformers
Which metric matters for Sentence Transformers and WHY

Sentence transformers create vector representations of sentences. We want these vectors to capture meaning well. So, we measure how well the model groups similar sentences close and different sentences far apart.

Common metrics include Cosine Similarity to check closeness of vectors, and Recall@K or Mean Reciprocal Rank (MRR) to evaluate retrieval tasks. These metrics show if the model finds the right similar sentences.

Confusion matrix or equivalent visualization

For sentence transformers, we often use retrieval evaluation instead of a confusion matrix. Here is a simple example for a retrieval task with 5 queries:

Query | Relevant Sentences Retrieved | Total Retrieved
----------------------------------------------
  1   | 3 (TP)                      | 5
  2   | 2 (TP)                      | 4
  3   | 4 (TP)                      | 5
  4   | 1 (TP)                      | 3
  5   | 5 (TP)                      | 5
    

We count true positives (TP) as relevant sentences found. False positives (FP) are retrieved but irrelevant. False negatives (FN) are relevant but not retrieved.

Precision vs Recall tradeoff with concrete examples

Precision means how many retrieved sentences are actually relevant. Recall means how many relevant sentences were found out of all relevant ones.

Example: If you want to find similar customer reviews, high recall means you find most similar reviews, even if some are less relevant. High precision means most found reviews are very similar, but you might miss some.

Choosing high recall helps when missing a similar sentence is bad, like in legal document search. High precision helps when you want very accurate matches, like in question answering.

What "good" vs "bad" metric values look like for Sentence Transformers

Good: Recall@10 above 0.8 means the model finds 80% of relevant sentences in top 10 results. Cosine similarity scores close to 1 for similar sentences show good embeddings.

Bad: Recall@10 below 0.3 means the model misses many relevant sentences. Low precision means many irrelevant sentences appear in results. Cosine similarity near 0 or negative for similar sentences means poor embeddings.

Common pitfalls in metrics for Sentence Transformers
  • Ignoring dataset balance: If most sentences are unrelated, accuracy can be misleadingly high.
  • Overfitting: Model performs well on training pairs but poorly on new sentences.
  • Data leakage: Using test sentences in training can inflate metrics.
  • Using only accuracy: Accuracy is not meaningful for retrieval tasks; use recall and precision instead.
Self-check question

Your sentence transformer model has a Recall@10 of 0.98 but Precision@10 of 0.12 on a search task. Is it good for production? Why or why not?

Answer: This means the model finds almost all relevant sentences (high recall) but also returns many irrelevant ones (low precision). It may overwhelm users with poor results. Depending on the use case, you might want to improve precision before production.

Key Result
Recall@K and Precision@K are key metrics to evaluate how well sentence transformers find relevant sentences.

Practice

(1/5)
1. What is the main purpose of sentence transformers in AI?
easy
A. To count the number of words in a sentence
B. To translate sentences from one language to another
C. To convert sentences into numbers that computers can understand
D. To generate new sentences from scratch

Solution

  1. Step 1: Understand the role of sentence transformers

    Sentence transformers convert sentences into numerical vectors so computers can process them.
  2. Step 2: Compare options with this understanding

    Only To convert sentences into numbers that computers can understand describes this conversion; others describe different tasks.
  3. Final Answer:

    To convert sentences into numbers that computers can understand -> Option C
  4. Quick Check:

    Sentence transformers = convert sentences to numbers [OK]
Hint: Remember: transformers turn text into numbers [OK]
Common Mistakes:
  • Confusing sentence transformers with translation models
  • Thinking they generate new sentences
  • Assuming they only count words
2. Which of the following is the correct way to import a sentence transformer model in Python?
easy
A. from sentence_transformers import sentence_transformer
B. import SentenceTransformer from sentence_transformers
C. import sentence_transformers.SentenceTransformer
D. from sentence_transformers import SentenceTransformer

Solution

  1. Step 1: Recall the correct Python import syntax for sentence transformers

    The correct syntax is 'from sentence_transformers import SentenceTransformer' with exact capitalization.
  2. Step 2: Check each option for syntax correctness

    from sentence_transformers import SentenceTransformer matches the correct syntax; others have wrong order, case, or module names.
  3. Final Answer:

    from sentence_transformers import SentenceTransformer -> Option D
  4. Quick Check:

    Correct import syntax = from sentence_transformers import SentenceTransformer [OK]
Hint: Use 'from module import Class' format for imports [OK]
Common Mistakes:
  • Swapping import order
  • Using wrong capitalization
  • Confusing module and class names
3. What will be the output type of the following code snippet?
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('all-MiniLM-L6-v2')
sentence = 'Hello world'
embedding = model.encode(sentence)
print(type(embedding))
medium
A. <class 'list'>
B. <class 'numpy.ndarray'>
C. <class 'str'>
D. <class 'int'>

Solution

  1. Step 1: Understand the output of model.encode()

    The encode method returns a numerical vector as a numpy array representing the sentence embedding.
  2. Step 2: Identify the type printed

    Printing type(embedding) shows <class 'numpy.ndarray'> because embeddings are numpy arrays.
  3. Final Answer:

    <class 'numpy.ndarray'> -> Option B
  4. Quick Check:

    model.encode() output type = numpy.ndarray [OK]
Hint: model.encode returns numpy arrays for embeddings [OK]
Common Mistakes:
  • Assuming output is a list
  • Thinking output is a string
  • Expecting an integer type
4. Identify the error in this code snippet using sentence transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('all-MiniLM-L6-v2')
sentences = ['Hello world', 'Hi there']
embeddings = model.encode(sentences)
print(embeddings.shape)
medium
A. There is no error; the code runs correctly
B. model.encode() cannot take a list of sentences
C. embeddings does not have a shape attribute
D. The model name 'all-MiniLM-L6-v2' is incorrect

Solution

  1. Step 1: Check model name validity

    'all-MiniLM-L6-v2' is a valid pre-trained model name for sentence transformers.
  2. Step 2: Verify model.encode() input and output

    model.encode() accepts a list of sentences and returns a numpy array with shape attribute.
  3. Step 3: Confirm no errors in code

    All syntax and usage are correct; printing embeddings.shape works as expected.
  4. Final Answer:

    There is no error; the code runs correctly -> Option A
  5. Quick Check:

    Valid model and input = code runs fine [OK]
Hint: model.encode accepts lists and returns arrays with shape [OK]
Common Mistakes:
  • Thinking model.encode only accepts single sentences
  • Assuming embeddings lack shape attribute
  • Believing model name is invalid
5. You want to find the most similar sentence to 'I love machine learning' from a list using sentence transformers. Which approach is best?
hard
A. Encode all sentences, then use cosine similarity to find the closest embedding
B. Compare sentences by counting common words directly
C. Use a translation model to translate sentences before comparison
D. Manually check each sentence for similarity without encoding

Solution

  1. Step 1: Understand the goal of similarity search

    Finding the most similar sentence requires comparing sentence meanings numerically.
  2. Step 2: Identify the best method for semantic similarity

    Encoding sentences into embeddings and using cosine similarity is the standard and effective approach.
  3. Step 3: Evaluate other options

    Counting words or manual checks ignore meaning; translation is unrelated here.
  4. Final Answer:

    Encode all sentences, then use cosine similarity to find the closest embedding -> Option A
  5. Quick Check:

    Semantic similarity = encode + cosine similarity [OK]
Hint: Use embeddings + cosine similarity for best sentence matching [OK]
Common Mistakes:
  • Relying on word count instead of meaning
  • Using translation unnecessarily
  • Skipping encoding step