Module 04 · Construire avec les LLM

RAG, faire lire vos documents au modèle

Construire de zéro un système de génération augmentée par la recherche – découpage des documents, recherche vectorielle, recherche par mots-clés, réécriture de requête, reranking, réponses avec citations et évaluation – puis faire lire la documentation de httpx à RepoBot.

Leçons

  1. 01
    Pourquoi le RAG

    Une même question – sans documents, le modèle se trompe ; avec le passage de documentation pertinent dans le prompt, il répond juste. Le déroulé de base du RAG, le problème qu'il résout, et les cas où il ne convient pas.

    25 minutes · Intermédiaire
  2. 02
    Découper les documents

    Comparer pour de vrai trois méthodes de découpage sur la documentation de httpx – par longueur fixe, par titre, par titre avec longueur limitée. Et un vrai piège au passage – des commentaires dans des blocs de code pris pour des titres.

    35 minutes · Intermédiaire
  3. 03
    Écrire une recherche vectorielle de zéro

    Écrire avec numpy une recherche vectorielle de quelques dizaines de lignes – transformer les morceaux de documentation en matrice de vecteurs, calculer la similarité à la requête et garder les premiers. Puis l'évaluer sur 20 questions – seule la moitié trouve le bon passage – et voir d'où vient le problème.

    45 minutes · Intermédiaire
  4. 04
    Recherche hybride et reranking

    Écrire de zéro une recherche par mots-clés BM25, la fusionner avec la recherche vectorielle par RRF, réécrire d'abord la question chinoise en termes de recherche anglais, et ajouter enfin un modèle de reranking. Chaque étape est mesurée sur le même jeu de 20 questions.

    50 minutes · Intermédiaire
  5. 05
    Des réponses avec citations

    Transmettre au modèle les morceaux trouvés, numérotés, en exigeant qu'il indique la source de chaque phrase et qu'il dise quand l'information manque. Puis vérifier par programme que les citations sont valides, et voir s'il invente face à une question dont la documentation ne contient pas la réponse.

    35 minutes · Intermédiaire
  6. 06
    Comment savoir si un RAG est bon

    Séparer l'évaluation d'un RAG en deux moitiés, la recherche et la réponse. Pour la recherche, le taux de réussite ; pour la réponse, un autre modèle comme juge, qui compare à une réponse de référence pour juger l'exactitude et aux documents pour juger la fidélité. Le juge a rendu 60 verdicts, je les ai vérifiés un par un, et il se trompe lui aussi.

    45 minutes · Intermédiaire
  7. 07
    Projet : l'assistant lit la documentation du projet

    Intégrer découpage, recherche hybride, réécriture de requête et réponses avec citations dans RepoBot pour produire la v2. Elle répond juste aux questions sur lesquelles la v1 se trompait, et règle aussi le problème de recherche des relances du type « et en asynchrone ? » dans une conversation à plusieurs tours.

    60 minutes · Intermédiaire

RepoBot v1 s'est trompé sur « httpx suit-il les redirections par défaut ? », et a même inventé un historique de versions. Ce module résout ce problème : avant de répondre, il va chercher les passages pertinents dans la documentation officielle de httpx, répond d'après elle et indique la source à l'utilisateur.

Le module n'utilise presque aucun framework. Découpage, recherche vectorielle, BM25, fusion, vérification des citations : tout est écrit à la main, en quelques dizaines de lignes chacun. Toutes les méthodes de recherche sont évaluées sur le même jeu de 20 questions, et vous verrez de combien les chiffres changent à chaque ajout. Certains résultats contredisent les idées reçues : sur nos données, par exemple, la recherche hybride ne fait pas mieux que la recherche par mots-clés seule, et le plus grand gain vient d'une réécriture de requête peu coûteuse.

Pourquoi cet ordre

La leçon 1 montre d'abord avec un exemple manuel que « fournir les documents suffit à répondre juste », et explique le déroulé du RAG et son domaine d'application. Les leçons 2 à 4 suivent l'ordre du déroulé pour bien faire l'étape « trouver les documents » : d'abord découper, puis chercher, puis améliorer la recherche. La leçon 5 traite l'étape « utiliser les documents » : faire répondre le modèle avec des citations, et lui faire dire honnêtement quand il ne sait pas. La leçon 6 évalue tout le système, pas seulement la recherche mais aussi les réponses. La leçon 7 intègre tout cela dans RepoBot.

Vous avez terminé quand

  • vous savez découper des documents selon leur structure, et repérer puis corriger les problèmes de découpage (par exemple un bloc de code coupé en deux).
  • vous savez écrire, sans aucun framework, une recherche vectorielle et BM25, et les fusionner avec RRF.
  • vous savez préparer un jeu de questions d'évaluation de la recherche pour vos propres documents, calculer taux de réussite et MRR, et choisir une méthode de recherche en conséquence.
  • vous savez faire répondre le modèle uniquement d'après les documents trouvés, avec leurs sources, et vérifier par programme que les citations sont valides.
  • RepoBot v2 répond correctement aux questions sur lesquelles la v1 se trompait, en citant la documentation.

Le code de ce module

Le code et les sorties des programmes sont reproduits tels qu’ils ont tourné : commentaires et sorties sont donc en chinois.