ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

DataFlex 8种数据选择算法横向对比:LESS、NICE、TSDS、NEAR、Loss实战指南

DataFlex 8种数据选择算法横向对比:LESS、NICE、TSDS、NEAR、Loss实战指南 DataFlex 8种数据选择算法横向对比LESS、NICE、TSDS、NEAR、Loss实战指南【免费下载链接】DataFlex可用于大模型训练时动态进行训练动态训练数据选择、领域比例调整及动态加权提升训练速度和性能与 LLaMA-Factory 无缝集成提供灵活强大的训练控制能力。项目地址: https://gitcode.com/OpenDCAI/DataFlexDataFlex是构建在 LLaMA-Factory 之上的大模型动态训练数据调度框架支持训练过程中的动态数据选择、领域比例调整与动态加权已入选 NeurIPS 2026。本文横向对比其中 8 种数据选择算法LESS、NICE、Loss、Delta Loss、TSDS、NEAR、Random、Custom帮你 3 分钟选对适合自己的大模型数据选择方案。为什么需要大模型动态数据选择大模型 SFT / 预训练时喂什么数据、按什么顺序喂直接影响最终效果。DataFlex 在 README 的实测中表明在 Open-Hermes-2.5 子集上训练后各种动态数据选择算法在 MMLU 子集上均优于 Random 随机选择基线且与 LLaMA-Factory 配置完全兼容、可无缝替换 其核心机制很简单先用随机数据预热warmup_step之后每隔update_step步暂停训练由选择器重新挑选下一批样本重建数据加载器。详见 skills/how_to_use.md。DataFlex 8种数据选择算法总览所有算法的超参预置在 src/dataflex/configs/components.yaml训练时只需改一行component_name即可切换算法component_name类别训练中需模型参与额外依赖源码位置LESSless梯度类✅验证集 TRAK 插件less_selector.pyNICEnice梯度 奖励模型✅奖励模型vLLM 或 APInice_selector.pyLossloss损失类✅无loss_selector.pyDelta Lossdelta_loss损失类✅无delta_loss_selector.pyTSDStsds分布类❌离线概率文件tsds_selector.pyNEARnear分布类❌离线近邻索引near_selector.pyRandomrandom随机采样❌无random_selector.pyCustomcustom自定义模板❌自己实现custom_selector.py 表中训练中需模型参与Model-in-the-Loop指选择时需要调用当前训练模型做前向/反向传播。为 True 的算法更智能但开销更大为 False 的算法几乎零额外成本。如何选择按 3 大类对号入座一、梯度类LESS 与 NICE效果上限最高代价也最高LESS计算训练样本与验证集的梯度相似度挑出对目标任务最有影响力的样本。需要配置eval_dataset并安装可选依赖pip install dataflex[less]。适合有明确目标任务、且追求最优效果的场景。NICE在梯度信号之上叠加奖励模型打分本地 vLLM 或 API 两种方式均可配置对生成式指令数据更敏感。适合RLHF / 指令微调类数据。两者的默认超参proj_dim、save_interval、奖励模型后端等都写在 components.yaml示例配置见 examples/train_lora/selectors/less.yaml。二、损失类Loss 与 Delta Loss性价比之选Loss按当前训练 loss 给样本打分用focus参数选择聚焦高损失难题、中损失还是低损失样本简单直观。Delta Loss看的是loss 的变化量而非绝对值——在一个滑动窗口内loss 下降快或波动大的样本说明模型正在学它优先选中。适合训练后期想挖掘高价值样本的场景。两者都不需要验证集和额外插件是新手最推荐先试的动态数据选择方案 ✅三、分布类TSDS 与 NEAR离线一次训练零开销TSDS先离线运行 offline_tsds_selector.py 生成采样概率文件tsds_probs.npy训练时按概率无重复采样。NEAR先离线运行 offline_near_selector.py 生成近邻索引top_indices.npy训练时按最近邻顺序挑选样本。适合数据量大、GPU 预算紧张、不想在训练循环里插入前向计算的团队。四、基线与扩展Random 与 CustomRandom随机采样是所有花样算法的对照基线——做任何实验前先跑一遍它。Custom自定义数据选择器的模板实现select()一个方法即可接入 DataFlex 的动态调度框架适合有自研算法的团队。一键启动动态数据选择训练所有选择器共用同一套启动方式以 LESS 为例dataflex-cli train examples/train_lora/selectors/less.yaml各算法的示例配置一一对应nice.yaml、loss.yaml、delta_loss.yaml、tsds.yaml、near.yaml、random.yaml。切换算法只需把component_name改成对应名称即可 多卡训练可加FORCE_TORCHRUN1前缀LESS 等梯度类算法在 DeepSpeed ZeRO-3 下也可正常工作。实战结果数据选择算法效果对比DataFlex 官方在 MMLU 子集上评测了各选择器训练集为 Open-Hermes-2.5 十万元子集LESS 与 NICE 使用 GPT-5 生成的 CoT 轨迹作为验证集。结果显示Loss、Delta Loss、LESS、NICE 等动态选择器全面超过 Random 基线其中梯度类方法提升最为明显。混合训练DoReMi、ODM 等 mixer方面官方在 SlimPajama-6B/30B 上也给出了 MMLU 准确率与各域困惑度的完整对比表格详见 README.md。彩蛋DataFlex 也吃得多模态数据除了纯文本DataFlex 的数据选择同样覆盖多模态 SFT。项目自带的 MMFineReason 演示数据mmfinereason_sft_demo.json中就嵌入了如下题目图片多模态全量 SFT 配置可参考 examples/train_full/sft/multimodal_fullsft.yaml。总结一张表搞定选型 你的情况推荐算法有明确验证集、追求极限效果LESS / NICE新手入门、追求性价比Loss / Delta Loss数据量大、想省训练开销TSDS / NEAR做对照实验Random有自研选择策略Custom选错一个算法可能浪费数周训练时间建议按Random 基线 → Loss 快速验证 → 梯度类冲上限的顺序渐进式升级。更多配置细节与新增算法教程请查阅 skills/how_to_use.md 与 skills/how_to_add_algorithm.md。【免费下载链接】DataFlex可用于大模型训练时动态进行训练动态训练数据选择、领域比例调整及动态加权提升训练速度和性能与 LLaMA-Factory 无缝集成提供灵活强大的训练控制能力。项目地址: https://gitcode.com/OpenDCAI/DataFlex创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表