Back to "RAG explique les origines et les fondements de :"

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

AI AI-Article LLM Machine Learning RAG Semantic Search

RAG explique les origines et les fondements de :

Saturday, 22 November 2025

Avez-vous déjà cherché "guide de déploiement " et n’avez rien obtenu, même s’il y a un article sur les SSK4publication à la productionMSC5 RAG M SK6RetrievalM SK7Augmented GenerationMska8 résout cela en comprenant le sensMske9 non seulement les mots clésM Ska10 Cette série vous montre comment le RAG est arrivéMSKA11 comment il fonctionne sous le capuchonM ska12 et comment construire des systèmes de production Mska13 De la recherche sémantique à l’AIMská14 Q puissanteMaskan15A avec citationsMsaka16tous avec C œuvrantMasca17 exemples de codeMlaska18

Introduction

Navigation de la série 📖 Il s’agit de la partie 1 du RAG.

RAG (Retrieval -Augmented Generation) a été développé pour rendre l’AI plus intelligenteM SK3 donnant aux LLMs accès à l’information qu’ils n’avaient pas reçue de formation dans le domaine de la gestion des ressources humainesMSC4t trained on m’a dit sur . Mais c’est ce qui est intéressantMST6 MST7 M ST8 que cette technologie offre des possibilités bien au-delà des chatbots d’AIM ST9 Elle permet une recherche sémantique sur les sites WebM st10 recommandation du contenuMst11 aide à écrireMstr12 et gestion du savoirM str13

La double nature: Le RAG peut aider les clients (la recherche meilleureM SK1les réponses exactes avec des citations ) ou exploiter celles-ci (les recommandations manipulatives M SK4la mémoire des critiques négatives ,le surfacing upsell content ). La différence n’est pas la technologie —elle est l’intention de '. Une recherche sémantique qui aide les utilisateurs à trouver ce qu’ils ont réellement besoin MSC11 grandiose MST12 Une priorité sur ce qui vous permet d’obtenir le plus d’argent tout en appartenant utile M ST13 C’est ce que signifie le territoire du modèle foncé de MST14MST15 et c’est pourquoi il importe de comprendre comment cela fonctionne M st17

Voici la vérité sur RAG: Il semble intimidant. Emplacements vecteurs? Modèles de transformateurs ? Caches KVM SK3 Mais comme tout le reste du logicielMSC4 c’est seulement comprendre comment il fonctionneMST6 Vous n’avez pasMst7 besoin de connaître la mathématique derrière les architectures de transformeurs plus que vous ne devez comprendre l’assemblage pour écrire CM st8

RAG en trois étapes:

  1. Transformer le texte en chiffres (embeddings)
  2. Trouver des chiffres similaires (cherche vecteur)
  3. Utilisez ce que vous avez trouvé (display results or feed to LLM)

Que'c'est-à-dire qu'il . Le reste est des détails de la mise en oeuvre.

Cette série vous montre comment bâtir des systèmes RAG avec un code de travail C# . Pas d'écoulement à la main, . Pas de hypothèses,. Juste les pièces et leur assemblage.

Ce que vous apprendrez dans cette série

  • Partie 1: Comment a-t-on créé le RAG et pourquoi cela est important
  • Partie 2: Architecture technique complète et internes LLM
  • Partie 3: Établissement de systèmes réels avec des exemples de code

Par la suite, je vous montrerai aussi comment construire des systèmes RAG complets incluant :

Qu'est-ce que RAG?

Récupération-Generation améliorée: Trouver des renseignements pertinents, puis les utiliser.

flowchart LR
    A[User Question] --> B[Retrieve Relevant Info]
    B --> C[Retrieved Documents/Context]
    C --> D[Generate Response]
    A --> D
    D --> E[Grounded, Accurate Answer]

    style B stroke:#f9f,stroke-width:2px
    style D stroke:#bbf,stroke-width:2px

Sans RAG: Utilisateur demande → LLM fait des suppositions à partir de la mémoire → pourrait halluciner

Avec RAG: Utilisateur demande → Trouver les documents pertinents → Réponses du LLM à l'aide de ces documents MSC2 fondées sur la réalité

// Without RAG: Hope the LLM knows
var answer = await llm.GenerateAsync("How do I deploy Docker?");
// Risk: Might make up outdated or wrong steps

// With RAG: Give it the docs
var relevantDocs = await vectorSearch.FindSimilar("How do I deploy Docker?");
var context = string.Join("\n", relevantDocs.Select(d => d.Text));
var answer = await llm.GenerateAsync($"Context: {context}\n\nQuestion: How do I deploy Docker?");
// Result: Answer based on YOUR actual Docker deployment docs

Perspectives clés: Séparation de l’entreposage des connaissances (recherche)de la justification (LLMM SK3Mise à jour vos dossiersMSC4la recherche demeure couranteMST5 Aucun recyclage n’est nécessaireMSP6

D’où provient le RAG?

Le RAG s’appuie sur des décennies de recherche et de recherche NLP. La compréhension de cette histoire vous permet d’apprécier pourquoi le RAG est conçu comme il l’est.

Recherche traditionnelle (pre-2010sM SK2

Mot clé-recherche fondée:

  • TF-IDF: Fréquence du terme × fréquence inverse des documents - mots courants moins importants
  • TÉU, TPAC, TPMD, TPG: Le classement probabiliste - demeure la ligne de référence pour la recherche par mots clés
  • Correspondance floue:
    • Soundex: Algorithme phonétique ("SmithM SK2 correspond à "Smythe")
    • Distance de Levenshtein: Établir la distance ( Combien d'insertions?
    • N-Grames: CharacterM SK1 séquences de mots pour le match partiel

Le problème: Ces éléments sont conformes caractères, non le sens. Rechercher " orchestration du conteneur" et vous gagnerezM SK3 ne trouvera pas "Arme de dockerMSC5 à moins que ces mots exacts n’apparaissentMNK6 Ils pouvaient traiter les typos mais non la sémantiqueMRK7

Réponse aux questions préliminaires (2010s)

Watson (IBMM SK1 2011):

  • Récupération combinée avec le raisonnement fondé sur la règle-
  • Won Jeopardy! mais a besoin d’une main massive-crafted knowledge engineering
  • On s'est toujours fortement appuyé sur le matchage de mots clés

Modèles de compréhension de lecture:

  • Peut extraire des réponses de passages fournis
  • Mais vous devriez leur donner le passage approprié d'abord.
  • Aucune recherche sémantique pour trouver ce passage

La révolution de l’apprentissage approfondi (2017+)

Transformateurs (2017): "Attention est tout ce dont vous avez besoin"

  • Réseaux neuronaux capables de comprendre le contexte
  • Fondation de tout ce qui a suivi

BERT (2018):

  • Compréhension contextuelle de la langue
  • "BanqueM SK1 signifie des choses différentes dans "banque riveraine" comparativement à "banques d’épargneMSC5
  • Peut générer des embeddings qui captent le sens

GPT-2/3 M SK1

  • Grands modèles linguistiques qui pourraient produire un texte cohérent
  • Mais limitée à leurs données de formation
  • Il y a eu des problèmes de hallucinations.

Représentations de vecteurs denses:

  • Texte → nombres significatifs dans un espace hautement spatial
  • Signes similaires → vecteurs voisins
  • Cela a rendu possible la recherche sémantique.

BART (Facebook AIM SK1 Octobre 2019):

  • Transformer bidirectionnel et automatique-Regressif par Mike Lewis et al.
  • Encoder combiné BERT-like avec décodeur GPTM SK1like
  • Dénoyer l'autoencoder formé par un texte corrompu puis le reconstruire
  • Excellente pour les tâches de production et de compréhension du texte
  • C'est le fondement du RAG.

M2MMSC1 (Facebook AIM SK3 Octobre 2020):

  • Premier modèle de traduction multilingue
  • Traduction directe entre les langues 100 sans pivot anglais
  • 2,200 directions linguistiques (10x plus que les modèles antérieurs
  • Les transformateurs montrés pouvaient traiter des tâches linguistiques massives cross-

Exemple réelle-exemple mondial: Mon Outil de traduction des machines neuronales utilise le BART comme modèle de traduction en rétroaction lorsque les services primaires ne sont pas disponibles, démontrant comment ces modèles fondés sur des transformateurs - sont devenus des éléments de base pratiques pour les systèmes de production.

La naissance du RAG moderne (mai 2020)

Le document seminal "Récupération-Generation améliorée des connaissances-Taxes importantes de PNL" par Patrick Lewis et alM SK1 (Facebook AI Research) a officiellement introduit le RAGMSC4 construit directement sur BARTMST5

Ce qu’ils ont combiné:

  • Récupération du passage dense (DPR) - représentations vectorielles apprisesM SK3 non mots clés
  • Générateur BART - le modèle seq2seq de 2019
  • Fin -à-définir l'architecture différenciable - récupérer et produire ensemble

Les résultats: Les systèmes RAG ont dépassé les modèles beaucoup plus grands sur le plan du savoir-tasses intensives tout en étant plus efficaces et à jourM SK1to-dateMSC3 Vous pourriez mettre à jour la base de connaissances sans recyclage du modèle .

Pourquoi le RAG a explosé (2023-Present)

ChatGPT, GPT -4, et Claude a fait du RAG un élément essentiel

  1. Problème des hallucinations - Les LLM se fondent sur des faits confidentiels. Le RAG justifie les réponses dans des documents réels .
  2. Élimination des connaissances - Les LLM formés sur des données 2021 ne connaissent pas les événements
  3. Données privées - Les LLM peuvent ' ne pas avoir accès à votre entreprise M SK2 les dossiers internes . le RAG peut
  4. Coût - FaibleM SK1Le réglage des LLM est coûteux ($10K-100K+). Le RAG est bon
  5. Expliquement - Le GRA peut citer des sources , ce qui le rend vérifiable et digne de confiance

Aujourd’hui (2024-2025): RAG est la norme de facto pour les systèmes d’AI de production qui ont besoin d’exactitude et de vérifiabilité. Chaque grande entreprise d’IA offre des outils RAG.

Comment fonctionne le RAG: Le grand tableau

Avant de plonger dans les détails techniques (que nous 'couvrirons dans la partie

Les trois phases

Les systèmes RAG fonctionnent en trois phases distinctes:

Phase 1: Indexage (OneM SK2Établissement du temps)

flowchart LR
    A[Your Documents] --> B[Split into Chunks]
    B --> C[Generate Embeddings]
    C --> D[Store in Vector DB]

    style C stroke:#f9f,stroke-width:2px
    style D stroke:#bbf,stroke-width:2px

Que se passe-t-il:

  1. Prenez votre base de connaissances (docs, posts sur le blogM SK2 manuels )
  2. Partitionner en blocs gérés (par.
  3. Convertre chaque tronçon à un vecteur embedding (array of numbers)
  4. Entreposer les vecteurs dans une base de données optimisée pour la recherche de similitude

Concept clé: Des significations similaires produisent des vecteurs semblables,, c'est-à-dire que M SK1Contenant de docker" et "Plateforme de conteneurisationMSC4 se terminent étroitement dans l'espace vectorielMNK5

Phase 2: Récupération (Toutes les demandes)

flowchart LR
    A[User Question] --> B[Generate Query Embedding]
    B --> C[Search Vector DB]
    C --> D[Top K Most Similar Chunks]

    style B stroke:#f9f,stroke-width:2px
    style C stroke:#bbf,stroke-width:2px

Que se passe-t-il:

  1. Utilisateur pose une question
  2. Convertre la question à un vecteur (le même modèle utilisé pour l'indexationM SK1
  3. Trouver les vecteurs les plus similaires dans la base de données
  4. Retourner la partie K supérieure des morceaux les plus pertinents (habituellement 3-10)

Pourquoi cela fonctionne: "Comment je déploie les conteneursM SK1 (query) est sémantiquement similaire aux fragments sur le déploiement de DockerMSC4 même si les mots exacts diffèrent

Phase 3: Génération (Toutes les demandesM SK2

flowchart TB
    A[User Question] --> B[Build Prompt]
    C[Retrieved Context] --> B
    B --> D[LLM]
    D --> E[Generated Answer with Citations]

    style B stroke:#f9f,stroke-width:2px
    style D stroke:#bbf,stroke-width:2px

Que se passe-t-il:

  1. Prenez la question de l’utilisateur'
  2. Prendre les tronçons de contexte récupérés
  3. Construct a prompt: M SK1Given this context ..., answer this question..."
  4. Envoyer à LLM pour la génération
  5. LLM produit une réponse fondée sur le contexte fourni

La magie: Le LLM ne peut halluciner des faits qui n’apparaissent pas dans le contexte. Il ne peut que synthétiser et expliquer ce qu’il fournit.

Un exemple simple

Let's tracer une demande par le système:

Utilisateur demande: "Comment puis-je utiliser Docker Compose?"

Étape 1 - RecouvrementM SK2

Query embedding: [0.234, -0.891, 0.567, ...]

Search vector DB for similar embeddings...

Retrieved chunks:
1. "Docker Compose is a tool for defining multi-container applications..." (similarity: 0.92)
2. "To use Docker Compose, create a docker-compose.yml file..." (similarity: 0.87)
3. "The docker-compose up command starts all services..." (similarity: 0.83)

Étape 2 - générationM SK2

Prompt to LLM:
"Context:
[1] Docker Compose is a tool for defining multi-container applications...
[2] To use Docker Compose, create a docker-compose.yml file...
[3] The docker-compose up command starts all services...

Question: How do I use Docker Compose?

Answer (use the context above):"

LLM Response:
"To use Docker Compose [1], start by creating a docker-compose.yml file [2] that
defines your services. Then run 'docker-compose up' to start all services [3]..."

Résultat: Réponse exacte avec des citations implicites de votre documentation.

RAG vs. Autres approches

Pour comprendre quand utiliser le RAG ( et quand ne pas le faire ), il faut comparer celui-ci à des solutions de remplacement.

RAG vs. FineM SK1Tuning

Aspect RAG FineM SK3Tuning S
Mise à jour des connaissances Immédiat (juste mettre à jour la base de connaissances) Require une nouvelle formation ≥
Coût Basse (entreposage + emplacement ) SMK4 élevée (temps de formation sur l'ordinateur général )
Précision Basé sur des sources Peut halluciner
Customisation Limitée à la récupération
Expliquement élevée ( peut citer des sources) faible ( boîte noire)
Le meilleur pour ConnaissancesM SK1tâches intensives Stil/adaptation au format

Quand utiliser Fine-Tuning:

  • Vous avez besoin du modèle pour apprendre un style ou Format
  • Vous avez un grand ensemble de données nettoyé,
  • Vous avez besoin du modèle pour internaliser échantillons, non des faits
  • Exemple: Faire écrire GPT comme Shakespeare

Quand utiliser RAG:

  • Vous avez besoin l'exactitude des faits avec des citations
  • Votre base de connaissances change fréquemment
  • Vous avez des données privées/propriété
  • La question du coût et de la simplicité
  • Exemple: Chatbot de soutien à la clientèle ( mon entreprise ' mes dossiers changent chaque semaineM SK3

Pouvez-vous combiner les deux ? Oui! Très bonM SK1tune pour le style, RAG pour les faits .

RAG vs. Contexte long Windows

Les LLM modernes ont des fenêtres contextuelles énormes (GPT-4: 128K tokensM SK3 Claude: |200 |K token | ). | Pourquoi ne pas simplement jeter tous vos documents dans le contexte?

Problèmes avec un contexte long:

  1. Coût: Les barèmes de prix avec les tokens - $10-100 par demande s'ajoute rapidement
  2. Délai: Le traitement des tokens 100K prend du temps
  3. Perte au milieu: Les LLM se heurtent à la difficulté d’utiliser l’information au milieu de contextes longs
  4. Dilution: L'information pertinente est enfouie dans le bruit
  5. Limites pratiques: Vous pouvez ' ne pas tenir compte des documents de votre entreprise tout entière ' dans le contexte

Lorsque le contexte long a sens:

  • Un document de grande taille unique (eM SK1g., analysant un contrat )
  • Tout est pertinent (il n'est pas nécessaire de filtrer
  • Le coût n’est pas une préoccupation
  • Volume de la demande faible

Quand le RAG a sens:

  • Grande base de connaissances (millions de documentsM SK1
  • Besoin de trouver un sous-ensemble pertinent
  • Volume de demande élevé (cost mattersM SK1
  • Mise à jour des connaissances en temps réel-

Pratiques exemplaires: Utilisez RAG pour sélectionner le contenu le plus pertinent, puis utilisez un contexte long pour ce sous-ensemble.

RAG vs. Prompting with Examples

Il y a peu de -promption des prises de shot (données d'exemples dans le prompt) est une ligne de base simpleM SK3

Exemple de prompt:

Examples:
Q: What is Docker?
A: Docker is a containerization platform...

Q: How does Kubernetes work?
A: Kubernetes orchestrates containers...

Q: What is my new question?
A: [LLM generates answer]

Limitations:

  • Limité à ce qui convient dans la fenêtre contextuelle
  • Curation manuelle des exemples
  • Nâ€TMest-ce pas le cas pour les grandes bases de connaissances?
  • Aucune recherche sémantique - vous sélectionnez manuellement des exemples

Amélioration du RAG:

  • Trouve automatiquement les meilleurs exemples (par la recherche de similitude)
  • Scales to unlimited examples (only top K sent to LLM)
  • Adaptation à la demande (des demandes différentes reçoivent des exemples différents)

Vous pouvez considérer le RAG comme "un petit nombre d’automatisés -une impulsion de tir à l’échelle

Recherche hybride: RAG + Recherche traditionnelle

Vous pouvez combiner RAG avec une recherche traditionnelle complète-texte en utilisant la fusion de rang réciproque M SK1RRF).

Pourquoi hybride?

  • Recherche sémantique: Super pour les matchs conceptuels (" Traitement des erreurs
  • Recherche de mots clés: Très bon pour les termes exacts ("Docker Compose", "Entity FrameworkM SK4
  • Hybride: Le meilleur des deux mondes
public async Task<List<SearchResult>> HybridSearchAsync(string query)
{
    // Run both searches in parallel
    var semanticTask = SemanticSearchAsync(query, limit: 20);
    var keywordTask = KeywordSearchAsync(query, limit: 20);

    await Task.WhenAll(semanticTask, keywordTask);

    var semanticResults = await semanticTask;
    var keywordResults = await keywordTask;

    // Combine using Reciprocal Rank Fusion
    return ApplyRRF(semanticResults, keywordResults);
}

private List<SearchResult> ApplyRRF(
    List<SearchResult> list1,
    List<SearchResult> list2,
    int k = 60)
{
    var scores = new Dictionary<string, double>();

    // Score from first list
    for (int i = 0; i < list1.Count; i++)
    {
        var id = list1[i].Id;
        scores[id] = scores.GetValueOrDefault(id, 0) + 1.0 / (k + i + 1);
    }

    // Score from second list
    for (int i = 0; i < list2.Count; i++)
    {
        var id = list2[i].Id;
        scores[id] = scores.GetValueOrDefault(id, 0) + 1.0 / (k + i + 1);
    }

    // Merge and sort by combined score
    var allResults = list1.Concat(list2)
        .GroupBy(r => r.Id)
        .Select(g => g.First())
        .OrderByDescending(r => scores[r.Id])
        .ToList();

    return allResults;
}

Pourquoi le RAG est important

Maintenant que vous comprenez ce qu’est le RAG, où il provient, , et comment il est comparé aux solutions de remplacement.

1. Démocratisation de l’AI

  • Vous n’avez pas besoin d’une amende de $100K
  • Vous n’avez pas besoin d’une équipe d’ingénieurs ML
  • Tout développeur peut construire des systèmes RAG avec les outils existants

2. Exactitude pratique

  • La hallucination est le problème #1 des LLM dans la production
  • Le RAG le résume en fondant ses réponses sur des documents réels.
  • Les citations la rendent vérifiable et digne de confiance

3. Toujours à la hausse-àM SK2Date

  • AI traditionnelle: Train une foisM SK1 le savoir est gelé
  • RAG: Mise à jour de vos documents, mises à jour immédiates des connaissances
  • Critique pour les domaines mobiles rapides

4. Protection des renseignements personnels et contrôle

  • Vos données demeurent dans votre infrastructure
  • Peut être exécuté entièrement localement (embeddings locaux + local LLM + vecteur local DB)
  • Aucune donnée n'est envoyée à OpenAI ou aux autres fournisseurs de nuages

5. CoûtM SK1Effective

  • L’entreposage est bon (pennies par GB)
  • Les emplacements sont bon marché (fractions d’un cent par 1000 documents
  • Beaucoup moins cher que les fenêtres fine-tuning ou de longue durée contextuelle

6. Applications variées

  • Recherche sémantique (pas de LLM requis!)
  • Q&A systèmes avec citations
  • Recommandation du contenu
  • Assistants à l'écriture
  • Gestion des connaissances
  • Aides à la documentation
  • Assistants de recherche

Conclusion: De l’histoire à la mise en œuvre

Nous avons tracé l’évolution de RAG, ' et :

  • Pre-2010s: Recherche par mots clés ( caractèresM SK2 sans signification)
  • 2010s: Compréhension liée à la lecture
  • 2017-2020: Transformers et embeddings
  • 2020: RAG moderne ( récupérer
  • 2023-Present: Norme de production ( hallucination MSC2 coût MSC3 protection des renseignements personnels MSc4

Principaux renseignements tirés de la partie 1:

  • RAG se sépare stockage des connaissances (vector DB) de d'analyse (LLMM SK1
  • Il permet de résoudre le problème des hallucinations en fondant les réponses sur des documents réels.
  • Il est moins coûteux et plus souple que le fine
  • Il fonctionne mieux que le contexte long pour les grandes bases de connaissances
  • Il ' est essentiellement " automatisé quelques shot prompting à l’échelle

Le modèle mental à trois étapes

  1. Transformer le texte en chiffres (embeddings)
  2. Trouver des chiffres similaires (cherche vecteur)
  3. Utilisez ce que vous avez trouvé (display or feed to LLM)

Tout le reste est une optimisation.

Continuer à la partie 2: Architecture et internes

Vous comprenez maintenant Ce qui suit : RAG est, pourquoi Il importe, et où Mais comment fonctionne-t-il en fait sous le cap?

À l'intérieur Partie 2: Architecture et éléments internes du RAG, nous plongons dans les détails techniques

Pipeline RAG complet:

  • Phase 1: Indexage ( extraction de textes, stratégies d'enchaînementM SK3 génération d'embeddingMSC4 stockage vecteurMST5
  • Phase 2: Recouvrement ( Emplacements de la demandeM SK2 Mesures de similitude, reclassementMSC4
  • Phase 3: Génération (Construction rapide, Paramètres LLMM SK3 post-processingMSC4Procédure de traitement

LLM internes:

  • Qu'est-ce que les tokens et pourquoi ils sont importants pour RAG
  • Cache KV: Comment les LLM se souviennent du contexte
  • Contexte et stratégies de gestion des tokens
  • Optimisation du RAG pour l'efficacité et le coût des tokens

plongées techniques profondes:

  • Bases de données vectorielles et algorithmes de recherche de similitude
  • Intégration des modèles et normalisation
  • Stratégies de recyclage qui préservent le contexte
  • Exemples de codes pratiques dans C#

Continuer à la partie 2: Architecture et internes →

Après la Partie 2, vous serez prêts à la partie ' où nous bâtirons des systèmes réels , pour résoudre les défis communs

Ressources

Documents de base:

Lire plus:

Suivant dans cette série:

Continuer à la partie 2 →

logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.