AI大模型小白手册 | RAG技术与应用

16 阅读5分钟

前言

你有没有遇到过这样的尴尬?

问AI:“怎么申请信用卡?”

它答:“信用卡是银行发行的支付工具……”

——它根本没回答问题!

为什么?因为它“记性有限”,训练数据到2023年就停了,而银行新规早改了。

RAG(检索增强生成)就是解决这个问题的“桥梁”,它让AI能“边查资料边答题”,把知识库变成它的“第二大脑”。

大模型系列系列目录(持续更新):

AI大模型小白手册|基础原理篇

AI大模型小白手册 | API调用的魔法指南

AI大模型小白手册|如何像工程师一样写Prompt

AI大模型小白手册|Embedding 与向量数据库

一、大模型应用开发的三种模式:Prompt、RAG、微调

想象一下,你有一个超级聪明但“记性有限”的助手(大模型)。你想让它帮你做事,有三种方式:

1. Prompt 工程(提示词工程)

  • 怎么做:直接告诉它问题,比如“写一篇关于春天的作文”。
  • 优点:简单、快速、零成本。
  • 缺点:它只能靠“训练时学过的知识”回答。如果你问公司内部制度?它不知道!还会“瞎编”——这叫 幻觉(Hallucination)

2. RAG(检索增强生成)

  • 怎么做:先给它一本“参考书”(你的私有文档),它查完再回答。
  • 优点:能回答专业、私有、最新问题,不瞎编,成本低。
  • 适用场景:企业知识库、客服问答、医疗/法律咨询等。

3. 微调(Fine-tuning)

  • 怎么做:用你的数据重新训练模型的一部分。

  • 优点:模型真正“学会”你的领域知识。

  • 缺点:贵、慢、需要大量数据和算力。

对大多数企业和个人开发者来说,RAG 是性价比最高、最实用的选择


二、RAG 是什么?核心原理与流程

RAG = Retrieval-Augmented Generation(检索增强生成)

简单说:让大模型“边查资料边答题” ,就像考试允许带课本!

RAG 的工作流程(5步走):

  1. 分片(Chunking) 把你的长文档(如PDF、Word)切成小段,比如每段512字。

  2. 向量化(Embedding)Embedding 模型 把每段文字转成数字向量(就像给每段话生成“指纹”)。

  3. 存入向量数据库 把所有“指纹”存进数据库(比如 FAISS、Chroma),方便快速查找。

  4. 用户提问 → 检索相关片段

    1. 用户问:“我们公司的年假政策是什么?”
    2. 系统把问题也转成向量,去数据库里找最相似的几段文字(这叫 召回 + 重排)。
  5. 生成答案 把问题 + 检索到的文档片段,一起喂给大模型(如 DeepSeek),让它生成基于事实的答案

🌟 RAG 的最大价值解决幻觉 + 支持私有知识 + 无需重新训练模型


三、什么是 Native RAG?

“Native RAG” 并不是一个官方术语,但在社区中常指 最基础、最直接的 RAG 实现方式,特点如下:

  • 文档 → 分片 → 向量化 → 存库 → 检索 → 生成
  • 没有高级优化:比如没做查询改写、没用重排模型、没加缓存等
  • 优点:结构清晰、容易上手
  • 缺点:在复杂问题上可能召回不准

💡 对小白来说,先掌握 Native RAG 是必经之路!后续再学 Advanced RAG(加 reranker、多路召回等)。


四、Embedding 模型怎么选?

Embedding 模型是 RAG 的“眼睛”——它决定能否准确找到相关文档。

推荐选择(2026年主流):

模型特点适用场景
text-embedding-3-small/large(OpenAI)效果好,API 调用有预算、追求效果
BGE-M3 / BGE-large-zh(智源)中文强、开源免费中文项目首选
E5 / multilingual-E5(微软)多语言支持好国际化项目
gte-Qwen(阿里)与通义千问生态兼容阿里云用户

🔍 小白建议:中文项目直接用 BGE-large-zh-v1.5(HuggingFace 可下载),效果稳、免费、支持长文本。


五、实战:用 DeepSeek + FAISS 搭建本地知识库

下面我们用 Python 写一个超简版 RAG 系统!

所需工具:

  • 大模型:DeepSeek(通过 API 或本地部署)
  • Embedding 模型:BGE-large-zh
  • 向量库:FAISS(Facebook 开源,轻量高效)
  • 文本处理:LangChain(可选,简化流程)

代码示例(核心逻辑):

from sentence_transformers import SentenceTransformer
import faiss
import numpy as np

# 1. 加载 Embedding 模型
embedder = SentenceTransformer('BAAI/bge-large-zh-v1.5')

# 2. 准备你的知识库(示例)
docs = [
    "公司年假政策:工作满1年享5天年假,满3年享10天。",
    "报销流程:需提交发票+审批单,3个工作日内到账。",
    "入职第一天需签署保密协议和劳动合同。"
]

# 3. 向量化并存入 FAISS
doc_vectors = embedder.encode(docs)
dimension = doc_vectors.shape[1]
index = faiss.IndexFlatL2(dimension)
index.add(np.array(doc_vectors))

# 4. 用户提问
query = "年假有多少天?"
query_vec = embedder.encode([query])

# 5. 检索最相关片段
D, I = index.search(query_vec, k=1)  # 找最相似的1个
retrieved_doc = docs[I[0][0]]

# 6. 调用 DeepSeek 生成答案(伪代码)
prompt = f"根据以下信息回答问题:\n\n{retrieved_doc}\n\n问题:{query}"
answer = call_deepseek_api(prompt)  # 替换为实际API调用
print(answer)

效果:

用户问:“年假有多少天?” 系统自动找到年假政策,并让 DeepSeek 生成:“根据公司政策,工作满1年可享5天年假,满3年可享10天。”

🛠️ 进阶建议:加入 reranker(如 bge-reranker)、支持 PDF 解析、加 Web 界面(Gradio/Streamlit)。


结语:RAG 是通往“真正有用 AI”的桥梁

大模型不是万能的,但 RAG 让它变得可靠、专业、可落地。 无论你是想搭建企业知识库、做智能客服,还是仅仅想让 AI 帮你读文档,RAG 都是你必须掌握的第一步