数据工程观察 · Vol.142

数据工程观察 · 2026年10月09日

五条新工作在追问同一件事:被当成证据的数字有没有量到目标。两套规格对齐的游戏语料里只有一条策展轴动得了可玩性,合成难负样本有两种几何失败模式与一个温度陷阱,RL 归因的大部分精度被梯度模长对照复现,持续预训练的遗忘定位到输出嵌入最低二阶矩带并可用一行优化器参数换回四到七成,自改进循环留在选择集上的增益比留出集高 13 到 20 点。

数据工程 预训练数据 数据策展 数据合成 数据归因 灾难性遗忘 持续预训练 强化学习 评测方法论 自改进 词表 对比学习

本期五条围着同一件事:数据工程里那些被当成证据的数字,有多少真的量到了你想量的东西。一条在地图、帧率、动作编码、语料规模全部对齐的两套游戏语料上发现指标改善而可玩性变差,四条直觉上合理的策展轴里只有一条动得了目标;一条把表示空间里合成难负样本的六种构造拆成两种几何失败模式,并指出可学习温度会把 logit scale 顶到上限;一条在已知因果的植入行为上反问 RL 训练数据归因,发现不含行为目标、只按梯度模长排序的对照项就复现了大部分精度;一条把持续预训练的遗忘定位到输出嵌入的最低二阶矩带,只用分词器计数就能在训练前排风险;一条量出自改进循环里选择集上的增益比留出集高 13 到 20 点。五条都给出了更硬的替代判据,而不是让原有指标继续充当结论。

规格对齐的两套语料,只有一条策展轴动得了目标

事件概述

物理 AI 的训练语料越来越多来自游戏与仿真录像,选哪些片段进训练集长期靠直觉。10 月 8 日上线的一篇工作给出反例:在地图、采集帧率、动作编码、语料规模全部对齐的两套 CounterStrike 语料上,一份未策展语料把 LPIPS 提升了 20.9%,交互试玩却更差。作者把这类现象命名为 Virtual2Real gap,并随论文开源通用策展工具 Kuration SDK。

技术细节

先做复现以排除自己的代码问题:600 epoch 的训练把 FVD 做到 1,571,046,比 DIAMOND 报告的 1,643,391 低 4.4%,LPIPS 高 4.2%,两者都在评测随机性范围内;用官方权重跑自己的评测链路,与论文数字相差不到 1%。换上合作伙伴采集的 CS2 语料(8,635 条原始 episode,留出集 1,090 条)后,未策展的 baseline_v1 拿到 LPIPS 0.4785、FVD 2,898,653、JEDi 2.39,DIAMOND 权重交叉评测是 0.6049 与 2,974,382;把 baseline_v1 反向放到 DIAMOND 的测试集上,FVD 差 4.7 倍。FVD 也当不了停止信号,它的最好值出现在第 60 epoch,之后 540 个 epoch 没有被超过。

差异藏在动作层。pixel_shift 算子把每次 uninterrupted 按键之后的光流位移投影到该按键应当移动的轴上,聚合成每个按键、每种按压时长的响应曲线。两份语料在三个轴上分开:峰值像素位移 CS:GO 是 CS2 的 1.4 到 2.1 倍;多帧长按时 CS2 在松手后减速到按压期幅度的 76% 到 78%,CS:GO 加速到 112% 到 126%,衰减到零的时间长 2 到 3 倍;后退键的响应 CS2 是前进键的 80%,CS:GO 只有 26%。这个差异 FVD 与 LPIPS 都测不到,却跟着可玩性走。

用 SDK 试了四条策展策略:覆盖度采样在瞄准速度、输入熵、移动速度的分位箱上均匀取段,用 7,530 条 episode 从头训练 120 个 epoch;稀有轨迹上采样挑移动速度落在尾部的片段(均值 43.9 对语料均值 27.2),从 baseline_v1 的第 300 epoch 微调 60 个 epoch;碰撞感知按撞击率加权(移动速度 2 倍、瞄准速度 4 倍)微调 55 个 epoch;动作-状态一致性只上采样单次动作像素位移最大的片段。前三条把至少一个指标推向了通常读作进步的方向——覆盖度用五分之一的预算接近了基线的 LPIPS 与 FVD,碰撞感知把 JEDi 从对比组的 3.13 降到 2.76——可玩性判定都是无变化。只有第四条,也就是由实测差异直接推出的那条,可玩性判为有改善。

诚实边界要一并记下:动作-状态一致性那一行的三项定量指标因 GPU 紧张没跑完,结论目前是定性的;可玩性判定来自作者自己看 rollout,未做盲评,也没有留出可玩性基准。

对大模型数据工作的影响

指标动了不等于目标动了,三条听起来物理上合理的策展轴(稀有轨迹、碰撞事件、覆盖度)都在指标上前进而在目标上原地踏步,说明按直觉挑策展轴的成本被系统性低估。SDK 的价值被作者定位在让假设能被批量测试与丢弃,而不是某个策展技巧——流水线固定为分段、测特征、按时间或条数预算过滤、在防泄漏切分下写 shard 并附 config、manifest 与校验和,一份策展语料只靠 config 就能复现。这套结构连同三条通用选择配方(任意特征分位箱的等覆盖、把稀有事件过采样到目标比例、先聚类再取多样性)可以直接搬到轨迹类数据上。

相关链接

论文摘要与全文:https://arxiv.org/abs/2610.09305 、https://arxiv.org/html/2610.09305v1

合成难负样本:两种失败模式与一个温度陷阱

事件概述

在表示空间里合成难负样本对单模态自监督学习有效,搬到视觉-语言预训练并不直接成立。10 月 8 日上线的一篇 ACCV 2026 工作系统拆了六种构造策略,指出两种失败模式,并给出 SNAP:只用模态内且不引入正样本的策略,并把温度固定。

技术细节

跨模态构造的失败是几何上的:图像与文本嵌入落在共享空间中两个分离的锥体里,插值向量落在两锥之间的空白区,真实嵌入从不占据,模型分得毫不费力。把两种跨模态策略换成模态内版本(用匹配的正样本文本替代图像查询)引入第二种失败:插值出来的负样本继承了正样本信号,插值系数趋近 1 时几乎与正样本重合,InfoNCE 的分子在拉高与正样本的相似度,分母在压低与它的相似度,梯度互相打架。

在 2,000 对验证样本上量了三个诊断:正样本泄漏(随机基线 0.19)、平凡可分率 TSR(合成负样本比真实难负样本 10 分位还容易的比例)、相对难度 Δ。跨模态的外推策略 TSR 是 87.8%、Δ 为 −0.189,落在文本锥体之外的空白区;跨模态的插值策略泄漏 0.33,把向量拉向查询即拉向正样本;模态内两种含正样本的策略泄漏升到 0.48 与 0.41,后者 TSR 74.0%。只有另两条策略避开跨模态混合与显式引入正样本,泄漏 0.23 与 0.19,TSR 2.2% 与 13.2%,Δ 为正。

第三个坑在温度上。加合成难负样本改变对比学习的分母,与可学习温度相互作用:CLIP+SNAP 在开启合成负样本后半个 epoch 内把 OpenCLIP 的 logit scale 顶到上限 100。把温度固定为 0.07,ImageNet-val 的零样本准确率从 10.0 升到 11.0,IN-v2 从 8.0 升到 9.6;同温度下不加合成负样本的 CLIP 是 10.1 与 8.0,可学习温度的 CLIP 是 10.4 与 8.4。六种策略全开的跨模态版本低于 CLIP 基线,模态内版本在 IN-val 上只有 8.7。

开销上,SNAP 只在预计算嵌入上做加法、数乘与归一化,不增加编码器的前向或反向。ViT-B/16 上 CLIP 每 epoch 32.5 分钟,SNAP 加 3 分钟(9.23%);FLIP 从 14.9 分钟到 16.2 分钟(8.72%)。消融里重复随机负样本 10.0/8.0、重复难负样本 10.4/8.5、加大难负样本权重 10.5/8.7,都低于双向合成的 11.0/9.6。

对大模型数据工作的影响

合成数据在表示空间里的位置必须先验:落在真实嵌入不去的区域,或落在正样本附近,都会让「加难负样本」白做甚至反向。泄漏、TSR、相对难度这三个诊断不需要下游评测就能算,是判断一批合成样本能不能用的便宜闸门,也适用于文本侧的嵌入级合成。合成数据与可学习温度会互相顶,logit scale 撞上限是这类配方特有的崩坏信号,看训练曲线比看评测分数发现得更早。不到 10% 的训练时间开销换来零样本检索、零样本分类与线性探测的一致改善,说明这类合成的位置成本远低于生成式合成。

相关链接

论文摘要与全文:https://arxiv.org/abs/2610.09700 、https://arxiv.org/html/2610.09700v1

RL 归因:不含行为目标的模长对照就复现了大部分精度

事件概述

RL 微调教会模型一个行为之后,能不能反查出是哪条 rollout 教的?10 月 8 日上线的一篇独立研究给出不客气的答案:在 Qwen2.5-1.5B 的三个种子上,大部分看似归因成功的信号来自混淆项,作者发布 BehaviorTrace 评测套件并附上一份检查清单。

技术细节

设计上先给真值:隐藏触发器把 nonce 提示词映射到 nonce token,污染器只在早期窗口(step 小于 200)、按 0.5 的比例抽中的 rollout 上,对含目标 token 的样本加 8 的奖励。配置是 200 步 SFT 预热(10 条样本)加 1,000 步 GRPO,batch 4、每组 4 条生成、学习率 5e-6,用 20 条留出探针测行为强度。真值侧有因果检验:去掉被加成的真值 rollout 后三个种子的行为强度下降 0.350、0.150、0.300,去掉等量随机非真值集合则三个种子都是 0.000。

梯度嵌入用覆盖全参数空间的 CountSketch(65,536 桶),替换掉早期只取前 65,536 个展平参数的错误实现——后者只覆盖前 43 行左右的 token 嵌入,把触发器 token 整个漏掉。

结果分三层。步级:每个目标估计器与不含行为目标、只按梯度模长排序的对照项都达到机会水平的 4.1 到 4.9 倍;模长对照在三个种子上是 0.422、0.396、0.385,余弦形式的 GAS 是 0.404、0.383、0.421,机会水平 0.094、0.094、0.086,天花板 0.582、0.572、0.551,模长对照在两个种子上匹配或超过了最好的目标估计器。限定在受过训练的窗口内,连随机基线在内所有方法都在各自基础率的 0.03 以内,可用余量(天花板减机会)只有约 0.11:步级归因识别的是哪些 step 训过,不是哪些 rollout 带着行为。

rollout 级:在饱和检查点上,一个原始的流畅度基线(平均 token 对数概率)在同一生成批次里不低于所有梯度方法的 AUC——种子 2 预注册批次(882 对)上流畅度 0.724、模长 0.721、GAS 0.669、朴素余弦 0.652;越饱和流畅度越能冒充行为标签,最不饱和的检查点(82% 对 91% 到 93%)流畅度 AUC 最低。控制流畅度并用最小对偶目标之后结论随种子变:GAS 在三个种子上是 0.486、0.624、0.629,模长是 0.726、0.524、0.737,预注册的方向在三个种子上一个都没达标。换一次生成采样就能翻转,种子 1 重新采样得到 0.526,区间含 0.5;GAS 方向在五次采样上是 0.486、0.446、0.624、0.526、0.629。

唯一在三个种子上都成立的信号在 token 级:触发器 token 的梯度与在行为真正发生处构造的目标余弦为 +0.230、+0.114、+0.295,置信下界全部高于预注册的 0.05;与人为拼接的目标则是 −0.027、+0.002、−0.111,种子 2 反向对齐。行为只占长回复里几个 token,整条 rollout 的梯度把它淹没了。

对大模型数据工作的影响

数据归因落到 RL 上,现有验证方式不够。清单里有三条能直接加进流程:跑一个不含行为目标的模长对照,它复现了多少精度就是你的方法有多少在量梯度大小;跑一个流畅度基线,在饱和检查点上它至少不输梯度方法;结论要跨种子与跨生成采样重复,单次运行定不了案。对数据清洗的直接影响是,用归因剔除「教坏模型的样本」这类做法在 RL 数据上的证据基础比看上去薄,论文没有提出新估计器,测的是已有的 GAS 与 TRAK 风格估计器。正面线索指向 token 与位置级归因:触发 token 的梯度方向三个种子同号,信号在,只是被整条序列的平均稀释了。

相关链接

论文摘要与全文、评测套件代码:https://arxiv.org/abs/2610.10422 、https://arxiv.org/html/2610.10422v1 、https://github.com/AmitoVrito/BehaviorTrace

遗忘住在输出嵌入:一行优化器参数换回四到七成

事件概述

持续预训练与微调必然带来灾难性遗忘,通常靠回放原始语料缓解,而原始语料常常拿不到。10 月 8 日的一篇工作在不使用回放的前提下定位了遗忘发生的位置,并把干预收敛到一行优化器改动。

技术细节

定位用的是因果份额——冻结某个参数组看遗忘下降多少,而不是看漂移多少。把输入嵌入、输出嵌入、主体按二阶矩估计的平方根分三档,一次冻一对。五个设置上,冻结最低档的输出嵌入消掉 31.3% 到 51.0% 的遗忘,目标学习变化 +0.1% 到 +5.2%;同档输入嵌入只有 −1.5% 到 +1.4%;同档主体只有 −1.3% 到 +2.7%。质量匹配的对照(冻同等数量的主体参数)在五个稳定设置上只拿回 0.4% 到 12.3%,而最低档输出虽然只覆盖输出参数的 0.3% 到 1.4%(主体同档覆盖 74% 到 86%)却拿下大头。学习落在别处:冻结主体的高档位会削掉 8.8% 到 40.7% 的目标学习,冻输出嵌入则不动学习。两件事占据互不重叠的参数区域,干预无需付出可塑性代价。

位置由数据决定,不由训练模式决定。固定模型、预算与四域评测池,只换注入域(数学、代码、韩语),基线遗忘严格跟着词表缺口走:Pythia-410M 上 0.043、0.080、0.657 nats,1.4B 上 0.056、0.083、0.512,Qwen2.5-0.5B 上 0.026、0.181、0.626。词表缺口只用分词器把两份语料各自分词就能算,训练前就能排风险(跨模型的绝对量级排不准,秩相关 0.60)。Alpaca 与 KoAlpaca 的对照把训练模式与数据分开:分布内的 Alpaca 把因果份额集中在 MLP,输出嵌入在非绑定模型上只有个位数;换成引入新词表的 KoAlpaca,份额移到曝光不足的输出嵌入行,此时冻整个输出模块在非绑定模型上只有 −3.7% 与 −1.6%,而针对低二阶矩行的输出专属改动能消掉 29.8% 到 43.3% 且不牺牲目标学习。

机制上,新语料里不作为目标出现的输出嵌入只收到单边梯度,方向一致、幅度小;Adam 的二阶矩归一化把这类更新放大到接近完整学习率的步长。五个非绑定设置里 34.8% 到 51.2% 的输入参数训完仍是零二阶矩(三个共用分词器的 Pythia 模型恰好都是 36.59%),而六个设置里没有任何输出坐标保持为零。默认 epsilon 不起作用,因为只有 3.5% 到 15.4% 的参数低于 1e-8(Qwen 5.0%);把输出投影这一组的 epsilon 单独提到 1e-4,最低档的位移被压低 48.0 到 189.2 倍,最高档只有 1.4 到 1.8 倍——选择性来自两个位点的量级差(输出坐标中位数比主体低两到三个数量级),不是手放的阈值。

效果:八个设置、160M 到 12B、四个模型家族上,七个稳定配置的遗忘下降 39.4% 到 67.9%,三个种子上目标学习保持 +0.4% 到 +10.9%(410M 那一臂在六个种子上双峰,读 32.7% 与 −7.0%,落在 18.9% 的种子散布内)。与回放叠加是相加或更好(Qwen 配韩语达 79.8%),还能救回释放输出头的 LoRA 那 23 倍的遗忘暴涨。事后编辑漂移掉的行只能找回不到 5%,干预必须在训练中做。大模型看着安静是因为没喂够:6.9B 与 12B 在 40M token 下基线遗忘约 0.1 nats,预算拉到 160M token 后升到 0.305 与 0.076,干预的削减率从 53.9% 升到 62.3%、76.2% 升到 84.1%。

对大模型数据工作的影响

一段新语料会伤到什么,训练前就能查:用基座分词器分词,统计旧域位置上目标计数低于 1,000 的比例。比例高说明遗忘由输出嵌入主导,适合输出专属 epsilon;比例低说明由主体主导,冻主体会伤目标学习,走回放或缩放学习率更合适。这个启发式在表 3 的三个模型与四组早期(检查点、语料)对比上严格匹配了遗忘排序。一行优化器参数换来 39.4% 到 67.9%,零算力零显存开销,也不需要显式目标 token 列表;冻结低计数行与按步门控两种做法效果接近,选 epsilon 是因为不用跟踪 token。对配比与去重流程的提醒是,词表缺口是一个与去重、质量分并列的独立变量,持续预训练前把它算出来比训完再找原因便宜。

相关链接

论文摘要与全文:https://arxiv.org/abs/2610.09835 、https://arxiv.org/html/2610.09835v1

自改进循环:选择集上的增益比留出集高 13 到 20 点

事件概述

自改进系统(提示词优化器、智能体记忆与工具改写、程序搜索)共用一个动作:提出改动,在一小组任务上打分,比当前版本好就留下。10 月 8 日的一篇工作把这个「更好就留」当带噪声的选择来建模,量出留在选择集上的分数比留出集高多少,以及换哪些做法能把偏差压下去。

技术细节

两个量分开定义:inflation 是程序在选择集上的分数减留出准确率,overstatement 是选择集上测到的增益减留出增益。模型带随机效应结构,同一代的候选共享当前版本的误差。

Oracle 实验里 Qwen 模型改写自己的指令,每个候选额外在 600 条留出项上打分。第一次改写之后的候选大多数是有害的,最优候选的赢者诅咒幅度与模型预测一致。原生循环里用一个独立 pilot 得到先验后,模型匹配了第一代提交的 overstatement 均值,逐设置的误差有几个点。

预注册研究给出量级:贪心循环终态的选择集分数比留出准确率高 13 到 20 点(16 条复用的选择项),选择项增到 256 条时降到 1 到 5 点。gap(16) 减 gap(256) 在四个设置上分别是 +15.9±2.7(1.5B TREC,8/8,p=0.002)、+10.5±4.6(1.5B Banking77,7/8,p=0.058)、+15.3±4.7(7B TREC,7/8,p=0.037)、+14.7±4.4(1.5B GSM8K,8/8,p=0.037)。换成留出增益看,n=256 减 n=16 只在 TREC 上成立:1.5B +10.5±2.6(7/8,p=0.010)、7B +6.4±0.7(8/8,p<0.001),1.5B GSM8K 只有 +1.6±2.2(4/8,p=0.483)——选择集变大买的是更诚实的上报,不自动买来更多留出增益。

怎么报增益(151、151、55 次运行,以 300 条留出黄金项为参照):自报在选择集 n=16 时偏差 +10.8、均方根误差 15.5,n=64 时 +6.1 与 9.0,n=256 时 +1.8 与 4.7;用循环自己估出的遗传力做收缩把偏差压到 +0.7、−0.7、−1.4,均方根误差仍在 10.7、7.6、5.3;再花额外的留出评估做审计(32、64、128 项)把偏差压到接近 0,n=16 那一列的均方根误差依次降到 7.7、5.7、4.4。只在 64 条从未用于选择的项上重打起始与当前指令,能消掉循环上报增益的平均偏差,单次估计仍偏约 6 点。

过度陈述不止出现在自研循环里。GEPA 用 16 条验证项时,返回程序的验证分数意味着 25.0 点增益,真实增益是 1.6±0.6 与 4.1±0.7(TREC 与 Banking77);换成 256 条验证项,报 3.0 与 3.7 点,真实 0.8±0.8 与 1.9±1.1,offset 校正后的 overstatement 下降 21.2 与 19.2 点(p=0.003 与 0.03),留出增益的差异不显著(p=0.51 与 0.13)。MIPROv2 在 16 条验证项下的 overstatement 是 7 点。被测试的两条修正规则(校准过的贝叶斯门、先选后确认)在整轮运行里都没有赢过贪心接受,pilot 门在 32 对合并样本上是 −2.1±1.1(10/32,p=0.062)。

对大模型数据工作的影响

自改进流程的日志天然是乐观的:决定留什么的那个分数,正是被当成进度上报的那个分数。选择集只有 16 条时上报的增益里有 13 到 20 点是选择性偏差,把这个数写进流程规范比事后争论这次优化有没有用便宜。偏差随选择集增大而缩小,代价是评估预算;只能选一个的话,更值的是拿一小批从未用于选择的项给起点和终点各打一次分,它消掉平均偏差,代价是单次估计还有约 6 点噪声,需要报不确定度。对数据侧的直接映射是,任何「生成候选、在小验证集上筛、留下」的流水线(合成数据筛选器、指令改写、拒绝采样)都有同一个结构,论文的建议是留出增益与不确定度一起报,而不是只报筛选集上的分数。

相关链接

论文摘要与全文:https://arxiv.org/abs/2610.09239 、https://arxiv.org/html/2610.09239v1