diff --git a/docs/en/examples/deepeyes.md b/docs/en/examples/deepeyes.md index 2c171e84b..856cfa22b 100644 --- a/docs/en/examples/deepeyes.md +++ b/docs/en/examples/deepeyes.md @@ -13,7 +13,7 @@ The DeepEyes example demonstrates **agentic multi-turn vision-language RL** usin ## Data Preparation -DeepEyes uses the [Visual-Agent/DeepEyes](https://huggingface.co/datasets/Visual-Agent/DeepEyes) dataset from HuggingFace. The dataset contains visual QA samples with images stored inline (HF Image format). +DeepEyes uses the [ChenShawn/DeepEyes-Datasets-47k](https://huggingface.co/datasets/ChenShawn/DeepEyes-Datasets-47k) dataset from HuggingFace. The dataset contains visual QA samples with images stored inline (HF Image format). ### Download the Dataset diff --git a/docs/en/examples/low-precision-training.md b/docs/en/examples/low-precision-training.md index 177dabbbd..af9675deb 100644 --- a/docs/en/examples/low-precision-training.md +++ b/docs/en/examples/low-precision-training.md @@ -112,9 +112,11 @@ Output: For the FP8 training workflow you usually do **not** need this script — bridge mode (`--megatron-to-hf-mode bridge`) reads the FP8 HF directly. This tool is for offline conversion when you need a BF16 HF as input to a different pipeline (e.g. as a `--ref-load` source for another recipe, or to feed `convert_hf_to_int4.py`). ::: + + ### `convert_hf_to_int4.py` -Quantize a BF16 HF checkpoint to W4A16 (compressed-tensors). Uses the `fake_int4_quant_cuda` kernel, which must be built first (see [Build the int4_qat kernel](#build-the-int4_qat-kernel)). +Quantize a BF16 HF checkpoint to W4A16 (compressed-tensors). Uses the `fake_int4_quant_cuda` kernel, which must be built first (see [Build the int4_qat kernel](#build-int4-qat-kernel)). ```bash python scripts/tools/convert_hf_to_int4.py \ @@ -185,7 +187,7 @@ Relax ships two reference recipes for Qwen3-30B-A3B (8-GPU colocate): **FP8 nati 1. A BF16 HF checkpoint (e.g. `Qwen3-30B-A3B`). 2. The Megatron patch at `docker/patch/megatron/20260506-85bced0ae.patch` applied (baked into the project Dockerfile). It provides both the FP8 overrides and the INT4 `_FakeInt4QuantizationSTE` that overrides `TEGroupedLinear._get_weight_tensors()`. -The FP8 recipe additionally needs a TransformerEngine build with FP8 blockwise scaling support. The INT4 recipe additionally needs the `fake_int4_quant_cuda` CUDA extension built — see [Build the int4_qat kernel](#build-the-int4-qat-kernel) below. +The FP8 recipe additionally needs a TransformerEngine build with FP8 blockwise scaling support. The INT4 recipe additionally needs the `fake_int4_quant_cuda` CUDA extension built — see [Build the int4_qat kernel](#build-int4-qat-kernel) below. ### FP8 Recipe @@ -217,6 +219,8 @@ The FP8 recipe additionally needs a TransformerEngine build with FP8 blockwise s ### INT4 fake-QAT Recipe + + #### Build the int4_qat kernel ```bash @@ -331,5 +335,5 @@ Do not swap `--sglang-hf-checkpoint` to the BF16 cast for "consistency". SGLang' ::: ::: tip -This recipe assumes the W4A16 release was produced with **symmetric** quantization (matching the training-side STE). If you regenerate the W4A16 from BF16 via `convert_hf_to_int4.py`, always pass `--is-symmetric` — see the warning in the [Offline Quantization Tools](#convert_hf_to_int4-py) section above. +This recipe assumes the W4A16 release was produced with **symmetric** quantization (matching the training-side STE). If you regenerate the W4A16 from BF16 via `convert_hf_to_int4.py`, always pass `--is-symmetric` — see the warning in the [Offline Quantization Tools](#convert-hf-to-int4) section above. ::: diff --git a/docs/en/guide/autoscaler-k8s-keda.md b/docs/en/guide/autoscaler-k8s-keda.md index 2ad5583b6..9a4b2c105 100644 --- a/docs/en/guide/autoscaler-k8s-keda.md +++ b/docs/en/guide/autoscaler-k8s-keda.md @@ -450,7 +450,7 @@ ______________________________________________________________________ - 引擎会使用初始模型权重运行 - 后续权重更新在 Actor 的 `update_weights_fully_async()` 完成后自动触发 -- 如果对权重一致性要求严格,参考 [弹性 Rollout 扩缩容文档](../zh/guide/elastic-rollout.md) 中的权重同步机制 +- 如果对权重一致性要求严格,参考 [弹性 Rollout 扩缩容文档](./elastic-rollout.md) 中的权重同步机制 ______________________________________________________________________ @@ -549,7 +549,7 @@ ______________________________________________________________________ ## 延伸阅读 -- [弹性 Rollout 扩缩容](../zh/guide/elastic-rollout.md) — Relax 弹性扩缩容完整文档 -- [全异步训练流水线](../zh/guide/fully-async-training.md) — 弹性扩缩容的基础运行模式 +- [弹性 Rollout 扩缩容](./elastic-rollout.md) — Relax 弹性扩缩容完整文档 +- [全异步训练流水线](./fully-async-training.md) — 弹性扩缩容的基础运行模式 - [KEDA 官方文档](https://keda.sh/docs/) — KEDA ScaledObject 配置参考 - [Prometheus Operator](https://prometheus-operator.dev/) — ServiceMonitor 配置参考 diff --git a/docs/en/guide/customize-training.md b/docs/en/guide/customize-training.md index 87733ade7..41650d7f0 100644 --- a/docs/en/guide/customize-training.md +++ b/docs/en/guide/customize-training.md @@ -18,7 +18,7 @@ hf download Qwen/Qwen3-VL-4B-Instruct --local-dir /root/Qwen3-VL-4B-Instruct ### Megatron Weights to HF Weights ::: tip No Manual Conversion Needed with Megatron Bridge -Relax uses [Megatron Bridge](../../../relax/backends/megatron/mbridge/) as the weight bridging layer for its training backend, automatically handling bidirectional HF ↔ Megatron weight conversion during training — **no manual conversion steps required**. Simply specify the following option in your launch script: +Relax uses [Megatron Bridge](https://github.com/NVIDIA-NeMo/Megatron-Bridge) as the weight bridging layer for its training backend, automatically handling bidirectional HF ↔ Megatron weight conversion during training — **no manual conversion steps required**. Simply specify the following option in your launch script: ::: ```bash diff --git a/docs/zh/examples/deepeyes.md b/docs/zh/examples/deepeyes.md index bc735b071..7d8cc7fe0 100644 --- a/docs/zh/examples/deepeyes.md +++ b/docs/zh/examples/deepeyes.md @@ -13,7 +13,7 @@ DeepEyes 示例演示了使用 Relax 进行 **Agent 式多轮视觉语言强化 ## 数据准备 -DeepEyes 使用 HuggingFace 上的 [Visual-Agent/DeepEyes](https://huggingface.co/datasets/Visual-Agent/DeepEyes) 数据集。数据集包含视觉问答样本,图像以 HF Image 格式内嵌存储。 +DeepEyes 使用 HuggingFace 上的 [ChenShawn/DeepEyes-Datasets-47k](https://huggingface.co/datasets/ChenShawn/DeepEyes-Datasets-47k) 数据集。数据集包含视觉问答样本,图像以 HF Image 格式内嵌存储。 ### 下载数据集 diff --git a/docs/zh/examples/low-precision-training.md b/docs/zh/examples/low-precision-training.md index efb9e3fa5..be60d5a2c 100644 --- a/docs/zh/examples/low-precision-training.md +++ b/docs/zh/examples/low-precision-training.md @@ -112,9 +112,11 @@ python scripts/tools/convert_fp8_to_bf16.py \ FP8 训练工作流下通常 **不需要** 这个脚本 — bridge 模式(`--megatron-to-hf-mode bridge`)会直接读取 FP8 HF。此工具用于离线转换:当你需要把 FP8 checkpoint 转回 BF16 HF 作为其他流水线的输入时(例如作为另一份配方的 `--ref-load`,或喂给 `convert_hf_to_int4.py`)。 ::: + + ### `convert_hf_to_int4.py` -把 BF16 的 HF checkpoint 量化为 W4A16(compressed-tensors)。依赖 `fake_int4_quant_cuda` kernel,需先编译(见 [编译 int4_qat kernel](#编译-int4-qat-kernel))。 +把 BF16 的 HF checkpoint 量化为 W4A16(compressed-tensors)。依赖 `fake_int4_quant_cuda` kernel,需先编译(见 [编译 int4_qat kernel](#build-int4-qat-kernel))。 ```bash python scripts/tools/convert_hf_to_int4.py \ @@ -185,7 +187,7 @@ Relax 在 Qwen3-30B-A3B(8 卡 colocate)上提供两条参考配方:**FP8 1. 一个 BF16 HF checkpoint(例如 `Qwen3-30B-A3B`)。 2. 应用 Megatron patch `docker/patch/megatron/20260506-85bced0ae.patch`(项目 Dockerfile 已自动应用)—— 该 patch 同时提供 FP8 配套的 override 与 INT4 假量化的 `_FakeInt4QuantizationSTE`(override 了 `TEGroupedLinear._get_weight_tensors()`)。 -FP8 配方额外需要一个支持 FP8 blockwise scaling 的 TransformerEngine 构建;INT4 配方额外需要编译 `fake_int4_quant_cuda` CUDA 扩展,见下文 [编译 int4_qat kernel](#编译-int4-qat-kernel)。 +FP8 配方额外需要一个支持 FP8 blockwise scaling 的 TransformerEngine 构建;INT4 配方额外需要编译 `fake_int4_quant_cuda` CUDA 扩展,见下文 [编译 int4_qat kernel](#build-int4-qat-kernel)。 ### FP8 低精度训练 @@ -216,6 +218,8 @@ FP8 配方额外需要一个支持 FP8 blockwise scaling 的 TransformerEngine ### INT4 低精度训练 + + #### 编译 int4_qat kernel ```bash @@ -329,5 +333,5 @@ bash scripts/entrypoint/ray-job.sh scripts/training/multimodal/run-kimi-k2.6-256 ::: ::: tip -这个配方假设 W4A16 发布版是用**对称量化**生成的(与训练侧 STE 对齐)。如果你从 BF16 出发用 `convert_hf_to_int4.py` 重新生成 W4A16,必须带上 `--is-symmetric` —— 详见上文 [离线量化工具](#convert_hf_to_int4-py) 的 warning。 +这个配方假设 W4A16 发布版是用**对称量化**生成的(与训练侧 STE 对齐)。如果你从 BF16 出发用 `convert_hf_to_int4.py` 重新生成 W4A16,必须带上 `--is-symmetric` —— 详见上文 [离线量化工具](#convert-hf-to-int4) 的 warning。 ::: diff --git a/docs/zh/guide/autoscaler-k8s-keda.md b/docs/zh/guide/autoscaler-k8s-keda.md index 2ad5583b6..9a4b2c105 100644 --- a/docs/zh/guide/autoscaler-k8s-keda.md +++ b/docs/zh/guide/autoscaler-k8s-keda.md @@ -450,7 +450,7 @@ ______________________________________________________________________ - 引擎会使用初始模型权重运行 - 后续权重更新在 Actor 的 `update_weights_fully_async()` 完成后自动触发 -- 如果对权重一致性要求严格,参考 [弹性 Rollout 扩缩容文档](../zh/guide/elastic-rollout.md) 中的权重同步机制 +- 如果对权重一致性要求严格,参考 [弹性 Rollout 扩缩容文档](./elastic-rollout.md) 中的权重同步机制 ______________________________________________________________________ @@ -549,7 +549,7 @@ ______________________________________________________________________ ## 延伸阅读 -- [弹性 Rollout 扩缩容](../zh/guide/elastic-rollout.md) — Relax 弹性扩缩容完整文档 -- [全异步训练流水线](../zh/guide/fully-async-training.md) — 弹性扩缩容的基础运行模式 +- [弹性 Rollout 扩缩容](./elastic-rollout.md) — Relax 弹性扩缩容完整文档 +- [全异步训练流水线](./fully-async-training.md) — 弹性扩缩容的基础运行模式 - [KEDA 官方文档](https://keda.sh/docs/) — KEDA ScaledObject 配置参考 - [Prometheus Operator](https://prometheus-operator.dev/) — ServiceMonitor 配置参考 diff --git a/docs/zh/guide/customize-training.md b/docs/zh/guide/customize-training.md index d7dc0b19d..e839209bb 100644 --- a/docs/zh/guide/customize-training.md +++ b/docs/zh/guide/customize-training.md @@ -18,7 +18,7 @@ hf download Qwen/Qwen3-VL-4B-Instruct --local-dir /root/Qwen3-VL-4B-Instruct ### Megatron 权重转 HF 权重 ::: tip 使用 Megatron Bridge 无需手动转换 -Relax 默认使用 [Megatron Bridge](../../../relax/backends/megatron/mbridge/) 作为训练后端的权重桥接层,在训练过程中自动完成 HF ↔ Megatron 权重的双向转换,**无需任何手动转换步骤**。只需在启动脚本中指定以下选项即可: +Relax 默认使用 [Megatron Bridge](https://github.com/NVIDIA-NeMo/Megatron-Bridge) 作为训练后端的权重桥接层,在训练过程中自动完成 HF ↔ Megatron 权重的双向转换,**无需任何手动转换步骤**。只需在启动脚本中指定以下选项即可: ::: ```bash diff --git a/examples/on_policy_distillation/README.md b/examples/on_policy_distillation/README.md index 8ec2a0172..4c9c32f22 100644 --- a/examples/on_policy_distillation/README.md +++ b/examples/on_policy_distillation/README.md @@ -66,9 +66,9 @@ SGLang per-position top-K log-prob transfer optimization (Qwen3-4B, simulated da ### Text OPD -| Script | Description | -| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- | -| [`math_opd/run-opd-sampled-8xgpu-colocate.sh`](math_opd/run-opd-sampled-8xgpu-colocate.sh) | Math OPD, Qwen3-4B → Qwen3-4B-Non-Thinking-RL, `student_sampled` + adv mode, 8 GPU colocate | +| Script | Description | +| -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | +| [`math_opd/run-opd-qwen35-35B-A3B-8xgpu-colocate.sh`](math_opd/run-opd-qwen35-35B-A3B-8xgpu-colocate.sh) | Math OPD, student: Qwen3.5-35B-A3B; teacher: Qwen3.5-35B-A3B-GRPO-dapomath17k-400step; `student_sampled` + adv mode, 8 GPU colocate | ### Multimodal OPD @@ -80,7 +80,7 @@ SGLang per-position top-K log-prob transfer optimization (Qwen3-4B, simulated da ## Common Combinations -Based on [`math_opd/run-opd-sampled-8xgpu-colocate.sh`](math_opd/run-opd-sampled-8xgpu-colocate.sh), modify key variables to switch modes: +Based on [`math_opd/run-opd-qwen35-35B-A3B-8xgpu-colocate.sh`](math_opd/run-opd-qwen35-35B-A3B-8xgpu-colocate.sh), modify key variables to switch modes: > **KL type note**: `student_sampled` supports only `reverse_kl` and `low_var_kl`; `student_topk`, `teacher_topk`, and `union` support `reverse_kl`, `forward_kl`, and `jsd` (set via `--opd-kl-type`; `jsd` can be tuned with `--opd-jsd-alpha`). diff --git a/examples/on_policy_distillation/mopd/README.md b/examples/on_policy_distillation/mopd/README.md index b00400688..57c9ccfed 100644 --- a/examples/on_policy_distillation/mopd/README.md +++ b/examples/on_policy_distillation/mopd/README.md @@ -148,4 +148,4 @@ rollout 阶段按每条样本的 `data_source` 找到对应教师,请求 token ## 参考 - [On-Policy Distillation - Relax Docs](../README.md) -- [OPD 参数说明](../README.md#关键参数说明) +- [OPD 参数配置示例](../README.md#common-combinations)