PengxinWang commited on
Commit
3cdd8a6
·
verified ·
1 Parent(s): b562238

Simplify model card around step200 baseline and model download table

Browse files
Files changed (1) hide show
  1. README.md +15 -126
README.md CHANGED
@@ -14,132 +14,21 @@ tags:
14
 
15
  # RobustLLMAgent
16
 
17
- ## 默认训练步数:200(2026-09-17 更新)
18
 
19
- 项目新训练统一默认 **200 optimization steps**,适用于 **ALFWorld / WebShop、Qwen2.5-1.5B / 7B**,默认 training seed0、thinking off。此设置统一不同模型规模的训练步数,并较300-step预算减少三分之一的优化更新;实际训练耗时随任务与验证开销变化。显式指定的步数仍有效,历史实验与权重保留真实训练步数。
20
 
21
- 训练入口与配置见 [GitHub 项目](https://github.com/PengxinWang/RobustLLMAgent)。Clean及Gaussian/Stable、dropout、SAM训练默认终点均为step200;WebShop标准入口可用 `--steps` 覆盖,ALFWorld及鲁棒训练可用 `TRAIN_STEPS` 覆盖。续训目标是绝对global step,step100→200表示额外100次更新。
22
-
23
- **发布范围与默认设置分别说明:** 本仓库已发布7B step200和历史1.5B step300 adapter;新的1.5B step200权重尚未在本次说明更新中上传。以下step300路径与加载示例用于已有历史权重,不能当作step200结果。默认改为200不表示其绝对性能等同于300;方法比较应使用相同训练步数、解码和评测seed。
24
-
25
- ## 7B baseline(step 200,2026-09-15)
26
-
27
- 四组训练均已在 DeltaAI 成功完成 200 steps(Slurm COMPLETED、退出码 0)。统一使用 **Qwen/Qwen2.5-7B-Instruct、seed 0、thinking off**,发布终点 `global_step_200`,不是 `best_val`。
28
-
29
- | 环境 | 对照组 | 下载目录 |
30
- |---|---|---|
31
- | ALFWorld | clean | [qwen2_5_7_step_200_seed0](results/alfworld/training/qwen2_5_7_step_200_seed0) |
32
- | ALFWorld | Gaussian | [qwen2_5_7_gaussian_noise_step_200_seed0](results/alfworld/robust_training/qwen2_5_7_gaussian_noise_step_200_seed0) |
33
- | WebShop | clean | [qwen2_5_7_step_200_seed0](results/webshop/training/qwen2_5_7_step_200_seed0) |
34
- | WebShop | Gaussian | [qwen2_5_7_gaussian_noise_step_200_seed0](results/webshop/robust_training/qwen2_5_7_gaussian_noise_step_200_seed0) |
35
-
36
- 每组包含 `checkpoints/global_step_200/actor/lora_adapter/{adapter_config.json,adapter_model.safetensors}`、`run_config.json` 和 SHA256 `manifest.json`。四份 adapter 合计约 **2.58 GB**,需要另备 7B 基座;不包含 optimizer、FSDP 分片或训练恢复状态。Gaussian 的训练扰动为 sigma=0.1、sampling_mode=step;标准评测使用干净模型。
37
-
38
- 基座固定 revision:`a09a35458c702b33eeacc393d103063234e8bc28`。发布版 adapter 配置仅规范化基座模型 ID 并固定该 revision;权重及原始 `run_config.json` 保持逐字节不变。`run_config.json` 中的 status/runtime 是启动时记录,实际训练完成状态见各 `manifest.json`。每份 adapter 含 392 个 FP32 LoRA 张量(r=64、alpha=64),已验证形状及数值有限;生成环境使用 PEFT 0.20.0、Transformers 4.57.3。
39
-
40
- ### 下载 7B 权重并加载
41
-
42
- ```python
43
- import torch
44
- from huggingface_hub import snapshot_download
45
- from transformers import AutoModelForCausalLM, AutoTokenizer
46
- from peft import PeftModel
47
-
48
- snapshot = snapshot_download(
49
- repo_id="PengxinWang/RobustLLMAgent",
50
- allow_patterns=["results/*/*/qwen2_5_7*step_200_seed0/**"],
51
- local_dir="./RobustLLMAgent-artifacts",
52
- )
53
- experiment = "results/webshop/training/qwen2_5_7_step_200_seed0"
54
- checkpoint = f"{snapshot}/{experiment}/checkpoints/global_step_200"
55
- adapter = f"{checkpoint}/actor/lora_adapter"
56
- base_id = "Qwen/Qwen2.5-7B-Instruct"
57
- base_revision = "a09a35458c702b33eeacc393d103063234e8bc28"
58
- tokenizer = AutoTokenizer.from_pretrained(base_id, revision=base_revision)
59
- base = AutoModelForCausalLM.from_pretrained(
60
- base_id, revision=base_revision, torch_dtype=torch.bfloat16,
61
- )
62
- model = PeftModel.from_pretrained(base, adapter).eval()
63
- ```
64
-
65
- 更换 `experiment` 即可选择其他三组。训练导出的 tokenizer 与上述固定基座的词表、特殊 token、chat template 及分词规则一致,可以直接使用基座 tokenizer。加载示例本身不构成 benchmark 评测。
66
-
67
- ### 在项目标准入口中评测
68
-
69
- 两套 `scripts/eval/standard/{alfworld,webshop}/run_eval.sh` 均支持直接设置 `CKPT` 为下载的 `global_step_200` 目录,并将 `MODEL_PATH` 指向对应的本地 7B 基座;入口会准备合并模型,无需下载 FSDP/optimizer 文件。使用项目 `verl-agent` 环境,并在命名 tmux 会话中运行正式评测。
70
-
71
- WebShop 设置 `THINKING_MODE=nothinking`。ALFWorld 当前评测入口需要显式设置下列参数以匹配本次训练的提示与长度:
72
-
73
- ```bash
74
- export ALFWORLD_THINK_INSTRUCTION=''
75
- export ALFWORLD_ACTION_INSTRUCTION='Choose an admissible action for the current step and present it within <action> </action> tags.'
76
- export REQUIRE_THINK_TAGS=False
77
- export HISTORY_LENGTH=10 MAX_PROMPT_LENGTH=3072 MAX_RESPONSE_LENGTH=1024
78
- ```
79
-
80
- 正式 ALFWorld 评测应覆盖 ID 140 / OOD 134 个唯一 gamefiles;正式 WebShop 应覆盖固定 goals 0..499 的 500 个唯一任务。WebShop 训练中的 128-goal 内部验证不能代替正式评测。本次发布仅完成文件及权重验证,没有重新执行 benchmark。
81
-
82
-
83
- ## 历史 1.5B baseline 发布包(step 300)
84
-
85
- 以下是2026-09-11发布的历史固定对照,均已上传并通过文件大小及哈希校验;2026-09-17起新训练默认改为step200。四组统一使用 **`Qwen/Qwen2.5-1.5B-Instruct`、`global_step_300`、seed `0`**,不再继续训练这几个 checkpoint。
86
-
87
- 其中 clean 是普通训练基线,Gaussian 是高斯噪声鲁棒训练对照;复现历史step300比较时使用下表中的配对。
88
-
89
- | 环境 | 对照组 | 状态 | 实验目录(本地与 Hugging Face 一致) |
90
  |---|---|---|---|
91
- | ALFWorld | clean baseline | 已确定、已发布 | [`results/alfworld/training/qwen2_5_1_5_step_300_seed0`](https://huggingface.co/PengxinWang/RobustLLMAgent/tree/main/results/alfworld/training/qwen2_5_1_5_step_300_seed0) |
92
- | ALFWorld | Gaussian robust baseline | 已确定、已发布 | [`results/alfworld/robust_training/qwen2_5_1_5_gaussian_noise_step_300_seed0`](https://huggingface.co/PengxinWang/RobustLLMAgent/tree/main/results/alfworld/robust_training/qwen2_5_1_5_gaussian_noise_step_300_seed0) |
93
- | WebShop | clean baseline | 已确定、已发布 | [`results/webshop/training/qwen2_5_1_5_step_300_seed0`](https://huggingface.co/PengxinWang/RobustLLMAgent/tree/main/results/webshop/training/qwen2_5_1_5_step_300_seed0) |
94
- | WebShop | Gaussian robust baseline | 已确定、已发布 | [`results/webshop/robust_training/qwen2_5_1_5_gaussian_noise_step_300_seed0`](https://huggingface.co/PengxinWang/RobustLLMAgent/tree/main/results/webshop/robust_training/qwen2_5_1_5_gaussian_noise_step_300_seed0) |
95
-
96
- 本地路径相对于 `/localwork/pxwang24/rl_lab/RobustLLMAgent/`;远端路径相对于 [Hugging Face 模型仓库](https://huggingface.co/PengxinWang/RobustLLMAgent)。每组固定选择:
97
-
98
- ```text
99
- <实验目录>/checkpoints/global_step_300/actor/lora_adapter/
100
- ├── adapter_config.json
101
- └── adapter_model.safetensors
102
- ```
103
-
104
- 发布内容仅包括评测所需的 LoRA adapter、配置与来源说明,四组权重合计约 1.18 GB;使用时需搭配上述基座模型。训练恢复状态、optimizer、FSDP 分片、其他训练步骤及 `best_val` 不属于本次发布范围。加载方式见 [Hugging Face README](https://huggingface.co/PengxinWang/RobustLLMAgent/blob/main/README.md)。
105
-
106
- ALFWorld clean 最初训练到 400 steps,后续确定 300 steps 已足够,因此固定选取 step 300。本地目录仍是历史实验的软链接,历史 latest/best 元数据不代表本次选择;评测应显式指定 `global_step_300`。Gaussian 两组的扰动设置以各实验 `run_config.json` 为准。
107
-
108
- 这里的“已确定完成”指 checkpoint 选择与发布已完成;本次上传没有重新执行 benchmark,正式性能结论仍以对应完整任务集的 vLLM 评测记录为准。
109
-
110
- ## 历史 1.5B step300 下载与加载
111
-
112
- ```python
113
- from huggingface_hub import snapshot_download
114
- from transformers import AutoModelForCausalLM, AutoTokenizer
115
- from peft import PeftModel
116
-
117
- experiment = "results/alfworld/training/qwen2_5_1_5_step_300_seed0"
118
- snapshot = snapshot_download(
119
- repo_id="PengxinWang/RobustLLMAgent",
120
- allow_patterns=[f"{experiment}/**"],
121
- )
122
- adapter = f"{snapshot}/{experiment}/checkpoints/global_step_300/actor/lora_adapter"
123
- base_id = "Qwen/Qwen2.5-1.5B-Instruct"
124
- tokenizer = AutoTokenizer.from_pretrained(base_id)
125
- base = AutoModelForCausalLM.from_pretrained(base_id, torch_dtype="auto")
126
- model = PeftModel.from_pretrained(base, adapter).eval()
127
- ```
128
-
129
- 更换 `experiment` 即可选择其余三组。使用兼容的 Transformers / PEFT 环境;原始 adapter 配置记录 PEFT 0.19.1。可合并为标准 dense 模型后用于 vLLM:
130
-
131
- ```python
132
- model = model.merge_and_unload()
133
- model.save_pretrained("/path/to/merged_model", safe_serialization=True)
134
- tokenizer.save_pretrained("/path/to/merged_model")
135
- ```
136
-
137
- 项目的 `scripts/eval/standard/alfworld/run_eval.sh` 与 `scripts/eval/standard/webshop/run_eval.sh` 均支持以 `MODEL_PATH=/path/to/merged_model` 加载完整模型,此时不设置 `CKPT`。两个入口也支持直接把 `CKPT` 指向下载的 `global_step_300` 目录并设置对应基座 `MODEL_PATH`:共享准备流程会先合并 adapter,再以 dense 模式执行 vLLM 评测。
138
-
139
- ## 1.5B 来源与范围
140
-
141
- - ALFWorld clean 原始训练为 400 steps,随后由实验负责人选定 step 300 作为对照。发布路径使用本地选定名称;不携带指向 step 400/340 的历史 latest/best 元数据。
142
- - Gaussian 两组保留原始 `run_config.json`,包括扰动参数和 `sampling_mode`;其中本机路径仅用于追溯。评测默认不重新注入训练时扰动。
143
- - WebShop clean 的原始发布清单保存在 `analysis/source_manifest.json`,其列出的其他历史步骤未包含在本精简包;本次文件范围与哈希以各实验根目��的 `manifest.json` 为准。
144
- - adapter 权重与本地 step 300 完全一致。发布版 `adapter_config.json` 仅统一基座路径为 `Qwen/Qwen2.5-1.5B-Instruct`,本地源文件未修改。
145
- - 1.5B 发布内容不包含 optimizer、FSDP 分片、训练恢复状态、训练日志、step 100/200 或 best_val。本次仅发布并校验文件,未重新运行 benchmark。
 
14
 
15
  # RobustLLMAgent
16
 
17
+ 面向 ALFWorld 与 WebShop 的 Qwen2.5 强化学习模型。**所有模型与算法统一以 step200 为比较基准**,training seed=0,thinking off。
18
 
19
+ ## 已完成训练的模型
20
 
21
+ | 模型 | 环境 | 算法 | 下载目录 |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  |---|---|---|---|
23
+ | Qwen2.5-1.5B-Instruct | ALFWorld | GiGPO(Clean) | [global_step_300](https://huggingface.co/PengxinWang/RobustLLMAgent/tree/main/results/alfworld/training/qwen2_5_1_5_step_300_seed0/checkpoints/global_step_300/actor/lora_adapter) |
24
+ | Qwen2.5-1.5B-Instruct | ALFWorld | GiGPO + Gaussian | [global_step_300](https://huggingface.co/PengxinWang/RobustLLMAgent/tree/main/results/alfworld/robust_training/qwen2_5_1_5_gaussian_noise_step_300_seed0/checkpoints/global_step_300/actor/lora_adapter) |
25
+ | Qwen2.5-1.5B-Instruct | WebShop | GiGPO(Clean) | [global_step_300](https://huggingface.co/PengxinWang/RobustLLMAgent/tree/main/results/webshop/training/qwen2_5_1_5_step_300_seed0/checkpoints/global_step_300/actor/lora_adapter) |
26
+ | Qwen2.5-1.5B-Instruct | WebShop | GiGPO + Gaussian | [global_step_300](https://huggingface.co/PengxinWang/RobustLLMAgent/tree/main/results/webshop/robust_training/qwen2_5_1_5_gaussian_noise_step_300_seed0/checkpoints/global_step_300/actor/lora_adapter) |
27
+ | Qwen2.5-7B-Instruct | ALFWorld | GiGPO(Clean) | [global_step_200](https://huggingface.co/PengxinWang/RobustLLMAgent/tree/main/results/alfworld/training/qwen2_5_7_step_200_seed0/checkpoints/global_step_200/actor/lora_adapter) |
28
+ | Qwen2.5-7B-Instruct | ALFWorld | GiGPO + Gaussian | [global_step_200](https://huggingface.co/PengxinWang/RobustLLMAgent/tree/main/results/alfworld/robust_training/qwen2_5_7_gaussian_noise_step_200_seed0/checkpoints/global_step_200/actor/lora_adapter) |
29
+ | Qwen2.5-7B-Instruct | WebShop | GiGPO(Clean) | [global_step_200](https://huggingface.co/PengxinWang/RobustLLMAgent/tree/main/results/webshop/training/qwen2_5_7_step_200_seed0/checkpoints/global_step_200/actor/lora_adapter) |
30
+ | Qwen2.5-7B-Instruct | WebShop | GiGPO + Gaussian | [global_step_200](https://huggingface.co/PengxinWang/RobustLLMAgent/tree/main/results/webshop/robust_training/qwen2_5_7_gaussian_noise_step_200_seed0/checkpoints/global_step_200/actor/lora_adapter) |
31
+
32
+ 1.5B 的现有下载权重为 step300,step200 尚未上传;7B 的下载权重为 step200。
33
+
34
+ 下载内容为 LoRA adapter,需搭配对应的 Qwen2.5-Instruct 基座使用。训练与评测入口见 [GitHub 项目](https://github.com/PengxinWang/RobustLLMAgent)。