问题:大模型为什么会"胡说"?
大模型的知识截止在训练日期之前,而且参数里记不住你公司那份 500 页的产品手册。直接问它"我们公司 Q3 营收是多少",它要么答错,要么老老实实说"我不知道"。
RAG 登场
RAG = Retrieval-Augmented Generation(检索增强生成)
一句话:先查资料,再让 AI 基于查到的资料回答。
3 步工作流
步骤 1:知识切片 + 向量化
把你的文档切成 500 字左右的小块,每块用 embedding 模型转成一串数字(向量),存进向量数据库。
步骤 2:检索
用户提问时,把问题也转成向量,去向量库里找最相似的 5-10 个切片。
步骤 3:塞进 Prompt 里生成
把检索到的切片 + 用户问题,打包成一个 Prompt 给 LLM:
参考资料:
[切片 1]
[切片 2]
...
用户问题:XXX
请严格基于参考资料回答,资料里没有的就说"不知道"。
常用工具栈
| 环节 | 推荐 |
|---|---|
| Embedding 模型 | OpenAI text-embedding-3, BGE |
| 向量库 | Pinecone, Qdrant, Milvus, pgvector |
| 框架 | LangChain, LlamaIndex, Dify |
| LLM | GPT-4o, Claude, DeepSeek V3 |
RAG vs 微调 (Fine-tuning)
| RAG | 微调 | |
|---|---|---|
| 成本 | 低 | 高 |
| 知识更新 | 秒级 | 每次重训 |
| 适合 | 企业知识问答、客服 | 固定风格、特定任务 |
| 建议 | 99% 场景都够用 | 真需要个性化再说 |
最小可运行 Demo
没有代码基础也能搭:Dify 上传文档 → 绑定模型 → 生成聊天链接,20 分钟上线一个知识库问答机器人。
进阶坑点
- 切片粒度:过小丢语境,过大超 token 限制,主流 300-800 字
- Re-rank:检索出的 Top 10 要重排序再用,准确率提升 15%+
- 混合检索:向量 + 关键词(BM25)一起用,召回率更高
下一步
- 动手:Dify 教程
- 进阶:Agent 开发入门