一、概念定义:大语言模型在这类架构中是什么
在“向量检索+大语言模型”(业界通常称为检索增强的大模型应用)这一范式中,大语言模型扮演的是参数保持冻结的语言理解、知识融合与答案生成中枢。具体而言:
- 向量检索提供“非参数化知识”:将外部文档切块、向量化并建立索引,推理时按语义相似度召回最相关的知识片段,知识可随时增删改,无需触碰模型本身;
- 大语言模型提供“参数化能力”:语言理解、多片段推理、上下文学习与自然语言生成。这些能力在训练完成后即固化于模型参数中,使用时无需重新训练。
换言之,大语言模型不再是“全知的知识容器”,而是“会读资料、会思考、会表达的推理引擎”。它的知识边界由检索库决定,能力上限由模型本身决定。
可以从三个视角进一步理解:
- 技术视角:大语言模型本质是一个条件概率模型,在冻结状态下,通过把检索上下文注入输入(或在其输出分布上做融合)来改变生成行为;
- 架构视角:向量索引承担“外置记忆与查找层”职能,大语言模型承担“计算与生成层”职能,两者充分解耦;
- 使用视角:大语言模型是开箱即用的自然语言交互接口,业务知识沉淀在外部检索库中,随业务演进持续更新。
二、背景与价值:这种模式为什么出现
大语言模型在落地时暴露出几类典型问题:
- 知识时效性差:训练数据存在截止时间,模型无法覆盖此后发生的变化;
- 私有知识缺失:企业内部文档、行业专有知识大多不在公开训练语料中;
- 幻觉问题:对不熟悉的问题,模型可能“一本正经地编造”;
- 更新成本高:通过重新训练或微调注入新知识,周期长、成本高,且容易带来灾难性遗忘。
“向量检索+大语言模型”针对上述问题给出了一条工程上可行的路径:把知识更新从“模型训练”降级为“检索库更新”。其核心价值包括:
- 知识与推理解耦:模型冻结不动,知识随检索库动态演进;
- 答案可溯源:可以追踪答案参考了哪些文档片段,便于审核与问责;
- 幻觉抑制:生成过程被检索证据约束,显著降低凭空编造的概率;
- 成本可控:无需为每次知识变更支付训练成本。
三、核心组成与关键流程
一套典型的“向量检索+大语言模型”应用由四个模块构成:
- 知识入库模块:文档解析、切块、调用Embedding模型向量化、写入向量索引;
- 检索模块:对用户问题做同样的向量化,通过近邻检索(kNN或近似最近邻)召回Top-K相关片段,可选重排序提升精度;
- 结合模块:决定检索结果以何种方式进入大语言模型,这是本范式的关键设计点;
- 大语言模型:参数冻结,负责理解、融合与生成。
一次完整调用可概括为如下通用示意代码:
query = 用户输入q_vec = embed(query) # 问题向量化docs = vector_index.search(q_vec, K) # 近邻检索 Top-Kctx = format(docs) # 整理为上下文文本prompt = build_prompt(query, ctx) # 组装提示词answer = LLM.generate(prompt) # 模型冻结,仅做推理
结合模块位置的不同,衍生出下文的三种典型方式。
四、工作原理:三种典型的索引结合方式
1. Prompting方式:在提示词中注入检索知识,冻结模型
这是当前最主流、工程上最简单的方式。检索到的知识片段被格式化后拼入提示词,大语言模型在推理时通过注意力机制“阅读”这些片段,再结合自身参数中的知识生成答案。
关键特征:
- 模型完全冻结,不修改任何参数;
- 知识注入发生在推理时,更新知识等价于更新检索库;
- 检索片段的相关性与提示词的组织方式,直接决定答案质量。
2. 在Prompt输出端结合索引:近邻分布插值(2022年提出的代表性思路)
这种方式不满足于只把检索结果“喂给”输入,而是在模型输出的概率分布层面与检索证据融合:
- 对每个生成位置,先由冻结的语言模型给出下一个词的预测分布;
- 同时在索引中检索与当前上下文最近的若干“近邻”,由近邻携带的标签信息构成另一个分布;
- 最终分布取两者的加权插值,即:P_final ∝ λ · P_LLM + (1−λ) · P_kNN。
此时大语言模型的角色是“提供语言先验的预测器”,检索证据在词元(token)级别直接参与决策。其价值在于:即使模型对某个事实完全没有把握,只要检索近邻足够准,输出也能被“拉”向正确答案,适合知识密集型任务的细粒度纠偏。
3. 在Prompt输入端结合索引:检索增强并训练检索器(2023年提出的代表性思路)
这种方式把检索到的多个文档分别拼接到输入序列中,让大语言模型基于每个文档分别计算输出似然并做集成。其更进一步的设计在于:用冻结的大语言模型反过来训练检索器:
- 检索器召回多个候选文档;
- 冻结的语言模型分别评估“在该文档条件下,生成正确答案的概率”;
- 能提升正确答案概率的文档获得更高权重,以此作为监督信号(对比学习)更新检索器;
- 检索器由此学会“什么文档对这个模型真正有用”,而非只追求表面语义相似。
此时大语言模型承担了双重角色:既是最终的生成器,也是为检索模块提供反馈的“教师”。
三种方式的对比要点:
| 维度 |
Prompt注入 |
输入端结合 |
输出端结合 |
| 融合层面 |
语义/上下文层 |
语义/上下文层(+检索器训练) |
词元概率层 |
| 是否训练组件 |
否 |
可训练检索器 |
一般不训练 |
| 工程复杂度 |
低 |
中 |
高 |
| 典型收益 |
快速落地、可溯源 |
检索更贴合模型需求 |
细粒度纠偏 |
五、大语言模型具体发挥的作用
综合以上分析,回到原始问题,大语言模型在这类应用中具体发挥五方面作用:
- 语义理解与意图解析:理解用户问题、拆解意图,必要时配合查询改写提升检索命中率;
- 知识融合器:把多个可能彼此冲突、可能不完整的检索片段,与模型参数中的背景知识进行对齐、比较与整合,得出一致的结论;
- 推理与生成引擎:完成多跳推理与归纳总结,把“一堆资料”变成“一段可读的答案”,并可附带引用来源;
- 反馈信号来源:在“输入端结合+检索器训练”的方案中,冻结模型的输出似然就是优化检索器的奖励信号;
- 幻觉控制的第一道闸门:模型可依据检索上下文判断“证据是否足以回答”,选择作答、追问或拒答,而非强行编造。
需要强调:这些作用都建立在“模型冻结”的前提上。所有针对新知识、新领域的适配,都通过检索库与提示词完成,而不是通过修改模型参数完成。
六、典型应用场景
- 企业知识库问答与智能客服:内部制度、产品手册频繁更新,检索库即时生效;
- 长文档理解与摘要:先检索相关章节,再由模型综合成文;
- 研发与代码辅助:结合内部代码规范、接口文档进行问答与生成;
- 知识密集型问答:事实性强、时效性强的领域问答;
- 云上构建:可组合云平台提供的向量数据库、模型推理服务、监控告警等通用产品类目能力(例如在百度智能云上可按通用产品类目进行选型),快速搭建完整链路。
七、与相关概念的区别
- 与微调的区别:微调修改模型参数,适合改变“风格、格式、行为习惯”;检索增强更新外部知识,适合“注入新事实”。两者可叠加使用,但知识更新应优先走检索路径,成本与可控性更好。
- 与纯向量检索问答的区别:纯检索只返回已有文本片段,无法综合多个来源、无法生成连贯答案;大语言模型补上了“理解—融合—生成”的最后一环。
- 参数化知识与非参数化知识的区别:前者存储于模型权重,更新昂贵、不可解释;后者存储于检索库,更新廉价、可溯源。本范式的本质是用后者补前者的短板。
八、使用注意事项
- 检索质量决定整体上限:切块粒度、Embedding模型选型、是否引入重排序都显著影响效果,建议建立“检索召回率+答案准确率”两层评测体系;
- 上下文长度约束:Top-K片段并非越多越好,需在覆盖率与上下文预算之间权衡,必要时对片段做压缩或摘要;
- 幻觉并未根除:模型可能忽略上下文或被无关检索误导,应要求模型标注引用来源,并在提示词中明确“证据不足时拒答”;
- 性能与成本:检索与生成均引入时延,可考虑高频问答缓存、异步预取等通用优化手段;
- 数据安全与权限:知识库的访问控制必须与业务权限体系对齐,避免越权召回导致信息泄露。
九、总结
在“向量检索+大语言模型”的应用范式中,大语言模型是参数冻结的知识融合与推理生成中枢:向量检索负责提供可随时更新的非参数化知识,大语言模型负责理解、融合、推理与表达。两者既可以在输入端结合(提示词注入、检索器训练),也可以在输出端结合(概率插值),其中提示词注入方式工程上最为普及。选型时应记住其边界,它能提升知识的时效性与可溯源性、抑制幻觉,但检索质量、上下文管理与权限控制,仍是决定最终落地效果的关键工程变量。