文件最后提交记录最后更新时间
4 小时前
4 小时前
4 小时前
4 小时前
4 小时前
4 天前
4 天前
4 天前
22 天前
16 天前
4 小时前
README

Wordle 两阶段训练教程

本系列教程教授 Ascend NPU 开发者完成 Wordle 猜词任务的两阶段训练:SFT(监督微调)→ RL(强化学习)

  • SFT 阶段01-sft):使用 torchtitan-npu 框架,让 Qwen3-1.7B 模仿 Wordle 轨迹中的 <think>...</think><guess>[word]</guess> 输出协议,并评测其格式与规则遵守行为。
  • RL 阶段02-rl):使用 verl 框架 + GRPO 算法,让模型学会策略性猜词,提高 6 轮内猜中率:见 RL 教程

前置条件

  • 无须具备 SFT 或 TorchTitan 经验。
  • 建议了解 Python,以及 PyTorch 的 forward → loss → backward → update 基本流程;不熟悉的读者可结合第 1、2 章中的补充说明学习。

软硬件配套说明

项目 要求
支持硬件 Atlas A3 训练/推理系列产品
CANN 版本 9.0.0 及以上
Python 3.11

在线体验环境

本教程支持以下在线体验环境:

体验环境 镜像模板 / 版本 Python 内核 说明
CANNLab 云开发环境 cann_9.0.0 py3.11-A3-arm Python 3.11.4 参考 CANNLab 环境体验指南创建CANNLab环境运行notebook

在仓库页面进入 CANNLab 在线开发环境

注意: 如在本地环境离线体验,需自行安装配套的 CANN 软件,具体请参考 CANN 安装指南

课程内容

序号 主题 主要内容 课件
01 SFT 监督微调 Wordle 任务、SFT 原理、TorchTitan/FSDP、基线训练、推理评测、Attention/VarLen/通信优化与融合算子性能优化 01_sft_training_pipeline.pptx

教程结构

01-sft:Wordle SFT 监督微调

第 1 章:SFT 概念与 Wordle 任务 (01_sft_and_wordle/)

Notebook 内容
01.01 章节介绍 两阶段训练方案(SFT → RL),本章目标
01.02 Wordle 任务介绍 游戏规则、为什么选 Wordle、评测指标、数据格式
01.03 SFT 概念与原理 next-token CE、shifted labels、assistant mask、三阶段对比
01.04 章节练习 选择题 + 判断题

第 2 章:TorchTitan 框架与环境配置 (02_torchtitan_framework/)

Notebook 内容
02.01 章节介绍 教程进度回顾、本章结构、前置条件、预期成果
02.02 FSDP 原理与 TorchTitan 框架 从 DDP 到 FSDP、FSDP2、TorchTitan 启动流程、model_registry
02.03 环境配置 验证当前仓库、安装依赖、环境检查与轻量训练 smoke
02.04 章节练习 选择题 + 判断题

第 3 章:训练配置与基线训练 (03_sft_training/)

Notebook 内容
03.01 章节介绍 三步流程(配置 → 训练 → 评测)与结果检查
03.02 训练配置构建 数据管线、训练配置、学习率调度、多卡并行、activation checkpoint
03.03 运行基线 SFT 两 rank 训练、日志验收、HF checkpoint reload
03.04 推理验证 受管推理服务、固定 vf-eval、base/SFT 结果文件
03.05 章节练习 数据、训练、checkpoint 与评测综合审阅

第 4 章:融合算子优化与 Profiling (04_fused_operators/)

Notebook 内容
04.01 章节介绍 数值正确性、端到端性能与 trace 的检查顺序
04.02 融合算子原理与接入 动态匹配、Parameter identity、forward/backward correctness
04.03 Profiling 实操 稳定 recipes、显式 trace 配对、重复 step-time 测量
04.04 Profiling 结果分析 当前结果文件的时间口径、单位与结论边界
04.05 章节练习 correctness、manifest、trace 与结论综合审阅

第 5 章:注意力算子优化 (05_attention_operators/)

Notebook 内容
05.01 章节介绍 注意力算子优化的目标与章节安排
05.02 Attention 核心路径 从 SDPA 到 VarLen
05.03 Attention 算子基准测试 从算子层验证 Attention 理论
05.04 TorchTitan 数据路径 SFT 数据路径:模型怎么知道新样本从哪里开始
05.05 TorchTitan Attention 接入 TorchTitan 如何把 Metadata 喂给 Kernel
05.06 章节练习 章节练习

第 6 章:变长注意力优化:从 Sequence Packing 到 TND Attention (06_varlen_attention/)

Notebook 内容
06.01 章节介绍 变长注意力优化的整体目标
06.02 问题定义 Packed SFT 的 Attention 问题
06.03 数据装箱 SFT DataLoader:Non-greedy 与 Greedy Packing
06.04 数据加载分析 DataLoader 与短程训练对比
06.05 VarLen Attention 从 Causal SDPA 到 Block-Causal Varlen Attention
06.06 端到端 Profiling 端到端 Profiling
06.07 章节练习 章节练习

第 7 章:分布式通信演示 (07_distributed_comms/)

Notebook 内容
07.01 章节介绍 分布式通信演示的学习目标
07.02 FSDP 通信 FSDP:参数 all-gather 与梯度 reduce-scatter
07.03 TP 通信 经典 TP 基线与 TorchTitan TP+SP
07.04 CP 通信 CP:Ulysses all-to-all 与序列/head 布局交换
07.05 通信体积与重叠 FSDP / TP / CP:从通信耗时到并行选择
07.06 章节练习 章节练习

第 8 章:通信优化与 VarLen 协同 (08_comm_optimizations/)

Notebook 内容
08.01 章节介绍 VarLen+FSDP、VarLen+CP 与 Profiling 的学习目标
08.02 VarLen 与 CP 交互 Varlen+FSDP 短序列 vs Varlen+CP 长序列
08.03 TorchTitan Profiling TorchTitan-NPU Profiling:Varlen+FSDP 4096 vs Varlen+CP 8192
08.04 Profiling 分析 Profiling 分析:Varlen+FSDP 4096 vs Varlen+CP 8192
08.05 章节练习 章节练习

参考链接