See how the outcome changes with different numbers of examples.
def finetune(examples):
if len(examples) < 5:
return "memorized"
if len(examples) < 50:
return "learned patterns"
return "generalized"
print()
print("Finetuning a local model")
few_examples = ["A", "B"]
print("With %d examples: %s" % (len(few_examples), finetune(few_examples)))
medium_examples = ["ex%d" % i for i in range(25)]
print("With %d examples: %s" % (len(medium_examples), finetune(medium_examples)))
good_examples = ["ex%d" % i for i in range(300)]
print("With %d examples: %s" % (len(good_examples), finetune(good_examples)))
print("Sweet spot is a few hundred examples: True")
Before you run it, say out loud what it will print. Then open the answer.
What it prints
Finetuning a local model
With 2 examples: memorized
With 25 examples: learned patterns
With 300 examples: generalized
Sweet spot is a few hundred examples: True
Quality beats quantity; too few examples make the model memorize instead of learn.