RAG vs 微调:两种AI定制方案怎么选
🩺 摘要
想让AI懂你的业务数据,有两条路:RAG和微调。到底选哪个?很多人搞混了。
📝 详情
核心区别
RAG(检索增强生成):AI 从你的文档库里搜答案,不改变模型参数。微调:改变模型参数,让模型学会你的领域知识。
代码示例:RAG vs 微调
RAG 实现(约30行代码)
from langchain_community.vectorstores import Chroma
from langchain_community.embeddings import HuggingFaceEmbeddings
# 1. 加载文档
docs = ["退货政策是30天内免费退货", "满200元包邮,不满200收10元运费"]
# 2. 向量化
embeddings = HuggingFaceEmbeddings(model_name="BAAI/bge-small-zh-v1.5")
vectorstore = Chroma.from_texts(docs, embeddings)
# 3. 检索 + 回答
query = "退货政策是什么?"
results = vectorstore.similarity_search(query, k=2)
context = "\n".join([r.page_content for r in results])
prompt = f"基于以下文档回答:\n{context}\n问题:{query}"
微调(需要 GPU)
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
CUDA_VISIBLE_DEVICES=0 python src/train.py \
--model_name_or_path Qwen/Qwen2.5-7B \
--dataset train_data.json \
--output_dir ./qwen-finetuned \
--num_train_epochs 3 \
--per_device_train_batch_size 1 \
--learning_rate 2e-4
对比数据
| 维度 | RAG | 微调 |
|---|---|---|
| 实现难度 | 低(1天) | 高(1-2周) |
| 知识更新 | 换文档,即时生效 | 重新训练,耗时数小时 |
| 幻觉控制 | 低(引用原文) | 中(可能记错) |
| 推理成本 | 低 + 检索开销 | 同模型推理成本 |
| GPU需求 | 不需要 | 至少12GB显存 |
最佳实践
先用RAG做起来,效果不够再加微调。 80%的场景RAG就够用,只有需要模型掌握深度领域知识(如医疗诊断)时才需要微调。推荐路线:RAG → Hybrid(RAG + 微调)→ 纯微调。
💬 评论 (0)