
RAG vs Fine Tuning vs Prompt Engineering: Use Cases And Key Differences Explained | Simplilearn
Audio Summary
AI Summary
Bienvenue dans cette vidéo sur l'ingénierie des invites (prompt engineering) versus RAG (Retrieval Augmented Generation) versus le réglage fin (fine-tuning). Ces concepts sont cruciaux dans les applications d'IA modernes. Bien qu'ils puissent sembler techniques au premier abord, leurs différences deviennent claires une fois que l'on comprend leur fonction. Cette vidéo explorera comment l'ingénierie des invites améliore la manière de questionner un modèle, comment RAG permet au modèle de répondre en utilisant des documents externes et des données réelles, et comment le réglage fin spécialise un modèle pour une tâche ou un style particulier. Nous examinerons également des structures de projets simples et des exemples pratiques pour clarifier ces termes.
Notre session débutera par une introduction à l'ingénierie des invites, RAG et le réglage fin, suivie d'une plongée en profondeur dans chacun de ces concepts. Ensuite, nous discuterons des différences clés entre les trois, avant de passer à des exemples concrets et des structures de projets types.
Avant de commencer, une brève information : Simplilearn propose un programme de certificat professionnel en IA générative et apprentissage automatique. Vous apprendrez auprès de professeurs de l'IIT et d'experts de l'industrie, participerez à des master classes dirigées par la faculté de l'IIT Guwahati et vivrez une immersion sur le campus de l'IIT Guwahati, obtenant ainsi le statut d'ancien élève de l'ENIC Academy IIT Guwahati. N'hésitez pas à vous inscrire, le lien du cours est dans la description.
Un petit quiz pour tester vos connaissances : lequel des éléments suivants est principalement utilisé pour aider une IA à répondre en utilisant des documents externes ou des sources de connaissances ? Les options sont : ingénierie des invites, RAG, réglage fin ou tokenisation. Veuillez laisser vos réponses dans la section commentaires.
Commençons par RAG, qui signifie "Retrieval Augmented Generation". C'est une méthode permettant à un modèle d'IA de répondre en utilisant des informations externes, plutôt que de se fier uniquement à ce qu'il sait déjà. RAG fonctionne en deux étapes : d'abord, il recherche des documents ou informations pertinents (PDF, bases de données, sites web, bases de connaissances, fichiers d'entreprise) ; ensuite, il utilise les informations récupérées pour créer la réponse finale. Au lieu de répondre uniquement à partir de son entraînement, RAG dit : "cherchez d'abord la bonne information, puis répondez à partir de celle-ci".
Pourquoi RAG est-il si utile ? Un modèle normal peut oublier des détails, donner des réponses obsolètes ou deviner quand il est incertain. RAG l'aide en utilisant les informations les plus récentes, les documents spécifiques à l'entreprise, en réduisant les hallucinations et en fournissant des réponses provenant de sources fiables.
Prenons un exemple : si vous demandez à votre système d'IA "Combien de jours de congé occasionnels les employés obtiennent-ils par an ?", un modèle d'IA normal pourrait donner une réponse générique. Avec RAG, le système vérifie d'abord le document de politique RH de votre entreprise, trouve que les employés à temps plein reçoivent, par exemple, 12 jours de congé occasionnels par an, puis répond en conséquence. La réponse est basée sur le document, pas sur une supposition.
Dans un cas réel, imaginez un chatbot RH interne pour une entreprise. Sans RAG, l'IA pourrait donner des réponses génériques de type internet, confondre les politiques d'entreprise ou donner des informations incorrectes. Avec RAG, le système recherche le PDF de la politique RH de l'entreprise, trouve la section exacte liée à la question et donne une réponse basée sur cette section. Par exemple, si un utilisateur demande si les congés occasionnels peuvent être reportés, RAG récupère la phrase "les congés occasionnels ne peuvent pas être reportés". C'est ainsi que RAG fonctionne et pourquoi il est si important dans les applications d'IA modernes.
Le flux de travail de RAG est le suivant : un utilisateur pose une question (par exemple, "Les congés occasionnels peuvent-ils être reportés ?"). Le modèle d'IA effectue une recherche de récupération dans les documents de l'entreprise (politique de congés). Il récupère la politique correspondante (par exemple, "les congés occasionnels ne peuvent pas être reportés"). Ensuite, une étape de génération crée la réponse finale. Le système répond finalement : "Non, les congés occasionnels ne peuvent pas être reportés."
La structure d'un projet RAG typique comprendrait :
- `/data` : Contient les fichiers originaux (PDF, TXT, DOCX), la source de connaissance complète comme `company_policy.pdf`.
- `/processed` : Contient des morceaux de texte nettoyés ou du contenu extrait (par exemple, politique RH, manuel d'entreprise).
- `/vector_stores` : Stocke les embeddings et les fichiers d'index (par exemple, index Faiss, Chroma, Pinecone). C'est là que le système recherche des informations pertinentes.
- `/src` : Contient la logique principale de RAG.
- `loader.py` : Charge les documents (lit les PDF, extrait le texte).
- `chunker.py` : Découpe les grands textes en morceaux plus petits (par exemple, 500 mots avec un chevauchement de 50 mots).
- `embedder.py` : Convertit les morceaux de texte en embeddings (par exemple, OpenAI, Hugging Face).
- `retriever.py` : Trouve les morceaux les plus pertinents en fonction de la question de l'utilisateur (par exemple, recherche de similarité des trois meilleurs correspondances).
- `generator.py` : Envoie le contexte récupéré plus la question de l'utilisateur au LLM pour construire l'invite finale et obtenir la réponse.
- `rag_pipeline.py` : Connecte tous les éléments ensemble (charge la requête, récupère les morceaux, génère les réponses).
- `utils.py` : Contient des fonctions d'aide (nettoyage de texte, journalisation, formatage de sortie).
- `/prompts` : Stocke les modèles d'invite (par exemple, "Vous êtes un assistant utile. Répondez uniquement à partir du contexte fourni. Si la réponse n'est pas trouvée, dites 'non trouvé dans le document'.").
- `app.py` : Le point d'entrée principal (application CLI, Streamlit, Gradio, ou backend Fast API).
- `config.py` : Stocke les valeurs de configuration (nom du modèle, taille du morceau, chemin de la base de données vectorielle).
- `requirements.txt` : Liste toutes les bibliothèques Python nécessaires.
- Fichier de variables d'environnement : Pour stocker les secrets.
- `test_query.py` : Un petit script pour tester le système RAG avec des questions d'exemple.
Passons maintenant au réglage fin (fine-tuning). Selon Google, le réglage fin est un moyen d'améliorer un modèle pré-entraîné pour une tâche, un format ou un