首页 / 资讯中心 / 文章详情

DataFlex:LLM训练动态数据调度框架终极指南——动态数据选择、混合与加权一网打尽

DataFlex:LLM训练动态数据调度框架终极指南——动态数据选择、混合与加权一网打尽 ★ FEATURED ARTICLE
DataFlexLLM训练动态数据调度框架终极指南——动态数据选择、混合与加权一网打尽【免费下载链接】DataFlex可用于大模型训练时动态进行训练动态训练数据选择、领域比例调整及动态加权提升训练速度和性能与 LLaMA-Factory 无缝集成提供灵活强大的训练控制能力。项目地址: https://gitcode.com/OpenDCAI/DataFlexDataFlex是一个构建在 LLaMA-Factory 之上的大模型动态训练数据调度框架能在 LLM 训练循环中实时完成动态数据选择、数据混合领域比例调整与数据重加权帮助新手和普通用户在不动训练代码的前提下提升训练速度与最终模型性能。作为 NeurIPS 2026 录用的数据中心训练系统它把大量难以复现的数据调度算法整合进一个统一、可复现的开源框架。为什么需要动态数据调度传统 LLM 训练把数据集一视同仁地喂给模型但数据其实有大有小有些样本价值低重复、简单或噪声样本浪费算力训练慢还拖累效果各数据域比例失衡网页、代码、百科等域的最优配比并非均等固定配比难以适应训练进程难样本被淹没模型真正需要突破的困难样本在大批量中几乎没被重点对待。DataFlex 的思路是在训练循环内部边训边调度定期暂停、评估模型状态、重新挑选样本或调整比例与权重再继续训练。这样既提升了数据利用率又显著减少了无效计算。3大核心能力一览DataFlex 把数据中心训练的三大研究方向全部整合进来并通过统一的 YAML 配置一键启用1️⃣ 动态数据选择Data Selection按策略动态挑选最值得练的样本例如优先关注困难样本或接近验证集分布的样本算法类别是否需要模型参与说明LESS基于梯度是选与验证集梯度相似的样本NICE基于梯度是神经网络重要性采样 奖励模型Loss / Delta Loss基于损失是按当前损失或损失变化窗口选样TSDS / NEAR基于数据分布否用预计算概率或最近邻索引选样Random / Custom基线/自定义否随机采样或用户自定义逻辑2️⃣ 动态数据混合Data Mixture训练过程中动态调整不同数据域的采样比例解决配比失衡问题算法类型说明DoReMi离线混合三步流水线静态训练参考模型 → 动态优化域权重 → 按最优比例训练最终模型ODM在线混合用 Exp3 多臂老虎机根据各域损失在线调整比例Static / Random固定/随机基线方法用于对照实验3️⃣ 动态数据重加权Data Reweighting不丢弃任何样本而是在反向传播时动态调整每条样本的 loss 权重让模型多看它偏好的数据算法类别说明Loss Reweighting基于损失提供linupper、quadratic等加权策略ADAPT基于相似度按样本与锚点集eval_dataset的嵌入相似度加权Joint-Update-Aware批次感知全局批内冗余折扣避免重复学习相似样本除三大核心能力外DataFlex 还提供**数据重排序Reorder**与Lego 分层流水线等进阶玩法详见 src/dataflex/reorder/ 与 src/dataflex/lego/ 模块。快速上手两步完成安装环境要求 Python 3.11LLaMA-Factory 0.9.5 会自动随依赖安装。先装好 PyTorchpip install --index-url https://download.pytorch.org/whl/cu124 \ torch2.6.0 torchvision0.21.0 torchaudio2.6.0然后安装 DataFlexpip install dataflex # 或源码安装开发向 git clone https://gitcode.com/OpenDCAI/DataFlex cd DataFlex pip install -e . 可选依赖按需安装DeepSpeed 配置需pip install dataflex[deepspeed]LESS 选择器需pip install dataflex[less]内含 TRAK。一行命令启动动态训练DataFlex 提供独立 CLI 入口dataflex-cli用法与 LLaMA-Factory 几乎一致例如运行 LESS 动态数据选择dataflex-cli train examples/train_lora/selectors/less.yaml还支持 OmegaConf 风格的命令行覆盖参数多卡训练加FORCE_TORCHRUN1即可。配置文件的区别只在于多了几个DataFlex 专属字段最常用的就是train_typetrain_type对应能力典型 component_namedynamic_select动态数据选择less、nice、loss、tsds、near、randomdynamic_mix动态数据混合doremi、odm、staticdynamic_weight动态数据重加权loss、adapt、joint_update_awarestatic默认原生 LLaMA-Factory 训练无其余关键参数warmup_step预热步数预热期内用常规训练之后才启用动态机制update_step/update_times动态更新的间隔步数与每轮 Flex epoch 的更新次数init_mixture_proportions混合训练时各数据域的初始比例如[0.5, 0.5]。以动态混合为例dataset字段用逗号列出多个数据集train_type: dynamic_mix component_name: doremi mixture_sample_rule: mixture init_mixture_proportions: [0.5, 0.5] warmup_step: 100 update_step: 200所有算法的具体参数梯度投影维度、加权策略、老虎机探索率等集中在 src/dataflex/configs/components.yaml改这一个文件即可切换算法和调参。实验效果比默认训练更强项目实验表明DataFlex 的调度算法全面优于随机选择基线与固定配比基线数据选择/重加权在 Open-Hermes 子集上训练后LESS、NICE、Loss 选择器及 Loss 重加权在 MMLU 相关子集上的准确率均显著超过 random 基线数据混合以 SlimPajama-627B 为例ODM 在 6B 模型上将 MMLU 准确率从 25.27 提升到26.0430B 模型上整体困惑度PPL从 3.584 降至3.429DoReMi 同样让 MMLU 稳步上涨。更多指标见 README.md 中的实验表格。常用目录与资料导航路径内容examples/train_lora/selectors/各选择器 LoRA 训练示例配置examples/train_full/mixers/DoReMi 三步与 ODM 全参训练示例examples/train_lora/weighters/动态重加权示例配置examples/deepspeed/DeepSpeed ZeRO 各档位配置skills/how_to_use.md完整使用手册CLI、YAML 字段、训练模式skills/how_to_add_algorithm.md如何注册并添加新选择器/混合器/加权器data/dataset_info.json内置演示数据集注册表alpaca、wiki、c4 等常见问题速查Q我完全不懂配置从哪个示例开始从 examples/train_lora/selectors/random.yaml 跑通流程再把component_name换成less或loss体验真实效果。Q不指定 train_type 会发生什么默认走static模式与原生 LLaMA-Factory 行为完全一致——DataFlex 即插即用零破坏性。Q支持多卡与 DeepSpeed 吗支持。FORCE_TORCHRUN1启用 torchrun 多卡examples/deepspeed/ds_z3_config.json 等配置覆盖 ZeRO-0 到 ZeRO-3已支持 ZeRO-3 下梯度计算。Q模型导出/合并 LoRA 用什么命令继续沿用llamafactory-cli export示例见 examples/merge_lora/。DataFlex 把动态数据选择、混合、重加权这三件过去分散且难复现的事压缩成改一行 YAML 配置的事。无论你想提升微调效率、优化预训练数据配比还是复现论文中的数据中心算法它都是当前与 LLaMA-Factory 生态结合最紧密的解决方案。【免费下载链接】DataFlex可用于大模型训练时动态进行训练动态训练数据选择、领域比例调整及动态加权提升训练速度和性能与 LLaMA-Factory 无缝集成提供灵活强大的训练控制能力。项目地址: https://gitcode.com/OpenDCAI/DataFlex创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站