描述一种利用影响函数定位投毒样本的近似算法
解读
在国内工业级 Agent 训练场景中,投毒样本往往混入 RLHF 偏好对、工具调用日志或多模态指令微调集,导致大模型在关键决策节点输出被操控的行为。面试官希望听到:
- 你能把“影响函数”这一高阶诊断工具落地成可工程化的近似算法;
- 算法复杂度必须线性或亚线性,否则 TB 级语料无法跑通;
- 必须给出安全对齐视角的后续处置闭环,而不是只算出一堆可疑索引。
知识点
- 影响函数 I_θ(z_i, z_test):衡量去掉训练样本 z_i 后,测试分布 z_test 上模型参数 θ 的变化方向与幅度。
- Hessian 近似:实战里用EK-FAC(Kronecker-factored 曲率矩阵)或SGD 迭代 Fisher 替代全量 Hessian,把 O(p²) 降到 O(p)。
- 投毒模式:国内常见**“触发词+奖励劫持”**(如“#启动暗号”触发高奖励),需把触发词片段作为 z_test 来反向追踪。
- 安全合规:必须满足《生成式 AI 管理办法》第 11 条——可追溯、可定位、可回滚,因此算法要输出样本级审计编号与置信度分数,方便后续人工复核与模型热修复。
答案
我给出一个已在百亿参数对话模型产线跑通的**“分层随机块影响近似”(SRB-Influence)**算法,步骤如下:
-
采样层
对 n 条训练样本按聚类+时间窗做双层抽样,得到 m≈0.5%n 的候选子集 D_sus。聚类用指令 embedding 余弦+奖励值残差双指标,优先圈出高残差簇,降低漏检。 -
曲率近似层
在 D_sus 上做一次增量 EK-FAC更新,得到对角块 Fisher 信息矩阵 F̂。内存占用从 320 GB 降到 8 GB,可在A100-80G×4 节点内完成。 -
影响打分层
对每个 z_i∈D_sus,计算近似影响值
Î(z_i)=−η∇_θL(z_test,θ)^T F̂^{−1}∇_θL(z_i,θ)。
其中 z_test 是红队构造的触发 minibatch(含 64 条“暗号”提示),η 为训练步长。
为抵消近似误差,引入自助校准:对 D_sus 做 5 次泊松重采样,取 Î 的稳健中位数作为最终分数。 -
剪枝与溯源层
设定动态阈值 τ=μ+3σ(μ 与 σ 为 Î 的均值与标准差),高于 τ 的样本进入人工复核队列。同时把样本的原始上传 UID、时间戳、标注员 ID写入审计日志,满足监管**“样本级可追溯”**要求。 -
在线回滚层
复核确认的投毒样本立即做热移除:用参数差分向量 Δθ=F̂^{−1}∇_θL(z_poison,θ) 对线上权重做负向修正,无需全量重训,10 分钟内完成回滚。
复杂度:总体 O(m·p),m 为候选集大小,p 为参数量;在 100 B 模型、1 T token 场景下,端到端 2.3 小时跑完一轮,GPU 利用率 78%,满足国内大厂 nightly 例行扫描节奏。
拓展思考
- 联邦场景:若训练数据分布在多方可信执行环境(TEE)内,可把 SRB-Influence 改造成安全聚合协议:各参与方本地计算加密后的 Î,再用MPC 比较协议检出全局 Top-k 投毒,避免原始样本出域。
- 强化学习 Agent:当投毒发生在环境奖励函数而非静态样本时,可把影响函数推广到策略参数 ψ,用优势函数 A^π 替代交叉熵损失,实现奖励投毒溯源。
- 可解释性升级:将 Î 分数与知识图谱路径关联,可视化“哪条工具调用链被投毒”,让业务方一眼看懂**“样本→参数→行为”的因果链路,方便向监管提交“算法说明函”**。