假设你家附近有一座藏书百万的市图书馆,馆长读过馆里每一本书,你问他什么他都能答上来。可突然有一天,一本刚出版的新书送到门口——问题来了:怎么让这座图书馆“知道”新书的内容,却不用把整座图书馆推倒重建?这就是知识注入要解决的事。 大模型的知识封存在它的参数里,训练完成后就相当于“闭馆谢客”了。要让模型知道新知识,有三条路:直接修改书架上的某本书(知识编辑)、在门口设问询台去查外部档案(外部记忆检索)、或者给馆长配一辆移动档案推车,每次作答先翻档案(RAG 增强注入)。新书和旧书说法打架怎么办?改了书会不会碰倒隔壁书架?每句话能不能查到出处?这些正是冲突处理、稳定性评估和知识溯源要回答的。

岗位关联

掌握知识注入,你就能在不重训大模型的前提下持续更新它的认知——这是 AI 应用工程师做知识类产品时最值钱的核心技能之一。

目录
  1. 可视化演示
  2. 知识注入概述
  3. 知识编辑
  4. 外部记忆检索
  5. RAG增强注入
  6. 知识冲突处理
  7. 注入稳定性评估
  8. 知识溯源
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态演示知识注入的核心机制,通过架构/数据/状态/性能四种模式展示关键概念与交互流程。

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

知识注入:知识注入 知识注入概念与方法分类 知识编辑注入方法 核心机制可视化 知识注入整体架构与关键组件

知识注入概述

图书馆每年都会收到成千上万本新书。如果每来一本新书就把图书馆拆了重盖,成本高得吓人。大模型也一样,一次预训练动辄耗费千万级算力,可知识却在日新月异地更新——昨天的时事今天过时,新的法规、新的产品手册、新的科研结论,模型一概不知道。这就是大模型的“知识困境”:它的知识有一个“截止日期”,截止日期之后的事情,它只能靠猜。

知识注入,就是在不重建“图书馆”的前提下,把新书的信息变成模型能用的知识。技术上有三条路线:知识编辑直接修改模型参数(相当于修订书页);外部记忆检索把知识放在模型外面,需要时再去查(相当于问询台);RAG 增强注入则把外部知识作为上下文临时“带进”回答过程(相当于移动档案推车)。三条路线可以单独用,也可以组合成一套完整的知识更新体系。

无论哪条路线,注入的本质都是让模型参数从旧分布 $\theta$ 更新到新分布 $\theta'$,目标只有两个:新知识要答得对,旧知识不能忘。

所以请记住这个画面:图书馆的每本书都不能白倒——注入的过程就是“上新书、查档案、稳书架”三件事的配合,缺一不可。

Pθ′(ye∣xe)↑,Pθ′(yo∣xo)≈Pθ(yo∣xo)P_{\theta'}(y_e \mid x_e) \uparrow, \quad P_{\theta'}(y_o \mid x_o) \approx P_{\theta}(y_o \mid x_o)
这个公式是说:注入后,新知识的回答概率要升上去($\uparrow$),旧知识的回答概率要基本不变($\approx$)。
  1. 参数分布 $P_{\theta}$模型内部的知识可以用概率分布刻画,$\theta$ 代表模型的所有参数,分布输出的就是“给定问题 $x$ 答出 $y$ 的可能性”。
    Pθ(y∣x)P_{\theta}(y \mid x)
  2. 注入后参数 $\theta'$经过知识注入,模型参数从 $\theta$ 变为 $\theta'$,这是知识注入唯一的“物理操作”对象。
    θ→θ′\theta \to \theta'
  3. 新知识样本 $(x_e, y_e)$$x_e$ 是新知识的问题(如“现任 CEO 是谁”),$y_e$ 是正确答案(如“李四”),注入要提升这对问答的输出概率。
    (xe,ye)(x_e, y_e)
  4. 旧知识样本 $(x_o, y_o)$用来检查旧知识是否保留的问答对,要求注入前后模型的回答几乎不变,这是“不忘旧”的数学表达。
    (xo,yo)(x_o, y_o)

知识编辑

想象图书馆里有一本《公司介绍》,上面写着“CEO 是张三”。现在 CEO 换成了李四,最干脆的做法是什么?直接把这本书改掉。知识编辑就是这个思路:找到模型里存储这条知识的那部分参数,把“张三”改成“李四”。比起把整座图书馆重盖一遍(全量重训),改一本书显然又快又省。

但模型不像书那样一页一页翻得明白。知识在神经网络里是“分布式”的——一条知识散落在成千上万个参数中,就像一行字被拆散写进了几十本书的角落。于是有了两种做法:微调式编辑,让模型拿新语料继续训练一小段,像请馆长反复精读一本新书;定位式编辑,先用梯度或因果分析找到“掌管”这条知识的参数区域再精准修改,像拿着索书号找到书架第三层的那本书,只动它。

不管哪种做法,都要同时管好两件事:新知识要学进去,旧知识不能忘。于是知识编辑的损失函数长这样:

修正完这一页,还要回头检查相邻书页有没有被波及——这正是评测基准(如 MQuAKE、zsRE 等数据集)在做的事:用“新知识答对率 + 相邻知识保留率”双重打分,确认你真的只动了一本书。

L=Ledit(xe,ye)+λLretain(xr,yr)\mathcal{L} = \mathcal{L}_{edit}(x_e, y_e) + \lambda \mathcal{L}_{retain}(x_r, y_r)
编辑损失让模型“学会新书”,保留损失让模型“别忘旧书”,$\lambda$ 是两者之间的天平砝码。
  1. 编辑损失 $\mathcal{L}_{edit}$衡量模型在新知识问答对上的“学错程度”,值越小说明注入越成功。
    Ledit(xe,ye)\mathcal{L}_{edit}(x_e, y_e)
  2. 保留损失 $\mathcal{L}_{retain}$衡量模型在旧知识问答对上的“遗忘程度”,用来约束参数不要改过头,像修书时用手扶住旁边的书架。
    Lretain(xr,yr)\mathcal{L}_{retain}(x_r, y_r)
  3. 平衡系数 $\lambda$控制“学新”和“保旧”的天平,$\lambda$ 太大则新知识学不进去,太小则旧知识被冲掉。
    λ\lambda

外部记忆检索

有些知识没必要写进书里——比如今天的天气、刚上线的优惠活动,写进去很快就过时。图书馆的做法很聪明:在门口设一个问询台,值班员守着档案柜,馆长答不上来的问题就转给问询台。这就是外部记忆检索:模型是馆长,档案柜是外部知识库,两者互补。

这套“双系统协作”里,模型自己是“系统 1”,负责快速直觉回答;外部检索是“系统 2”,负责查证核实。当模型对某个问题的把握不足时,就触发系统 2。要让档案柜高效运转,就得给每份文档建一个“指纹”——向量,把文字翻译成一串数字。判断两份知识像不像,经典算法是余弦相似度,只看方向不看长短:

回到图书馆画面:问询台的好处是,新知识只需更新档案柜,不用动任何一本旧书。但它的天花板也很明显——馆长自己并不“消化”档案,回答只是转述。要真正把知识“拼”进答案里,还得看下一条路线:RAG。

sim(q,d)=q⋅d∥q∥ ∥d∥=∑iqidi∑iqi2∑idi2\text{sim}(\mathbf{q}, \mathbf{d}) = \frac{\mathbf{q} \cdot \mathbf{d}}{\|\mathbf{q}\| \, \|\mathbf{d}\|} = \frac{\sum_{i} q_i d_i}{\sqrt{\sum_{i} q_i^2} \sqrt{\sum_{i} d_i^2}}
查询向量和文档向量的夹角越小,相似度越接近 1,代表“这道题跟这份档案最对口”。
  1. 查询向量 $\mathbf{q}$把用户问题编码成一组数字,也就是问题的“指纹”。
    q=(q1,q2,…,qn)\mathbf{q} = (q_1, q_2, \ldots, q_n)
  2. 文档向量 $\mathbf{d}$把知识库中的文档切块后编码成的“指纹”,和查询向量处在同一个语义空间里才能比大小。
    d=(d1,d2,…,dn)\mathbf{d} = (d_1, d_2, \ldots, d_n)
  3. 点积 $\mathbf{q} \cdot \mathbf{d}$逐位相乘再求和,衡量两个向量在同一个方向上的重合程度,可以理解为“想法有多合拍”。
    ∑iqidi\sum_{i} q_i d_i
  4. 范数 $\|\mathbf{q}\|$ 与 $\|\mathbf{d}\|$向量的长度,用来做归一化,让相似度只关心“方向是否一致”,不关心文档长短。
    ∑iqi2,∑idi2\sqrt{\sum_{i} q_i^2}, \quad \sqrt{\sum_{i} d_i^2}

RAG增强注入

如果说外部记忆检索是“问询台转述”,那 RAG(检索增强生成)就是“移动档案推车”:馆长每次接到问题,不是凭记忆硬答,而是先推着车到档案柜前,挑出最相关的几页资料摊在桌上,边看边答。知识不用背下来,随用随取。

RAG 的完整流程是四步:索引构建(把文档切块、给每块建向量指纹)、检索召回(用查询向量在库里找最相似的 top-k 片段)、上下文增强(把这些片段拼进提示词)、生成融合(模型综合原文和片段生成答案)。四个环节环环相扣,其中检索质量直接决定回答质量——推车挑错了页,答得再流利也是错的。

从概率视角看,RAG 的生成过程可以这样理解:先算每个候选文档 $d$ 和问题 $q$ 的匹配程度,再在“问题 + 资料”的共同条件下生成答案:

回到推车画面:RAG 最划算的地方是“零训练”——档案柜上新书,推车立刻就能用;但它的软肋也很明显:模型内心其实没有“记住”这些知识,一旦不检索,它照样不知道。所以生产系统常把 RAG 当“短期记忆”,把知识编辑当“长期记忆”,两者配合使用。

P(a∣q)=∑d∈top-kP(a∣q,d) P(d∣q)P(a \mid q) = \sum_{d \in \text{top-}k} P(a \mid q, d)\, P(d \mid q)
答案 $a$ 的总概率,等于把所有被检索到的文档 $d$ 分别作为依据时生成答案的概率加权求和。
  1. 问题 $q$ 与答案 $a$$q$ 是用户提问,$a$ 是模型最终生成的一段回答。
    q→aq \to a
  2. 检索集合 $\text{top-}k$RAG 只取相似度最高的 $k$ 个片段参与生成,而不是扫描整个知识库,$k$ 通常取 2 到 10。
    d∈top-kd \in \text{top-}k
  3. 检索概率 $P(d \mid q)$文档 $d$ 与问题 $q$ 的相似度得分,衡量“这份资料值不值得摆上桌”。
    P(d∣q)∝sim(q,d)P(d \mid q) \propto \text{sim}(q, d)
  4. 条件生成概率 $P(a \mid q, d)$在“问题和资料都摆在桌上”的条件下,模型生成答案 $a$ 的概率,这一步真正完成新旧知识的融合。
    P(a∣q,d)P(a \mid q, d)

知识冲突处理

新书到了,馆长发现它对不上旧书:旧书说“总部在上海”,新书说“总部迁到北京了”。听谁的?这就是知识冲突。冲突处理的目标不是让某一边无脑获胜,而是建立一套“裁决规则”,让每一个回答都有据可依、可解释。

最常见的裁决依据有两个维度:时效性和来源权威度。新发布的官方公告(时效新 + 来源权威)当然压过三年前的旧手册。把这两个维度揉进一个打分公式,新知识只有综合得分更高才被采纳:

更严格的系统还会维护一张冲突表:检测到两个来源矛盾时,不急着二选一,而是给双方打上“待裁决”标签,交给规则引擎或人工审核(一致性维护)。回到图书馆:好的裁决不是烧掉旧书,而是给旧书贴一张“已过时”的标签,同时让引用它的人能看到新注记——这样即使将来的新版本又被推翻,整条修改链依然清晰可查。

score(d)=α⋅rel(d)+β⋅rec(d),α+β=1\text{score}(d) = \alpha \cdot \text{rel}(d) + \beta \cdot \text{rec}(d), \quad \alpha + \beta = 1
每个候选知识按“相关度”和“新鲜度”加权打分,$\alpha$ 和 $\beta$ 决定了哪个维度更有话语权。
  1. 相关度 $\text{rel}(d)$文档与问题主题的匹配程度,回答得先“贴题”才有资格参与竞争。
    rel(d)\text{rel}(d)
  2. 新鲜度 $\text{rec}(d)$文档发布时间的时效得分,越新分值越高,用来压制过时的旧说法。
    rec(d)\text{rec}(d)
  3. 权重 $\alpha$ 与 $\beta$两者相加等于 1,业务上可以调节:新闻类场景加大 $\beta$ 看重时效,法律类场景加大 $\alpha$ 看重相关性。
    α+β=1\alpha + \beta = 1

注入稳定性评估

修改一本书最怕什么?碰倒旁边一整排书架。知识注入之后,模型可能悄悄“忘掉”一些旧知识,这就是灾难性遗忘。稳定性评估就是给整个书架做体检:一边检查新知识有没有答对(可靠性),一边检查旧知识有没有被冲走(通用性)。

两个核心指标缺一不可:编辑成功率,即新知识样本答对的比例;遗忘率,即旧知识样本答错的比例。遗忘率的定义长这样:

评估的意义在于把注入从“玄学”变成“工程”:每一次修改都必须出体检报告,就像图书馆每次修书都要记录“动了哪本、旁边书架有没有倾斜”。有了这份报告,你才敢在生产环境放心地持续注入新知识。

FR=1−1N∑i=1N1[fθ′(xi)=yi]FR = 1 - \frac{1}{N} \sum_{i=1}^{N} \mathbb{1}\big[ f_{\theta'}(x_i) = y_i \big]
先算出“注入后模型在 $N$ 条旧知识上还答对的比例”,再用 1 减去它,就得到遗忘率 $FR$。
  1. 旧知识测试集 $\{(x_i, y_i)\}_{i=1}^{N}$$N$ 条注入前模型确定能答对的旧问答对,$i$ 从 1 数到 $N$,相当于体检清单。
    {(xi,yi)}i=1N\{(x_i, y_i)\}_{i=1}^{N}
  2. 模型输出 $f_{\theta'}(x_i)$注入后的模型对问题 $x_i$ 给出的答案,和标准答案 $y_i$ 比对。
    fθ′(xi)f_{\theta'}(x_i)
  3. 指示函数 $\mathbb{1}[\cdot]$括号里的条件“新模型答对了旧知识”成立就记 1,否则记 0,把一次比较变成一个可求和的数字。
    1[fθ′(xi)=yi]\mathbb{1}\big[ f_{\theta'}(x_i) = y_i \big]
  4. 取平均再取补先对 $N$ 条样本求“答对比例”,再用 1 减去它,得到遗忘率 $FR$;理想状态是 $FR \approx 0$。
    1−1N∑i=1N⋯1 - \frac{1}{N} \sum_{i=1}^{N} \cdots

知识溯源

图书馆的每本书都有索书号,每条信息都能查到出自哪本书的哪一页。知识溯源就是要给模型的每次回答也配上这样的“脚注”:来源标注、可信度分级、自动验证、回滚机制,四件套缺一不可。

来源标注记录“这句话出自哪份文档、什么时间发布”;可信度分级按来源类型打分,官方公告高于百科、百科高于论坛;自动验证定期检查来源链接是否失效、内容是否被新版本覆盖;回滚机制则支持把一次错误的注入整体撤销——像把修坏的书换回旧版。一个简单的可信度评分模型是各维度得分加权平均:

溯源的价值在于形成“可信闭环”:因为能说清依据,所以敢负责。这也是企业级 AI 与玩具级 AI 的分水岭——在银行、医疗、法律这些场景里,“你凭什么这么说”和“答案是什么”同样重要。

C(d)=1n∑j=1nwjsjC(d) = \frac{1}{n} \sum_{j=1}^{n} w_j s_j
文档可信度 = 权威性、时效性、准确性等 $n$ 个维度得分的加权平均。
  1. 维度得分 $s_j$文档在第 $j$ 个维度上的单项得分,比如“来源权威性”打 0.9,“时效性”打 0.7。
    sj,j=1,2,…,ns_j, \quad j = 1, 2, \ldots, n
  2. 维度权重 $w_j$不同维度的分量,权威性的权重通常最高——同样是“总部迁址”,官方公告比路人帖子可信得多。
    wjw_j
  3. 加权平均 $C(d)$所有维度得分加权求和再除以维度数 $n$,得到 0 到 1 之间的可信度,分数低于阈值的知识不予采纳。
    1n∑j=1nwjsj\frac{1}{n} \sum_{j=1}^{n} w_j s_j

AI 应用场景

企业智能客服:RAG 增强注入

阶段:检索增强生成

解决的问题:客服模型训练截止日期早,新产品政策一问三不知;每次更新都全量重训成本太高、周期太长。RAG 把产品手册、售后政策实时挂到知识库上,随查随答。

具体案例:某电商公司上线新退货政策后,客服机器人先检索内部政策库、再生成回答,并附上政策原文链接,准确率从 62% 提升到 91%,上线只需一次文档更新,零训练成本。

金融监管规则更新:知识编辑

阶段:模型知识更新

解决的问题:贷款条例、利率政策频繁调整,用微调方式更新模型可能遗忘旧法规;知识编辑能精准修改相关参数,让模型“记住”新规、保留旧知识。

具体案例:银行风控助理想应对新贷款监管条例:用定位式编辑更新涉及条例的参数模块,新条例问答正确率 95%,旧条例问答正确率保持 98%,全程无须重训。

医疗问答溯源:知识溯源体系

阶段:知识验证与溯源

解决的问题:医疗建议出错后果严重,模型必须能回答“这句话的出处是什么、依据有多可靠、错了怎么收回”。

具体案例:某医疗问答系统为每条建议标注“指南出处 + 发布年份 + 可信度评分”,当权威指南更新时自动标记旧答案过时并触发回滚,保证患者看到的一定是最新可溯源的版本。

Python 演示

python82 行
# -*- coding: utf-8 -*-"""知识注入演示: 字典模拟大模型记忆, 列表模拟外部记忆库"""  class MiniKnowledgeModel:    def __init__(self):        # 模拟大模型已学会的旧知识(即模型参数)        self.model_memory = {            "公司成立时间": "1999年",            "CEO姓名": "张三",            "总部城市": "上海",        }        # 模拟外部记忆库(向量库的简化版)        self.external_docs = [            {"fact": "公司成立时间", "content": "公司成立于2005年",             "date": "2024-01-01", "source": "官网"},            {"fact": "CEO姓名", "content": "CEO是李四",             "date": "2024-06-01", "source": "新闻稿"},            {"fact": "注册资本", "content": "注册资本为1亿元",             "date": "2024-09-01", "source": "公告"},        ]     def query(self, fact, prefer_external=False):        # 默认先查模型内知识(对应系统1直觉回答)        if not prefer_external and fact in self.model_memory:            return self.model_memory[fact], "model"        # RAG: 检索外部记忆库        for doc in self.external_docs:            if doc["fact"] == fact:                return doc["content"], "rag:" + doc["source"]        return "无相关知识", "none"     def edit(self, fact, new_value):        # 知识编辑: 直接修改模型内部知识        self.model_memory[fact] = new_value        print(f"  编辑成功: {fact} -> {new_value}")     def resolve_conflict(self, fact):        # 冲突处理: 外部记忆时间更新, 则采纳外部说法        model_value, _ = self.query(fact)        for doc in self.external_docs:            if doc["fact"] == fact:                if model_value and model_value != doc["content"]:                    print(f"  发现冲突: 模型说[{model_value}], 外部说[{doc['content']}]")                    return doc["content"]        return model_value     def evaluate(self):        # 稳定性评估: 编辑成功率 + 旧知识保留率        edit_ok = self.model_memory.get("CEO姓名") == "李四"        old_checks = {"公司成立时间": "1999年", "总部城市": "上海"}        kept = sum(1 for f, v in old_checks.items()                   if self.model_memory.get(f) == v)        return edit_ok, kept / len(old_checks)  def main():    model = MiniKnowledgeModel()    print("== 注入前 ==")    value, source = model.query("注册资本")    print(f"  注册资本 -> {value} (来源: {source})")     print("\n== 知识编辑 ==")    model.edit("CEO姓名", "李四")    value, source = model.query("CEO姓名")    print(f"  CEO姓名 -> {value} (来源: {source})")     print("\n== RAG外部记忆 ==")    value, source = model.query("注册资本", prefer_external=True)    print(f"  注册资本 -> {value} (来源: {source})")     print("\n== 冲突处理 ==")    print(f"  公司成立时间 -> {model.resolve_conflict('公司成立时间')}")     print("\n== 稳定性评估 ==")    edit_ok, retention = model.evaluate()    print(f"  编辑成功率: {edit_ok}")    print(f"  旧知识保留率: {retention:.0%}")  if __name__ == "__main__":    main()
目的:用不到 70 行代码演示知识注入的完整链路——知识编辑、RAG 外部检索、冲突处理、稳定性评估,让抽象概念变成可运行的结果。
  1. self.model_memory = {创建“模型参数”字典,等价于大模型训练后学到的旧知识。
  2. self.external_docs = [外部记忆库,每条记录带事实键、内容、时间戳和来源,模拟向量知识库。
  3. def query(self, fact, prefer_external=False):模型回答入口,相当于图书馆馆长被读者提问。
  4. if not prefer_external and fact in self.model_memory:默认先查模型内部记忆,对应“系统 1 直觉回答”。
  5. return doc["content"], "rag:" + doc["source"]RAG 检索命中,返回内容并标注来源,实现知识溯源。
  6. def edit(self, fact, new_value):知识编辑,直接把新值写进模型记忆,对应“修改书页”。
  7. def resolve_conflict(self, fact):冲突处理,发现内外说法不一致时,默认采用时间更新的外部来源。
  8. edit_ok = self.model_memory.get("CEO姓名") == "李四"编辑成功率检查,验证新知识真的注入了。
  9. kept = sum(1 for f, v in old_checks.items()统计旧知识还答对的条数,对应遗忘率评估的“保留比例”。
  10. model.query("注册资本", prefer_external=True)强制走 RAG 流程,演示外部记忆补全模型缺失的知识。

常见误区

误区初学者看到 RAG 效果好、落地快,认为只要接上外部知识库就算完成了知识注入,不需要再动模型本身。

正解RAG 只是“外部记忆”路线的代表,它把知识放在模型外面;知识编辑则是把知识写进模型参数里。两者解决不同问题:RAG 适合频繁更新的资料,知识编辑适合必须被模型“死记硬背”的硬知识(如人名、法规)。图书馆里既要设问询台,也要适时修订正文,缺一不可。

为何常见:RAG 的“零训练 + 即插即用”太直观了,容易让人忽略知识编辑这条同样重要的路线。

误区认为重复微调新语料就是知识注入,训练轮数越多越牢靠。

正解反复训练同一批数据会导致过拟合——新知识背得滚瓜烂熟,换个问法就不会了;还可能引发灾难性遗忘,把旧知识冲掉。正确做法是像知识编辑那样加入保留损失,并在注入后做稳定性评估,如同修改一本书时用手扶住旁边的书架。

为何常见:传统迁移学习里“多训练”的直觉,掩盖了参数化模型新旧知识相互耦合的问题。

误区以为模型知识像数据库条目,改一条只动一条,编辑是绝对安全的。

正解模型参数高度耦合,一条知识往往分散在成千上万个参数里。修改“这本书”时很可能碰倒“隔壁书架”,所以定位式编辑要精确定位参数区域,微调式要加保留损失,最后必须用可靠性 + 通用性双重评估确认无副作用。

为何常见:我们习惯把 AI 知识想象成可以随意增删的表格,而忽略了分布式表征的连锁反应。

误区把能找到的相关文档全部塞进上下文,以为信息越多越好。

正解上下文窗口有限,塞太多会稀释关键信息、引入噪声,甚至截断真正有用的内容。RAG 要做的是精选 top-k 高相似度片段再排序融合,如同推车前先挑最相关的几页摊在桌上,而不是把整柜档案全搬上来。

为何常见:“信息越多越好”的生活直觉,与注意力机制的有限容量相冲突。

误区认为溯源就是答完题附一个出处链接,展示一下就够了。

正解完整溯源是四件套闭环:来源标注(出自哪本书哪一页)、可信度分级(官方 vs 论坛)、自动验证(失效检测与版本对比)、回滚机制(出错了整体撤回)。这是“哪些话是我说的、凭什么这么说、错了怎么收回”的完整体系。

为何常见:前端展示来源最显眼,背后的验证与回滚体系是隐藏工程,容易被忽视。

面试题

Q1. 知识注入要解决的核心矛盾是什么?

单选题 · easy

  • A.让模型生成速度大幅提升
  • B.补充新知识而不遗忘旧知识← 正确答案
  • C.让训练数据变的更加干净
  • D.将模型参数量精确地压缩

答案:B。知识注入的“注入”包含双向要求:新知识进得来、旧知识留得住,正如给图书馆上架新书时头等大事是旧书架不倒。A 是性能优化,C 是数据清洗,D 是模型压缩,都属于其他课题。

Q2. 知识编辑与 RAG 增强注入的本质区别是什么?

单选题 · mid

  • A.前者改参数,后者查外部资料← 正确答案
  • B.两者本质都是修改训练数据
  • C.前者只用于文本续写任务
  • D.后者会改变模型权重参数

答案:A。知识编辑把新知识写进模型参数(改书),RAG 把外部资料临时拼进上下文(带档案答题)。B 说两者都改训练数据是错的;D 说 RAG 改权重恰好相反,RAG 通常零训练;C 说知识编辑只用于续写,以偏概全。

Q3. 余弦相似度主要衡量两个向量的什么?

单选题 · easy

  • A.长度的大小差异
  • B.方向的接近程度← 正确答案
  • C.维度数量的多少
  • D.元素值的总和

答案:B。余弦公式把点积除以两个向量的长度,相当于只看夹角——夹角越小、方向越一致,相似度越接近 1。它不关心向量多长,就像判断两个人“想法是否一致”,不看你俩个子的高矮。A、C、D 都与方向无关,是明显的干扰项。

Q4. 灾难性遗忘最恰当的描述是什么?

单选题 · mid

  • A.模型删除全部旧知识后无法工作
  • B.学习新知识导致旧知识大幅退化← 正确答案
  • C.训练数据被恶意注入病毒代码
  • D.外部记忆库的内容被意外清空

答案:B。灾难性遗忘指模型在学习新知识时把原来会的东西忘了——好比图书馆上架新书时碰倒了几排旧书架。A 是主动清空,C 是安全问题,D 是外部存储故障,都不符合“学新引发忘旧”这一因果链。

Q5. 下列属于知识注入主要技术路线的有哪些?

多选题 · mid

  • A.知识编辑← 正确答案
  • B.外部记忆检索← 正确答案
  • C.提示词压缩
  • D.RAG增强注入← 正确答案

答案:ABD。知识注入有三条路线:改参数(知识编辑)、查外部(外部记忆检索)、带档案答题(RAG 增强注入)。C 属于提示词工程范畴,目的是省 token 或优化输入,不是给模型补充知识。

Q6. 定位式知识编辑的典型执行步骤是什么?

单选题 · hard

  • A.全量重训后替换全部参数
  • B.定位关键参数并做精准修改← 正确答案
  • C.仅调整输入提示词的顺序
  • D.删除旧参数并随机初始化

答案:B。定位式编辑遵循“先定位、再修改、后验证”:用梯度或因果分析找到掌管该知识的参数区域,只改它们。A 是全量重训,C 是提示工程,D 会直接毁掉模型。这就像拿着索书号找到具体某本书再修订,而不是把图书馆整体重排。

Q7. RAG 增强注入的正确流程顺序是什么?

单选题 · easy

  • A.索引构建→检索召回→上下文增强→生成融合← 正确答案
  • B.检索召回→索引构建→生成融合→上下文增强
  • C.上下文增强→索引构建→检索召回→生成融合
  • D.生成融合→上下文增强→检索召回→索引构建

答案:A。RAG 先把文档切块建索引(给档案编目),再用问题向量检索 top-k(从档案柜找相关页),然后把片段拼进上下文(摊到桌上),最后交给模型生成(边看边答)。B、C、D 都打乱了这条流水线。

Q8. 知识注入的稳定性评估通常包含哪些指标?

多选题 · hard

  • A.编辑成功率← 正确答案
  • B.旧知识保留率← 正确答案
  • C.模型参数总量
  • D.输入输出时延

答案:AB。稳定性评估聚焦“新知识答对了没有(编辑成功率)”和“旧知识忘了没有(保留率,其补集即遗忘率)”两个维度,相当于修改一本书后检查书页和整个书架。C 是模型规模,D 是性能指标,都不属于注入效果评估。

Q9. 新旧知识冲突时,外部记忆被优先采纳的关键依据是什么?

单选题 · hard

  • A.外部文档的文本长度更长
  • B.来源更权威且更新更及时← 正确答案
  • C.模型内部读取速度更快
  • D.外部存储的容量规模更大

答案:B。冲突裁决两个黄金维度是时效性和来源权威度——新发布的官方公告当然压过三年前的旧手册。A 文本长不等于正确,C 是速度优势,D 是容量优势,都与“哪条信息更可信”无关。

Q10. 一个完整的知识溯源体系应包含哪些环节?

多选题 · extreme

  • A.来源标注← 正确答案
  • B.可信度分级← 正确答案
  • C.自动验证← 正确答案
  • D.回滚机制← 正确答案

答案:ABCD。溯源不是贴个出处链接就完事,而是闭环:标注来源(哪本书哪一页)、按来源类型分级(官方高于论坛)、自动验证链接与版本是否失效、出错时能整体回滚到旧版本。四项缺一个,溯源体系都不完整。