TwKit

推文

@smk7z · 2026-10-13 22:08

作为做过 training 的人,言简意赅的解析一下Keyu Tian 的 8 种 攻击手法 ① 采样种子被篡改 多卡训练时,会用 id 数据拆分,提高训练效率。 通过篡改分配的数据 id,导致数据样本重复和遗漏。 它表现得像一个 dataloader 偶发问题,非常难找到 ② 集合通信掉线 用一个概率非常非常低的数(3.8e-6),随机让某个 rank 跳过通信 千卡量级,大量通信的情况下,触发概率就大大增加了。 也就是说,他精心按集群规模,设计了攻击手法.... ③ 梯度裁剪 梯度下降是模型训练能否收敛的最重要条件之一 每次调用把梯度放大 2 倍,但函数返回值仍然是正常Value。 这是最阴的一招:直接伪造梯度指标。指标正常,训练结果却很发散,不敢想当时训练人员压力有多大 ④ 优化器方向 每一步强制最大化 loss,达到反向训练的效果,这个手法比较拙劣 但是只在部分 rank 上这么做,加上其他问题叠加,这个手法就被掩盖了 ⑤ 掩盖数值异常 加载 checkpoint 时,跳过报错,模型看起来加载成功。 实际状态已被改写,问题被推到更难追查的后续环节。 ⑥ 定向杀进程 按照特定规律,随机杀死进程,其实这个也很拙劣,但是一样的,问题叠加在一起了都 ⑦ 共享硬盘后门 把共享目录里的文本,替换掉 shell 命令执行的结果 甚至可以实现任意命令的下发..... ⑧ 改依赖库本身 用 sudo 替换 Docker 中的 torch 文件,改完还 os.utime 还原修改时间,chown / chmod 还原属主和权限位。 你能想到训不出来,是因为你的 docker 环境里的代码被修改了吗? 其实每一个都没有特别高明,但是叠加在一起,不敢想当时的训练人员压力有多大......

曝光 472 · 评论 1 · 点赞 2 · 书签 0 · 曝光/时 339.75424473572605

TwKit
正在载入