Aller au contenu principal

Le Few-Shot Prompting

Apprendre par l’exemple

Le few-shot prompting consiste à fournir au modèle un ou plusieurs exemples de la tâche à réaliser avant de lui soumettre la requête réelle. Au lieu d’expliquer abstraitement ce que vous attendez, vous le montrez concrètement. Cette technique est l’une des plus efficaces pour obtenir des résultats précis et cohérents avec les modèles Mistral.

Le principe est simple : le modèle s’appuie sur les exemples fournis pour comprendre le format, le ton, le niveau de détail et la logique attendus, puis il reproduit ce schéma pour votre requête.

Les variantes : zero-shot, one-shot, few-shot

Zero-shot (aucun exemple)

Vous donnez une instruction sans aucun exemple. Le modèle s’appuie uniquement sur ses connaissances :

Classifiez le sentiment de ce texte comme positif, neutre ou négatif :
"Le service client a été réactif mais la livraison était en retard."

Le zero-shot fonctionne pour les tâches simples et courantes. Pour des tâches spécifiques à votre métier, il est souvent insuffisant.

One-shot (un seul exemple)

Un seul exemple suffit parfois à orienter le modèle :

Classifiez le sentiment et justifiez en une phrase.

Exemple :
Texte : "Produit excellent, je recommande vivement !"
Sentiment : positif
Justification : Expression d'enthousiasme et recommandation explicite.

À classifier :
Texte : "Le service client a été réactif mais la livraison était en retard."
Sentiment :
Justification :

Few-shot (plusieurs exemples)

Plusieurs exemples réduisent l’ambiguïté et renforcent la cohérence :

Classifiez le sentiment et justifiez en une phrase.

Exemple 1 :
Texte : "Produit excellent, je recommande vivement !"
Sentiment : positif
Justification : Expression d'enthousiasme et recommandation explicite.

Exemple 2 :
Texte : "Le prix est correct pour ce que c'est."
Sentiment : neutre
Justification : Évaluation factuelle sans émotion forte.

Exemple 3 :
Texte : "Trois semaines d'attente pour un produit défectueux."
Sentiment : négatif
Justification : Problème de délai combiné à un défaut qualité.

À classifier :
Texte : "Le service client a été réactif mais la livraison était en retard."
Sentiment :
Justification :

Implémenter le few-shot avec l’API Mistral

La méthode la plus propre consiste à utiliser les rôles user et assistant pour créer des échanges artificiels qui servent d’exemples :

messages = [
    {
        "role": "system",
        "content": "Vous classifiez des avis clients. Répondez uniquement avec le format indiqué."
    },
    # Exemple 1
    {
        "role": "user",
        "content": "Classifiez : \"Produit excellent, je recommande vivement !\""
    },
    {
        "role": "assistant",
        "content": "Sentiment : positif\nJustification : Expression d'enthousiasme et recommandation explicite."
    },
    # Exemple 2
    {
        "role": "user",
        "content": "Classifiez : \"Trois semaines d'attente pour un produit défectueux.\""
    },
    {
        "role": "assistant",
        "content": "Sentiment : négatif\nJustification : Problème de délai combiné à un défaut qualité."
    },
    # Requête réelle
    {
        "role": "user",
        "content": "Classifiez : \"Le service client a été réactif mais la livraison était en retard.\""
    }
]

En passant les exemples sous forme de messages user/assistant, le modèle les traite comme un historique de conversation réussi qu’il doit reproduire.

Quand utiliser le few-shot

Le few-shot est particulièrement utile dans ces situations :

  • Classification personnalisée : vos catégories ne sont pas standards (ex : types de tickets internes)
  • Extraction de données : le format de sortie est spécifique à votre entreprise
  • Rédaction avec un ton précis : vous voulez que le modèle adopte votre style éditorial
  • Tâches ambiguës : la description textuelle ne suffit pas à lever les doutes

Combien d’exemples fournir

Le nombre optimal dépend de la complexité de la tâche :

  • 1-2 exemples : tâches simples avec un format clair (classification binaire, extraction d’un champ)
  • 3-5 exemples : tâches avec plusieurs catégories ou un format complexe
  • 5+ exemples : tâches très spécifiques ou avec des cas limites à couvrir

Attention au coût : chaque exemple consomme des tokens d’entrée. Avec les modèles Mistral, les tokens d’entrée sont facturés, donc trouvez le bon équilibre entre précision et efficacité.

Bonnes pratiques

  • Variez vos exemples : couvrez les différents cas possibles, y compris les cas limites
  • Gardez un format identique : tous les exemples doivent suivre exactement la même structure
  • Utilisez des exemples réalistes : des exemples proches de vos données réelles produisent de meilleurs résultats
  • Placez la requête en dernier : le modèle accorde plus d’attention au début et à la fin du prompt

Points clés à retenir

  • Le few-shot prompting montre au modèle ce que vous attendez par l’exemple
  • Utilisez les rôles user/assistant pour créer des exemples dans l’API Mistral
  • 1 à 5 exemples suffisent dans la majorité des cas
  • Variez les exemples pour couvrir les différents scénarios
  • Le few-shot est idéal pour la classification, l’extraction et la rédaction avec un format spécifique