UltraX-0.6B-Preview / README_ZH.md
BigDong's picture
Update README_ZH.md (#4)
18d7c03
|
Raw
History Blame Contribute Delete
6.09 kB

UltraX:基于自适应程序化编辑的大规模预训练数据精炼

OpenBMB UltraData
UltraX Logo

📜 论文 | 💻 代码 | 🤗 数据集 | 📦 UltraData 合集 | 📄 License: Apache 2.0

English | 中文

📚 简介

UltraX 是一个面向大规模预训练数据的函数调用式精炼框架。与端到端文本改写不同,UltraX 训练一个轻量精炼模型来预测结构化编辑操作——包括插入、删除和修改——然后在原始文本上确定性执行。

本仓库提供 UltraX 精炼模型,通过全参数 SFT 训练,可预测网页文本的清洗函数调用:

模型 说明
UltraX 默认模型:指令引导 + 编辑偏置采样(主实验配置)
UltraX-No-Instruction 消融变体:无系统指令训练
UltraX-Preservation-Weighted 消融变体:保留偏置采样(60% keep_all)

📢 最新动态

  • [2026.07.13] UltraX 代码库、精炼模型和精炼数据集现已在 GitHub 与 Hugging Face 上发布。🚀🚀🚀
  • [2026.07.10] UltraX 技术报告已发布于 arXiv。🔥🔥🔥

💡 亮点

  • 函数调用式精炼: UltraX 不进行端到端文本改写,而是预测结构化编辑操作(keep_allremove_allremove_linesreplace_stradd_line),实现细粒度实例级编辑与确定性执行。
  • LAM + DCR 流水线: 行级对齐与映射(LAM)在行级别对齐原始文本与精炼文本,动态上下文替换(DCR)将字符级编辑转化为具有唯一上下文锚定的可靠 replace_str 操作。
  • 轻量高效: 精炼模型是标准 SFT 模型,预测结构化函数调用,相比端到端 LLM 改写成本显著更低,同时性能更优。

🔬 流程概览

🔍 模型详情

所有模型使用以下配置训练:

配置项
训练框架 ms-swift + DeepSpeed ZeRO3
训练类型 全参数 SFT
最大序列长度 20,480 tokens
学习率 3e-5(余弦衰减,最小 lr 3e-6)
预热比例 0.03
精度 bfloat16
硬件 8x GPU

模型变体

  • UltraX(指令引导,编辑偏置): 默认配置。模型在系统指令下训练,定义了编辑操作和清洗规则,使用编辑偏置采样策略。
  • UltraX-No-Instruction: 无系统指令训练。实验表明,即使没有显式任务协议,程序化精炼仍能带来明显提升(平均分:45.73 vs Raw 45.08),但指令引导可进一步提升性能(平均分:46.14)。
  • UltraX-Preservation-Weighted: 使用保留偏置采样,keep_all 占训练数据的 60%。在部分任务上(ARC-C、ARC-E、OBQA、SciQ)表现更强,展示了编辑积极性与内容保留之间的平衡。

📈 评估结果

在 FineWeb 上的性能对比(20B tokens,1B MiniCPM,10 个基准,零样本):

FineWeb Token 曲线

FineWeb 在不同训练 token 预算下的平均下游性能。

🔧 函数空间

模型预测以下函数空间中的操作:

函数 说明
keep_all() 文档无需修改
remove_all() 整篇文档无价值(如错误页面、登录墙)
remove_lines(start, end) 删除从 start 到 end 的连续行(含首尾)
replace_str(line, old, new) 在指定行内替换子字符串
add_line(base, sub_idx, content) 在指定位置附近插入新行

输入/输出格式

输入: 带行号标记(<lid:N> 前缀)的文本,前置系统指令。

输出: 每行一个函数调用序列。示例:

remove_lines(1, 3)
replace_str(5, 'Click here to subscribe', '')
remove_lines(12, 15)

🚀 快速开始

from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("openbmb/UltraX-0.6B-Preview")
tokenizer = AutoTokenizer.from_pretrained("openbmb/UltraX-0.6B-Preview")

❤️ 致谢

  • 精炼模型使用 ms-swift 进行训练。
  • UltraX 的设计借鉴了 ProX 和 RefineX 的研究成果。

感谢以上优秀的开源工作!🙌

📖 引用

如果我们的工作对您有帮助,请考虑引用:

@misc{ultrax2026,
  title={UltraX: Refining Pre-Training Data at Scale with Adaptive Programmatic Editing},
  author={Xinlong Zhao and Dongsheng Liu and Hengyu Zhao and Zixuan Fu and Zheng Wang and Jie Cai and Jie Zhou and Qiang Ma and Xuanhe Zhou and Xu Han and Yudong Wang and Zhiyuan Liu},
  year={2026},
  eprint={2607.08646},
  archivePrefix={arXiv},
  primaryClass={cs.CL},
}

📜 许可证

本项目基于 Apache 2.0 许可证发布。