From a9fd740c0dc7167f2b1d22b51717066a48b0316c Mon Sep 17 00:00:00 2001 From: cyb <694642680@qq.com> Date: Mon, 7 Sep 2026 15:12:06 +0800 Subject: [PATCH 1/4] =?UTF-8?q?[feature]=E6=94=AF=E6=8C=81trl=E7=9A=84quic?= =?UTF-8?q?k=20start=E6=96=87=E6=A1=A3=E6=B5=8B=E8=AF=95=E7=9C=8B=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/trl-quick-start.yml | 86 +++++++ index.rst | 4 +- sources/trl/images/image.png | Bin 202358 -> 0 bytes sources/trl/index.md | 6 + sources/trl/index.rst | 8 - sources/trl/install.rst | 38 ---- sources/trl/quick_start.md | 309 ++++++++++++++++++++++++++ sources/trl/quick_start.rst | 49 ---- tests/trl/__init__.py | 13 ++ tests/trl/test_quick_start_ascend.py | 166 ++++++++++++++ 10 files changed, 582 insertions(+), 97 deletions(-) create mode 100644 .github/workflows/trl-quick-start.yml delete mode 100644 sources/trl/images/image.png create mode 100644 sources/trl/index.md delete mode 100644 sources/trl/index.rst delete mode 100644 sources/trl/install.rst create mode 100644 sources/trl/quick_start.md delete mode 100644 sources/trl/quick_start.rst create mode 100644 tests/trl/__init__.py create mode 100644 tests/trl/test_quick_start_ascend.py diff --git a/.github/workflows/trl-quick-start.yml b/.github/workflows/trl-quick-start.yml new file mode 100644 index 000000000..9bf04e9f1 --- /dev/null +++ b/.github/workflows/trl-quick-start.yml @@ -0,0 +1,86 @@ +# trl quick start guard - project thin trigger. +# +# Calls the common engine .github/workflows/quick-start-template.yml; +# this file only declares what varies per project: concurrency, +# runner, container image + options, upstream repo, monitored doc, +# and the test entry command. The guard loop, cache I/O, state relay +# and publishing all live in the engine. +# +# Engine-fixed behaviours this trigger relies on (declared in the +# engine, NOT here): +# * cache key prefix: monitor-state-trl- (from inputs.project) +# * artifact name: trl-quick-start- +# * result.json is written by the engine and validated against +# schemas/result.schema.json before upload. +# +# schedule is enabled; workflow_dispatch stays for manual reruns. +# The engine's schedule-only steps (monitor / record-monitor-outcome / +# cache save) run on schedule triggers; dispatch forces a manual test +# without mutating monitor state. + +name: trl-quick-start + +concurrency: + # format() is load-bearing: a '||' between 'manual-' and + # github.run_id would short-circuit on the truthy literal and + # every dispatch would share one 'manual-' group. + group: ${{ github.event_name == 'schedule' && 'trl-quick-start-schedule' || format('manual-{0}', github.run_id) }} + # cancel-in-progress: false because (1) a schedule run cancelled + # mid-way loses its outcome writeback - the outcome is what makes + # the retry mechanism work, and the 'if: always()' guard isn't + # enough when the container is being torn down; (2) dispatch runs + # already live in unique groups so there's nothing to cancel. + cancel-in-progress: false + +on: + schedule: + - cron: '0 */3 * * *' + workflow_dispatch: + # PR trigger: docs/tests changes get a guard run. paths filter avoids + # burning the self-hosted NPU runner on unrelated PRs. + pull_request: + branches: [main] + paths: + - 'sources/trl/**' + - 'tests/trl/**' + +permissions: + contents: read + +jobs: + trl-quick-start: + uses: ./.github/workflows/quick-start-template.yml + with: + # Namespaces cache keys (monitor-state-trl-*), artifacts + # (trl-quick-start-) and the test working dir + # (workflows/tests/trl). + # result.json is uploaded by the engine's publish-and-persist job + # (ubuntu-latest, if: always()); the NPU test job never uploads. + project: trl + # Self-hosted NPU runner for the test job only; the engine pins + # the cache I/O jobs (restore-cache / publish-and-persist) to + # GitHub-hosted ubuntu-latest. + test_runner: '["linux-aarch64-a2-1"]' + image: swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.1.0-910b-ubuntu22.04-py3.12 + container_options: >- + --volume=/data/ci-cache/modelscope/trl:/root/.cache/modelscope + timeout_minutes: 180 + upstream_repo: huggingface/trl + # Doc under guard: sources/trl/quick_start.md in the upstream + # Ascend/docs repo. {0} is filled by the engine: PR head SHA on PR + # runs, 'main' otherwise. Same-repo PRs (head SHA exists on + # Ascend/docs) test the PR-version of the doc; fork PRs (head SHA + # on a fork) 404 on doc fetch - accepted, since the content lands + # on Ascend/docs post-merge. + # Doc body does: PyPI 二进制安装 trl + SFT / DPO 双方法 LoRA smoke + # (模型与数据集 HuggingFaceH4/ultrafeedback_binarized 均经 + # ModelScope snapshot_download 自动下载到默认缓存; + # /root/.cache/modelscope 挂载供跨轮复用)。 + doc_url: 'https://raw.githubusercontent.com/Ascend/docs/{0}/sources/trl/quick_start.md' + doc_path: https://github.com/Ascend/docs/blob/main/sources/trl/quick_start.md + # cwd is the repo root inside the `workflows` checkout (matches + # engine template's `working-directory: workflows`); env contract + # (MONITORED_DOC_URL / UPSTREAM_REF / NPU_READY) is injected by the + # engine. All project env prep and installs live in the test + # subclass's prepare_environment hook. + test_command: python -m unittest tests.trl.test_quick_start_ascend -v 2>&1 diff --git a/index.rst b/index.rst index 9c4356f98..d7a52e0c0 100644 --- a/index.rst +++ b/index.rst @@ -214,7 +214,7 @@

Transformer Reinforcement Learning

适用于 SFT、PPO、DPO 等方法的模型后训练库。

- +
@@ -429,7 +429,7 @@ sources/peft/index.md sources/roll/index.rst sources/torchtitan/index.rst - sources/trl/index.rst + sources/trl/index.md sources/twinkle/index.rst sources/VeOmni/index.rst sources/verl/index.rst diff --git a/sources/trl/images/image.png b/sources/trl/images/image.png deleted file mode 100644 index bf674bed61061383c36c7427013d7e9ec974f523..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202358 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%0AN-~|21OOfFr0Xv(T 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 Sq!p;ZkBNbWe!Z?s-2Ve{ST1=0 diff --git a/sources/trl/index.md b/sources/trl/index.md new file mode 100644 index 000000000..3f199140d --- /dev/null +++ b/sources/trl/index.md @@ -0,0 +1,6 @@ +# TRL + +TRL 通用文档由 huggingface 官方维护。本页收录 Ascend NPU 适配的快速上手。 + +```{include} quick_start.md +``` diff --git a/sources/trl/index.rst b/sources/trl/index.rst deleted file mode 100644 index 2f7ce0103..000000000 --- a/sources/trl/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -Transformer Reinforcement Learning -=================================================== - -.. toctree:: - :maxdepth: 2 - - install.rst - quick_start.rst diff --git a/sources/trl/install.rst b/sources/trl/install.rst deleted file mode 100644 index f1c74e9d3..000000000 --- a/sources/trl/install.rst +++ /dev/null @@ -1,38 +0,0 @@ -安装指南 -=============== - -本教程面向使用 TRL (Transformer Reinforcement Learning) & 昇腾的开发者,帮助完成昇腾环境下 TRL 的安装。 - -昇腾环境安装 ---------------- - -请根据已有昇腾产品型号及 CPU 架构等按照 :doc:`快速安装昇腾环境指引 <../ascend/quick_install>` 进行昇腾环境安装。 - -.. warning:: - CANN 最低版本为 8.0.rc1,安装 CANN 时,请同时安装 Kernel 算子包。 - -TRL 下载安装 ---------------- - -1. 安装项目所需依赖 - -.. code-block:: shell - - pip install trl -i https://pypi.tuna.tsinghua.edu.cn/simple - -另外,本项目需要手动安装 transformers 仓库的最新 main 分支,否则可能会出现如下错误: - -.. image:: ./images/image.png - -.. code-block:: shell - - pip install git+https://github.com/huggingface/transformers.git - -2. 安装 torch_npu - -.. code-block:: shell - - pip install torch==2.1.0 torch_npu==2.1.0.post6 -i https://pypi.tuna.tsinghua.edu.cn/simple - -.. hint:: - torch_npu 的版本需要匹配 torch 的版本,详细信息请参考:`Ascend Extension for PyTorch `_。 diff --git a/sources/trl/quick_start.md b/sources/trl/quick_start.md new file mode 100644 index 000000000..b12ddf3e1 --- /dev/null +++ b/sources/trl/quick_start.md @@ -0,0 +1,309 @@ +# TRL (Ascend NPU) + +TRL 用同一套 `Trainer` / `Config` API 覆盖 SFT / DPO / GRPO / PPO 等后训练方法。本示例在单卡昇腾 NPU 上,用同一个 Qwen2.5-0.5B-Instruct 模型先跑通最小 SFT LoRA,再换成 `DPOTrainer` 跑通偏好优化 DPO LoRA,并验证两种方法的产物。 + +## 前置条件 + +### 硬件 + +Atlas 900 A2 / A3 训练系列产品或者 Ascend 950 系列产品,并按需完成物理机或容器内的设备挂载。 + +### 基础软件 + +在跑本文档**之前**,你的机器上需要已经装好并可用: + +- 可用的 Python 环境 +- 可用的 CANN(参考[快速安装昇腾环境](https://ascend.github.io/docs/sources/ascend/quick_install.html)) +- 与上面 CANN 匹配的 `torch` + `torch_npu`,且 `torch` 能正常 `import` 并 `torch.npu.is_available() == True`(参考 [Ascend PyTorch 安装文档](https://gitcode.com/Ascend/pytorch),按 torch ↔ torch_npu ↔ CANN 三方兼容矩阵选择版本) + +### 本文档示例使用的版本 + +**配套机器**: + +- **机器类型**:Atlas 900 A2 PODc(Ascend 910B4,64 GB × 1) +- **操作系统**:Ubuntu 22.04 + +**配套镜像**: + +swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.1.0-910b-ubuntu22.04-py3.12 + +**软件版本**: + +| 组件 | 版本 | +| --- | --- | +| Python | 3.12 | +| CANN | 9.1.0 | +| torch | 2.9.0+cpu | +| torch_npu | 2.9.0.post2 | +| transformers | `>=4.56.2,<5.0` | +| accelerate | `>=1.4.0` | +| datasets | `>=4.7.0` | +| peft | 最新 release | +| modelscope | 1.37.0 | +| trl | 最新 release(PyPI) | +| 模型 | [Qwen/Qwen2.5-0.5B-Instruct](https://www.modelscope.cn/models/Qwen/Qwen2.5-0.5B-Instruct),约 1 GB | +| 数据集 | `HuggingFaceH4/ultrafeedback_binarized` | + +### 前置安装 + +确认能看到 NPU 设备: + +```shell +npu-smi info +``` + +输出类似: + +``` ++------------------------------------------------------------------------------------------------+ +| npu-smi 25.5.2 Version: 25.5.2 | ++---------------------------+---------------+----------------------------------------------------+ +| NPU Name | Health | Power(W) Temp(C) Hugepages-Usage(page)| +| Chip | Bus-Id | AICore(%) Memory-Usage(MB) HBM-Usage(MB) | ++===========================+===============+====================================================+ +| 5 910B4 | OK | 89.9 39 0 / 0 | +| 0 | 0000:41:00.0 | 0 0 / 0 2922 / 32768 | ++===========================+===============+====================================================+ ++---------------------------+---------------+----------------------------------------------------+ +| NPU Chip | Process id | Process name | Process memory(MB) | ++===========================+===============+====================================================+ +| No running processes found in NPU 5 | ++===========================+===============+====================================================+ +``` + +```{admonition} Note +:class: note +如果 `npu-smi` 不存在,请回到 [Ascend 官方快速安装指南](https://ascend.github.io/docs/sources/ascend/quick_install.html) 补装驱动 +``` + +检查 Python 版本: + +```shell #test id="check-py" +python --version +``` +输出结果如下: +```shell #test-result id="check-py" fuzzy='xxx' +Python 3.12.xxx +``` + +检查 NPU 设备运行时可用: + +```shell #test id="check-npu-runtime" +python -c "import torch, torch_npu; print(f'torch={torch.__version__}'); print(f'torch_npu={torch_npu.__version__}'); print('is_available:', torch.npu.is_available()); +print('count:', torch.npu.device_count())" +``` + +输出结果如下: + +```shell #test-result id="check-npu-runtime" fuzzy='xxx' +torch=xxx +torch_npu=xxx +is_available: True +count: 1 +``` + +```{admonition} Note +:class: note +如果 `import torch_npu` 失败,回到 [Ascend PyTorch 安装文档](https://gitcode.com/Ascend/pytorch) 检查 torch / torch_npu / CANN 三方兼容矩阵 +``` + +安装 `transformers` / `peft` / `modelscope`,装完打印版本验证。示例数据集来自 ModelScope: + +```shell #test id="install-deps" +uv pip install 'transformers>=4.56.2,<5.0' 'peft' 'modelscope==1.37.0' +python -c "import transformers, peft, modelscope; print(f'transformers={transformers.__version__} peft={peft.__version__} modelscope={modelscope.__version__}')" +``` + +输出结果如下: + +```shell #test-result id="install-deps" fuzzy='xxx' +transformers=xxx peft=xxx modelscope=1.37.0 +``` + +## 安装 TRL + +用 uv 安装 PyPI 最新 release,装完打印版本验证: + +```shell #test id="trl-install-binary" +uv pip install trl +python -c "import trl; print('trl', trl.__version__)" +``` + +输出结果类似如下: + +```shell #test-result id="trl-install-binary" fuzzy='xxx' +trl xxx +``` +- xxx 表示最新的版本号 + +## 使用样例:最小 SFT LoRA 后训练 + +用 ModelScope 数据集 `HuggingFaceH4/ultrafeedback_binarized` 的 SFT 子集对 Qwen2.5-0.5B-Instruct 做 5 步 LoRA SFT。模型由脚本内的 `snapshot_download` 首次运行时自动下载到默认缓存(约 1 GB),数据集经 ModelScope 自动下载;`SFTTrainer` 通过 `peft_config` 注入 LoRA 适配器,底座权重冻结、只训练新注入的低秩矩阵;训练完成后把适配器保存到 `output/trl-sft-lora`。 + +```shell #test id="sft-lora" +python << 'PY' +import os +import shutil +import torch +import torch_npu +from datasets import load_dataset +from modelscope import snapshot_download +from peft import LoraConfig, TaskType +from trl import SFTConfig, SFTTrainer + +print("TRL_SFT_BEGIN") + +ds_path = snapshot_download( + 'HuggingFaceH4/ultrafeedback_binarized', repo_type='dataset', +) +data_dir = './ultrafeedback_sft' +if os.path.isdir(data_dir): + shutil.rmtree(data_dir) +os.makedirs(data_dir, exist_ok=True) +for name in os.listdir(os.path.join(ds_path, 'data')): + if name.startswith('train_sft-'): + shutil.copy2(os.path.join(ds_path, 'data', name), data_dir) +train_dataset = load_dataset( + 'parquet', data_files=os.path.join(data_dir, 'train_sft-*.parquet'), + split='train', +).select_columns(['messages']) + +model = snapshot_download('Qwen/Qwen2.5-0.5B-Instruct') + +trainer = SFTTrainer( + model=model, + train_dataset=train_dataset, + peft_config=LoraConfig(r=8, lora_alpha=32, task_type=TaskType.CAUSAL_LM), + args=SFTConfig( + output_dir="output/trl-sft-lora", + max_steps=5, + per_device_train_batch_size=1, + gradient_accumulation_steps=1, + learning_rate=1e-4, + max_length=512, + logging_steps=1, + save_strategy="no", + report_to="none", + model_init_kwargs={"dtype": torch.bfloat16}, + ), +) +print("model device:", next(trainer.model.parameters()).device) +trainer.train() +trainer.save_model("output/trl-sft-lora") +print("TRL_SFT_DONE") +PY +``` + +输出结果类似如下(训练日志走 stderr,stdout 只保留首尾标记): + +```shell #test-result id="sft-lora" +... +TRL_SFT_DONE +``` + +## 切换方法:偏好优化 DPO LoRA + +同一个模型与 LoRA 配置,把 `SFTTrainer` / `SFTConfig` 换成 `DPOTrainer` / `DPOConfig` 就是偏好优化:ModelScope 数据集 `HuggingFaceH4/ultrafeedback_binarized` 的 `prompt` / `chosen` / `rejected` 三段对话让模型更倾向 `chosen` 而非 `rejected` 的回答。这里跑 3 步 DPO LoRA,产物保存到 `output/trl-dpo-lora`。 + +```shell #test id="dpo-lora" +python << 'PY' +import os +import shutil +import torch +import torch_npu +from datasets import load_dataset +from modelscope import snapshot_download +from peft import LoraConfig, TaskType +from transformers import AutoModelForCausalLM, AutoTokenizer +from trl import DPOConfig, DPOTrainer + +print("TRL_DPO_BEGIN") + +ds_path = snapshot_download( + 'HuggingFaceH4/ultrafeedback_binarized', repo_type='dataset', +) +data_dir = './ultrafeedback_prefs' +if os.path.isdir(data_dir): + shutil.rmtree(data_dir) +os.makedirs(data_dir, exist_ok=True) +for name in os.listdir(os.path.join(ds_path, 'data')): + if name.startswith('train_prefs-'): + shutil.copy2(os.path.join(ds_path, 'data', name), data_dir) +train_dataset = load_dataset( + 'parquet', data_files=os.path.join(data_dir, 'train_prefs-*.parquet'), + split='train', +) + +# prompt 列是纯字符串,chosen / rejected 是 messages 列表;把 prompt 转成 +# 单条 user 消息即可让 DPOTrainer 按 conversational 格式处理 +def to_conversational(example): + example['prompt'] = [{'role': 'user', 'content': example['prompt']}] + return example + +train_dataset = train_dataset.map(to_conversational) + +model_path = snapshot_download('Qwen/Qwen2.5-0.5B-Instruct') +model = AutoModelForCausalLM.from_pretrained(model_path, dtype=torch.bfloat16) +tokenizer = AutoTokenizer.from_pretrained(model_path) + +trainer = DPOTrainer( + model=model, + ref_model=None, + processing_class=tokenizer, + train_dataset=train_dataset, + peft_config=LoraConfig(r=8, lora_alpha=32, task_type=TaskType.CAUSAL_LM), + args=DPOConfig( + output_dir="output/trl-dpo-lora", + max_steps=3, + per_device_train_batch_size=1, + gradient_accumulation_steps=1, + learning_rate=1e-4, + max_length=512, + logging_steps=1, + save_strategy="no", + report_to="none", + ), +) +print("model device:", next(trainer.model.parameters()).device) +trainer.train() +trainer.save_model("output/trl-dpo-lora") +print("TRL_DPO_DONE") +PY +``` + +输出结果类似如下(训练日志走 stderr,stdout 只保留首尾标记): + +```shell #test-result id="dpo-lora" +... +TRL_DPO_DONE +``` + +## 结果验证 + +检查两个输出目录中的 LoRA 适配器产物:`adapter_config.json`(LoRA 配置)与 `adapter_model.safetensors`(适配器权重)。 + +```shell #test id="verify-output" +ls output/trl-sft-lora/adapter_config.json output/trl-sft-lora/adapter_model.safetensors +``` + +输出结果如下: + +```shell #test-result id="verify-output" +output/trl-sft-lora/adapter_config.json +output/trl-sft-lora/adapter_model.safetensors +``` + +检查 DPO 输出目录的适配器产物: + +```shell #test id="verify-dpo" +ls output/trl-dpo-lora/adapter_config.json output/trl-dpo-lora/adapter_model.safetensors +``` + +输出结果如下: + +```shell #test-result id="verify-dpo" +output/trl-dpo-lora/adapter_config.json +output/trl-dpo-lora/adapter_model.safetensors +``` + +更多方法(GRPO / PPO / Reward / KTO 等)入口形态一致,切换对应的 `Trainer` / `Config` 即可;GRPO 依赖 vLLM 生成,不在本示例运行。更多用法见 [TRL examples](https://github.com/huggingface/trl/tree/main/examples)。 diff --git a/sources/trl/quick_start.rst b/sources/trl/quick_start.rst deleted file mode 100644 index 987b5b014..000000000 --- a/sources/trl/quick_start.rst +++ /dev/null @@ -1,49 +0,0 @@ -快速开始 -=============== - -.. note:: - - 阅读本篇前,请确保已按照 :doc:`安装教程 <./install>` 准备好昇腾环境及 TRL (Transformer Reinforcement Learning) ! - -本教程以 DPO 方法为例,讲述如何使用 TRL 在昇腾 NPU 上进行模型的后训练。 - -前置准备 ---------------- - -本篇样例代码为 TRL 官方样例,需提前进行下载: - -.. code-block:: - - git clone https://github.com/huggingface/trl.git - -模型训练 ---------------- - -进入 TRL 项目目录,依次执行如下命令: - -.. code-block:: - - cd examples/scripts - python dpo.py - -出现如下日志则代表训练成功: - -:: - - Tokenizing train dataset: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 62135/62135 [07:11<00:00, 143.85 examples/s] - Tokenizing eval dataset: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [00:06<00:00, 144.73 examples/s] - Detected kernel version 4.19.90, which is below the recommended minimum of 5.5.0; this can cause the process to hang. It is recommended to upgrade the kernel to the minimum version or higher. - 0%| ... | 0/3883 [00:00 bool: + if not value: + return False + return value.strip().lower() == 'true' + + +def _e2e_enabled() -> bool: + return _is_truthy(os.environ.get('NPU_READY')) + + +class TestQuickStartAscend(MarkdownDocTestBase, unittest.TestCase): + DEFAULT_COMMAND_TIMEOUT = 7200 + USER_AGENT = 'cosdt-ci-test/quick-start' + ERROR_MARKERS = ( + *MarkdownDocTestBase.ERROR_MARKERS, + 'applicaiton exception', + 'ERR99999', + ) + + _CUDA_CONSTRAINTS = ( + 'cuda-toolkit<0', + 'cuda-python<0', + 'cuda-bindings<0', + 'cuda-core<0', + 'cuda-pathfinder<0', + 'flashinfer-python<0', + 'nvidia-cublas<0', + 'nvidia-cuda-runtime<0', + 'nvidia-cuda-nvrtc<0', + 'nvidia-cuda-cupti<0', + 'nvidia-cudnn<0', + 'nvidia-cudnn-frontend<0', + 'nvidia-cufft<0', + 'nvidia-curand<0', + 'nvidia-cusolver<0', + 'nvidia-cusparse<0', + 'nvidia-cutlass-dsl<0', + 'nvidia-cutlass-dsl-libs-base<0', + 'nvidia-cutlass-dsl-libs-core<0', + 'nvidia-cutlass-dsl-libs-cu12<0', + 'nvidia-ml-py<0', + 'nvidia-nccl<0', + 'nvidia-nvjitlink<0', + 'nvidia-nvtx<0', + 'nvidia-cublas-cu12<0', + 'nvidia-cuda-nvdisasm<0', + 'nvidia-cuda-runtime-cu12<0', + 'nvidia-cuda-nvrtc-cu12<0', + 'nvidia-cuda-cupti-cu12<0', + 'nvidia-cudnn-cu12<0', + 'nvidia-cufft-cu12<0', + 'nvidia-curand-cu12<0', + 'nvidia-cusolver-cu12<0', + 'nvidia-cusparse-cu12<0', + 'nvidia-cusparselt-cu12<0', + 'nvidia-nccl-cu12<0', + 'nvidia-nvjitlink-cu12<0', + 'nvidia-nvtx-cu12<0', + ) + _CONSTRAINTS_FILE = '/tmp/trl_npu_constraints.txt' + + _CLUSTER_INDEX = 'http://cache-service.nginx-pypi-cache.svc.cluster.local/pypi/simple' + _ASCEND_EXTRA = 'https://repo.huaweicloud.com/ascend/repos/pypi' + + _CANN_SET_ENV = '/usr/local/Ascend/ascend-toolkit/set_env.sh' + + @classmethod + def prepare_environment(cls) -> None: + if os.path.isfile(cls._CANN_SET_ENV): + merged = subprocess.run( + ['bash', '-c', f'source {cls._CANN_SET_ENV} >/dev/null 2>&1; env'], + capture_output=True, text=True, check=True, + ) + for line in merged.stdout.splitlines(): + if '=' not in line: + continue + key, _, value = line.partition('=') + os.environ.setdefault(key, value) + print('setup: sourced CANN env from set_env.sh') + else: + print( + f'setup: skipping CANN env source ({cls._CANN_SET_ENV} not present)' + ) + + with open(cls._CONSTRAINTS_FILE, 'w', encoding='utf-8') as fh: + fh.write('\n'.join(cls._CUDA_CONSTRAINTS) + '\n') + os.environ['PIP_CONSTRAINT'] = cls._CONSTRAINTS_FILE + os.environ['UV_CONSTRAINT'] = cls._CONSTRAINTS_FILE + + os.environ.setdefault('ASCEND_RT_VISIBLE_DEVICES', '0') + + subprocess.run( + ['python', '-m', 'pip', 'install', 'uv'], + check=True, + ) + + _PROBE_SCRIPT = ( + 'import torch, torch_npu\n' + "raise SystemExit(0 if " + "torch.__version__.startswith('2.9.0') " + "and torch_npu.__version__.startswith('2.9.0') " + "else 1)" + ) + probe = subprocess.run( + ['python', '-c', _PROBE_SCRIPT], + capture_output=True, + check=False, + ) + if probe.returncode == 0: + _VERSIONS_SCRIPT = ( + 'import torch, torch_npu; ' + 'print(torch.__version__, torch_npu.__version__)' + ) + versions = subprocess.run( + ['python', '-c', _VERSIONS_SCRIPT], + capture_output=True, text=True, check=True, + ) + print(f'setup: reusing image torch stack ({versions.stdout.strip()})') + else: + print('setup: installing torch==2.9.0 torch_npu==2.9.0.post2') + subprocess.run( + [ + 'python', '-m', 'pip', 'install', + '--index-url', cls._CLUSTER_INDEX, + '--extra-index-url', cls._ASCEND_EXTRA, + 'torch==2.9.0', 'torch_npu==2.9.0.post2', + ], + check=True, + ) + + ensure_safetensors() + + purge_modelscope_corrupt(resolve_modelscope_cache()) + + @classmethod + def setUpClass(cls) -> None: + if _e2e_enabled(): + cls.prepare_environment() + + @unittest.skipIf( + not _e2e_enabled(), + 'end-to-end requires NPU runner; set NPU_READY=true', + ) + def test_runs_doc(self) -> None: + self.run_template() + + +if __name__ == '__main__': + unittest.main() From 28ce5a4a6de59c0a9c49e85de9c397ec9b14d44a Mon Sep 17 00:00:00 2001 From: cyb <694642680@qq.com> Date: Mon, 7 Sep 2026 15:22:00 +0800 Subject: [PATCH 2/4] docs(trl): drop landing page, link toctree directly to quick_start --- .github/workflows/trl-quick-start.yml | 54 +-------------------------- index.rst | 2 +- sources/trl/index.md | 6 --- 3 files changed, 2 insertions(+), 60 deletions(-) delete mode 100644 sources/trl/index.md diff --git a/.github/workflows/trl-quick-start.yml b/.github/workflows/trl-quick-start.yml index 9bf04e9f1..317720749 100644 --- a/.github/workflows/trl-quick-start.yml +++ b/.github/workflows/trl-quick-start.yml @@ -1,43 +1,14 @@ -# trl quick start guard - project thin trigger. -# -# Calls the common engine .github/workflows/quick-start-template.yml; -# this file only declares what varies per project: concurrency, -# runner, container image + options, upstream repo, monitored doc, -# and the test entry command. The guard loop, cache I/O, state relay -# and publishing all live in the engine. -# -# Engine-fixed behaviours this trigger relies on (declared in the -# engine, NOT here): -# * cache key prefix: monitor-state-trl- (from inputs.project) -# * artifact name: trl-quick-start- -# * result.json is written by the engine and validated against -# schemas/result.schema.json before upload. -# -# schedule is enabled; workflow_dispatch stays for manual reruns. -# The engine's schedule-only steps (monitor / record-monitor-outcome / -# cache save) run on schedule triggers; dispatch forces a manual test -# without mutating monitor state. - +# trl quick start guard - thin trigger over quick-start-template.yml; the engine owns the monitor loop, cache I/O and result publishing. name: trl-quick-start concurrency: - # format() is load-bearing: a '||' between 'manual-' and - # github.run_id would short-circuit on the truthy literal and - # every dispatch would share one 'manual-' group. group: ${{ github.event_name == 'schedule' && 'trl-quick-start-schedule' || format('manual-{0}', github.run_id) }} - # cancel-in-progress: false because (1) a schedule run cancelled - # mid-way loses its outcome writeback - the outcome is what makes - # the retry mechanism work, and the 'if: always()' guard isn't - # enough when the container is being torn down; (2) dispatch runs - # already live in unique groups so there's nothing to cancel. cancel-in-progress: false on: schedule: - cron: '0 */3 * * *' workflow_dispatch: - # PR trigger: docs/tests changes get a guard run. paths filter avoids - # burning the self-hosted NPU runner on unrelated PRs. pull_request: branches: [main] paths: @@ -51,36 +22,13 @@ jobs: trl-quick-start: uses: ./.github/workflows/quick-start-template.yml with: - # Namespaces cache keys (monitor-state-trl-*), artifacts - # (trl-quick-start-) and the test working dir - # (workflows/tests/trl). - # result.json is uploaded by the engine's publish-and-persist job - # (ubuntu-latest, if: always()); the NPU test job never uploads. project: trl - # Self-hosted NPU runner for the test job only; the engine pins - # the cache I/O jobs (restore-cache / publish-and-persist) to - # GitHub-hosted ubuntu-latest. test_runner: '["linux-aarch64-a2-1"]' image: swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.1.0-910b-ubuntu22.04-py3.12 container_options: >- --volume=/data/ci-cache/modelscope/trl:/root/.cache/modelscope timeout_minutes: 180 upstream_repo: huggingface/trl - # Doc under guard: sources/trl/quick_start.md in the upstream - # Ascend/docs repo. {0} is filled by the engine: PR head SHA on PR - # runs, 'main' otherwise. Same-repo PRs (head SHA exists on - # Ascend/docs) test the PR-version of the doc; fork PRs (head SHA - # on a fork) 404 on doc fetch - accepted, since the content lands - # on Ascend/docs post-merge. - # Doc body does: PyPI 二进制安装 trl + SFT / DPO 双方法 LoRA smoke - # (模型与数据集 HuggingFaceH4/ultrafeedback_binarized 均经 - # ModelScope snapshot_download 自动下载到默认缓存; - # /root/.cache/modelscope 挂载供跨轮复用)。 doc_url: 'https://raw.githubusercontent.com/Ascend/docs/{0}/sources/trl/quick_start.md' doc_path: https://github.com/Ascend/docs/blob/main/sources/trl/quick_start.md - # cwd is the repo root inside the `workflows` checkout (matches - # engine template's `working-directory: workflows`); env contract - # (MONITORED_DOC_URL / UPSTREAM_REF / NPU_READY) is injected by the - # engine. All project env prep and installs live in the test - # subclass's prepare_environment hook. test_command: python -m unittest tests.trl.test_quick_start_ascend -v 2>&1 diff --git a/index.rst b/index.rst index d7a52e0c0..40526659b 100644 --- a/index.rst +++ b/index.rst @@ -429,7 +429,7 @@ sources/peft/index.md sources/roll/index.rst sources/torchtitan/index.rst - sources/trl/index.md + TRL sources/twinkle/index.rst sources/VeOmni/index.rst sources/verl/index.rst diff --git a/sources/trl/index.md b/sources/trl/index.md deleted file mode 100644 index 3f199140d..000000000 --- a/sources/trl/index.md +++ /dev/null @@ -1,6 +0,0 @@ -# TRL - -TRL 通用文档由 huggingface 官方维护。本页收录 Ascend NPU 适配的快速上手。 - -```{include} quick_start.md -``` From 56316f463aa14e5a8a784a81c54ba7400960a6e7 Mon Sep 17 00:00:00 2001 From: cyb <694642680@qq.com> Date: Mon, 7 Sep 2026 15:55:58 +0800 Subject: [PATCH 3/4] docs(trl): unify sidebar title with peft style --- index.rst | 2 +- sources/trl/quick_start.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.rst b/index.rst index 40526659b..52c96026e 100644 --- a/index.rst +++ b/index.rst @@ -429,7 +429,7 @@ sources/peft/index.md sources/roll/index.rst sources/torchtitan/index.rst - TRL + sources/trl/quick_start.md sources/twinkle/index.rst sources/VeOmni/index.rst sources/verl/index.rst diff --git a/sources/trl/quick_start.md b/sources/trl/quick_start.md index b12ddf3e1..8704d66cf 100644 --- a/sources/trl/quick_start.md +++ b/sources/trl/quick_start.md @@ -1,4 +1,4 @@ -# TRL (Ascend NPU) +# TRL TRL 用同一套 `Trainer` / `Config` API 覆盖 SFT / DPO / GRPO / PPO 等后训练方法。本示例在单卡昇腾 NPU 上,用同一个 Qwen2.5-0.5B-Instruct 模型先跑通最小 SFT LoRA,再换成 `DPOTrainer` 跑通偏好优化 DPO LoRA,并验证两种方法的产物。 From ed98dfa441f82d918947053a074ad547a9aa2f1a Mon Sep 17 00:00:00 2001 From: cyb <694642680@qq.com> Date: Tue, 15 Sep 2026 19:19:52 +0800 Subject: [PATCH 4/4] =?UTF-8?q?docs(trl):=20=E4=BC=98=E5=8C=96=E4=BA=86trl?= =?UTF-8?q?=E7=9A=84quick-start=E6=96=87=E6=A1=A3=E7=9A=84=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf.py | 3 +- index.rst | 4 +- sources/trl/index.rst | 2 + sources/trl/quick_start.md | 180 +++++---------------------- tests/trl/test_quick_start_ascend.py | 6 - 5 files changed, 37 insertions(+), 158 deletions(-) create mode 100644 sources/trl/index.rst diff --git a/conf.py b/conf.py index 5bc93024e..0e54ad91c 100644 --- a/conf.py +++ b/conf.py @@ -77,7 +77,8 @@ 'sources/llama_cpp/quick_start.md', 'sources/whisper_cpp/quick_start.md', 'sources/llm_compressor/quick_start.md', - 'sources/axolotl/quick_start.md'] + 'sources/axolotl/quick_start.md', + 'sources/trl/quick_start.md'] # -- Options for HTML output ------------------------------------------------- diff --git a/index.rst b/index.rst index 52c96026e..a4111eca9 100644 --- a/index.rst +++ b/index.rst @@ -214,7 +214,7 @@

@@ -429,7 +429,7 @@ sources/peft/index.md sources/roll/index.rst sources/torchtitan/index.rst - sources/trl/quick_start.md + sources/trl/index.rst sources/twinkle/index.rst sources/VeOmni/index.rst sources/verl/index.rst diff --git a/sources/trl/index.rst b/sources/trl/index.rst new file mode 100644 index 000000000..89892f3b6 --- /dev/null +++ b/sources/trl/index.rst @@ -0,0 +1,2 @@ +.. include:: quick_start.md + :parser: myst_parser.sphinx_ diff --git a/sources/trl/quick_start.md b/sources/trl/quick_start.md index 8704d66cf..001daf7c7 100644 --- a/sources/trl/quick_start.md +++ b/sources/trl/quick_start.md @@ -1,6 +1,6 @@ # TRL -TRL 用同一套 `Trainer` / `Config` API 覆盖 SFT / DPO / GRPO / PPO 等后训练方法。本示例在单卡昇腾 NPU 上,用同一个 Qwen2.5-0.5B-Instruct 模型先跑通最小 SFT LoRA,再换成 `DPOTrainer` 跑通偏好优化 DPO LoRA,并验证两种方法的产物。 +TRL 用统一的 `Trainer` / `Config` API 支持多种模型后训练方法。本示例在单卡昇腾 NPU 上,用 Qwen2.5-0.5B-Instruct 分别运行 SFT 和 DPO LoRA。 ## 前置条件 @@ -10,138 +10,47 @@ Atlas 900 A2 / A3 训练系列产品或者 Ascend 950 系列产品,并按需 ### 基础软件 -在跑本文档**之前**,你的机器上需要已经装好并可用: +在运行本文档示例之前,你的机器上需要已经装好并可用: - 可用的 Python 环境 - 可用的 CANN(参考[快速安装昇腾环境](https://ascend.github.io/docs/sources/ascend/quick_install.html)) -- 与上面 CANN 匹配的 `torch` + `torch_npu`,且 `torch` 能正常 `import` 并 `torch.npu.is_available() == True`(参考 [Ascend PyTorch 安装文档](https://gitcode.com/Ascend/pytorch),按 torch ↔ torch_npu ↔ CANN 三方兼容矩阵选择版本) +- 根据 CANN 版本安装匹配的 `torch_npu`(参考 [Ascend PyTorch 安装文档](https://gitcode.com/Ascend/pytorch)) -### 本文档示例使用的版本 +本文档示例在 Python 3.12、CANN 9.1.0、`torch_npu` 2.9.0.post2 环境下验证通过。 -**配套机器**: - -- **机器类型**:Atlas 900 A2 PODc(Ascend 910B4,64 GB × 1) -- **操作系统**:Ubuntu 22.04 - -**配套镜像**: - -swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.1.0-910b-ubuntu22.04-py3.12 - -**软件版本**: - -| 组件 | 版本 | -| --- | --- | -| Python | 3.12 | -| CANN | 9.1.0 | -| torch | 2.9.0+cpu | -| torch_npu | 2.9.0.post2 | -| transformers | `>=4.56.2,<5.0` | -| accelerate | `>=1.4.0` | -| datasets | `>=4.7.0` | -| peft | 最新 release | -| modelscope | 1.37.0 | -| trl | 最新 release(PyPI) | -| 模型 | [Qwen/Qwen2.5-0.5B-Instruct](https://www.modelscope.cn/models/Qwen/Qwen2.5-0.5B-Instruct),约 1 GB | -| 数据集 | `HuggingFaceH4/ultrafeedback_binarized` | - -### 前置安装 - -确认能看到 NPU 设备: +## 加载 CANN 环境 ```shell -npu-smi info -``` - -输出类似: - -``` -+------------------------------------------------------------------------------------------------+ -| npu-smi 25.5.2 Version: 25.5.2 | -+---------------------------+---------------+----------------------------------------------------+ -| NPU Name | Health | Power(W) Temp(C) Hugepages-Usage(page)| -| Chip | Bus-Id | AICore(%) Memory-Usage(MB) HBM-Usage(MB) | -+===========================+===============+====================================================+ -| 5 910B4 | OK | 89.9 39 0 / 0 | -| 0 | 0000:41:00.0 | 0 0 / 0 2922 / 32768 | -+===========================+===============+====================================================+ -+---------------------------+---------------+----------------------------------------------------+ -| NPU Chip | Process id | Process name | Process memory(MB) | -+===========================+===============+====================================================+ -| No running processes found in NPU 5 | -+===========================+===============+====================================================+ -``` - -```{admonition} Note -:class: note -如果 `npu-smi` 不存在,请回到 [Ascend 官方快速安装指南](https://ascend.github.io/docs/sources/ascend/quick_install.html) 补装驱动 -``` - -检查 Python 版本: - -```shell #test id="check-py" -python --version -``` -输出结果如下: -```shell #test-result id="check-py" fuzzy='xxx' -Python 3.12.xxx -``` - -检查 NPU 设备运行时可用: - -```shell #test id="check-npu-runtime" -python -c "import torch, torch_npu; print(f'torch={torch.__version__}'); print(f'torch_npu={torch_npu.__version__}'); print('is_available:', torch.npu.is_available()); -print('count:', torch.npu.device_count())" -``` - -输出结果如下: - -```shell #test-result id="check-npu-runtime" fuzzy='xxx' -torch=xxx -torch_npu=xxx -is_available: True -count: 1 -``` - -```{admonition} Note -:class: note -如果 `import torch_npu` 失败,回到 [Ascend PyTorch 安装文档](https://gitcode.com/Ascend/pytorch) 检查 torch / torch_npu / CANN 三方兼容矩阵 -``` - -安装 `transformers` / `peft` / `modelscope`,装完打印版本验证。示例数据集来自 ModelScope: - -```shell #test id="install-deps" -uv pip install 'transformers>=4.56.2,<5.0' 'peft' 'modelscope==1.37.0' -python -c "import transformers, peft, modelscope; print(f'transformers={transformers.__version__} peft={peft.__version__} modelscope={modelscope.__version__}')" -``` - -输出结果如下: - -```shell #test-result id="install-deps" fuzzy='xxx' -transformers=xxx peft=xxx modelscope=1.37.0 +source /usr/local/Ascend/ascend-toolkit/set_env.sh ``` ## 安装 TRL -用 uv 安装 PyPI 最新 release,装完打印版本验证: +安装 TRL 并查看安装版本: -```shell #test id="trl-install-binary" -uv pip install trl +```shell #test id="install-trl" +python -m pip install trl python -c "import trl; print('trl', trl.__version__)" ``` -输出结果类似如下: +输出结果如下,其中 `xxx` 为实际安装的 TRL 版本: -```shell #test-result id="trl-install-binary" fuzzy='xxx' +```shell #test-result id="install-trl" fuzzy='...' fuzzy='xxx' +... trl xxx ``` -- xxx 表示最新的版本号 -## 使用样例:最小 SFT LoRA 后训练 +## 示例一:SFT LoRA 后训练 + +用 Qwen2.5-0.5B-Instruct 和 ModelScope 的 `HuggingFaceH4/ultrafeedback_binarized` SFT 子集进行 5 步 LoRA 微调,模型与数据集会自动下载,适配器保存到 `output/trl-sft-lora`。 -用 ModelScope 数据集 `HuggingFaceH4/ultrafeedback_binarized` 的 SFT 子集对 Qwen2.5-0.5B-Instruct 做 5 步 LoRA SFT。模型由脚本内的 `snapshot_download` 首次运行时自动下载到默认缓存(约 1 GB),数据集经 ModelScope 自动下载;`SFTTrainer` 通过 `peft_config` 注入 LoRA 适配器,底座权重冻结、只训练新注入的低秩矩阵;训练完成后把适配器保存到 `output/trl-sft-lora`。 +安装示例依赖: -```shell #test id="sft-lora" -python << 'PY' +```shell #test-setup +python -m pip install peft "transformers>=4.56.2,<5.0" datasets "modelscope==1.37.0" +``` +运行 SFT 训练脚本: +```python #test id="sft-lora" import os import shutil import torch @@ -190,23 +99,23 @@ trainer = SFTTrainer( print("model device:", next(trainer.model.parameters()).device) trainer.train() trainer.save_model("output/trl-sft-lora") +print("LoRA adapter saved to: output/trl-sft-lora") print("TRL_SFT_DONE") -PY ``` -输出结果类似如下(训练日志走 stderr,stdout 只保留首尾标记): +输出结果类似如下: ```shell #test-result id="sft-lora" ... +LoRA adapter saved to: output/trl-sft-lora TRL_SFT_DONE ``` -## 切换方法:偏好优化 DPO LoRA +## 示例二:偏好优化 DPO LoRA -同一个模型与 LoRA 配置,把 `SFTTrainer` / `SFTConfig` 换成 `DPOTrainer` / `DPOConfig` 就是偏好优化:ModelScope 数据集 `HuggingFaceH4/ultrafeedback_binarized` 的 `prompt` / `chosen` / `rejected` 三段对话让模型更倾向 `chosen` 而非 `rejected` 的回答。这里跑 3 步 DPO LoRA,产物保存到 `output/trl-dpo-lora`。 +再用相同模型和数据集运行 3 步 DPO LoRA,适配器保存到 `output/trl-dpo-lora`。 -```shell #test id="dpo-lora" -python << 'PY' +```python #test id="dpo-lora" import os import shutil import torch @@ -267,43 +176,16 @@ trainer = DPOTrainer( print("model device:", next(trainer.model.parameters()).device) trainer.train() trainer.save_model("output/trl-dpo-lora") +print("LoRA adapter saved to: output/trl-dpo-lora") print("TRL_DPO_DONE") -PY ``` -输出结果类似如下(训练日志走 stderr,stdout 只保留首尾标记): +输出结果类似如下: ```shell #test-result id="dpo-lora" ... +LoRA adapter saved to: output/trl-dpo-lora TRL_DPO_DONE ``` -## 结果验证 - -检查两个输出目录中的 LoRA 适配器产物:`adapter_config.json`(LoRA 配置)与 `adapter_model.safetensors`(适配器权重)。 - -```shell #test id="verify-output" -ls output/trl-sft-lora/adapter_config.json output/trl-sft-lora/adapter_model.safetensors -``` - -输出结果如下: - -```shell #test-result id="verify-output" -output/trl-sft-lora/adapter_config.json -output/trl-sft-lora/adapter_model.safetensors -``` - -检查 DPO 输出目录的适配器产物: - -```shell #test id="verify-dpo" -ls output/trl-dpo-lora/adapter_config.json output/trl-dpo-lora/adapter_model.safetensors -``` - -输出结果如下: - -```shell #test-result id="verify-dpo" -output/trl-dpo-lora/adapter_config.json -output/trl-dpo-lora/adapter_model.safetensors -``` - -更多方法(GRPO / PPO / Reward / KTO 等)入口形态一致,切换对应的 `Trainer` / `Config` 即可;GRPO 依赖 vLLM 生成,不在本示例运行。更多用法见 [TRL examples](https://github.com/huggingface/trl/tree/main/examples)。 +更多方法(GRPO / PPO / Reward / KTO 等)见 [TRL examples](https://github.com/huggingface/trl/tree/main/examples)。 diff --git a/tests/trl/test_quick_start_ascend.py b/tests/trl/test_quick_start_ascend.py index 00aee4f72..778fa3b78 100644 --- a/tests/trl/test_quick_start_ascend.py +++ b/tests/trl/test_quick_start_ascend.py @@ -102,15 +102,9 @@ def prepare_environment(cls) -> None: with open(cls._CONSTRAINTS_FILE, 'w', encoding='utf-8') as fh: fh.write('\n'.join(cls._CUDA_CONSTRAINTS) + '\n') os.environ['PIP_CONSTRAINT'] = cls._CONSTRAINTS_FILE - os.environ['UV_CONSTRAINT'] = cls._CONSTRAINTS_FILE os.environ.setdefault('ASCEND_RT_VISIBLE_DEVICES', '0') - subprocess.run( - ['python', '-m', 'pip', 'install', 'uv'], - check=True, - ) - _PROBE_SCRIPT = ( 'import torch, torch_npu\n' "raise SystemExit(0 if "