Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions autotest/config-npu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ default_config:
- HF_HUB_OFFLINE=1

case:
npu-qwen3-sft:
qwen3:
-
type: sft
parameters:
Expand All @@ -53,7 +53,7 @@ case:
runtime_info/text_tokens: 0
timeout: 10800

npu-qwen3-sft-ep8:
qwen3-ep8:
-
type: sft
phase: first
Expand Down Expand Up @@ -107,7 +107,7 @@ case:
runtime_info/text_tokens: 0
timeout: 10800

npu-qwen3-sft-tp2:
qwen3-tp2:
-
type: sft
parameters:
Expand All @@ -133,7 +133,7 @@ case:
runtime_info/text_tokens: 0
timeout: 10800

npu-qwen3-sft-recompute:
qwen3-recompute:
-
type: sft
parameters:
Expand Down Expand Up @@ -161,7 +161,7 @@ case:
runtime_info/text_tokens: 0
timeout: 10800

npu-qwen3-sft-16nums:
qwen3-16nums:
-
type: sft
parameters:
Expand All @@ -184,7 +184,7 @@ case:
lr: 0
timeout: 10800

npu-qwen3-sft-celoss-vs-gpu:
qwen3-celoss:
-
type: sft
parameters:
Expand All @@ -207,7 +207,7 @@ case:
lr: 0.01
timeout: 10800

npu-qwen3-rl-vllm:
qwen3-vllm:
-
type: rl
parameters:
Expand Down
262 changes: 262 additions & 0 deletions autotest/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,268 @@ default_config:
- HF_HUB_OFFLINE=1

case:

glm5-2-rl-lmdeploy-grpo:
-
type: rl
parameters:
config: autotest/config/rl_glm5p2_30B_gsm8k_grpo.py
infer_backend: lmdeploy
output_path: /mnt/shared-storage-user/llmrazor-share/qa-llm-cicd/test_output
resource:
pip_package: FLASH_MLA_DISABLE_SM100=1 pip install -v /mnt/shared-storage-user/llmrazor-share/qa-llm-cicd/flash-mla;pip install -e .[all]; pip install more-itertools pytest-xdist
memory_per_task: 1200
envs:
- MODEL_PATH=/mnt/shared-storage-user/llmrazor-share/model/GLM-5.2-30B
- DATA_PATH=/mnt/shared-storage-user/llmrazor-share/data/gsm8k/train-mini.jsonl
- EVAL_DATA_PATH=/mnt/shared-storage-user/llmrazor-share/data/gsm8k/test.jsonl
- XTUNER_USE_LMDEPLOY=1
- XTUNER_DETERMINISTIC=true
assert_info:
base_metric: glm5-2-rl-lmdeploy-grpo/tracker.jsonl
check_metrics:
-
metric: eval/accuracy
threshold: 0.1
method: absolute
operator: <
-
metric: response/rewards/mean
threshold: 0.3
method: absolute
operator: <
-
metric: mismatch/mismatch_k3_kl
threshold: 0.001
method: absolute
operator: <
-
metric: response/response_len/mean
threshold: 0.25
method: relative
operator: <
-
metric: time/step
threshold: 20
method: absolute
operator: <
timeout: 7200

glm5-2-rl-lmdeploy-dapo:
-
type: rl
parameters:
config: autotest/config/rl_glm5p2_30B_gsm8k_dapo.py
infer_backend: lmdeploy
output_path: /mnt/shared-storage-user/llmrazor-share/qa-llm-cicd/test_output
resource:
memory_per_task: 1200
pip_package: FLASH_MLA_DISABLE_SM100=1 pip install -v /mnt/shared-storage-user/llmrazor-share/qa-llm-cicd/flash-mla;pip install -e .[all]; pip install more-itertools pytest-xdist
envs:
- MODEL_PATH=/mnt/shared-storage-user/llmrazor-share/model/GLM-5.2-30B
- DATA_PATH=/mnt/shared-storage-user/llmrazor-share/data/gsm8k/train-mini.jsonl
- EVAL_DATA_PATH=/mnt/shared-storage-user/llmrazor-share/data/gsm8k/test.jsonl
- XTUNER_USE_LMDEPLOY=1
- XTUNER_DETERMINISTIC=true
assert_info:
base_metric: glm5-2-rl-lmdeploy-dapo/tracker.jsonl
check_metrics:
-
metric: eval/accuracy
threshold: 0.1
method: absolute
operator: <
-
metric: response/rewards/mean
threshold: 0.3
method: absolute
operator: <
-
metric: mismatch/mismatch_k3_kl
threshold: 0.001
method: absolute
operator: <
-
metric: response/response_len/mean
threshold: 0.25
method: relative
operator: <
-
metric: time/step
threshold: 20
method: absolute
operator: <
timeout: 7200
glm5-2-sft-30B:
-
type: sft
parameters:
config: autotest/config/glm5p2_30B.py
output_path: /mnt/shared-storage-user/llmrazor-share/qa-llm-cicd/test_output
resource:
cpus_per_task: 120
memory_per_task: 1200
envs:
- MODEL_PATH=/mnt/shared-storage-user/llmrazor-share/model/GLM-5.2-30B
- ALPACA_PATH=/mnt/shared-storage-user/llmrazor-share/data/alpaca
- XTUNER_GC_ENABLE=1
- SWAP_OPTIMIZER=0
- XTUNER_ACTIVATION_OFFLOAD=0
- XTUNER_USE_CUTLASS_GROUP_GEMM=1
- XTUNER_DETERMINISTIC=true
assert_info:
base_metric: glm5-2-sft-30B/tracker.jsonl
check_metrics:
grad_norm: 0.000001
loss/local_loss: 0.000001
loss/reduced_balancing_loss: 0.000001
loss/reduced_llm_loss: 0.000001
lr: 0
memory/max_memory_GB: 0.2
runtime_info/tgs: 0.05
runtime_info/text_tokens: 0
timeout: 1500

glm5-2-sft-30B-mtp-fp8:
-
type: sft
parameters:
config: autotest/config/glm5p2_30B_mtp_fp8.py
output_path: /mnt/shared-storage-user/llmrazor-share/qa-llm-cicd/test_output
resource:
cpus_per_task: 120
memory_per_task: 1200
envs:
- MODEL_PATH=/mnt/shared-storage-user/llmrazor-share/model/GLM-5.2-30B
- ALPACA_PATH=/mnt/shared-storage-user/llmrazor-share/data/alpaca
- XTUNER_DETERMINISTIC=true
- XTUNER_ACTIVATION_OFFLOAD=1
assert_info:
base_metric: glm5-2-sft-30B-mtp-fp8/tracker.jsonl
check_metrics:
grad_norm: 0.1
loss/local_loss: 0.000001
loss/reduced_balancing_loss: 0.000001
loss/reduced_llm_loss: 0.000001
lr: 0
memory/max_memory_GB: 0.2
runtime_info/tgs: 0.05
runtime_info/text_tokens: 0
timeout: 1500

glm5-2-sft-30B-sp2:
-
type: sft
parameters:
config: autotest/config/glm5p2_30B_sp2.py
output_path: /mnt/shared-storage-user/llmrazor-share/qa-llm-cicd/test_output
resource:
cpus_per_task: 120
memory_per_task: 1200
envs:
- MODEL_PATH=/mnt/shared-storage-user/llmrazor-share/model/GLM-5.2-30B
- ALPACA_PATH=/mnt/shared-storage-user/llmrazor-share/data/alpaca
- XTUNER_DETERMINISTIC=true
- PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
assert_info:
base_metric: glm5-2-sft-30B-sp2/tracker.jsonl
check_metrics:
grad_norm: 0.000001
loss/local_loss: 0.000001
loss/reduced_balancing_loss: 0.000001
loss/reduced_llm_loss: 0.000001
lr: 0
memory/max_memory_GB: 0.2
runtime_info/tgs: 0.05
runtime_info/text_tokens: 0
timeout: 1500

glm5-2-sft-30B-ep2-resume:
-
type: sft
phase: first
parameters:
config: autotest/config/glm5p2_30B_ep2_resume.py
output_path: /mnt/shared-storage-user/llmrazor-share/qa-llm-cicd/test_output
resource:
num_nodes: 2
envs:
- MODEL_PATH=/mnt/shared-storage-user/llmrazor-share/model/GLM-5.2-30B
- ALPACA_PATH=/mnt/shared-storage-user/llmrazor-share/data/alpaca
- XTUNER_DETERMINISTIC=true
- XTUNER_GC_ENABLE=1
assert_info:
base_metric: glm5-2-sft-30B-ep2-resume/tracker.jsonl
check_metrics:
grad_norm: 0.000001
loss/local_loss: 0.000001
loss/reduced_balancing_loss: 0.000001
loss/reduced_llm_loss: 0.000001
lr: 0
memory/max_memory_GB: 0.2
runtime_info/tgs: 0.05
runtime_info/text_tokens: 0
timeout: 1500

-
type: sft
phase: resume
pre_action:
command: 'python ./autotest/utils/update_meta.py /mnt/shared-storage-user/llmrazor-share/qa-llm-cicd/test_output glm5-2-sft-30B-ep2-resume sft'
parameters:
config: autotest/config/glm5p2_30B_ep2_resume.py
output_path: /mnt/shared-storage-user/llmrazor-share/qa-llm-cicd/test_output
resource:
num_nodes: 2
cpus_per_task: 80
memory_per_task: 1200
envs:
- MODEL_PATH=/mnt/shared-storage-user/llmrazor-share/model/GLM-5.2-30B
- ALPACA_PATH=/mnt/shared-storage-user/llmrazor-share/data/alpaca
- XTUNER_DETERMINISTIC=true
- XTUNER_GC_ENABLE=1
assert_info:
base_metric: glm5-2-sft-30B-ep2-resume/tracker-resume.jsonl
check_metrics:
grad_norm: 0.000001
loss/local_loss: 0.000001
loss/reduced_balancing_loss: 0.000001
loss/reduced_llm_loss: 0.000001
lr: 0
memory/max_memory_GB: 0.2
runtime_info/tgs: 0.05
runtime_info/text_tokens: 0
post_action:
command: 'python ./autotest/utils/resume_validation.py /mnt/shared-storage-user/llmrazor-share/qa-llm-cicd/test_output glm5-2-sft-30B-ep2-resume sft 10 "runtime_info/text_tokens,runtime_info/efficient_attn_ratio,loss/reduced_balancing_loss,loss/reduced_llm_loss,loss/local_loss"'
timeout: 1500

glm5-2-sft-30B-ep8-sp2-tp2:
-
type: sft
parameters:
config: autotest/config/glm5p2_30B_ep8_sp2_tp2.py
output_path: /mnt/shared-storage-user/llmrazor-share/qa-llm-cicd/test_output
resource:
num_nodes: 2
cpus_per_task: 80
envs:
- MODEL_PATH=/mnt/shared-storage-user/llmrazor-share/model/GLM-5.2-30B
- ALPACA_PATH=/mnt/shared-storage-user/llmrazor-share/data/alpaca
- XTUNER_DETERMINISTIC=true
- PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
assert_info:
base_metric: glm5-2-sft-30B-ep8-sp2-tp2/tracker.jsonl
check_metrics:
grad_norm: 0.000001
loss/local_loss: 0.000001
loss/reduced_balancing_loss: 0.000001
loss/reduced_llm_loss: 0.000001
lr: 0
memory/max_memory_GB: 0.2
runtime_info/tgs: 0.05
runtime_info/text_tokens: 0
timeout: 1800

# InternS2-Preview: Qwen3.5-VL-MoE-35B-A3B architecture; MODEL_PATH may need adjust on share.
s2-preview-rl-vl-lmdeploy-grpo:
-
Expand Down
63 changes: 63 additions & 0 deletions autotest/config/glm5p2_30B.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import os

from xtuner.v1.config import (
AdamWConfig,
FSDPConfig,
LRConfig,
)
from xtuner.v1.datasets.config import DataloaderConfig, DatasetConfig
from xtuner.v1.datasets.sft_tokenize_fn import OpenaiTokenizeFunctionConfig
from xtuner.v1.loss.ce_loss import CELossConfig
from xtuner.v1.model import get_model_config_from_hf
from xtuner.v1.train import TrainerConfig


MODEL_PATH = os.environ["MODEL_PATH"]
ALPACA_PATH = os.environ["ALPACA_PATH"]

ep_size = 4

moe_cfg = get_model_config_from_hf(MODEL_PATH)
moe_cfg.dispatcher = "deepep"
moe_cfg.ep_size = ep_size
moe_cfg.compile_cfg = False
if hasattr(moe_cfg.attention, "sparse_mla_backend"):
moe_cfg.attention.sparse_mla_backend = "tilelang"

optim_cfg = AdamWConfig(lr=6e-05)
lr_cfg = LRConfig(lr_type="cosine", lr_min=1e-6)
fsdp_cfg = FSDPConfig(
cpu_offload=False,
ep_size=ep_size,
)

dataset_config = [
{
"dataset": DatasetConfig(name="alpaca", anno_path=ALPACA_PATH, sample_ratio=1.0),
"tokenize_fn": OpenaiTokenizeFunctionConfig(chat_template="glm5.2", max_length=4096),
},
]

dataloader_config = DataloaderConfig(pack_max_length=16384)

loss_cfg = CELossConfig(mode="chunk", chunk_size=1024)
moe_cfg.lm_loss_cfg = loss_cfg

trainer = TrainerConfig(
load_from=MODEL_PATH,
model_cfg=moe_cfg,
optim_cfg=optim_cfg,
fsdp_cfg=fsdp_cfg,
dataset_cfg=dataset_config,
dataloader_cfg=dataloader_config,
lr_cfg=lr_cfg,
loss_cfg=loss_cfg,
tokenizer_path=MODEL_PATH,
strict_load=True,
global_batch_size=8,
intra_layer_micro_batch=1,
sp_size=1,
total_epoch=1,
work_dir=f"{os.environ['WORK_DIR']}",
seed=0,
)
Loading
Loading