【DL99】RAG--让LLM连接外部知识

RAG核心思想:不要什么都塞进模型参数里,而是在需要的时候,从外部知识库把相关信息找出来,再交给 LLM。它可以减少幻觉,因为模型回答问题时,可以参考真实的外部资料,而不是完全依赖参数中记住的知识。

复制代码
用户问题
   ↓
先去知识库找资料
   ↓
找到相关内容
   ↓
把内容放进 Prompt
   ↓
LLM 根据这些内容回答

RAG
├── Retrieval
│      检索,找到相关知识
│
└── Generation
       生成,llm根据知识生成答案

一个完整的RAG系统

复制代码
                 用户问题
                    ↓
                 Query
                    ↓
              ┌──────────┐
              │ Retriever │
              └─────┬────┘
                    ↓
              相关文档 Chunks
                    ↓
              ┌──────────┐
              │   LLM    │
              └─────┬────┘
                    ↓
                  Answer

1.准备知识库

假设:

复制代码
docs/
├── handbook.pdf
├── product.md
├── architecture.md
└── faq.txt

我们需要把这些数据加载进来,统一文本

2.chunking

当我们只需要局部知识的时候,如果把这个文档全部扔进去是不是太浪费了,所以我们需要把文档进行切分,分为chunk1,2...n;分别代表各个部分。它不能太大,也不能太小,太大的话和整个文档有什么区别,太小的话可能会将语义给拆散了。甚至有点会有重叠。

3.embedding

Embedding 就是把文本转换成一个能够表达语义的向量,然后比较两个向量的相似度,方向越接近,相似度越高。

4.Vector Database

保存 Embedding

快速相似度搜索

复制代码
                 【离线 Indexing】

Documents
    ↓
Document Loader
    ↓
Chunking
    ↓
Embedding Model
    ↓
Vector Database
    │
    │
    │
    ↓
──────────────────────────────

                 【在线 Query】

User Question
      ↓
Query Embedding
      ↓
Vector Search
      ↓
Top-K Chunks
      ↓
Prompt Construction
      ↓
LLM
      ↓
Answer

事实上embedding相似不不代表一定真正相关所以我们需要使用reranker将top-k进行缩小,reranker擅长更加精确的判断query和chunk是否真的相关。

复制代码
Retriever
 ↓
重点解决 Recall(真正相关的东西,你找到了多少?)

Reranker
 ↓
进一步提升 Precision(你找出来的东西,有多少是真的相关?)

                         RAG
                          │
            ┌─────────────┴─────────────┐
            ↓                           ↓
       Offline Indexing            Online Query
            ↓                           ↓
        Documents                    Question
            ↓                           ↓
         Chunking                  Query Embedding
            ↓                           ↓
        Embedding                  Retrieval
            ↓                           ↓
       Vector Database              Top-K
                                        ↓
                                    Reranker
                                        ↓
                                  Context
                                        ↓
                                      LLM
                                        ↓
                                     Answer
相关推荐
具身AGI10 小时前
物理AI 空间理解:空间物理 信息的三条注入路线
人工智能·深度学习
黑妹天下第一乖11 小时前
第 08 讲:阿加犀 AidGenSE 端侧大模型服务化与 OpenAI 兼容接口
人工智能·嵌入式硬件·深度学习·机器人·iot
2601_9621773012 小时前
2026年AI API Gateway怎么选?我整理了6种方案的费用、稳定性和适用场景
网络·人工智能·深度学习·gateway
for_ever_love__12 小时前
PyTorch 张量与 autograd——自动求导怎么工作
pytorch·python·深度学习·自动求导
DongQiShanRen13 小时前
裁决台账双向互校(中):五向一致性链——②向解读与③向实现
人工智能·深度学习·自然语言处理·集成学习·vllm
LaughingZhu13 小时前
Product Hunt 每日热榜 | 2026-10-03
人工智能·深度学习·神经网络·搜索引擎·百度
DongQiShanRen14 小时前
裁决台账双向互校(下):台账哈希链、三向对账与最小落地
人工智能·深度学习·算法·目标跟踪·自然语言处理·rust·哈希算法
LaughingZhu15 小时前
Product Hunt 每日热榜 | 2026-10-02
数据库·人工智能·深度学习·神经网络·搜索引擎
深度之眼15 小时前
深度学习研0研1如何正确 “阅读文献” ?分享 “3步高效阅读法” !
人工智能·深度学习
Web3&Basketball16 小时前
用 cost-per-success 做模型选型评测
深度学习·大模型·ai技术