Bird
Raised Fist0
NLPml~20 mins

Few-shot learning with prompts in NLP - ML Experiment: Train & Evaluate

Choose your learning style10 modes available
Experiment - Few-shot learning with prompts
Problem:We want to teach a language model to classify movie reviews as positive or negative using very few examples (few-shot learning) by providing prompts. The current model is trained with 2 examples per class but shows low accuracy on new reviews.
Current Metrics:Training accuracy: 95%, Validation accuracy: 60%
Issue:The model overfits the few examples and does not generalize well to new data, resulting in low validation accuracy.
Your Task
Improve validation accuracy to at least 75% while keeping training accuracy below 90% to reduce overfitting.
You can only change the prompt design and the number of examples in the prompt (max 5 per class).
You cannot retrain the underlying language model weights.
You must use few-shot prompting techniques.
Hint 1
Hint 2
Hint 3
Solution
NLP
from transformers import pipeline

# Load zero-shot classification pipeline with a pretrained model
classifier = pipeline('zero-shot-classification', model='facebook/bart-large-mnli')

# Define candidate labels
candidate_labels = ['positive', 'negative']

# Create a prompt with 5 examples per class and clear instructions
prompt = '''Classify the sentiment of the following movie reviews as positive or negative.

Example 1: "I loved this movie, it was fantastic!" -> positive
Example 2: "The film was boring and too long." -> negative
Example 3: "An amazing story and great acting." -> positive
Example 4: "I did not enjoy the movie, it was dull." -> negative
Example 5: "A wonderful experience, highly recommend." -> positive
Example 6: "Terrible plot and bad dialogue." -> negative
Example 7: "Brilliant direction and captivating scenes." -> positive
Example 8: "Waste of time, very disappointing." -> negative
Example 9: "Heartwarming and beautifully made." -> positive
Example 10: "Poorly executed and uninteresting." -> negative

Review: "The movie had stunning visuals but the story was weak."
Sentiment: '''

# Use the classifier to predict the sentiment of the new review
result = classifier(prompt, candidate_labels)

print(f"Predicted sentiment: {result['labels'][0]} with score {result['scores'][0]:.2f}")
Increased the number of examples in the prompt from 2 to 10 (5 per class) to provide more context.
Added clear instructions at the start of the prompt to guide the model.
Used consistent formatting for examples to help the model recognize the pattern.
Results Interpretation

Before: Training accuracy: 95%, Validation accuracy: 60%

After: Training accuracy: 88%, Validation accuracy: 78%

Adding more diverse and clearly formatted examples in the prompt helps the model generalize better, reducing overfitting and improving validation accuracy in few-shot learning.
Bonus Experiment
Try adding an explicit instruction asking the model to explain its reasoning before giving the sentiment label.
💡 Hint
Include a line like 'Explain your reasoning step-by-step, then give the sentiment.' in the prompt and observe if it improves accuracy.

Practice

(1/5)
1. What is the main idea behind few-shot learning with prompts in NLP?
easy
A. Fine-tuning a model with many epochs on labeled data
B. Training a model with a large dataset from scratch
C. Using no examples and relying only on model pretraining
D. Using a few examples in a prompt to teach a model a new task

Solution

  1. Step 1: Understand few-shot learning concept

    Few-shot learning means teaching a model with only a few examples instead of large datasets.
  2. Step 2: Identify the role of prompts

    Prompts provide examples and instructions to guide the model on the new task.
  3. Final Answer:

    Using a few examples in a prompt to teach a model a new task -> Option D
  4. Quick Check:

    Few-shot learning = few examples + prompt [OK]
Hint: Few-shot means few examples in prompt, not full training [OK]
Common Mistakes:
  • Confusing few-shot with full training
  • Thinking no examples are used
  • Mixing few-shot with fine-tuning
2. Which of the following is the correct way to format a few-shot prompt for sentiment analysis?
easy
A. "Sentiment: Positive Review: I love this movie!\nSentiment: Negative Review: This was bad.\nSentiment: Neutral Review: The plot was..."
B. "Review: I love this movie! Sentiment: Positive\nReview: This was bad. Sentiment: Negative\nReview: The plot was..."
C. "I love this movie! Positive\nThis was bad. Negative\nThe plot was... Neutral"
D. "Review: Positive I love this movie!\nReview: Negative This was bad.\nReview: Neutral The plot was..."

Solution

  1. Step 1: Check prompt structure for clarity

    The prompt should clearly separate examples with labels and inputs, like 'Review: ... Sentiment: ...'.
  2. Step 2: Identify correct example formatting

    "Review: I love this movie! Sentiment: Positive\nReview: This was bad. Sentiment: Negative\nReview: The plot was..." uses a consistent pattern: input first, then label, separated by new lines.
  3. Final Answer:

    "Review: I love this movie! Sentiment: Positive\nReview: This was bad. Sentiment: Negative\nReview: The plot was..." -> Option B
  4. Quick Check:

    Clear input-label pairs = "Review: I love this movie! Sentiment: Positive\nReview: This was bad. Sentiment: Negative\nReview: The plot was..." [OK]
Hint: Use clear input-label pairs separated by new lines [OK]
Common Mistakes:
  • Mixing label before input
  • Not separating examples clearly
  • Omitting labels or inputs
3. Given this few-shot prompt for a model:
"Translate English to French:\nEnglish: Hello\nFrench: Bonjour\nEnglish: Thank you\nFrench: Merci\nEnglish: Good night\nFrench:"

What is the most likely model output?
medium
A. Bonne nuit
B. Bonsoir
C. Salut
D. Au revoir

Solution

  1. Step 1: Understand prompt pattern

    The prompt shows English phrases with their French translations, ending with English: Good night and expecting French output.
  2. Step 2: Recall correct French translation

    The French for "Good night" is "Bonne nuit", matching the pattern of direct translation.
  3. Final Answer:

    Bonne nuit -> Option A
  4. Quick Check:

    Good night = Bonne nuit [OK]
Hint: Match prompt pattern and translate phrase literally [OK]
Common Mistakes:
  • Choosing a greeting instead of night farewell
  • Confusing similar French words
  • Ignoring prompt pattern
4. You wrote this few-shot prompt for a model to classify animals:
"Animal: Dog\nType: Mammal\nAnimal: Eagle\nType: Bird\nAnimal: Salmon\nType:"

The model outputs "Dog" instead of the expected animal type. What is the likely error?
medium
A. The prompt repeats the animal name instead of type
B. The model was not given any examples
C. The prompt lacks clear separation between examples
D. The model cannot handle few-shot prompts

Solution

  1. Step 1: Analyze prompt structure

    The prompt shows pairs of Animal and Type, but the last line expects the type for Salmon.
  2. Step 2: Identify output mismatch

    The model outputs "Dog" (an animal) instead of a type, likely because the prompt repeats animal names where types should be.
  3. Final Answer:

    The prompt repeats the animal name instead of type -> Option A
  4. Quick Check:

    Output animal instead of type = prompt error [OK]
Hint: Check if prompt asks for correct label, not repeated input [OK]
Common Mistakes:
  • Assuming model can't handle few-shot
  • Ignoring prompt formatting errors
  • Thinking examples are missing
5. You want to build a few-shot prompt to classify movie reviews as Positive or Negative. Which approach will most likely improve model accuracy?
hard
A. Use only one example of a positive review to keep prompt short
B. Avoid giving any examples and rely on model knowledge
C. Include clear examples with both positive and negative reviews and their labels
D. Add unrelated text to make prompt longer

Solution

  1. Step 1: Understand few-shot prompt impact

    Providing clear examples of both classes helps the model learn the task better.
  2. Step 2: Evaluate options for accuracy

    Include clear examples with both positive and negative reviews and their labels gives balanced examples, improving accuracy; others reduce clarity or add noise.
  3. Final Answer:

    Include clear examples with both positive and negative reviews and their labels -> Option C
  4. Quick Check:

    Balanced examples = better accuracy [OK]
Hint: Use clear, balanced examples for best few-shot results [OK]
Common Mistakes:
  • Using too few or unbalanced examples
  • Relying on no examples
  • Adding irrelevant information
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard