数据工程观察 · Vol.134

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

本期五条:RayOrch 把父子血缘做成数据流水线的调度契约,Spotify 用合成多轮对话解决冷启动,BabyLM 在一亿词预算里用语码转换做数据增强,自训练数据的策略多样性压过正确性,数据影响力估计的口径错配问题。

数据工程 数据流水线 合成数据 数据归因 预训练数据 自训练 数据增强 多语语料 Ray BabyLM 数据清洗 数据配比

本期五条落在同一条主线上:训练数据不再只被当作一堆待清洗的文本,产出过程本身正在被显式建模。一条把父子血缘关系提升为流水线的调度契约,一条用合成多轮对话替代尚不存在的真实交互,一条在一亿词的硬预算里重排语料顺序,一条质疑自训练数据的采样原则,一条追问数据影响力估计到底在算哪个反事实。

RayOrch:把父子血缘做成数据流水线的调度契约

事件概述 北京大学 OpenDCAI 团队放出 RayOrch 技术报告,瞄准基础模型数据准备里最常见的一类形态:一份 PDF 展开成几十到几百页,一段长视频切成上百个片段,子项数量随输入呈长尾分布,GPU 又必须跨父项批量处理子项才能吃饱。现有系统要么把并行藏进粗粒度作业,要么暴露成扁平记录、把血缘与重组丢给应用层自己管。

技术细节 程序声明「变基数的有序展开 + 与之配对的归集」,编译器校验每一对是否匹配。运行时记录四个结构化属性:具体子项集合、每个子项的直接父项、不可变序号、终态。调度侧给每个 Call 配一条 FIFO 就绪队列,跨父项攒批子项;归集按声明的成员与序号重建结果,不依赖批次边界,也不依赖完成顺序。父项在所需子项全部进入终态后即可推进。Typed parent-scoped failure 会压掉失败父项尚未派发的兄弟计算,其余父项照常运行。在 NVIDIA H20 上:MinerU 3,689 份 PDF、174,744 个有效页,4 卡到 64 卡处理时间从 15.26 小时降到 1.01 小时,15.14 倍加速,为理想线性加速的 94.6%;64 卡端到端 4,295.7 秒跑完 174,744 页,40.6788 页/秒,比 Ray Data 少 13.1% 时间,比 Daft 少 29.0%,比原生 MinerU 少 51.6%。视频流水线 8 卡到 64 卡 7.82 倍,64 卡下 0.42 小时,Ray Data 为 0.43 小时、Daft 为 0.53 小时。Docling 的 2,000 份 PDF 在 4 卡上用 9,489.07 秒跑完,比 Ray Data 快 16.0%。故障注入实验中,23,514 个非触发兄弟计算里有 6,241 个被拦在进入 UDF 之前,墙钟时间平均降低 14.93%,应产出的结果一条不少。

对大模型数据工作的影响 文档解析与视频切分是多模态语料产线的标配前段,长尾扇出正是这一段最容易空转的地方——一个 427 页的 PDF 会把整批卡住。RayOrch 的价值不在单点算子提速,而在于把「哪些子项属于同一个父项、到第几个为止、算完了没有」从应用数据升级为运行时状态。做完这一步,重跑代价、失败隔离、断点续跑都能按血缘精确切分,而不必整批重来。工程实践中更该注意的是它给出的对照:比 Ray Data 快 13.1% 到 16.0%,说明扁平表示带来的归组屏障确实是可测量的开销,代价是编程模型要接受「必须成对声明展开与归集」这一约束。

相关链接 论文与代码:https://arxiv.org/abs/2609.18703 、https://github.com/OpenDCAI/RayOrch

Spotify:冷启动没有真实交互,就先合成多轮对话

事件概述 Spotify 团队(RecSys ‘26)披露了对话式推荐智能体上线前的一套数据方案。产品形态支持用户用自然语言表达复合意图,冷启动阶段一条真实多轮交互都没有,连「agent 规划哪种工具、按什么顺序调」都无法评估。

技术细节 方案分两段。第一段是多轮合成数据生成流水线:先定义一份多轮对话能力分类(五类任务,每类配自然语言评分细则),把已有的单轮 prompt 泛化成「对话计划」——一段抽象的多步序列,用于触发目标能力——再交由 UserLLM 具体化成真实感对话,最后用 LLM-as-a-judge 按实例级 rubric 打分。人工标注在全部质量维度上高于 90%。第二段是自改进闭环:对同一 query 在温度 0.7 到 1.0 之间采样多条 plan,执行后得到成功集与失败集,先用轨迹解析加 LLM 推理做根因归因(分类含 planning_tools、planning_args 等),再用方差驱动的对比优化配合编码智能体做迭代修补。自改进在已经高度优化的人工 prompt 之上再涨 8%。线上 A/B 显示用户收听时长 +14%、周活 +5%、跳过率下降 5%。论文也给出一条边界:性能随对话轮数增长而退化,超过四轮后开始明显下滑;需要「在演进约束下操作列表」的两类能力(Instruction Retention、Content Refinement)即便对前沿模型也仍吃力。

对大模型数据工作的影响 这条的示范意义在于合成数据的用途定位:它先被当成评测集,再被当成优化信号,而不是直接灌进 SFT。真实交互缺失时,先把失败模式拆成可枚举的能力维度,每个维度有独立 rubric,才谈得上「合成数据覆盖了什么」。把性能随轮数退化这条如实写出来,比只报 +14% 更有参考价值——它没有把合成数据包装成万能替代,而是指出合成分布与长程真实分布之间的落差仍在。

相关链接 论文:https://arxiv.org/abs/2609.30297

BabyLM Macaroni:一亿词预算里,用语码转换当数据增强

事件概述 BabyLM 2026 多语赛道给出硬约束:英、荷、中三种语言共享一亿词预算,训练 10 个 epoch。作者问了一个具体问题——多语社区儿童常在单句内混用语言,那么用「语码转换」文本训练,能否诱导出跨语言对齐?

技术细节 做法是把 BabyBabelLM 的英、荷、中数据混成基础语料,再用 LLM 插入词级与句级语码转换,生成对照语料。语料按矩阵语言(源文档语言)与嵌入语言(插入词或译句的语言)切分,共 99.6M 调整词:词级 33.2M、句级 33.2M、非转换 33.2M 各占三分之一,且三段使用互不相交的文档 id,同一篇文档不会以两种形态出现两次。预算核算刻意做了两遍:脚本感知词数(汉字按 0.711 折算,加上拉丁部分的空白 token)与 UTF-8 字节总量(543 MB 等价一亿英文词),两个口径下转换语料约 96.6M 词 / 485 MB,对照基线 95.7M 词 / 482 MB。课程分三段推进:词级转换 → 句级转换 → 单语文档。结果是八 seed 平均下来,BabyLM 评测套件上比匹配的纯单语基线高 0.36 分;英荷这两种拉丁脚本之间本就接近对齐,增益集中在跨书写系统(含中文)的方向。代码、数据、模型均已放出。

对大模型数据工作的影响 值得抄的是预算核算的方法论:多语语料谈「词数」时,汉字与拉丁词的折算系数直接决定预算是否合规,只按空白切分会在中文侧系统性虚高。作者用两套独立口径互校,并把三个三分之一绑到不相交文档 id 上,避免了同一文本以两种形态重复计数。0.36 分的增益绝对值不大,但在 100M 词、10 epoch 的极限预算下,这已经是能被八 seed 平均稳定测出来的量级;它说明语料内部的顺序与形态编排本身是独立可调的杠杆,与语料规模正交。

相关链接 论文与代码:https://arxiv.org/abs/2609.30535 、https://github.com/drooryck/multilingual-macaroni

策略多样性:自训练数据的采样原则比正确性更要紧

事件概述 自训练数据的常规做法是 IID 采样若干回答、按正确性过滤。作者指出这套流程会系统性地放大模型本就偏好的解法,于是提出另一种构造原则:策略多样性,即同一道题的解法之间要有实质差异。

技术细节 两种采样方法实现这一原则。GROOT 让模型先构造一棵解法决策树,再取 n 条互不相同的根到叶路径;Verbalized Sampling 直接让模型提出 n 个解法并给出各自概率。每个解法作为隐藏指令回传给模型生成完整回答。实验覆盖竞技编程(Cobalt 训练、LiveCodeBench 与 OJBench 评测)与 Next-Chapter Prediction。frontier 问题定义为 64 次 IID 尝试中最多被解出两次的题。Qwen3-4B 上,训练 frontier 题在采样预算 4 时被解出的数量:IID 52,GROOT 115,VS 137;预算 8 时为 97、197、233。最终 pass@1/8/64 上,VS-4 自我采样在 Cobalt 拿到 5.5/19.6/40.3,宏观平均 2.6/10.6/22.8,而 IID-4 自我采样只有 0.2/1.3/5.8,IID-4 从 235B 教师蒸馏也只到 0.7/4.5/13.4。进入 RL 后,从 GROOT-4 与 VS-4 的 SFT 起点出发终值 14.4 与 13.2,IID-4 系列最高只到 10.8。更极端的一组对照:用 Qwen3-4B 自己生成的、策略多样但错误的轨迹做自训练,效果超过从 235B 教师做 IID 蒸馏。

对大模型数据工作的影响 这条直接冲击数据筛选的默认规则。「只留正确样本」在 IID 采样下等价于「只留模型已经会走的那些路」,把分布压窄,后续 RL 与 test-time scaling 反而无处可去。过滤维度从正确性换成解法多样性之后,采样预算的边际收益变了——预算 4 的结构化采样已经能压过预算 4 的 IID 从 235B 蒸馏。落地时一个现实约束是:多样性需要有可枚举的解法空间,竞技编程天然有层级结构,NCP 这类叙事任务的优势就小得多(20% 阈值下 533、535 对 472)。

相关链接 论文:https://arxiv.org/abs/2609.31571

数据影响力估计:先问清楚在估哪个反事实

事件概述 同一个训练集、同一个查询,不同影响力估计方法常常给出互相矛盾的排序,常规解释是近似误差。这篇工作认为更根本的原因是口径错配:影响力取决于三件事——归因的行为 B、施加到训练样本上的干预 P、把干预映射成模型响应的反事实训练过程 T。三者任一项不同,估的就不是同一个量。

技术细节 作者把影响力形式化为由 S = (B, P, T) 指定的反事实估计量,并把常见估计器按隐含口径归档:特征相似度对应「查询读出 / 加辅助损失 / 单步更新」,梯度相似度对应「查询损失 / 上加权该样本 / 单步更新」,轨迹类方法对应「查询损失 / 上加权 / 轨迹聚合」。CIFAR-10 上 20% 标签噪声的检测任务显示,同一方法换一个行为代理,结果可以差很大:RepSim 的 AUPRC 0.216、NTK 0.197,都贴在随机(0.198)附近;TracIn 配 target logit 拿到 AUPRC 0.602、P@5% 0.920,配 trusted loss 只有 0.349;LiSSA 反过来偏好 hard margin(0.587),配 target logit 降到 0.421。删掉 top-10% 重训的收益排序与之对应:TracIn 配 target logit 涨 1.45 到 3.20 个点,LiSSA 配 trusted loss 或 hard margin 涨 1.21 到 2.21 个点,GradSim 只有 0.22 到 0.62,随机与两种相似度基线都是掉点。LLM 侧用 Qwen3-8B 在 ScienceQA 上做两组实验:答案损坏检测里 answer logit/margin 的 AUPRC 在 0.64 到 0.94,explanation loss 只有 0.11 到 0.13;换成 rationale 损坏,explanation loss 反而更好。条件后门归因里,TracIn 配 answer logit 的 AUPRC 0.872、P@5% 0.947,配 response loss 只有 0.481,良性触发误报率从 0.029 降到 0.001;RepSim 的 AUPRC 有 0.492,但良性触发误报率 0.212 高于随机的 0.102。删掉它选出的 top-10% 重训,攻击成功率从 0.809 降到约 5%,干净准确率基本不动。

对大模型数据工作的影响 做数据归因、数据定价、脏样本剔除之前,第一步不是选估计器,而是写清楚「要归因的行为是什么」。用 query loss 当默认代理在很多场景是口径错配:模型真正被关心的行为可能是某个 logit、某个 margin,或者下游某类特定输出。表格里 RepSim 的 AUPRC 0.492 看着不差,误报率却比随机还高,说明只看单一指标会得出相反结论——选出来的一堆「有影响力」样本其实是带良性触发的正常样本。这条也解释了为什么跨论文的影响力排序难以复现:不是谁算错了,是估的本来就不是同一个量。

相关链接 论文:https://arxiv.org/abs/2609.31214