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énario | Pourquoi l'ajustement fin fonctionne |
|---|---|
| Enseigner un style ou un ton spécifique | Le style est intégré, pas seulement imité |
| Format de sortie cohérent | Le modèle apprend profondément la structure |
| Terminologie spécifique au domaine | La terminologie devient naturelle pour le modèle |
| Tâche personnalisée difficile à prompt | La formation offre un comportement plus fiable |
| Réduction de la taille/coûts des prompts | Les comportements sont intégrés, pas promptés |
Choisissez RAG lorsque :
| Scénario | Pourquoi RAG fonctionne |
|---|---|
| Les connaissances changent fréquemment | Il suffit de mettre à jour la base de données |
| Besoin de citations/sources | La récupération offre une traçabilité |
| Grande base de connaissances | Ne peut pas tenir dans le contexte ou la formation |
| Exactitude factuelle critique | Faits récupérés vs faits appris |
| Confidentialité/contrôle d'accès | Contrôler quel contexte est récupéré |
Choisissez l'ingénierie de prompt lorsque :
| Scénario | Pourquoi le prompt fonctionne |
|---|---|
| Expérimentation rapide | Pas besoin d'infrastructure de formation |
| Changements de format simples | Les exemples few-shot fonctionnent bien |
| Petit nombre de cas d'utilisation | Les prompts peuvent couvrir chaque cas |
| Budget limité | Pas de coûts de formation ou de base de données vectorielle |
| Exigences changeant rapidement | Changer le prompt vs réentraîner |
Comparaison des coûts
| Approche | Coût de mise en place | Coût par requête | Maintenance |
|---|---|---|---|
| Prompting | Bas | Élevé (prompts longs) | Bas |
| RAG | Moyen | Moyen | Moyen (mises à jour BD) |
| Ajustement fin | Élevé | Bas (prompts plus courts) | Élevé (réentraînement) |
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
| Exigence | Meilleure approche |
|---|---|
| Voix et ton de l'entreprise | Ajustement fin |
| Informations sur le produit | RAG |
| Modèles de réponse | Ajustement fin |
| Annonces récentes | RAG |
| Règles d'escalade | Ajustement fin |
Recommandation : Ajuster finement pour le comportement + RAG pour les connaissances
Cas 2 : Analyse de documents juridiques
| Exigence | Meilleure approche |
|---|---|
| Terminologie juridique | Ajustement fin |
| Références de jurisprudence | RAG |
| Format de citation | Ajustement fin |
| Décisions récentes | RAG |
| Structure du document | Ajustement fin |
Recommandation : Ajuster finement pour le langage juridique + RAG pour la base de données de cas
Cas 3 : Assistant de code
| Exigence | Meilleure approche |
|---|---|
| Style de codage | Ajustement fin |
| Contexte de la base de code de l'entreprise | RAG |
| APIs internes | RAG + Ajustement fin |
| Meilleures pratiques | Ajustement fin |
| Documentation | RAG |
Recommandation : Approche hybride pour de meilleurs résultats
Comparaison technique
Mémoire et connaissances
| Aspect | Ajustement fin | RAG |
|---|---|---|
| Capacité de connaissances | Limité par la formation | Limité par la taille de la BD |
| Mise à jour des connaissances | Nécessite un réentraînement | Mise à jour de la base de données |
| Latence | Rapide (pas de récupération) | Plus lent (étape de récupération) |
| Précision | Peut halluciner | Sources citables |
| Évolutivité | Même coût à grande échelle | Les 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 :
- Utiliser une terminologie médicale appropriée
- Référencer les directives de traitement actuelles
- Citer les sources pour les recommandations
- 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 :
- Quand choisiriez-vous RAG plutôt que l'ajustement fin ?
- Quels sont les compromis de coût entre les trois approches ?
- Comment concevriez-vous un système de support client en utilisant les deux approches ?