Aller au contenu principal

Chapitre 2 : Quand ajuster finement vs utiliser RAG

Faire le bon choix pour votre cas d'utilisation​

L'une des décisions les plus importantes dans le développement d'applications LLM est de choisir entre l'ajustement fin, le RAG (Génération Augmentée par Récupération), ou simplement l'ingénierie de prompt. Chaque approche a des forces distinctes.


Les trois approches​

1. Ingénierie de prompt​

Concevoir soigneusement des prompts d'entrée pour obtenir les résultats souhaités sans aucune formation.

2. RAG (Génération Augmentée par Récupération)​

Récupérer le contexte pertinent d'une base de données et l'inclure dans le prompt.

3. Ajustement fin​

Former le modèle sur vos données pour intégrer de nouvelles connaissances ou comportements.


Cadre de décision​

Choisissez l'ajustement fin lorsque :​

ScénarioPourquoi l'ajustement fin fonctionne
Enseigner un style ou un ton spécifiqueLe style est intégré, pas seulement imité
Format de sortie cohérentLe modèle apprend profondément la structure
Terminologie spécifique au domaineLa terminologie devient naturelle pour le modèle
Tâche personnalisée difficile à promptLa formation offre un comportement plus fiable
Réduction de la taille/coûts des promptsLes comportements sont intégrés, pas promptés

Choisissez RAG lorsque :​

ScénarioPourquoi RAG fonctionne
Les connaissances changent fréquemmentIl suffit de mettre à jour la base de données
Besoin de citations/sourcesLa récupération offre une traçabilité
Grande base de connaissancesNe peut pas tenir dans le contexte ou la formation
Exactitude factuelle critiqueFaits récupérés vs faits appris
Confidentialité/contrôle d'accèsContrôler quel contexte est récupéré

Choisissez l'ingénierie de prompt lorsque :​

ScénarioPourquoi le prompt fonctionne
Expérimentation rapidePas besoin d'infrastructure de formation
Changements de format simplesLes exemples few-shot fonctionnent bien
Petit nombre de cas d'utilisationLes prompts peuvent couvrir chaque cas
Budget limitéPas de coûts de formation ou de base de données vectorielle
Exigences changeant rapidementChanger le prompt vs réentraîner

Comparaison des coûts​

ApprocheCoût de mise en placeCoût par requêteMaintenance
PromptingBasÉlevé (prompts longs)Bas
RAGMoyenMoyenMoyen (mises à jour BD)
Ajustement finÉlevéBas (prompts plus courts)Élevé (réentraînement)
Croisement des coûts

L'ajustement fin devient rentable à grande échelle. Si vous effectuez des millions d'appels API, les économies réalisées grâce à des prompts plus courts justifient souvent les coûts de l'ajustement fin.


Approches hybrides​

En pratique, les meilleures solutions combinent souvent des approches :

Ajustement fin + RAG​

# Ajuster finement pour le style et le format
# Utiliser RAG pour la récupération de connaissances

# 1. Récupérer le contexte pertinent
context = vector_db.search(query)

# 2. Utiliser le modèle ajusté finement avec le contexte récupéré
response = fine_tuned_model.generate(
f"Context: {context}\nQuery: {query}"
)

Avantages :

  • Le modèle sait comment utiliser efficacement les informations récupérées
  • Style et format cohérents
  • Connaissances à jour grâce à la récupération

Ajustement fin + Prompting​

# Ajuster finement pour le comportement de base
# Prompt pour les variations

response = fine_tuned_model.generate(
f"Respond in a formal tone: {query}" # Le prompt modifie le comportement ajusté finement
)

Analyse de cas d'utilisation​

Cas 1 : Bot de support client​

ExigenceMeilleure approche
Voix et ton de l'entrepriseAjustement fin
Informations sur le produitRAG
Modèles de réponseAjustement fin
Annonces récentesRAG
Règles d'escaladeAjustement fin

Recommandation : Ajuster finement pour le comportement + RAG pour les connaissances


Cas 2 : Analyse de documents juridiques​

ExigenceMeilleure approche
Terminologie juridiqueAjustement fin
Références de jurisprudenceRAG
Format de citationAjustement fin
Décisions récentesRAG
Structure du documentAjustement fin

Recommandation : Ajuster finement pour le langage juridique + RAG pour la base de données de cas


Cas 3 : Assistant de code​

ExigenceMeilleure approche
Style de codageAjustement fin
Contexte de la base de code de l'entrepriseRAG
APIs internesRAG + Ajustement fin
Meilleures pratiquesAjustement fin
DocumentationRAG

Recommandation : Approche hybride pour de meilleurs résultats


Comparaison technique​

Mémoire et connaissances​

AspectAjustement finRAG
Capacité de connaissancesLimité par la formationLimité par la taille de la BD
Mise à jour des connaissancesNécessite un réentraînementMise à jour de la base de données
LatenceRapide (pas de récupération)Plus lent (étape de récupération)
PrécisionPeut hallucinerSources citables
ÉvolutivitéMême coût à grande échelleLes coûts de la BD augmentent

Quand les connaissances comptent​

# RAG est meilleur pour les requêtes factuelles
query = "Quelle est notre politique de remboursement pour les clients du plan Pro ?"
# → Récupérer de la base de données des politiques

# L'ajustement fin est meilleur pour les modèles de comportement
query = "Répondre à un client en colère à propos de la facturation"
# → Le modèle ajusté finement connaît le bon ton et l'approche

Erreurs courantes​

❌ Ajustement fin pour des connaissances dynamiques​

"Nous avons ajusté notre modèle sur les données de l'entreprise, mais elles sont déjà obsolètes."

Solution : Utiliser RAG pour les connaissances qui changent, ajuster finement pour le comportement.

❌ RAG pour le style/format​

"Notre système RAG récupère les bonnes informations mais les sorties sont incohérentes."

Solution : Ajuster finement pour un style cohérent, RAG pour le contenu.

❌ Sur-ingénierie avec l'ajustement fin​

"Nous avons passé des semaines à ajuster finement alors que le prompt few-shot aurait fonctionné."

Solution : Commencer par le prompt, passer à l'ajustement fin seulement si nécessaire.

❌ Ignorer l'option hybride​

"Nous devions choisir entre RAG et l'ajustement fin."

Solution : Combiner les approches pour de meilleurs résultats.


Arbre de décision​


Exemple pratique : Construire un assistant médical​

Exigences :​

  1. Utiliser une terminologie médicale appropriée
  2. Référencer les directives de traitement actuelles
  3. Citer les sources pour les recommandations
  4. Suivre des formats de réponse conformes à la HIPAA

Solution :​

# 1. Ajuster finement pour le langage médical et le format
model = load_finetuned_model("medical-assistant-v1")

# 2. RAG pour les directives et recherches actuelles
guidelines = medical_db.search(patient_query)

# 3. Génération combinée
prompt = f"""
Vous êtes un assistant médical. Utilisez les directives actuelles suivantes :
{guidelines}

Requête du patient : {patient_query}

Répondez en utilisant une terminologie médicale appropriée et citez vos sources.
"""

response = model.generate(prompt)

Points clés à retenir​

✅ L'ajustement fin est le meilleur pour le style, le format et les comportements intégrés

✅ RAG est le meilleur pour les connaissances dynamiques et les sources citables

✅ Le prompt est le meilleur pour une itération rapide et une personnalisation simple

✅ Les approches hybrides donnent souvent les meilleurs résultats

✅ Considérez les coûts à la fois au niveau de la mise en place et par requête

✅ Adaptez votre approche à vos exigences spécifiques


Prochaines étapes​

Explorons maintenant le paysage des méthodes et outils d'ajustement fin dans Chapitre 3 : Paysage de l'ajustement fin.


Vérification rapide​

Avant de continuer, assurez-vous de pouvoir répondre :

  1. Quand choisiriez-vous RAG plutôt que l'ajustement fin ?
  2. Quels sont les compromis de coût entre les trois approches ?
  3. Comment concevriez-vous un système de support client en utilisant les deux approches ?