0
0
Prompt Engineering / GenAIml~20 mins

Sentence transformers in Prompt Engineering / GenAI - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Sentence Transformer Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
What is the main purpose of sentence transformers?

Sentence transformers are used to convert sentences into vectors. What is the main reason for doing this?

ATo represent sentences as fixed-size numerical vectors for similarity comparison
BTo translate sentences from one language to another
CTo generate new sentences from a given input
DTo count the number of words in a sentence
Attempts:
2 left
💡 Hint

Think about how computers understand text for tasks like search or clustering.

Predict Output
intermediate
2:00remaining
Output of embedding similarity calculation

Given two sentences embedded using a sentence transformer, what is the cosine similarity output?

Prompt Engineering / GenAI
from sentence_transformers import SentenceTransformer
from sklearn.metrics.pairwise import cosine_similarity

model = SentenceTransformer('all-MiniLM-L6-v2')
sentences = ['I love machine learning.', 'Machine learning is great.']
embeddings = model.encode(sentences)
similarity = cosine_similarity([embeddings[0]], [embeddings[1]])[0][0]
print(round(similarity, 2))
A0.15
B0.85
C1.00
D0.50
Attempts:
2 left
💡 Hint

These sentences have similar meaning, so expect a high similarity but less than 1.

Model Choice
advanced
2:00remaining
Choosing the best sentence transformer model for large-scale semantic search

You want to build a semantic search engine that balances speed and accuracy on millions of sentences. Which sentence transformer model is best?

A'all-MiniLM-L6-v2' for fast and reasonably accurate embeddings
B'bert-base-uncased' for the most accurate embeddings but slower speed
C'distilbert-base-uncased' for the smallest model but less accuracy
D'gpt-3' for generating embeddings with zero-shot learning
Attempts:
2 left
💡 Hint

Consider the trade-off between speed and accuracy for large datasets.

Hyperparameter
advanced
2:00remaining
Effect of changing pooling strategy in sentence transformers

Sentence transformers use pooling to create sentence embeddings from token embeddings. What happens if you change from mean pooling to max pooling?

AMax pooling always improves embedding quality regardless of task
BMax pooling averages all token embeddings, smoothing the sentence representation
CMax pooling reduces embedding size by half compared to mean pooling
DMax pooling captures the most prominent features, possibly making embeddings more sensitive to key words
Attempts:
2 left
💡 Hint

Think about how max pooling selects values compared to averaging.

🔧 Debug
expert
2:30remaining
Why does this sentence transformer embedding code raise an error?

Consider this code snippet:

from sentence_transformers import SentenceTransformer
model = SentenceTransformer('all-MiniLM-L6-v2')
embeddings = model.encode('This is a test sentence')
print(embeddings.shape)

What error will this code raise and why?

AAttributeError because embeddings is a 1D array and has no attribute 'shape'
BValueError because the model name is invalid
CNo error; the code runs and prints the shape
DTypeError because encode expects a list of sentences, not a single string
Attempts:
2 left
💡 Hint

Check the documentation for the encode method input types and output.