当前位置: 首页 > news >正文

CANN/torchtitan-npu SFT指令微调指南

SFT 指令微调

【免费下载链接】torchtitan-npuAscend Extension for torchtitan项目地址: https://gitcode.com/cann/torchtitan-npu

torchtitan-npu 支持基于对话数据的指令微调(Supervised Fine-Tuning, SFT)。当前已提供 Qwen3-30B-A3B 模型在 NPU 上的开箱即用 SFT 配置,支持 Ulysses Context Parallel 长序列训练。

快速开始:Qwen3-30B-A3B SFT

前置条件

  • 准备 Qwen3-30B-A3B 的 HuggingFace 预训练权重(如./assets/hf/Qwen3-30B-A3B
  • 准备训练数据集(详见数据预处理)

一键启动

MODULE=torchtitan_npu.models.qwen3 CONFIG=sft_qwen3_30ba3b_math bash scripts/run_train.sh

数据预处理

SFT 的数据预处理在torchtitan_npu/models/qwen3/config_registry.py的配置函数中完成。以sft_qwen3_30ba3b_math为例,它使用 GSM8K 数据集,process_sample将原始样本转为[user, assistant]消息列表:

def sft_qwen3_30ba3b_math() -> Trainer.Config: def process_sample(sample): answer = sample["answer"] reasoning, final_answer = answer.rsplit("####", 1) return [ {"role": "user", "content": sample["question"]}, { "role": "assistant", "reasoning_content": reasoning.strip(), "content": final_answer.strip(), }, ] # ... 其余配置 ... dataloader=ChatDataLoader.Config( dataset_path="openai/gsm8k", load_dataset_kwargs={"name": "main", "split": "train"}, sample_processor=process_sample, )

框架拿到process_sample返回的消息列表后,自动完成以下处理:

  1. 调用 tokenizer 的 chat template 将消息渲染为完整文本
  2. 通过增量前缀重 tokenize 定位 prompt/response 边界,对 prompt 部分做 label mask(仅对 assistant 回复计算 loss)
  3. 对多个样本做 greedy packing(将短样本打包到同一 seq_len 窗口,EOS 分隔,per-document position 重置)
  4. 超过 seq_len 的样本自动丢弃(而非截断)

消息格式

process_sample需返回如下格式的消息列表:

[ {"role": "user", "content": "用户输入"}, {"role": "assistant", "content": "助手回复"}, ]

Qwen3 支持 thinking mode,可在 assistant 消息中添加reasoning_content字段:

[ {"role": "user", "content": "用户输入"}, {"role": "assistant", "reasoning_content": "思考过程", "content": "最终回答"}, ]

限制:当前仅支持单轮对话(一条 user + 一条 assistant),暂不支持多轮。

Ulysses Context Parallel

torchtitan-npu 为 Qwen3 提供了 Ulysses 风格的 CP 实现。在配置中设置context_parallel_degree > 1即可启用:

bash scripts/run_train.sh --parallelism.context_parallel_degree 4

关于 Ulysses CP 的实现原理和约束条件,详见自定义 Context Parallel 特性文档。

权重加载与保存

加载预训练权重

SFT 配置默认从 HuggingFace 格式加载预训练权重:

--checkpoint.initial_load_in_hf true \ --checkpoint.initial_load_path /path/to/Qwen3-30B-A3B

注意checkpoint.folder不能与checkpoint.initial_load_path相同,否则框架会跳过 HuggingFace 权重加载。

切换为自己的预训练权重

修改checkpoint.initial_load_pathhf_assets_path指向新的权重目录:

--checkpoint.initial_load_path /path/to/your/model \ --model.hf_assets_path /path/to/your/model

保存训练后的权重

训练完成后,权重会自动保存到checkpoint.folder指定的路径。可通过checkpoint.interval设置保存间隔:

--checkpoint.folder /path/to/save \ --checkpoint.interval 100

如仅需加载权重而不保存(如调试时),设置--checkpoint.load_only true

常见问题

Q: 数据集跑完一轮就停了?

默认dataloader.infinite=true,数据集会无限循环。如果设为 false,数据遍历完一轮后训练会停止。可通过 CLI 覆盖:

--dataloader.infinite true

Q: 超长样本被丢弃了?

ChatDataset会自动丢弃 token 数超过seq_len的样本(而非截断),日志中会打印Dropping sample提示。可增大seq_len或开启 Ulysses CP 来容纳更长样本。

【免费下载链接】torchtitan-npuAscend Extension for torchtitan项目地址: https://gitcode.com/cann/torchtitan-npu

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/859139/

相关文章:

  • BCFtools基因组变异数据处理架构深度解析与技术实现
  • SpringbootWeb【入门】+Mysql【安装】
  • 亲测:2026年爱彼售后网络升级全流程解析——客观解析新服务网络与热线变化 - 亨得利官方服务中心
  • java springboot-vue 实验报告管理系统的设计与实现
  • 2026年新疆旅游深度指南:疆都国旅高品质直营游、研学游、党建红培全方位对标 - 优质企业观察收录
  • 博德之门3脚本扩展器:如何用代码重新定义你的冒险体验?
  • MySQL错误提示mysql Statement violates GTID consistency
  • 告别nRFgo Studio!Win10/Mac下用J-Flash给nRF52832烧写蓝牙协议栈S132的保姆级教程
  • Gmail 注册新门槛:当“验证”开始要求你主动发送短信与扫描 QR 码
  • ‌智慧校园选型避坑指南:三大关键点轻松搞定
  • Steam Economy Enhancer终极指南:快速提升Steam市场交易效率的完整教程
  • CANN/asc-devkit SIMT h2exp10函数
  • WebSocket配置IIS代理
  • 5分钟掌握PCB逆向分析:OpenBoardView免费开源工具深度解析
  • 常州黄金回收选哪家靠谱?2026 年本地口碑回收品牌推荐,无任何隐形扣 - 恒顺黄金回收
  • UV-UI全栈前端框架架构解析与深度指南
  • 3步解锁:告别数据丢失恐惧的微信聊天记录本地化备份方案
  • 猫抓Cat-Catch:浏览器资源嗅探技术的3大架构演进与实战解析
  • 湖南话AI配音效率提升300%?实测ElevenLabs批量生成+本地SSML方言标记技巧(含长沙话“咯”“哒”“唦”语法模板)
  • Windows 搭建 OpenClaw 数字员工|零代码自动化配置指南
  • CANN add_abs逐元素算子
  • MTK设备Bootloader解锁与授权绕过技术深度解析:mtkclient-gui实战指南
  • 多语种语音合成新突破,ElevenLabs维吾尔语TTS上线即受限?3类企业正在紧急迁移替代方案
  • 2026年佛山定制家居五金代理商破局指南:从低毛利内卷到高端供应链的蜕变 - 企业名录优选推荐
  • MAPDN:突破性多智能体强化学习框架实现电力配电网电压智能控制实战指南
  • k8s部署lowcoder 2.6.4
  • 5分钟快速上手:用Vue+SVG轻松绘制专业网络拓扑图
  • 紫微斗数排盘新选择:iztro 5分钟极速入门指南
  • 微积分基础2-积分篇
  • Lovable + Kotlin Multiplatform落地实战:单代码库支撑iOS/Android/Web三端,已验证于百万级DAU项目(含Gradle构建耗时优化42%方案)