Bird
Raised Fist0
Prompt Engineering / GenAIml~10 mins

Sentence transformers 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 load a pre-trained sentence transformer model.

Prompt Engineering / GenAI
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('[1]')
Drag options to blanks, or click blank then click option'
Abert-base-uncased
Ball-MiniLM-L6-v2
Cresnet50
Dgpt-3
Attempts:
3 left
💡 Hint
Common Mistakes
Using a model name from a different library like GPT or ResNet.
Using a base BERT model which is not fine-tuned for sentence embeddings.
2fill in blank
medium

Complete the code to encode a list of sentences into embeddings.

Prompt Engineering / GenAI
sentences = ['Hello world', 'Machine learning is fun']
embeddings = model.[1](sentences)
Drag options to blanks, or click blank then click option'
Aencode
Btransform
Cpredict
Dfit
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'fit' which is for training models, not encoding sentences.
Using 'predict' which is for classification or regression outputs.
3fill in blank
hard

Fix the error in the code to compute cosine similarity between two sentence embeddings.

Prompt Engineering / GenAI
from sklearn.metrics.pairwise import [1]
similarity = cosine_similarity([emb1], [emb2])[0][0]
Drag options to blanks, or click blank then click option'
Acosine_similarity
Beuclidean_distances
Cpairwise_distances
Dmanhattan_distances
Attempts:
3 left
💡 Hint
Common Mistakes
Using distance functions which give dissimilarity, not similarity.
Misspelling the function name.
4fill in blank
hard

Fill both blanks to create a dictionary of sentence embeddings for given sentences.

Prompt Engineering / GenAI
sentences = ['AI is amazing', 'I love coding']
embeddings = model.encode(sentences)
embedding_dict = {sentences[[1]]: embeddings[[2]] for i in range(len(sentences))}
Drag options to blanks, or click blank then click option'
Ai
B0
D1
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variables for sentence and embedding indices.
Using fixed indices instead of the loop variable.
5fill in blank
hard

Fill all three blanks to filter sentences with embeddings having norm greater than 1.0.

Prompt Engineering / GenAI
import numpy as np
filtered = {sent: emb for sent, emb in zip(sentences, embeddings) if np.linalg.[1](emb) [2] [3]
Drag options to blanks, or click blank then click option'
Anorm
B>
C1.0
Dsum
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'sum' instead of 'norm' which sums elements but does not compute vector length.
Using wrong comparison operators.

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