Chaîne RAG pour l'inférence
Cet article décrit le processus qui se produit lorsqu'un utilisateur soumet une requête à l'application RAG dans un environnement en ligne. Une fois les données traitées par le pipeline de données, elles peuvent être utilisées dans l'application RAG. La série, ou chaîne d'étapes, qui est invoquée au moment de l'inférence est communément appelée la chaîne RAG .

- (Facultatif) Prétraitement de la query utilisateur : Dans certains cas, la query de l'utilisateur est prétraitée pour la rendre plus adaptée à l'interrogation de la base de données vectorielle. Cela peut impliquer de formater la requête au sein d'un template, d'utiliser un autre modèle pour réécrire la requête ou d'extraire des mots-clés pour faciliter la récupération. La sortie de cette étape est une query de récupération qui sera utilisée à l'étape de récupération suivante.
- Récupération : Pour récupérer les informations d'assistance de la base de données vectorielle, la query de récupération est traduite en un embedding en utilisant le même modèle d'embedding qui a été utilisé pour intégrer les blocs de documents pendant la préparation des données. Ces embeddings permettent de comparer la similarité sémantique entre la query de récupération et les blocs de texte non structurés, en utilisant des mesures comme la similarité cosinus. Ensuite, les blocs sont récupérés de la base de données vectorielle et classés en fonction de leur similarité avec la requête intégrée. Les meilleurs résultats (les plus similaires) sont renvoyés.
- Augmentation des prompts : le prompt qui sera envoyé au LLM est formé en augmentant la query de l'utilisateur avec le contexte récupéré, dans un template qui indique au modèle comment utiliser chaque composant, souvent avec des instructions supplémentaires pour contrôler le format de la réponse. Le processus d'itération sur le bon prompt template à utiliser est appelé ingénierie de prompt.
- Génération de LLM : Le LLM prend en entrée le prompt enrichi, qui inclut la query de l'utilisateur et les données de support récupérées. Il génère ensuite une réponse qui est ancrée sur le contexte supplémentaire.
- **(Facultatif) Post-traitement :** La réponse du LLM peut être traitée davantage pour appliquer une logique métier supplémentaire, ajouter des citations ou affiner le texte généré en fonction de règles ou de contraintes prédéfinies.
Comme avec le pipeline de données d'application RAG, de nombreuses décisions de Data Engineering importantes peuvent affecter la qualité de la chaîne RAG. Par exemple, déterminer le nombre de fragments à récupérer à l'étape 2 et comment les combiner avec la query de l'utilisateur à l'étape 3 peut avoir un impact significatif sur la capacité du modèle à générer des réponses de qualité.
Tout au long de la chaîne, divers garde-fous peuvent être appliqués pour assurer la conformité avec les politiques d'entreprise. Cela peut impliquer de filtrer les requêtes appropriées, de vérifier les autorisations des utilisateurs avant d’accéder aux sources de données et d’appliquer des techniques de modération de contenu aux réponses générées.