技术深度解析
RAG与微调之间的虚假二元对立,源于对AI栈各层级的误解。微调作用于参数层面——它通过在精心策划的数据集上进行监督学习来更新模型权重,改变控制输出的底层概率分布。这是对模型内在能力的深层、永久性改变。相比之下,RAG作用于推理层面——它不修改权重,而是在生成之前用检索到的文档增强输入上下文。模型的核心参数保持不变。
混合系统的架构
现代混合架构通常遵循三阶段流水线:
1. 微调阶段:基础模型(例如Llama 3、Mistral或GPT-4o)在特定领域的指令数据上进行微调。这可能包括法律推理链、医学术语用法或企业语气指南。目标是内化所需的行为模式,使其成为自动反应,从而减少对冗长系统提示的需求。
2. 检索阶段:在推理时,查询首先被传递给检索系统——通常是像Pinecone、Weaviate或Qdrant这样的向量数据库——它在索引文档库中进行搜索。返回top-k个片段,通常带有相关性分数。
3. 增强生成阶段:检索到的片段与原始查询拼接在一起,作为上下文输入给微调后的模型。然后,模型生成一个既基于其微调知识又基于检索数据的回答。
关键工程权衡
| 组件 | 微调 | RAG | 混合(微调 + RAG) |
|-----------|-------------|-----|--------------------------|
| 延迟 | 推理时无额外延迟 | 增加50-200ms检索时间 | 增加50-200ms检索时间 |
| 知识新鲜度 | 静态;需要重新训练 | 动态;随索引刷新更新 | 动态;微调行为 + 新鲜数据 |
| 行为控制 | 强;内化规则 | 弱;依赖提示工程 | 强;微调规则 + 检索事实 |
| 数据隐私 | 模型可能记忆敏感数据 | 检索可进行访问控制 | 受控检索 + 微调护栏 |
| 成本 | 前期高(计算 + 数据策划) | 前期较低;持续索引成本 | 前期适中 + 持续检索成本 |
| 可扩展性 | 每个领域需重新训练 | 易于添加新文档 | 微调一次,持续索引 |
数据要点: 混合方法提供了两全其美的方案:来自微调的强行为控制,以及来自RAG的动态知识。延迟惩罚很小(通常低于200ms),成本结构对于大多数企业部署来说也是可控的。
开源工具与仓库
已有多个开源项目支持混合架构:
- LangChain(GitHub: 95k+ stars):提供用于链接检索和生成步骤的模块化抽象。其`RetrievalQA`链是RAG的典型示例,最新版本支持微调模型集成。
- LlamaIndex(GitHub: 38k+ stars):提供高级索引策略和查询引擎,可与微调模型结合使用。其`VectorStoreIndex`和`KeywordTableIndex`支持灵活的检索。
- RAGAS(GitHub: 7k+ stars):用于评估RAG流水线的框架,衡量忠实度、答案相关性和上下文精度等指标——对混合系统至关重要。
- vLLM(GitHub: 45k+ stars):一个高吞吐量服务引擎,通过前缀缓存支持微调模型和RAG集成,降低生产环境中的延迟。
关键玩家与案例研究
Glean:企业搜索遇上混合AI
企业AI搜索平台Glean,其整个产品都建立在混合理念之上。他们的系统针对每个客户的内部沟通风格、文档格式和合规要求对基础模型进行微调。然后,在查询时,RAG从公司的知识图谱中检索——包括Slack消息、Confluence页面和CRM数据。结果是一个能说公司语言、并掌握最新信息的AI助手。Glean的CEO Arvind Jain公开表示:“微调赋予我们个性;RAG赋予我们事实。”
Cohere:Command R+与混合API
Cohere的Command R+模型明确为RAG工作流设计,但该公司也提供微调API。他们的方法是提供一个已经针对检索增强生成优化的基础模型(拥有128k上下文窗口),然后允许企业针对法律或医疗等特定领域进行微调。Cohere的基准测试显示,经过微调的Command R+配合RAG,在企业问答任务上达到了92%的准确率,而仅用RAG为78%,仅用微调为85%。
| 方法 | 企业问答准确率 | 延迟(p95) | 每次查询成本 |
|----------|----------------|-------------|--------------|