Section 11.4.4 : Prompt Engineering — Zero-shot et Few-shot
🎯 Objectif pédagogique
Maîtriser les techniques zero-shot et few-shot prompting pour guider les LLMs sans fine-tuning. Vous serez capable de choisir la bonne technique selon la tâche et de créer des exemples efficaces.
Apprendre au LLM par l'exemple
Marc a structuré ses prompts (Section 11.4.3). Maintenant, il va apprendre la technique la plus puissante : montrer au LLM ce qu'il veut par des exemples.
Zero-shot — Sans exemple
Le LLM comprend la tâche à partir de l'instruction seule.
Prompt :
"Classe cet email comme URGENT, NORMAL, ou SPAM.
Email : 'Votre compte sera fermé dans 24h, cliquez ici'"
→ Réponse : SPAM
Quand utiliser le zero-shot :
✅ Tâches simples et bien définies
✅ Le LLM a été entraîné sur des tâches similaires
✅ La consigne est claire et non ambiguë
One-shot — Un seul exemple
Prompt :
"Classe les emails. Voici un exemple :
Email : 'Réunion demain 14h pour la revue trimestrielle'
→ Classification : NORMAL / Catégorie : MEETING / Priorité : 2
Maintenant, classe celui-ci :
Email : 'URGENT : le serveur prod est down, besoin d'aide immédiate'"
→ Réponse : URGENT / Catégorie : INCIDENT / Priorité : 1
Quand utiliser le one-shot :
✅ Tâches un peu ambiguës
✅ Besoin de montrer le format de réponse attendu
✅ Un seul exemple suffit à clarifier
Few-shot — Plusieurs exemples (2-5)
Prompt :
"Tu es un classificateur d'offres d'emploi pour Marc (profil : Data/IA/Python).
Score chaque offre de 1 à 5 et justifie.
Exemples :
---
Offre : 'Data Analyst Python — Startup FinTech — Paris — 45-55k€'
→ Score: 5/5 — MATCH PARFAIT
Raison: Python + Data + secteur finance (background Marc) + Paris + bon salaire
Offre : 'Développeur Java Senior — Banque — Lyon — 70k€'
→ Score: 2/5 — PAS PERTINENT
Raison: Java (pas Python), senior (Marc est junior), Lyon (loin)
Offre : 'Business Analyst — ESN — Paris — 40-50k€'
→ Score: 3/5 — MATCH PARTIEL
Raison: Analyse (background finance) mais pas assez technique, ESN = formation possible
---
Maintenant, classe cette offre :
'ML Engineer Junior — Scale-up HealthTech — Paris — 50-60k€'"
→ Réponse attendue : Score: 4/5 — BON MATCH
Raison: ML + Junior + Python probable + Paris + bon salaire.
HealthTech pas dans le background finance, mais compétences ML transférables.
Combien d'exemples ?
Nombre d'exemples Quand l'utiliser
─────────────────────────────────────────
0 (zero-shot) Tâches simples, classiques
1 (one-shot) Montrer le format
2-3 (few-shot) Tâches ambiguës, montrer des edge cases
5+ (many-shot) Tâches très spécifiques ou nuancées
Fine-tuning Tâches récurrentes à très haut volume
Plus d'exemples = plus de tokens consommés = plus cher
Trouver l'équilibre : assez d'exemples pour être précis,
pas trop pour rester efficace
Examples diversifiés vs similaires
❌ Mauvais (tous les exemples sont similaires) :
Example 1: Data Analyst — Score 5
Example 2: Data Scientist — Score 5
Example 3: ML Engineer — Score 5
→ Le LLM pense que TOUT est score 5
✅ Bon (exemples couvrent le spectre) :
Example 1: Data Analyst — Score 5 (match parfait)
Example 2: Dev Java Senior — Score 2 (pas pertinent)
Example 3: Business Analyst — Score 3 (partiel)
→ Le LLM comprend la DISTRIBUTION des scores
Application : Extraction structurée few-shot
Prompt :
"Extrais les informations de ces offres d'emploi au format JSON.
Exemples :
---
Input : "On recrute un Data Analyst à Paris, 45k, CDI chez DataCorp.
Compétences : Python, SQL, Tableau. Remote 2j/sem."
Output : \{
"position": "Data Analyst",
"company": "DataCorp",
"location": "Paris",
"salary": "45000",
"contract": "CDI",
"skills": ["Python", "SQL", "Tableau"],
"remote": "2j/sem"
\}
Input : "Startup Lyon cherche ML Engineer, 55-65k.
Stack : Python, TensorFlow, AWS. Full remote possible."
Output : \{
"position": "ML Engineer",
"company": null,
"location": "Lyon",
"salary": "55000-65000",
"contract": null,
"skills": ["Python", "TensorFlow", "AWS"],
"remote": "full remote"
\}
---
Maintenant, extrais de cette offre :
"BigBank recrute en CDI un Business Intelligence Analyst sur Nantes.
Rémunération 42-48k. Maîtrise de Power BI et SQL requise.
Possibilité 1 jour de télétravail."
Few-shot > Fine-tuning pour la plupart des cas
Le fine-tuning (ré-entraîner le modèle sur vos données) coûte cher et demande des centaines d'exemples. Le few-shot est gratuit, instantané, et suffit dans 90% des cas. Ne faites du fine-tuning que si le few-shot échoue ET que vous avez 500+ exemples.
🏋️ Exercice pratique (25 minutes)
- →Écrivez un classificateur d'offres zero-shot et testez-le sur 3 offres
- →Ajoutez 2 exemples (few-shot) et retestez — comparez la qualité
- →Ajoutez un edge case dans vos exemples (offre ambiguë) et vérifiez
- →Créez un extracteur JSON few-shot pour parser des offres d'emploi
Quelle est la différence entre zero-shot et few-shot prompting ?
Pourquoi est-il important que les exemples few-shot soient diversifiés ?
Apprendre l’IA, du premier prompt aux agents