ARTICLE DETAIL

资讯详情

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

MindSpeed-LLM 数据预处理完整指南:预训练与SFT数据一键转换实操

MindSpeed-LLM 数据预处理完整指南:预训练与SFT数据一键转换实操 MindSpeed-LLM 数据预处理完整指南预训练与SFT数据一键转换实操【免费下载链接】MindSpeed-LLM昇腾LLM分布式训练框架项目地址: https://gitcode.com/Ascend/MindSpeed-LLMMindSpeed-LLM昇腾LLM分布式训练框架通过一条preprocess_data.py命令即可将原始文本数据一键转换为预训练和 SFT监督微调可用的二进制索引格式覆盖 Alpaca、ShareGPT、多轮对话、DPO 配对等多种数据风格。本文面向新手手把手演示从数据准备到转换输出的完整流程帮你快速跑通昇腾环境下的模型数据管道。 为什么需要数据预处理大模型训练不直接吃原始文本而是先经过原始数据json/parquet 等→ 分词Tokenizer→ 模板拼接Prompt Template→ 二进制索引.bin .idx这一步决定了训练时的读取效率和训练效果。MindSpeed-LLM 将这一整套流程封装在入口脚本 preprocess_data.py 中底层由 data_handler.py 提供二十余种数据处理器Handler你只需选择对应的处理器名称即可。 准备工作环境与数据1️⃣ 加载昇腾环境变量按实际安装的 Toolkit 路径修改source /usr/local/Ascend/ascend-toolkit/set_env.sh2️⃣ 准备两样东西原始数据集支持.parquet / .csv / .json / .jsonl / .txt / .arrow格式可以是一个文件也可以是一个目录目录则批量处理全部文件模型词表目录如./model_from_hf/qwen3_hf/用于分词官方文档提供了常见数据集的下载方式可参考 预训练数据集处理文档 与 Alpaca风格文档。 场景一预训练数据一键转换预训练数据最简单——只需要一个text文本列。以 Qwen3 为例项目内置脚本为 data_convert_qwen3_pretrain.shpython ./preprocess_data.py \ --input ./dataset/train-00000-of-00042-d964455e17e96d5a.parquet \ --tokenizer-name-or-path ./model_from_hf/qwen3_hf/ \ --tokenizer-type PretrainedFromHF \ --handler-name GeneralPretrainHandler \ --output-prefix ./dataset/enwiki \ --json-keys text \ --workers 4 \ --log-interval 1000关键参数解读参数作用新手提示--handler-name数据处理器预训练固定用GeneralPretrainHandler--json-keys提取的列名默认text多列可写多个--tokenizer-type分词器类型PretrainedFromHF表示用 HF 模型目录--output-prefix输出文件前缀会生成xxx_document.bin/.idx文件--workers并行进程数数据量大时可调大加速其他模型的预训练转换脚本都遵循examples/mcore/模型名/data_convert_xxx_pretrain.sh的命名规范可参考 DeepSeek4 数据转换脚本。️ 场景二SFT 指令微调数据转换SFT 数据比预训练多一步按模型对话模板拼接 prompt。以 Alpaca 风格单轮指令数据为例python ./preprocess_data.py \ --input ./dataset/train-00000-of-00001-a09b74b3ef9c3b56.parquet \ --tokenizer-name-or-path ./model_from_hf/qwen25_hf/ \ --output-prefix ./finetune_dataset/alpaca \ --handler-name AlpacaStyleInstructionHandler \ --tokenizer-type PretrainedFromHF \ --workers 4 \ --prompt-type qwen \ --pack --neat-pack \ --seq-length 4096新手必懂的 3 个 SFT 要点①--prompt-type决定对话模板模板定义了模型长什么样内置选项包括qwen、qwen3、llama3、chatml、glm4、deepseek3等 30 余种完整清单见 templates.json。请务必选择与目标模型一致的模板。②--map-keys解决字段对不上的问题Alpaca 风格默认列名为instruction / input / output。如果你的数据集列名不同比如question / answer用字段映射解决例如 DPO 场景下的 data_convert_llama2_pairwise.sh--map-keys {prompt:question, query:, system:system}③--pack --neat-pack提升训练效率把多条短样本打包进一条 4096 长度的序列显著减少通信开销适合样本普遍偏短的场景参考 Qwen2.5 打包脚本。 进阶常见数据风格速查数据风格handler-name典型场景单轮指令AlpacaAlpacaStyleInstructionHandler最常见的 SFT 格式多轮对话ShareGPTSharegptStyleInstructionHandler多轮对话数据预训练纯文本GeneralPretrainHandler大规模语料DPO 偏好对AlpacaStylePairwiseHandler偏好对齐训练思考链CoTR1AlpacaStyleInstructionHandler推理模型训练更多处理器的实现都集中在 data_handler.pyShareGPT 风格数据格式详见 官方文档。多轮对话训练小技巧Qwen3 等推理模型建议加--enable-thinking true见 data_convert_qwen3_instruction.sh开启思考模式的数据构建。✅ 转换结果与常见坑转换成功后--output-prefix目录下会生成.bintoken 数据和.idx偏移索引成对文件训练脚本中通过--data-path直接引用即可。新手常见 3 个坑--output-prefix所在目录必须已存在否则会报错先mkdir -p创建模板选错会导致训练 loss 异常--prompt-type必须匹配模型不确定时对照 supported_models.md超长样本会被截断超过--seq-length的样本默认丢弃日志中会出现Dropped lengthy example警告属正常现象 小结MindSpeed-LLM 的数据预处理核心就一句话选对 Handler 配好模板 指定词表路径一条命令完成转换。预训练 →GeneralPretrainHandler最简单SFT →AlpacaStyleInstructionHandler/SharegptStyleInstructionHandler--prompt-type大吞吐 → 加--pack --neat-pack打包准备好数据后即可进入 预训练入门 开启正式训练。祝训练顺利【免费下载链接】MindSpeed-LLM昇腾LLM分布式训练框架项目地址: https://gitcode.com/Ascend/MindSpeed-LLM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表