公司里有一位元老级员工叫“老智”。他经验丰富,处理旧业务十分老练,但最近公司发布了全新产品、换了售后政策,老智却毫不知情。他的知识,停在五年前入职培训材料截止的那一天。作为大模型,老智的“知识过时”并不是不聪明,而是训练数据有日期。想让他低成本掌握新知识,有三条路:回炉深造、定向手术、配工作手册。回炉深造是继续预训练,定向手术是参数编辑,配工作手册则是检索增强生成。本文会讲清这三条路分别怎么走、各自的代价,以及更新之后如何验收。

岗位关联

对大模型工程师而言,掌握知识注入与更新,能用最低算力让模型跟上时代,是落地动态知识型产品的关键能力。

目录
  1. 可视化演示
  2. 知识注入背景
  3. 继续预训练
  4. 参数模型编辑
  5. 外部记忆增强
  6. 方法对比选型
  7. 更新与遗忘
  8. 评估与落地
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态演示大模型知识注入与更新方法的核心机制,通过概览/流程/对比/趋势四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

大模型知识注入与更新方法:知识注入 知识注入与更新的核心概念与驱动 继续预训练式知识注入方法 核心机制可视化 大模型知识注入与更新方法整体架构与关键组件

知识注入背景

公司里有一位元老级员工叫“老智”。他经验丰富,处理旧业务行云流水,但最近公司发布了一款全新产品,还换了售后政策。老智的“入职培训材料”是五年前的,他根本不知道这些新变化。他不是不聪明,而是他的知识停在了训练数据截止的那一天。

大模型和“老智”一样,训练完成后参数就冻结了。如果知识的截止日期之后发生了新事实,模型无法自动知道。知识注入,就是让大模型低成本地掌握这些新知识;知识更新,则是修正已经过时或错误的旧知识。目前主流的路线有三条:回炉继续预训练、手术式参数编辑、外挂式检索增强。

一个训练好的模型 $\theta_0$ 对“新知识样本 $x_{new}$”几乎无法建模,因为它从未出现在训练集中。知识注入的本质,是把参数状态从 $\theta_0$ 推到一个能表达新事实的 $\theta^*$:

送老智“补课”不是要重新培养一个新人,他的核心能力依然宝贵。我们要做的,只是高效地把新知识补进他的知识体系。接下来看三条路分别怎么做。

Pθ0(xnew)≈ε,θ0→注入θ∗\displaystyle P_{\theta_0}(x_{new}) \approx \varepsilon, \quad \theta_0 \xrightarrow{\text{注入}} \theta^*
  1. 初始参数$\theta_0$ 是训练完成后的模型权重,相当于老智现有的知识状态。
    θ0\theta_0
  2. 新知识样本$x_{new}$ 是模型没见过的内容,比如公司新政策文本,模型给出的概率只有极小值。
    xnewx_{new}
  3. 注入目标$\theta^*$ 是更新后的参数状态,让模型能够正常表达新知识。
    θ∗\theta^*

继续预训练

公司决定送老智参加一个内部集训营,课程材料是最新行业报告和产品文档,连续刷两周,他的知识底色会慢慢更新。这就是“回炉培训”的思路。

继续预训练(Continual Pre-training)指在大模型已经训练好的参数基础上,用新领域的高质量文本继续执行自监督语言建模训练。它适合想在垂直领域深度获得语感与知识的场景,比如把通用模型变成“法律专家”或“医疗助手”,代价是需要大量新语料和 GPU 算力。

它的目标函数和最初预训练一样,仍是下一词预测损失:

优点是知识融入自然、能明显提升领域能力;缺点是成本高,而且可能覆盖旧知识,造成灾难性遗忘。老智从集训营出来,确实张嘴就是新话术;但偶尔也会把旧流程细节说串了——这正是“学新忘旧”的代价。

LCT=−1N∑i=1Nlog⁡Pθ(xi∣x<i)\displaystyle \mathcal{L}_{\text{CT}} = -\frac{1}{N}\sum_{i=1}^{N} \log P_{\theta}(x_i \mid x_{<i})
  1. 上下文序列$x_{<i}$ 是当前位置之前的词序列,模型用它们作为预测条件。
    x<i=(x1,x2,…,xi−1)x_{<i} = (x_1, x_2, \dots, x_{i-1})
  2. 预测概率$P_{\theta}(x_i \mid x_{<i})$ 是模型对下一个词 $x_i$ 的预测概率。
    Pθ(xi∣x<i)P_{\theta}(x_i \mid x_{<i})
  3. 平均损失对所有词的负对数概率求平均,数值越小代表模型预测越准。
    −1N∑i=1Nlog⁡Pθ(xi∣x<i)-\frac{1}{N}\sum_{i=1}^{N} \log P_{\theta}(x_i \mid x_{<i})

参数模型编辑

如果公司预算有限、只想让老智精准记住一个事实,比如“新款手机电池容量是 5000 毫安”,就可以请专家做一次“微创记忆手术”。医生通过脑部影像找到存放旧容量记忆的神经元,只改写那一小片连接,其他技能完全不动。

参数编辑(Model Editing)正是这个思路:不重新训练,而是定位模型内部存储某一事实的参数,通过优化改动权重,让模型对相关问题输出新答案。代表性方法有 KN、ROME、MEMIT 等,适合精确修改事实、纠错、更新少量知识。

形式化地,设原有权重为 $W_{old}$,我们希望找到新权重 $W_{new}$,使模型在输入某个触发问题 $k_{query}$ 时输出目标知识 $v_{new}$,同时其他知识尽量不变:

手术精准但门槛高,多次编辑还可能互相干扰。不是每个知识更新需求都需要“开颅”;如果只是想随时查看最新资料,也许给老智配一个“工作手册”更省事。

Wnew=Wold+ΔW,fWnew(kquery)=vnew\displaystyle W_{\text{new}} = W_{\text{old}} + \Delta W, \quad f_{W_{\text{new}}}(k_{\text{query}}) = v_{\text{new}}
  1. 原有权重$W_{old}$ 是编辑前的模型权重,对应老智手术前的记忆连接强度。
    WoldW_{\text{old}}
  2. 触发与目标$k_{query}$ 是一个触发问题,$v_{new}$ 是希望模型给出的新答案。
    fW(kquery)=vnewf_{W}(k_{\text{query}}) = v_{\text{new}}
  3. 增量更新$\Delta W$ 是对权重做的小幅扰动,用于只改变这一处知识。
    ΔW=Wnew−Wold\Delta W = W_{\text{new}} - W_{\text{old}}

外部记忆增强

最温柔也最灵活的方式,是给老智一个随身“智能工作手册”。遇到新问题先翻手册,手册上写什么就照着答,手册每天都能换,大脑本身不用动。

这就是检索增强生成(RAG, Retrieval-Augmented Generation):用外部知识库作为“外挂记忆”,每次回答前先检索最相关的文档片段,再把片段和问题一起交给大模型生成答案。因为不修改模型参数,所以天然不会遗忘旧知识,知识更新成本极低。

检索的关键是相关性打分,最常用的是向量空间的余弦相似度:

手册方案最灵活,但老智自己脑子里不懂的东西,翻手册也只能照本宣科;如果想让他在没有手册时也能脱口而出,还是得靠前两种“内化”式方法。

score(q,d)=q⋅d∥q∥ ∥d∥\displaystyle \text{score}(q,d) = \frac{\mathbf{q} \cdot \mathbf{d}}{\|\mathbf{q}\| \, \|\mathbf{d}\|}
  1. 向量表示$\mathbf{q}$ 是问题编码后的向量,$\mathbf{d}$ 是候选文档片段的向量。
    q, d\mathbf{q},\ \mathbf{d}
  2. 余弦相似度点积除以两个向量的模长,得到方向上的夹角余弦,值越大越相关。
    q⋅d∥q∥ ∥d∥∈[−1,1]\frac{\mathbf{q} \cdot \mathbf{d}}{\|\mathbf{q}\| \, \|\mathbf{d}\|} \in [-1,1]
  3. 取前 k 个选择得分最高的 $k$ 个片段拼入上下文,作为老智“翻到的那几页”。
    {d1,d2,…,dk}\{d_1, d_2, \dots, d_k\}

方法对比选型

培训、手术、手册,每种都能让老智进步,但老板要根据需求来选:预算多少?新知识变不变?要不要溯源?

三条路线的本质区别在于“知识放在哪里”:继续预训练把知识融进权重,参数编辑把单点知识焊进权重,RAG 把知识放在外部文档。这决定了它们的成本、精度、动态性完全不同。

可以按三个维度选型:

  • 数据量需求大、需要深度内化 → 继续预训练;
  • 少量事实修正、追求精准 → 参数编辑;
  • 高频更新、实时问答、需要溯源 → 外部记忆增强。

最好把三种路线理解为互补。比如用继续预训练做领域底座,用 RAG 应对最新变化,用参数编辑修关键错误。现实中,很多团队也确实是把 RAG 与模型编辑或增量微调混用的。老板最终可能给老智同时配上“手册 + 关键点手术”的组合拳。

更新与遗忘

老智参加完集训后,新话术确实流利了,但一次客户问起旧版产品的操作,他犹豫半天说错了。新旧知识在他脑海里“打架”了。

在持续学习里,这被称为灾难性遗忘(Catastrophic Forgetting):模型学到新知识时,会覆盖或干扰旧知识的权重表示。知识冲突则是指新知识没有真正覆盖旧记忆,用户提问时模型依然输出过时答案。

遗忘程度可以量化。记 $A_{old}^{before}$ 为更新前旧知识测试集上的准确率,$A_{old}^{after}$ 为更新后同测试集准确率,遗忘率公式如下:

缓解策略包括:训练时混合部分旧数据(重放)、用参数编辑做局部更新、或者用 RAG 外挂记忆避免动权重。优秀的培训老师会让学员在学新知识时反复复习旧重点,大模型也一样。

Fforget=1−AoldafterAoldbefore\displaystyle F_{\text{forget}} = 1 - \frac{A_{\text{old}}^{\text{after}}}{A_{\text{old}}^{\text{before}}}
  1. 更新前表现$A_{old}^{before}$ 是老智“补课前”做旧考题的得分。
    AoldbeforeA_{\text{old}}^{\text{before}}
  2. 更新后表现$A_{old}^{after}$ 是补课后做同一套旧考题的得分。
    AoldafterA_{\text{old}}^{\text{after}}
  3. 遗忘率$F_{forget}$ 越接近 1 表示旧知识忘得越严重,越接近 0 表示保持良好。
    Fforget=1−AoldafterAoldbeforeF_{\text{forget}} = 1 - \frac{A_{\text{old}}^{\text{after}}}{A_{\text{old}}^{\text{before}}}

评估与落地

升级是否成功,最终要看“验收考试”:一面考新知识拿分,一面考旧技能不掉分。

在工程上,任何知识注入方案都要用一套指标做验收。常见指标是新知识准确率 $A_{new}$ 和旧知识保持率 $A_{old}$。综合分可以用加权公式计算:

落地流程通常是:选型 → 准备数据或知识库 → 执行注入 → 评估 → 迭代。工具方面,继续预训练用大模型训练框架,模型编辑可用 EasyEdit 等开源工具,RAG 可用向量数据库配合 LangChain 编排。无论选哪种,都要先想清楚“新知识从哪来、旧知识如何测”。老智的验收证书上,既要写“新知识达标”,也要写“旧知识未退化”,两条同时合格,知识注入才算真正成功。

S=λ⋅Anew+(1−λ)⋅Aold,λ∈[0,1]\displaystyle S = \lambda \cdot A_{\text{new}} + (1-\lambda) \cdot A_{\text{old}}, \quad \lambda \in [0,1]
  1. 新知识准确率$A_{new}$ 是注入后在“新知识测试集”上的准确率。
    AnewA_{\text{new}}
  2. 旧知识保持率$A_{old}$ 是在“旧知识测试集”上的保持率。
    AoldA_{\text{old}}
  3. 综合评分$\lambda$ 根据业务偏好调节,$\lambda$ 越大代表越看重更新效果。
    S=λ⋅Anew+(1−λ)⋅AoldS = \lambda \cdot A_{\text{new}} + (1-\lambda) \cdot A_{\text{old}}

AI 应用场景

智能客服实时掌握新政策

阶段:推理阶段外部记忆增强

解决的问题:传统客服大模型训练数据滞后,新退换货政策上线后仍会回答旧政策;全量重训成本高、周期长。用 RAG 外挂最新政策手册,政策更新时只需替换文档,不修改模型参数。

具体案例:某电商平台售后机器人,每天更新《退换货细则》,将最新 PDF 转成向量库。用户询问“退货谁付运费”时,检索命中新条款并生成答案,正确率从 68% 提升到 93%。

法律大模型持续预训练加参数纠错

阶段:模型训练阶段注入与局部参数编辑

解决的问题:通用大模型不懂新出台的法规,全文重训太贵。用法律领域语料继续预训练提升领域能力,再用参数编辑修正其中几个关键法条答案。

具体案例:某法律咨询创业公司收集近三年判决书与法规继续预训练三天,再对模型常答错的“新个税起征点”等事实用 ROME 方法定点编辑,旧知识准确率保持在 99%。

企业知识库问答系统

阶段:知识增强与落地运维

解决的问题:企业内部制度每月更新,员工问“年假如何计算”,传统微调无法跟上。用混合方案:RAG 接入制度库,模型编辑修复计算规则里的矛盾,让回答可溯源。

具体案例:某 5000 人公司内部 AI 助手,用向量库索引《员工手册》,每周五自动刷新制度文本,同时用模型编辑修复几个固定计算口径,员工提问响应时间小于 2 秒。

Python 演示

python46 行
class ExternalMemory:    def __init__(self, docs):        self.docs = docs     def score(self, query, doc_text):        return sum(1 for ch in query if ch in doc_text)     def retrieve(self, query, top_k=1):        ranked = sorted(            self.docs,            key=lambda item: self.score(query, item[1]),            reverse=True        )        return ranked[:top_k]  def evaluate(new_acc, old_acc, lam=0.7):    return lam * new_acc + (1 - lam) * old_acc  def main():    docs = [        ("新退货政策", "2025年起退货免运费,客户无需承担运费。"),        ("旧退货政策", "退货需要客户承担运费,运费从退款中扣除。"),        ("手机规格", "新款手机电池容量为5000毫安时,支持快充。"),    ]    memory = ExternalMemory(docs)    query = "退货谁承担运费"    print("查询:", query)    print("检索结果:")    for title, text in memory.retrieve(query, 2):        print("-", title, "->", text)     print("\n三种方案综合评分比较:")    methods = [        ("继续预训练", 0.90, 0.60),        ("参数编辑", 0.92, 0.95),        ("外部记忆", 0.95, 1.00),    ]    for name, new_acc, old_acc in methods:        score = evaluate(new_acc, old_acc)        print(f"{name}: 新知识准确率={new_acc}, 旧知识保持率={old_acc}, 综合分={score:.2f}")  if __name__ == "__main__":    main()
目的:用字符重叠相似度模拟 RAG 检索,并用加权公式对比三种知识注入方案。
  1. self.docs = docs保存知识库文档,对应老智随身携带的工作手册。
  2. return sum(1 for ch in query if ch in doc_text)用字符重叠数量近似语义相关性,得分越高越相关。
  3. ranked = sorted(...)按相关性得分排序,并截取前 top_k 个候选片段。
  4. evaluate(new_acc, old_acc)实现正文中的综合分公式 S = λ·A_new + (1-λ)·A_old。
  5. methods = [("继续预训练", 0.90, 0.60), ...]三种方案的典型指标,加权后外部记忆综合分最高,体现低遗忘优势。
  6. memory.retrieve(query, 2)检索 top2 片段,模拟把手册内容拼入回答上下文。

常见误区

误区给大模型注入新知识,就是拿新语料继续训练,把损失函数跑一遍就行了,其他方法都是花架子。

正解继续预训练只是三种主流路线之一。它把知识融进权重,适合大批量深度内化,但算力成本高、有遗忘风险。参数编辑适合精准改单个事实,RAG 适合高频更新且不改参数。实际场景应按需选择甚至组合。

为何常见:因为“继续训练”最符合直觉,很多人第一次接触知识更新时都是从微调、继续预训练入手,容易把它当成唯一解。

误区既然编辑只是改一小块权重,那我可以不断编辑,让模型学会越来越多的知识,成本还特别低。

正解参数编辑的本质是在已有权重上做局部扰动,多次编辑可能互相干扰,产生副作用。比如改完 A 知识后,B 知识可能被连带破坏。它适合少量、低频的事实修正,不适合大规模知识库建设。

为何常见:因为“精准手术”的比喻让人误以为手术没有风险,实际上模型内部知识分布高度耦合。

误区外部记忆不改参数,又不会遗忘,回答还可溯源,是不是所有知识更新都应该用 RAG?

正解RAG 的答案是“检索 + 生成”的拼接结果,受检索质量和上下文长度限制。如果文档库里没有正确答案,或检索排序把错误片段排到前面,模型依然会答错。它也不能增强模型内在的推理能力,模型本身的固有错误并不会消失。

为何常见:因为 RAG 成本低、更新快,容易让人忽略它依赖外部资料质量的短板。

误区模型更新完新知识,只要测试时回答正确,旧知识应该也还保留着,不用专门去测。

正解继续预训练和微调都可能引发灾难性遗忘。旧知识准确率是否下降,必须用同一套旧知识测试集在更新前后分别评测,并通过遗忘率公式量化。参数编辑和 RAG 也有各自的知识冲突场景,不能默认“无损”。

为何常见:人的学习经验是“知识越多越厉害”,但神经网络的权重容量有限,新旧知识会争夺同一个参数空间。

误区只有把知识写进参数,模型才算真正掌握,RAG 只是取巧,不能算知识注入。

正解对应用来说,用户只关心回答是否正确、能否溯源。RAG 把知识放在外部,反而让更新和追溯更简单。参数内化和外部记忆是两条不同的知识承载路径,各有适用场景,不存在谁高谁低。

为何常见:因为大家习惯把“大模型”和“参数里的知识”绑定,忽略了工程上知识可以在外挂系统中动态更新。

面试题

Q1. 大模型知识过时的根本原因是?

单选题 · easy

  • A.模型参数量不够大
  • B.训练数据有截止日期← 正确答案
  • C.推理速度不够快
  • D.缺少外部知识库

答案:B。大模型训练完成后参数冻结,无法自动感知截止日期后的新事实。参数量、推理速度、外部知识库都不是知识过时的根本原因,而是工程条件或辅助方案。

Q2. 哪种方式完全不修改模型参数?

单选题 · easy

  • A.继续预训练
  • B.参数模型编辑
  • C.检索增强生成← 正确答案
  • D.领域继续微调

答案:C。检索增强生成把知识放在外部文档库中,推理时检索并拼入上下文,不改任何权重。继续预训练、领域微调和参数编辑都会改变模型参数。

Q3. 继续预训练最需要关注的风险?

单选题 · easy

  • A.模型会出现灾难性遗忘← 正确答案
  • B.模型无法正常推理
  • C.无法检索到新知识
  • D.模型参数无法编辑

答案:A。继续预训练在更新新知识的同时可能覆盖旧知识,造成灾难性遗忘。无法检索新知识属于 RAG 的问题,参数无法编辑与继续预训练无直接关系。

Q4. 参数模型编辑的典型场景?

单选题 · mid

  • A.修正个别事实错误← 正确答案
  • B.注入海量领域语料
  • C.实时问答知识更新
  • D.降低模型推理成本

答案:A。参数编辑适合少量、精准的事实修正,比如纠正“某产品容量”这类单一知识。海量语料更适合继续预训练,实时更新更适合 RAG,降低推理成本不是编辑的目标。

Q5. 检索增强中衡量问题与文档相关性的常用指标?

单选题 · mid

  • A.交叉熵损失函数
  • B.余弦相似度得分← 正确答案
  • C.模型参数更新量
  • D.训练数据规模大小

答案:B。RAG 检索阶段一般把问题和文档编码成向量,用余弦相似度衡量语义相关性。交叉熵是训练损失,参数更新量和数据规模与相关性打分无关。

Q6. 缓解灾难性遗忘的常见策略有?

多选题 · mid

  • A.训练时混合旧数据← 正确答案
  • B.采用局部参数编辑← 正确答案
  • C.完全冻结所有参数
  • D.使用外部记忆检索← 正确答案

答案:ABD。混合旧数据(重放)能让模型复习旧知识;局部参数编辑把改动限制在小范围;外部记忆不修改参数,天然不会遗忘。完全冻结参数则无法注入新知识,不能作为更新策略。

Q7. 遗忘率 F = 1 - A_after / A_before 中 A 衡量的是?

单选题 · mid

  • A.新知识准确率
  • B.旧知识准确率← 正确答案
  • C.模型推理时延
  • D.外部知识库大小

答案:B。这个公式比较的是更新前后,模型在旧知识测试集上的准确率变化,用来衡量旧知识被遗忘的程度。若用新知识准确率,则无法反映遗忘情况。

Q8. 继续预训练通常采用哪种损失?

单选题 · hard

  • A.下一词交叉熵损失← 正确答案
  • B.均方误差回归损失
  • C.对比学习表示损失
  • D.策略梯度强化损失

答案:A。语言模型预训练的标准目标是下一词预测,对应交叉熵损失,继续预训练沿用同一目标。均方误差通常用于回归,对比学习用于表征,策略梯度用于强化学习。

Q9. 参数编辑的局限性包括哪些?

多选题 · hard

  • A.多次编辑易互相干扰← 正确答案
  • B.可无限扩展知识库
  • C.难覆盖复杂推理知识← 正确答案
  • D.无法用于任何大模型

答案:AC。多次编辑可能让不同知识在参数空间互相干扰;复杂链式推理需要多步知识组合,单点编辑难以覆盖。参数编辑不能无限扩展知识,且可以用于主流大模型,因此 B、D 错误。

Q10. 关于知识注入与更新方案,下列说法正确的有?

多选题 · extreme

  • A.RAG 适合高频更新的常识性知识← 正确答案
  • B.参数编辑适合修正具体事实← 正确答案
  • C.继续预训练适合低成本实时更新
  • D.所有方案都必须修改模型权重

答案:AB。RAG 通过替换外部文档实现高频更新;参数编辑适合精准修正具体事实;继续预训练成本高,不适合实时更新;RAG 不修改模型权重,因此 C、D 错误。