已合并
[fix] 文档版本描述修改及ci脚本修改 #521
[fix] 文档版本描述修改及ci脚本修改 #521
已合并
刘原辰创建于 18 天前
3 个文件变更+37-8
M.ci/unit_test.sh+17-2
@@ -19,6 +19,7 @@ TORCHTITAN_BRANCH="main"
19TORCHTITAN_COMMIT="ac13e536c84e7f6647b14fa9375c3c8a8a2b8578"19TORCHTITAN_COMMIT="ac13e536c84e7f6647b14fa9375c3c8a8a2b8578"
20TITAN_DIR="${PROJECT_ROOT}/third_party/torchtitan"20TITAN_DIR="${PROJECT_ROOT}/third_party/torchtitan"
21TIMEOUT_SECONDS=${TIMEOUT_SECONDS:-300}21TIMEOUT_SECONDS=${TIMEOUT_SECONDS:-300}
22+upstream_exit_code=0
22 23 
23 24 
24# Run torchtitan upstream unit tests (with NPU patches applied)25# Run torchtitan upstream unit tests (with NPU patches applied)
@@ -98,10 +99,24 @@ EOF
98 echo "No torchtitan tests found to run."99 echo "No torchtitan tests found to run."
99 else100 else
100 echo "Torchtitan upstream tests failed (exit_code=$exit_code)"101 echo "Torchtitan upstream tests failed (exit_code=$exit_code)"
101- exit $exit_code102+ upstream_exit_code=$exit_code
102 fi103 fi
104+ 
105+ return 0
103}106}
104 107 
105run_upstream_ut108run_upstream_ut
106cd "$PROJECT_ROOT"109cd "$PROJECT_ROOT"
107-PYTHONPATH="${TITAN_DIR}:${PROJECT_ROOT}:${PYTHONPATH}" python3 -m pytest -v --tb=short tests/unit_tests110+if PYTHONPATH="${TITAN_DIR}:${PROJECT_ROOT}:${PYTHONPATH}" \
111+ python3 -m pytest -v --tb=short tests/unit_tests; then
112+ local_exit_code=0
113+else
114+ local_exit_code=$?
115+fi
116+ 
117+echo "Unit test summary: upstream=${upstream_exit_code}, torchtitan-npu=${local_exit_code}"
118+ 
119+if [[ $upstream_exit_code -ne 0 ]]; then
120+ exit "$upstream_exit_code"
121+fi
122+exit "$local_exit_code"
Mdocs/test_guides/test_guide.md+2-0
@@ -10,6 +10,8 @@ bash .ci/unit_test.sh
10python3 -m pytest -v --tb=short tests/unit_tests10python3 -m pytest -v --tb=short tests/unit_tests
11```11```
12 12 
13+`.ci/unit_test.sh` 会依次执行两组单元测试。即使上游 UT 失败,本仓 UT 仍会继续执行;两组测试结束后脚本会输出退出码汇总,任意一组失败时最终返回非零退出码。
14+ 
13### 冒烟测试15### 冒烟测试
14```bash16```bash
15# 运行 smoke 套件(torchtitan-npu 集成 smoke + tests/smoke_tests)17# 运行 smoke 套件(torchtitan-npu 集成 smoke + tests/smoke_tests)
Mdocs/user-guides/quickstart.md+18-6
@@ -1,9 +1,9 @@
1# 快速上手1# 快速上手
2 2 
3-参考 [软件安装](./installation.md) 准备环境后,以DeepSeek-V3.2模型为例,按照如下步骤在 NPU 平台上运行3+参考 [软件安装](./installation.md) 准备环境后,即可在 NPU 平台上运行 torchtitan-npu。
4-torchtitan-npu4+`scripts/run_train.sh` 默认使用 Qwen3-0.6B debug 配置;下文同时提供 DeepSeek-V3.2 示例
5 5 
6-## 数据准备6+## 数据准备(DeepSeek-V3.2 示例)
7 7 
81. 准备 Tokenizer [(以 DeepSeek-V3.2 网络为例)](https://huggingface.co/deepseek-ai/DeepSeek-V3.2/tree/main)。81. 准备 Tokenizer [(以 DeepSeek-V3.2 网络为例)](https://huggingface.co/deepseek-ai/DeepSeek-V3.2/tree/main)。
9 9 
@@ -27,6 +27,8 @@ hf_assets_path="./deepseekv3.2-tokenizer",
27测试场景可直接使用项目预置在 `tests/assets/tokenizer/deepseekv3_tokenizer/` 的 tokenizer,无需重复下载:27测试场景可直接使用项目预置在 `tests/assets/tokenizer/deepseekv3_tokenizer/` 的 tokenizer,无需重复下载:
28 28 
29```bash29```bash
30+MODULE=torchtitan_npu.models.deepseek_v32 \
31+CONFIG=deepseek_v32_671b_4layers_debug \
30bash scripts/run_train.sh --hf_assets_path ./tests/assets/tokenizer/deepseekv3_tokenizer32bash scripts/run_train.sh --hf_assets_path ./tests/assets/tokenizer/deepseekv3_tokenizer
31```33```
32 34 
@@ -62,10 +64,20 @@ source /usr/local/Ascend/cann/opp/vendors/custom_transformer/bin/set_env.bash
62 64 
63### 单机训练任务65### 单机训练任务
64 66 
65-默认配置以 16 NPU 启动 DeepSeek-V3.2 4层debug模型训练任务:67+脚本默认配置以 16 NPU 启动 Qwen3-0.6B debug 模型训练任务:
66```bash68```bash
67bash scripts/run_train.sh69bash scripts/run_train.sh
68```70```
71+该默认配置使用项目预置的 `tests/assets/tokenizer/qwen3-tokenizer/``tests/assets/c4_test/`,不依赖上方的 DeepSeek tokenizer。
72+ 
73+本页前面的数据准备以 DeepSeek-V3.2 为例。如需启动 DeepSeek-V3.2 4 层 debug
74+模型,请显式指定对应的模块和配置:
75+ 
76+```bash
77+MODULE=torchtitan_npu.models.deepseek_v32 \
78+CONFIG=deepseek_v32_671b_4layers_debug \
79+bash scripts/run_train.sh
80+```
69 81 
70自定义配置,调整训练步数和全局 batch size:82自定义配置,调整训练步数和全局 batch size:
71 83 
@@ -76,8 +88,8 @@ bash scripts/run_train.sh \
76```88```
77 89 
78> [!NOTE]90> [!NOTE]
79-> * `MODULE`: 指定模型 Python 模块,默认 `torchtitan_npu.models.deepseek_v32`。切换模型时改为对应模块,例如 DeepSeek-V4 改为 `torchtitan_npu.models.deepseek_v4`。91+> * `MODULE`: 指定模型 Python 模块,默认 `torchtitan_npu.models.qwen3`。切换模型时改为对应模块,例如 DeepSeek-V3.2 改为 `torchtitan_npu.models.deepseek_v32`,DeepSeek-V4 改为 `torchtitan_npu.models.deepseek_v4`。
80-> * `CONFIG`: 指定 `config_registry.py` 中的配置函数,默认 `deepseek_v32_671b_4layers_debug`。需与 `MODULE` 对应同一模型,例如 DeepSeek-V4 改为 `debug_deepseek_v4_flash_single_node`。92+> * `CONFIG`: 指定 `config_registry.py` 中的配置函数,默认 `debug_qwen3_06b_single_node`。需与 `MODULE` 对应同一模型,例如 DeepSeek-V3.2 4 层 debug 配置为 `deepseek_v32_671b_4layers_debug`,DeepSeek-V4 改为 `debug_deepseek_v4_flash_single_node`。
81> * `NGPU`: 指定单机或多机每节点参与训练的 NPU 数量;`scripts/run_train.sh` 默认值为 16,`scripts/run_train_multinodes.sh` 默认值为 8。93> * `NGPU`: 指定单机或多机每节点参与训练的 NPU 数量;`scripts/run_train.sh` 默认值为 16,`scripts/run_train_multinodes.sh` 默认值为 8。
82> * `training.allow_hf32`:控制 NPU MatMul、Conv、aclnn 算子是否启用 HF32,默认启用,无需传参;关闭时添加 `--training.no-allow_hf32`,这是 Tyro 为该布尔字段自动生成的反向选项。94> * `training.allow_hf32`:控制 NPU MatMul、Conv、aclnn 算子是否启用 HF32,默认启用,无需传参;关闭时添加 `--training.no-allow_hf32`,这是 Tyro 为该布尔字段自动生成的反向选项。
83> * `--training.steps` 与 `--training.global_batch_size`: 动态覆盖 registry 配置中的字段。95> * `--training.steps` 与 `--training.global_batch_size`: 动态覆盖 registry 配置中的字段。