GuoruiSong commited on
Commit
b8a63e2
·
verified ·
1 Parent(s): 9d16b14

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. reward/wandb/run-20260529_194707-o3l1vpla/files/code/reward/rl_reward_video_reversal.py +339 -0
  2. reward/wandb/run-20260529_194707-o3l1vpla/files/config.yaml +273 -0
  3. reward/wandb/run-20260529_194707-o3l1vpla/files/output.log +4 -0
  4. reward/wandb/run-20260529_194707-o3l1vpla/files/requirements.txt +157 -0
  5. reward/wandb/run-20260529_194707-o3l1vpla/files/wandb-metadata.json +98 -0
  6. reward/wandb/run-20260529_194707-o3l1vpla/files/wandb-summary.json +1 -0
  7. reward/wandb/run-20260529_194707-o3l1vpla/logs/debug-core.log +18 -0
  8. reward/wandb/run-20260529_194707-o3l1vpla/logs/debug-internal.log +27 -0
  9. reward/wandb/run-20260529_194707-o3l1vpla/logs/debug.log +24 -0
  10. reward/wandb/run-20260529_194707-o3l1vpla/run-o3l1vpla.wandb +0 -0
  11. reward/wandb/run-20260529_221548-fmmkx1a5/files/wandb-metadata.json +98 -0
  12. reward/wandb/run-20260529_221548-fmmkx1a5/logs/debug-core.log +18 -0
  13. reward/wandb/run-20260529_221548-fmmkx1a5/logs/debug-internal.log +28 -0
  14. reward/wandb/run-20260529_221548-fmmkx1a5/logs/debug.log +25 -0
  15. reward/wandb/run-20260529_221548-fmmkx1a5/run-fmmkx1a5.wandb +0 -0
  16. reward/wandb/run-20260530_001305-fmmkx1a5/files/code/reward/rl_reward_video_reversal.py +339 -0
  17. reward/wandb/run-20260530_001305-fmmkx1a5/files/config.yaml +281 -0
  18. reward/wandb/run-20260530_001305-fmmkx1a5/files/output.log +4 -0
  19. reward/wandb/run-20260530_001305-fmmkx1a5/files/requirements.txt +157 -0
  20. reward/wandb/run-20260530_001305-fmmkx1a5/files/wandb-metadata.json +98 -0
  21. reward/wandb/run-20260530_001305-fmmkx1a5/files/wandb-summary.json +1 -0
  22. reward/wandb/run-20260530_001305-fmmkx1a5/logs/debug-core.log +18 -0
  23. reward/wandb/run-20260530_001305-fmmkx1a5/logs/debug-internal.log +28 -0
  24. reward/wandb/run-20260530_001305-fmmkx1a5/logs/debug.log +25 -0
  25. reward/wandb/run-20260530_001305-fmmkx1a5/run-fmmkx1a5.wandb +0 -0
  26. reward/wandb/run-20260530_022315-fmmkx1a5/files/code/reward/rl_reward_video_reversal.py +339 -0
  27. reward/wandb/run-20260530_022315-fmmkx1a5/files/config.yaml +281 -0
  28. reward/wandb/run-20260530_022315-fmmkx1a5/files/output.log +4 -0
  29. reward/wandb/run-20260530_022315-fmmkx1a5/files/requirements.txt +157 -0
  30. reward/wandb/run-20260530_022315-fmmkx1a5/files/wandb-metadata.json +98 -0
  31. reward/wandb/run-20260530_022315-fmmkx1a5/files/wandb-summary.json +1 -0
  32. reward/wandb/run-20260530_022315-fmmkx1a5/logs/debug-core.log +18 -0
  33. reward/wandb/run-20260530_022315-fmmkx1a5/logs/debug-internal.log +28 -0
  34. reward/wandb/run-20260530_022315-fmmkx1a5/logs/debug.log +25 -0
  35. reward/wandb/run-20260530_022315-fmmkx1a5/run-fmmkx1a5.wandb +0 -0
  36. reward/wandb/run-20260530_042845-fmmkx1a5/files/code/reward/rl_reward_video_reversal.py +339 -0
  37. reward/wandb/run-20260530_042845-fmmkx1a5/files/config.yaml +281 -0
  38. reward/wandb/run-20260530_042845-fmmkx1a5/files/output.log +4 -0
  39. reward/wandb/run-20260530_042845-fmmkx1a5/files/requirements.txt +157 -0
  40. reward/wandb/run-20260530_042845-fmmkx1a5/files/wandb-metadata.json +98 -0
  41. reward/wandb/run-20260530_042845-fmmkx1a5/files/wandb-summary.json +1 -0
  42. reward/wandb/run-20260530_042845-fmmkx1a5/logs/debug-core.log +18 -0
  43. reward/wandb/run-20260530_042845-fmmkx1a5/logs/debug-internal.log +28 -0
  44. reward/wandb/run-20260530_042845-fmmkx1a5/logs/debug.log +25 -0
  45. reward/wandb/run-20260530_042845-fmmkx1a5/run-fmmkx1a5.wandb +0 -0
  46. reward/wandb/run-20260530_063905-fmmkx1a5/files/code/reward/rl_reward_video_reversal.py +339 -0
  47. reward/wandb/run-20260530_063905-fmmkx1a5/files/config.yaml +281 -0
  48. reward/wandb/run-20260530_063905-fmmkx1a5/files/output.log +4 -0
  49. reward/wandb/run-20260530_063905-fmmkx1a5/files/requirements.txt +157 -0
  50. reward/wandb/run-20260530_063905-fmmkx1a5/files/wandb-metadata.json +98 -0
reward/wandb/run-20260529_194707-o3l1vpla/files/code/reward/rl_reward_video_reversal.py ADDED
@@ -0,0 +1,339 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import math_utils_v
3
+ import nest_asyncio
4
+ from concurrent.futures import ThreadPoolExecutor
5
+ import asyncio
6
+ import re
7
+ from termcolor import cprint
8
+ from omegaconf import MISSING
9
+ from omegaconf import DictConfig, ListConfig, OmegaConf
10
+ from typing import List, Union
11
+ import os
12
+ from collections import defaultdict
13
+ import sys
14
+
15
+ REPO_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
16
+ sys.path.insert(0, REPO_ROOT)
17
+
18
+ import wandb
19
+ from train.utils import flatten_omega_conf, ensure_wandb_run_id
20
+
21
+ def resolve_media_abs_path(sample: dict, dataset_root: str | None, media_type: str = "image") -> str | None:
22
+ p = sample.get(f"{media_type}_abs_path")
23
+ if p is None:
24
+ p = sample.get(media_type) or sample.get(f"{media_type}_path")
25
+ if p is None:
26
+ return None
27
+ if not os.path.isabs(p) and dataset_root:
28
+ p = os.path.join(dataset_root, p)
29
+ try:
30
+ return os.path.abspath(p)
31
+ except Exception:
32
+ return p
33
+
34
+ def get_config():
35
+ cli_conf = OmegaConf.from_cli()
36
+ yaml_conf = OmegaConf.load(cli_conf.config)
37
+ conf = OmegaConf.merge(yaml_conf, cli_conf)
38
+ return conf
39
+
40
+ def remove_endoftext(obj: Union[str, List[str]]) -> Union[str, List[str]]:
41
+ token = '<|endoftext|>'
42
+ if isinstance(obj, str):
43
+ return obj.replace(token, '')
44
+ if isinstance(obj, list):
45
+ return [s.replace(token, '') if isinstance(s, str) else s for s in obj]
46
+ raise TypeError("Expected str or list of str")
47
+
48
+
49
+ if __name__ == "__main__":
50
+
51
+ config = get_config()
52
+ run = None
53
+ if config.experiment.function == "train":
54
+ existing_run_id = OmegaConf.select(config, "wandb.run_id", default=None)
55
+ run_id = ensure_wandb_run_id(config)
56
+ resume_wandb_run = config.wandb.resume
57
+ if existing_run_id is None:
58
+ resume_wandb_run = False
59
+ wandb_config = {k: v for k, v in flatten_omega_conf(config, resolve=True)}
60
+ run = wandb.init(
61
+ project=config.experiment.project,
62
+ entity=config.wandb.get("entity", None),
63
+ id=run_id,
64
+ resume=resume_wandb_run,
65
+ config=wandb_config,
66
+ reinit=True,
67
+ name=config.experiment.project,
68
+ )
69
+
70
+ project_name = config.experiment.project
71
+
72
+ if config.experiment.current_epoch == 1:
73
+ pretrained_model = config.model.pretrained_model
74
+ else:
75
+ pretrained_model = "../" + project_name + "/ckpt/" + config.model.optimized_name
76
+
77
+ if config.experiment.function == "train":
78
+ shrink = config.training.shrink
79
+ dataset = config.dataset.train_dataset
80
+ outputs_name = "rl-" + pretrained_model.replace("/", ".") + "-" + dataset + f"-step{config.experiment.current_epoch}"
81
+
82
+ elif config.experiment.function == "evaluation":
83
+ dataset = config.evaluation.eval_dataset
84
+ outputs_name = "eval-" + pretrained_model.replace("/", ".") + "-" + dataset + f"-step{config.experiment.current_epoch}"
85
+
86
+ file_name = "../" + project_name + "/temp_data/outputs-" + outputs_name + ".json"
87
+
88
+ with open(file_name, 'r') as f:
89
+ data = json.load(f)
90
+
91
+ index_list = []
92
+ extracted_output_list = []
93
+ response_length_list = []
94
+ for i in range(len(data)):
95
+ data[i]["correctness"] = []
96
+ response_length_list += data[i]["response_length"]
97
+ index_list += [i] * len(data[i]["extracted_output"])
98
+ extracted_output_list += remove_endoftext(data[i]["extracted_output"])
99
+
100
+ nest_asyncio.apply()
101
+
102
+ async def get_correctness_all():
103
+ executor = ThreadPoolExecutor(max_workers=64)
104
+ tasks = []
105
+
106
+ for p in range(len(index_list)):
107
+ pred = extracted_output_list[p]
108
+ idx = index_list[p]
109
+
110
+ # 选择题正确性匹配逻辑
111
+ if config.dataset.data_type == "video_reverse" or config.evaluation.data_type == "video_reverse":
112
+ gt = data[idx].get("response", "")
113
+
114
+ async def mcq_check(p_str, g_str):
115
+ if p_str in g_str or g_str in p_str:
116
+ return True
117
+
118
+ p_str = str(p_str).strip()
119
+ g_str = str(g_str).strip()
120
+ p_match = re.search(r'^([A-Z])[\.\s]', p_str)
121
+ g_match = re.search(r'^([A-Z])[\.\s]', g_str)
122
+ if p_match and g_match:
123
+ return p_match.group(1) == g_match.group(1)
124
+ return g_str in p_str
125
+
126
+ tasks.append(mcq_check(pred, gt))
127
+ else:
128
+ gt = data[idx].get("ground_truth_answer", "")
129
+ tasks.append(math_utils_v.is_equal(pred, gt, executor))
130
+
131
+ return await asyncio.gather(*tasks)
132
+
133
+ correctness_all = asyncio.run(get_correctness_all())
134
+ for p, ok in enumerate(correctness_all):
135
+ index_i = index_list[p]
136
+ data[index_i]["correctness"].append(bool(ok))
137
+
138
+ # =========================================================================
139
+ # 核心新增逻辑:跨样本群组计算 T-GRPO 奖励 和 逆转无偏奖励
140
+ # =========================================================================
141
+
142
+ # 1. 按照 data_id 分组映射索引
143
+ grouped_data = defaultdict(lambda: {
144
+ "forward_False": [], "backward_False": [],
145
+ "forward_True": [], "backward_True": []
146
+ })
147
+
148
+ for i in range(len(data)):
149
+ d_id = data[i].get("data_id")
150
+ if d_id is None:
151
+ continue
152
+ r_type = data[i].get("reversal_type", "forward")
153
+ is_shuf = str(data[i].get("is_shuffled", False))
154
+ grouped_data[d_id][f"{r_type}_{is_shuf}"].append(i)
155
+
156
+ # 计算并应用群组奖励
157
+ all_temporal_bonuses = [] # 新增:记录所有的时序红利
158
+ all_unbiased_bonuses = [] # 新增:记录所有的无偏红利
159
+
160
+ # 2. 计算并应用群组奖励
161
+ for d_id, group in grouped_data.items():
162
+
163
+ def get_acc(key):
164
+ if not group[key]: return 0.0
165
+ idx = group[key][0]
166
+ corr = data[idx]["correctness"]
167
+ return sum(corr) / len(corr) if len(corr) > 0 else 0.0
168
+
169
+ # 获取四组情况的正确率
170
+ acc_f_ord = get_acc("forward_False")
171
+ acc_f_shuf = get_acc("forward_True")
172
+ acc_b_ord = get_acc("backward_False")
173
+ acc_b_shuf = get_acc("backward_True")
174
+
175
+ # T-GRPO 奖励: 顺序正确率 >= 0.8 * 打乱正确率,得 0.3
176
+ f_temporal_bonus = 0.3 if acc_f_ord >= 0.8 * acc_f_shuf else 0.0
177
+ b_temporal_bonus = 0.3 if acc_b_ord >= 0.8 * acc_b_shuf else 0.0
178
+
179
+ # 逆转无偏奖励: 正反正确率差值 <= 0.2,且都不是彻底全错,得 0.3
180
+ unbiased_bonus = 0.0
181
+ if abs(acc_f_ord - acc_b_ord) <= 0.2 and (acc_f_ord > 0.1 or acc_b_ord > 0.1):
182
+ unbiased_bonus = 0.3
183
+
184
+ # 新增:将当前组的奖励记录下来用于统计
185
+ if group["forward_False"]:
186
+ all_temporal_bonuses.append(f_temporal_bonus)
187
+ all_unbiased_bonuses.append(unbiased_bonus)
188
+ if group["backward_False"]:
189
+ all_temporal_bonuses.append(b_temporal_bonus)
190
+ all_unbiased_bonuses.append(unbiased_bonus)
191
+
192
+ # 仅将奖励发放给 顺序组(is_shuffled=False) 中回答正确的样本
193
+ def apply_bonus(key, temporal_bonus, unbiased_bonus):
194
+ if not group[key]: return
195
+ idx = group[key][0]
196
+ raw_rewards = []
197
+ for is_correct in data[idx]["correctness"]:
198
+ if is_correct:
199
+ # 基础分 1.0 + 时序红利 + 无偏红利
200
+ raw_rewards.append(1.0 + temporal_bonus + unbiased_bonus)
201
+ else:
202
+ raw_rewards.append(0.0)
203
+ data[idx]["raw_rewards"] = raw_rewards
204
+
205
+ apply_bonus("forward_False", f_temporal_bonus, unbiased_bonus)
206
+ apply_bonus("backward_False", b_temporal_bonus, unbiased_bonus)
207
+
208
+ # =========================================================================
209
+
210
+ def z_score_normalize(lst):
211
+ mean = sum(lst) / len(lst) if len(lst) > 0 else 0.0
212
+ std = (sum((x - mean) ** 2 for x in lst) / len(lst)) ** 0.5 if len(lst) > 0 else 0.0
213
+ if std == 0:
214
+ return [0 for _ in lst]
215
+ return [(x - mean) / std for x in lst]
216
+
217
+ final_data = []
218
+ ordered_correctness = [] # 用于日志打印,不记录被打乱的实验数据
219
+
220
+ for i in range(len(data)):
221
+ # 丢弃打乱的对照组,它们仅仅用于上面的计算参照,不进入强化学习
222
+ if data[i].get("is_shuffled", False):
223
+ continue
224
+
225
+ ordered_correctness.extend(data[i]["correctness"])
226
+
227
+ # 如果部分数据没有走过分组逻辑,默认回退为原始 correct 分数
228
+ raw_rewards = data[i].get("raw_rewards", [float(c) for c in data[i]["correctness"]])
229
+ lengths = data[i]["response_length"]
230
+
231
+ # 长度惩罚
232
+ if config.reward.strict_len_check:
233
+ for j in range(len(lengths)):
234
+ if OmegaConf.select(config, "rollout.max_gen_length", default=MISSING) is not MISSING and lengths[j] >= config.rollout.max_gen_length - 5:
235
+ raw_rewards[j] = 0.0
236
+ if OmegaConf.select(config, "rollout.max_token", default=MISSING) is not MISSING and lengths[j] >= config.rollout.max_token - 5:
237
+ raw_rewards[j] = 0.0
238
+
239
+ # Z-Score 优势归一化
240
+ rewards = z_score_normalize(raw_rewards)
241
+ data[i]["rewards"] = rewards
242
+
243
+ if config.experiment.function == "train":
244
+ proportion = sum(data[i]["correctness"]) / len(data[i]["correctness"]) if len(data[i]["correctness"]) > 0 else 0.0
245
+ # 如果全部回答都是错的,或者全是对的(无差别区分度),则剔除该样本
246
+ if proportion > 0.95 or proportion < 0.05:
247
+ continue
248
+
249
+ for j in range(len(rewards)):
250
+ data_i = {}
251
+ data_i["prompt"] = data[i]["prompt"]
252
+ data_i["reward"] = rewards[j]
253
+ data_i["response"] = data[i]["full_output"][j]
254
+ data_i["step_map"] = data[i]["step_map"][j]
255
+
256
+ # 保留其他需要的上下文 ID
257
+ data_i["data_id"] = data[i].get("data_id")
258
+ data_i["reversal_type"] = data[i].get("reversal_type")
259
+
260
+ if "image_token_ids" in data[i]:
261
+ data_i["image_token_ids"] = data[i]["image_token_ids"]
262
+
263
+ p_video_abs = resolve_media_abs_path(data[i], config.dataset.get("image_root", None), "video")
264
+ if p_video_abs is not None:
265
+ data_i["video_abs_path"] = p_video_abs
266
+
267
+ p_image_abs = resolve_media_abs_path(data[i], config.dataset.get("image_root", None), "image")
268
+ if p_image_abs is not None:
269
+ data_i["image_abs_path"] = p_image_abs
270
+
271
+ final_data.append(data_i)
272
+
273
+ if config.experiment.function == "evaluation":
274
+ data[i]["step_map"] = []
275
+
276
+ if config.experiment.function == "train":
277
+ with open("../" + project_name + "/temp_data/" + config.dataset.optimization_data + ".json", "w", encoding="utf-8") as f:
278
+ json.dump(final_data, f, indent=2, ensure_ascii=False)
279
+
280
+
281
+ os.makedirs(os.path.dirname(file_name), exist_ok=True)
282
+ with open(file_name, "w", encoding="utf-8") as f:
283
+ json.dump(data, f, indent=2, ensure_ascii=False)
284
+
285
+
286
+ outputs_result_name = "../" + project_name + "/results/results-" + outputs_name + ".txt"
287
+ os.makedirs(os.path.dirname(outputs_result_name), exist_ok=True)
288
+ with open(outputs_result_name, "a") as f:
289
+ # Save + print
290
+ def save_and_print(text):
291
+ cprint("\n\n\n" + text, color="green")
292
+ f.write(text + "\n")
293
+
294
+ # 只计算有序组(有效学习组)的准确率来作为监控指标
295
+ acc = (sum(ordered_correctness)/len(ordered_correctness)) if len(ordered_correctness) > 0 else float("nan")
296
+ avg_len = sum(response_length_list)/len(response_length_list)
297
+
298
+ # 新增:计算 T-GRPO 和 Unbiased 奖励的平均值
299
+ avg_temp = sum(all_temporal_bonuses)/len(all_temporal_bonuses) if all_temporal_bonuses else 0.0
300
+ avg_unbias = sum(all_unbiased_bonuses)/len(all_unbiased_bonuses) if all_unbiased_bonuses else 0.0
301
+
302
+ output_text = f"train step: {config.experiment.current_epoch} "
303
+ if config.experiment.function == "train":
304
+ if config.model.model_base != "sdar" and config.model.model_base != "trado":
305
+ output_text = output_text + f"remasking_strategy: {config.rollout.remasking_strategy} block_size: {config.rollout.block_size} acc: {acc:.4f} avg length: {avg_len:.2f}"
306
+ else:
307
+ output_text = output_text + f"remasking_strategy: {config.rollout.remasking_strategy} top_k: {config.rollout.top_k} acc: {acc:.4f} avg length: {avg_len:.2f}"
308
+ else:
309
+ if config.model.model_base != "sdar" and config.model.model_base != "trado":
310
+ output_text = output_text + f"remasking_strategy: {config.evaluation.remasking_strategy} block_size: {config.evaluation.block_size} acc: {acc:.4f} avg length: {avg_len:.2f}"
311
+ else:
312
+ output_text = output_text + f"remasking_strategy: {config.evaluation.remasking_strategy} top_k: {config.evaluation.top_k} acc: {acc:.4f} avg length: {avg_len:.2f}"
313
+ save_and_print(output_text)
314
+
315
+ if config.experiment.function == "train":
316
+ csv_file_path = f"../{project_name}/results/all_rewards.csv"
317
+
318
+ # 如果是第1个 epoch/step,或者是新文件,就先写入表头
319
+ write_header = not os.path.exists(csv_file_path) or config.experiment.current_epoch == 1
320
+
321
+ with open(csv_file_path, "a", encoding="utf-8") as f_csv:
322
+ if write_header:
323
+ f_csv.write("step,acc_reward,t_grpo_reward,unbiased_reward,response_length\n")
324
+
325
+ # 按行追加当前 step 的数据
326
+ f_csv.write(f"{config.experiment.current_epoch},{acc:.4f},{avg_temp:.4f},{avg_unbias:.4f},{avg_len:.2f}\n")
327
+
328
+ if run is not None:
329
+ wandb.log(
330
+ {
331
+ "reward/acc": acc,
332
+ "reward/t_grpo_bonus": avg_temp,
333
+ "reward/unbiased_bonus": avg_unbias,
334
+ "reward/avg_response_length": avg_len,
335
+ "reward/train_step": config.experiment.current_epoch,
336
+ },
337
+ step=config.experiment.current_epoch,
338
+ )
339
+ wandb.finish()
reward/wandb/run-20260529_194707-o3l1vpla/files/config.yaml ADDED
@@ -0,0 +1,273 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ _wandb:
2
+ value:
3
+ cli_version: 0.25.0
4
+ code_path: code/reward/rl_reward_video_reversal.py
5
+ e:
6
+ 9pqfh5lrgyl0srsilyb4o7f1khpc7ymu:
7
+ args:
8
+ - config=../configs/rl_lavida_video_reversal.yaml
9
+ - wandb.run_id=o3l1vpla
10
+ - experiment.function=train
11
+ - evaluation.block_size=None
12
+ - evaluation.top_k=None
13
+ - evaluation.remasking_strategy=None
14
+ - experiment.current_epoch=1
15
+ codePath: reward/rl_reward_video_reversal.py
16
+ codePathLocal: rl_reward_video_reversal.py
17
+ cpu_count: 96
18
+ cpu_count_logical: 192
19
+ cudaVersion: "12.8"
20
+ disk:
21
+ /:
22
+ total: "806578724864"
23
+ used: "623847804928"
24
+ email: shixi_runqing@staff.weibo.com
25
+ executable: /data8/runqing/miniconda/envs/dllm-rl/bin/python
26
+ git:
27
+ commit: 10b4fd1cba83e4496c20585dc2fd01dc02f20255
28
+ remote: https://gitclone.com/github.com/Gen-Verse/dLLM-RL.git
29
+ gpu: NVIDIA H800
30
+ gpu_count: 8
31
+ gpu_nvidia:
32
+ - architecture: Hopper
33
+ cudaCores: 16896
34
+ memoryTotal: "85520809984"
35
+ name: NVIDIA H800
36
+ uuid: GPU-f768b684-b9ce-23a2-81a6-af16161cf9be
37
+ - architecture: Hopper
38
+ cudaCores: 16896
39
+ memoryTotal: "85520809984"
40
+ name: NVIDIA H800
41
+ uuid: GPU-2f1e1a7b-76a2-e00b-3dc5-79add059b8f9
42
+ - architecture: Hopper
43
+ cudaCores: 16896
44
+ memoryTotal: "85520809984"
45
+ name: NVIDIA H800
46
+ uuid: GPU-33d7b8d4-af9c-4719-9686-1712e9694cd6
47
+ - architecture: Hopper
48
+ cudaCores: 16896
49
+ memoryTotal: "85520809984"
50
+ name: NVIDIA H800
51
+ uuid: GPU-0b797f66-23ec-d0ff-1c65-fb34b9064e53
52
+ - architecture: Hopper
53
+ cudaCores: 16896
54
+ memoryTotal: "85520809984"
55
+ name: NVIDIA H800
56
+ uuid: GPU-ad9e9c73-0f31-a8b3-e8f7-7be19f5338ad
57
+ - architecture: Hopper
58
+ cudaCores: 16896
59
+ memoryTotal: "85520809984"
60
+ name: NVIDIA H800
61
+ uuid: GPU-f531028f-805c-3301-61b3-0c46329dc9c0
62
+ - architecture: Hopper
63
+ cudaCores: 16896
64
+ memoryTotal: "85520809984"
65
+ name: NVIDIA H800
66
+ uuid: GPU-2775489f-18c8-2328-8829-c46238575379
67
+ - architecture: Hopper
68
+ cudaCores: 16896
69
+ memoryTotal: "85520809984"
70
+ name: NVIDIA H800
71
+ uuid: GPU-1dd27781-c1f3-d980-6f18-fe8a778b69fd
72
+ host: b1301b38c75f
73
+ memory:
74
+ total: "2164113764352"
75
+ os: Linux-5.15.0-144-generic-x86_64-with-glibc2.35
76
+ program: /data4/runqing/dLLM-RL/reward/rl_reward_video_reversal.py
77
+ python: CPython 3.10.19
78
+ root: /data4/runqing/dLLM-RL/reward
79
+ startedAt: "2026-05-29T11:47:07.400494Z"
80
+ writerId: 9pqfh5lrgyl0srsilyb4o7f1khpc7ymu
81
+ m: []
82
+ python_version: 3.10.19
83
+ t:
84
+ "1":
85
+ - 1
86
+ - 41
87
+ "2":
88
+ - 1
89
+ - 41
90
+ "3":
91
+ - 2
92
+ - 13
93
+ - 14
94
+ - 16
95
+ - 61
96
+ "4": 3.10.19
97
+ "5": 0.25.0
98
+ "10":
99
+ - 20
100
+ "12": 0.25.0
101
+ "13": linux-x86_64
102
+ config:
103
+ value: ../configs/rl_lavida_video_reversal.yaml
104
+ dataset.data_type:
105
+ value: video_reverse
106
+ dataset.optimization_data:
107
+ value: rl_data
108
+ dataset.train_dataset:
109
+ value: video_reversal_rl_train
110
+ evaluation.batch_size:
111
+ value: 1
112
+ evaluation.block_size:
113
+ value: None
114
+ evaluation.data_type:
115
+ value: video_reverse
116
+ evaluation.dynamic_threshold:
117
+ value: 0.9
118
+ evaluation.eval_dataset:
119
+ value: video_reversal_rl_eval
120
+ evaluation.further_horizon:
121
+ value: 128
122
+ evaluation.if_eval:
123
+ value: false
124
+ evaluation.max_gen_length:
125
+ value: 128
126
+ evaluation.num_response_per_task:
127
+ value: 3
128
+ evaluation.remasking_strategy:
129
+ value: None
130
+ evaluation.steps:
131
+ value: 128
132
+ evaluation.target:
133
+ value: confidence
134
+ evaluation.temperature:
135
+ value: 0.1
136
+ evaluation.top_k:
137
+ value: None
138
+ evaluation.use_cache:
139
+ value: true
140
+ execute.num_chunk:
141
+ value: 128
142
+ experiment.current_epoch:
143
+ value: 1
144
+ experiment.deepspeed_file:
145
+ value: 1_node_8_gpus_deepspeed_zero2
146
+ experiment.eval_every:
147
+ value: 5
148
+ experiment.function:
149
+ value: train
150
+ experiment.node_index:
151
+ value: 0
152
+ experiment.num_node:
153
+ value: 1
154
+ experiment.project:
155
+ value: rl_lavida_video_reversal
156
+ experiment.save_every:
157
+ value: 10
158
+ experiment.start_from_scratch:
159
+ value: true
160
+ experiment.total_step:
161
+ value: 30
162
+ lr_scheduler.params.learning_rate:
163
+ value: 1e-06
164
+ lr_scheduler.params.min_lr_scale:
165
+ value: 1
166
+ lr_scheduler.params.warmup_steps:
167
+ value: 0
168
+ lr_scheduler.scheduler:
169
+ value: cosine
170
+ model.image_resolution:
171
+ value: 512
172
+ model.model_base:
173
+ value: lavida
174
+ model.optimized_name:
175
+ value: optimized
176
+ model.pretrained_model:
177
+ value: /data4/runqing/dLLM-RL/sft_lavida_video_reversal/ckpt/optimized
178
+ model.vq_model_path:
179
+ value: /data4/runqing/hf/magvitv2
180
+ optimizer.name:
181
+ value: adamw
182
+ optimizer.params.beta1:
183
+ value: 0.9
184
+ optimizer.params.beta2:
185
+ value: 0.999
186
+ optimizer.params.epsilon:
187
+ value: 1e-08
188
+ optimizer.params.learning_rate:
189
+ value: 1e-06
190
+ optimizer.params.scale_lr:
191
+ value: false
192
+ optimizer.params.weight_decay:
193
+ value: 0
194
+ reward.answer_must_in_box:
195
+ value: true
196
+ reward.strict_len_check:
197
+ value: false
198
+ rollout.batch_size:
199
+ value: 1
200
+ rollout.block_size:
201
+ value: 32
202
+ rollout.dynamic_threshold:
203
+ value: 0.9
204
+ rollout.further_horizon:
205
+ value: 128
206
+ rollout.max_gen_length:
207
+ value: 128
208
+ rollout.num_response_per_task:
209
+ value: 8
210
+ rollout.num_task_per_step:
211
+ value: 128
212
+ rollout.remasking_strategy:
213
+ value: low_confidence_dynamic
214
+ rollout.steps:
215
+ value: 128
216
+ rollout.target:
217
+ value: confidence
218
+ rollout.temperature:
219
+ value: 0.8
220
+ rollout.use_cache:
221
+ value: true
222
+ system.HF_HOME:
223
+ value: null
224
+ system.HTTP_PROXY:
225
+ value: null
226
+ system.base_dir:
227
+ value: /data4/runqing/dLLM-RL
228
+ system.env_name:
229
+ value: /data8/runqing/miniconda/envs/dllm-rl
230
+ system.envs_dir:
231
+ value: /data8/runqing/miniconda/envs/dllm-rl
232
+ training.batch_size_lm:
233
+ value: 1
234
+ training.beta:
235
+ value: 0.01
236
+ training.enable_tf32:
237
+ value: true
238
+ training.eps:
239
+ value: 0.2
240
+ training.gradient_accumulation_steps:
241
+ value: 2
242
+ training.lower_p:
243
+ value: 0.35
244
+ training.mask_times_per_sample:
245
+ value: 2
246
+ training.max_gen_length:
247
+ value: 128
248
+ training.max_grad_norm:
249
+ value: 1
250
+ training.max_prompt_len:
251
+ value: 512
252
+ training.method:
253
+ value: random_masking
254
+ training.mixed_precision:
255
+ value: bf16
256
+ training.num_train_epochs:
257
+ value: 1
258
+ training.post_num:
259
+ value: 1
260
+ training.seed:
261
+ value: 10086
262
+ training.shrink:
263
+ value: 8
264
+ training.upper_p:
265
+ value: 0.9
266
+ training.use_kl_estimator_k3:
267
+ value: true
268
+ wandb.entity:
269
+ value: null
270
+ wandb.resume:
271
+ value: auto
272
+ wandb.run_id:
273
+ value: o3l1vpla
reward/wandb/run-20260529_194707-o3l1vpla/files/output.log ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+
2
+
3
+
4
+ train step: 1 remasking_strategy: low_confidence_dynamic block_size: 32 acc: 0.4824 avg length: 126.07
reward/wandb/run-20260529_194707-o3l1vpla/files/requirements.txt ADDED
@@ -0,0 +1,157 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ transformers==4.52.4
2
+ nvidia-nvtx-cu12==12.4.127
3
+ deepspeed==0.18.6
4
+ typing-inspection==0.4.2
5
+ scipy==1.15.3
6
+ MarkupSafe==3.0.3
7
+ nvidia-cuda-runtime-cu12==12.4.127
8
+ detoxify==0.5.2
9
+ yarl==1.22.0
10
+ tornado==6.5.4
11
+ nvidia-curand-cu12==10.3.5.147
12
+ nest-asyncio==1.6.0
13
+ safetensors==0.7.0
14
+ async-timeout==5.0.1
15
+ typing_extensions==4.15.0
16
+ asttokens==3.0.1
17
+ cuda-python==13.1.1
18
+ executing==2.2.1
19
+ nvidia-cudnn-frontend==1.18.0
20
+ comm==0.2.3
21
+ tokenizers==0.21.4
22
+ six==1.17.0
23
+ Pygments==2.19.2
24
+ nvidia-cusparselt-cu12==0.6.2
25
+ apache-tvm-ffi==0.1.8.post2
26
+ flash_attn==2.7.4.post1
27
+ tqdm==4.67.3
28
+ tensorboard-data-server==0.7.2
29
+ annotated-types==0.7.0
30
+ math-verify==0.9.0
31
+ idna==3.11
32
+ regex==2026.1.15
33
+ nvidia-cutlass-dsl-libs-base==4.4.0
34
+ flashinfer-python==0.6.3
35
+ click==8.3.1
36
+ pytz==2025.2
37
+ wheel==0.46.3
38
+ ipykernel==7.2.0
39
+ stack-data==0.6.3
40
+ absl-py==2.4.0
41
+ wandb==0.25.0
42
+ pandas==2.3.3
43
+ termcolor==3.3.0
44
+ sympy==1.13.1
45
+ joblib==1.5.3
46
+ prompt_toolkit==3.0.52
47
+ attrs==25.4.0
48
+ nvidia-cusolver-cu12==11.6.1.9
49
+ xxhash==3.6.0
50
+ aiohappyeyeballs==2.6.1
51
+ python-dateutil==2.9.0.post0
52
+ frozenlist==1.8.0
53
+ nvidia-ml-py==13.590.48
54
+ multiprocess==0.70.18
55
+ decorator==5.2.1
56
+ cuda-pathfinder==1.3.4
57
+ multidict==6.7.1
58
+ pure_eval==0.2.3
59
+ nvidia-cufft-cu12==11.2.1.3
60
+ omegaconf==2.3.0
61
+ PyYAML==6.0.3
62
+ debugpy==1.8.20
63
+ psutil==7.2.2
64
+ ninja==1.13.0
65
+ nvidia-cublas-cu12==12.4.5.8
66
+ triton==3.2.0
67
+ antlr4-python3-runtime==4.9.3
68
+ peft==0.18.1
69
+ aiosignal==1.4.0
70
+ accelerate==1.12.0
71
+ liger_kernel==0.7.0
72
+ anyio==4.12.1
73
+ decord==0.6.0
74
+ h11==0.16.0
75
+ urllib3==2.6.3
76
+ wcwidth==0.6.0
77
+ networkx==3.4.2
78
+ huggingface_hub==0.36.2
79
+ tzdata==2025.3
80
+ xformers==0.0.29.post3
81
+ tabulate==0.9.0
82
+ certifi==2026.1.4
83
+ tensorboard==2.20.0
84
+ matplotlib-inline==0.2.1
85
+ pip==26.0.1
86
+ smmap==5.0.2
87
+ nvidia-cuda-cupti-cu12==12.4.127
88
+ Markdown==3.10.2
89
+ nvidia-nccl-cu12==2.21.5
90
+ aiohttp==3.13.3
91
+ scikit-learn==1.7.2
92
+ nvidia-cutlass-dsl==4.4.0
93
+ setuptools==82.0.0
94
+ jupyter_core==5.9.1
95
+ asyncio==4.0.0
96
+ einops==0.8.2
97
+ pydantic==2.12.5
98
+ av==16.1.0
99
+ protobuf==6.33.5
100
+ evaluate==0.4.6
101
+ Jinja2==3.1.6
102
+ exceptiongroup==1.3.1
103
+ ipython==8.38.0
104
+ sentry-sdk==2.53.0
105
+ httpx==0.28.1
106
+ msgpack==1.1.2
107
+ platformdirs==4.9.2
108
+ hjson==3.1.0
109
+ torchvision==0.21.0
110
+ parso==0.8.6
111
+ cuda-bindings==13.1.1
112
+ pexpect==4.9.0
113
+ threadpoolctl==3.6.0
114
+ pyarrow==23.0.1
115
+ jedi==0.19.2
116
+ nvidia-cuda-nvrtc-cu12==12.4.127
117
+ Werkzeug==3.1.5
118
+ fsspec==2025.10.0
119
+ pydantic_core==2.41.5
120
+ GitPython==3.1.46
121
+ propcache==0.4.1
122
+ mpmath==1.3.0
123
+ nvidia-nvjitlink-cu12==12.4.127
124
+ nvidia-cusparse-cu12==12.3.1.170
125
+ hf-xet==1.2.0
126
+ charset-normalizer==3.4.4
127
+ dill==0.4.0
128
+ datasets==4.5.0
129
+ py-cpuinfo==9.0.0
130
+ sentencepiece==0.2.1
131
+ latex2sympy2_extended==1.11.0
132
+ jupyter_client==8.8.0
133
+ pyzmq==27.1.0
134
+ numpy==2.2.6
135
+ gitdb==4.0.12
136
+ grpcio==1.78.0
137
+ packaging==26.0
138
+ requests==2.32.5
139
+ nvidia-cudnn-cu12==9.1.0.70
140
+ httpcore==1.0.9
141
+ traitlets==5.14.3
142
+ filelock==3.24.2
143
+ ptyprocess==0.7.0
144
+ pillow==12.1.1
145
+ torch==2.6.0
146
+ more-itertools==10.8.0
147
+ wheel==0.46.3
148
+ jaraco.text==4.0.0
149
+ zipp==3.23.0
150
+ autocommand==2.2.2
151
+ jaraco.context==6.1.0
152
+ jaraco.functools==4.4.0
153
+ tomli==2.4.0
154
+ backports.tarfile==1.2.0
155
+ importlib_metadata==8.7.1
156
+ platformdirs==4.4.0
157
+ packaging==26.0
reward/wandb/run-20260529_194707-o3l1vpla/files/wandb-metadata.json ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "os": "Linux-5.15.0-144-generic-x86_64-with-glibc2.35",
3
+ "python": "CPython 3.10.19",
4
+ "startedAt": "2026-05-29T11:47:07.400494Z",
5
+ "args": [
6
+ "config=../configs/rl_lavida_video_reversal.yaml",
7
+ "wandb.run_id=o3l1vpla",
8
+ "experiment.function=train",
9
+ "evaluation.block_size=None",
10
+ "evaluation.top_k=None",
11
+ "evaluation.remasking_strategy=None",
12
+ "experiment.current_epoch=1"
13
+ ],
14
+ "program": "/data4/runqing/dLLM-RL/reward/rl_reward_video_reversal.py",
15
+ "codePath": "reward/rl_reward_video_reversal.py",
16
+ "codePathLocal": "rl_reward_video_reversal.py",
17
+ "git": {
18
+ "remote": "https://gitclone.com/github.com/Gen-Verse/dLLM-RL.git",
19
+ "commit": "10b4fd1cba83e4496c20585dc2fd01dc02f20255"
20
+ },
21
+ "email": "shixi_runqing@staff.weibo.com",
22
+ "root": "/data4/runqing/dLLM-RL/reward",
23
+ "host": "b1301b38c75f",
24
+ "executable": "/data8/runqing/miniconda/envs/dllm-rl/bin/python",
25
+ "cpu_count": 96,
26
+ "cpu_count_logical": 192,
27
+ "gpu": "NVIDIA H800",
28
+ "gpu_count": 8,
29
+ "disk": {
30
+ "/": {
31
+ "total": "806578724864",
32
+ "used": "623847804928"
33
+ }
34
+ },
35
+ "memory": {
36
+ "total": "2164113764352"
37
+ },
38
+ "gpu_nvidia": [
39
+ {
40
+ "name": "NVIDIA H800",
41
+ "memoryTotal": "85520809984",
42
+ "cudaCores": 16896,
43
+ "architecture": "Hopper",
44
+ "uuid": "GPU-f768b684-b9ce-23a2-81a6-af16161cf9be"
45
+ },
46
+ {
47
+ "name": "NVIDIA H800",
48
+ "memoryTotal": "85520809984",
49
+ "cudaCores": 16896,
50
+ "architecture": "Hopper",
51
+ "uuid": "GPU-2f1e1a7b-76a2-e00b-3dc5-79add059b8f9"
52
+ },
53
+ {
54
+ "name": "NVIDIA H800",
55
+ "memoryTotal": "85520809984",
56
+ "cudaCores": 16896,
57
+ "architecture": "Hopper",
58
+ "uuid": "GPU-33d7b8d4-af9c-4719-9686-1712e9694cd6"
59
+ },
60
+ {
61
+ "name": "NVIDIA H800",
62
+ "memoryTotal": "85520809984",
63
+ "cudaCores": 16896,
64
+ "architecture": "Hopper",
65
+ "uuid": "GPU-0b797f66-23ec-d0ff-1c65-fb34b9064e53"
66
+ },
67
+ {
68
+ "name": "NVIDIA H800",
69
+ "memoryTotal": "85520809984",
70
+ "cudaCores": 16896,
71
+ "architecture": "Hopper",
72
+ "uuid": "GPU-ad9e9c73-0f31-a8b3-e8f7-7be19f5338ad"
73
+ },
74
+ {
75
+ "name": "NVIDIA H800",
76
+ "memoryTotal": "85520809984",
77
+ "cudaCores": 16896,
78
+ "architecture": "Hopper",
79
+ "uuid": "GPU-f531028f-805c-3301-61b3-0c46329dc9c0"
80
+ },
81
+ {
82
+ "name": "NVIDIA H800",
83
+ "memoryTotal": "85520809984",
84
+ "cudaCores": 16896,
85
+ "architecture": "Hopper",
86
+ "uuid": "GPU-2775489f-18c8-2328-8829-c46238575379"
87
+ },
88
+ {
89
+ "name": "NVIDIA H800",
90
+ "memoryTotal": "85520809984",
91
+ "cudaCores": 16896,
92
+ "architecture": "Hopper",
93
+ "uuid": "GPU-1dd27781-c1f3-d980-6f18-fe8a778b69fd"
94
+ }
95
+ ],
96
+ "cudaVersion": "12.8",
97
+ "writerId": "9pqfh5lrgyl0srsilyb4o7f1khpc7ymu"
98
+ }
reward/wandb/run-20260529_194707-o3l1vpla/files/wandb-summary.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"reward/unbiased_bonus":0.07499999999999998,"_wandb":{"runtime":0},"reward/acc":0.482421875,"reward/t_grpo_bonus":0.2765625000000003,"reward/train_step":1,"_timestamp":1.7800552284795003e+09,"_runtime":0.276835887,"_step":1,"reward/avg_response_length":126.07421875}
reward/wandb/run-20260529_194707-o3l1vpla/logs/debug-core.log ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"time":"2026-05-29T19:47:07.473481181+08:00","level":"INFO","msg":"main: starting server","port-filename":"/tmp/tmpbw7abz65/port-1212640.txt","pid":1212640,"log-level":0,"disable-analytics":false,"shutdown-on-parent-exit":false,"enable-dcgm-profiling":false}
2
+ {"time":"2026-05-29T19:47:07.474437183+08:00","level":"INFO","msg":"server: accepting connections","addr":{"Name":"/tmp/wandb-1212640-1212740-3778981817/socket","Net":"unix"}}
3
+ {"time":"2026-05-29T19:47:07.474559698+08:00","level":"INFO","msg":"server: will exit if parent process dies","ppid":1212640}
4
+ {"time":"2026-05-29T19:47:07.655012851+08:00","level":"INFO","msg":"connection: ManageConnectionData: new connection created","id":"1(@)"}
5
+ {"time":"2026-05-29T19:47:07.664220576+08:00","level":"INFO","msg":"handleInformInit: received","streamId":"o3l1vpla","id":"1(@)"}
6
+ {"time":"2026-05-29T19:47:07.947077344+08:00","level":"INFO","msg":"handleInformInit: stream started","streamId":"o3l1vpla","id":"1(@)"}
7
+ {"time":"2026-05-29T19:47:08.483101048+08:00","level":"INFO","msg":"connection: cancelling request","id":"1(@)","requestId":"lu9yljxzchbl"}
8
+ {"time":"2026-05-29T19:47:08.683766011+08:00","level":"INFO","msg":"connection: cancelling request","id":"1(@)","requestId":"lu9yljxzchbl"}
9
+ {"time":"2026-05-29T19:47:08.685066243+08:00","level":"INFO","msg":"handleInformFinish: finish message received","streamId":"o3l1vpla","id":"1(@)"}
10
+ {"time":"2026-05-29T19:47:08.685504424+08:00","level":"INFO","msg":"handleInformFinish: stream closed","streamId":"o3l1vpla","id":"1(@)"}
11
+ {"time":"2026-05-29T19:47:08.685645737+08:00","level":"INFO","msg":"handleInformTeardown: server teardown initiated","id":"1(@)"}
12
+ {"time":"2026-05-29T19:47:08.685676362+08:00","level":"INFO","msg":"handleInformTeardown: server shutdown complete","id":"1(@)"}
13
+ {"time":"2026-05-29T19:47:08.685684169+08:00","level":"INFO","msg":"server is shutting down"}
14
+ {"time":"2026-05-29T19:47:08.685710476+08:00","level":"INFO","msg":"connection: closing","id":"1(@)"}
15
+ {"time":"2026-05-29T19:47:08.685743906+08:00","level":"INFO","msg":"server: listener closed","addr":{"Name":"/tmp/wandb-1212640-1212740-3778981817/socket","Net":"unix"}}
16
+ {"time":"2026-05-29T19:47:08.685770189+08:00","level":"INFO","msg":"connection: closed successfully","id":"1(@)"}
17
+ {"time":"2026-05-29T19:47:08.68577738+08:00","level":"INFO","msg":"connection: ManageConnectionData: connection closed","id":"1(@)"}
18
+ {"time":"2026-05-29T19:47:08.685784402+08:00","level":"INFO","msg":"server is closed"}
reward/wandb/run-20260529_194707-o3l1vpla/logs/debug-internal.log ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"time":"2026-05-29T19:47:07.664329293+08:00","level":"INFO","msg":"stream: starting","core version":"0.25.0"}
2
+ {"time":"2026-05-29T19:47:07.946806555+08:00","level":"ERROR","msg":"featurechecker: failed to load features, all will be disabled","error":"input:4:3: Cannot query field \"features\" on type \"ServerInfo\".\n"}
3
+ {"time":"2026-05-29T19:47:07.946916582+08:00","level":"INFO","msg":"stream: created new stream","id":"o3l1vpla"}
4
+ {"time":"2026-05-29T19:47:07.946954411+08:00","level":"INFO","msg":"handler: started","stream_id":"o3l1vpla"}
5
+ {"time":"2026-05-29T19:47:07.94706896+08:00","level":"INFO","msg":"stream: started","id":"o3l1vpla"}
6
+ {"time":"2026-05-29T19:47:07.947088794+08:00","level":"INFO","msg":"writer: started","stream_id":"o3l1vpla"}
7
+ {"time":"2026-05-29T19:47:07.947090844+08:00","level":"INFO","msg":"sender: started","stream_id":"o3l1vpla"}
8
+ {"time":"2026-05-29T19:47:07.948297319+08:00","level":"WARN","msg":"runupserter: server does not expand metric globs but the x_server_side_expand_glob_metrics setting is set; ignoring"}
9
+ {"time":"2026-05-29T19:47:08.206739239+08:00","level":"ERROR","msg":"git repo not found","error":"repository does not exist"}
10
+ {"time":"2026-05-29T19:47:08.62874404+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/o3l1vpla/wandb-metadata.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T114708Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=a47ee7cc56a7d98ad3f50a5a4c0649595b715b64e89e47637ac5aff422ec7383"}
11
+ {"time":"2026-05-29T19:47:08.628809977+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/o3l1vpla/config.yaml?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T114708Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=883c4209c5d742770b3a6d59ac71abe2715046eb59ec69dccaa1a5b567ba579b"}
12
+ {"time":"2026-05-29T19:47:08.628827792+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/o3l1vpla/wandb-metadata.json</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/o3l1vpla/wandb-metadata.json</Resource><RequestId>18B406CC9D558263</RequestId><HostId>17e81bf8-654d-4ce6-b556-0f7349513ee1</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260529_194707-o3l1vpla/files/wandb-metadata.json, Name: wandb-metadata.json, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/o3l1vpla/wandb-metadata.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T114708Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=a47ee7cc56a7d98ad3f50a5a4c0649595b715b64e89e47637ac5aff422ec7383, Size: 2849}"}
13
+ {"time":"2026-05-29T19:47:08.628868986+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/o3l1vpla/config.yaml</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/o3l1vpla/config.yaml</Resource><RequestId>18B406CC9F0C3E1B</RequestId><HostId>29678716-7d96-4915-b26c-b7113941467d</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260529_194707-o3l1vpla/files/config.yaml, Name: config.yaml, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/o3l1vpla/config.yaml?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T114708Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=883c4209c5d742770b3a6d59ac71abe2715046eb59ec69dccaa1a5b567ba579b, Size: 7755}"}
14
+ {"time":"2026-05-29T19:47:08.630071945+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/o3l1vpla/output.log?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T114708Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=cde00db00b44971fb11a4d87808dfbc4eeeac5cbe9873b1fa83739955ab417da"}
15
+ {"time":"2026-05-29T19:47:08.630148543+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/o3l1vpla/output.log</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/o3l1vpla/output.log</Resource><RequestId>18B406CC9F05F219</RequestId><HostId>29678716-7d96-4915-b26c-b7113941467d</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260529_194707-o3l1vpla/files/output.log, Name: output.log, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/o3l1vpla/output.log?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T114708Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=cde00db00b44971fb11a4d87808dfbc4eeeac5cbe9873b1fa83739955ab417da, Size: 110}"}
16
+ {"time":"2026-05-29T19:47:08.63086663+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/o3l1vpla/requirements.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T114708Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=e4bb8822ef29df26949ff5ddef85264847f7f4b05c641a324b91d1585449ba55"}
17
+ {"time":"2026-05-29T19:47:08.630961997+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/o3l1vpla/requirements.txt</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/o3l1vpla/requirements.txt</Resource><RequestId>18B406CC9DD7FC86</RequestId><HostId>4b5cbd82-31a6-4e32-8e3a-3b4f1cd8a94b</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260529_194707-o3l1vpla/files/requirements.txt, Name: requirements.txt, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/o3l1vpla/requirements.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T114708Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=e4bb8822ef29df26949ff5ddef85264847f7f4b05c641a324b91d1585449ba55, Size: 2982}"}
18
+ {"time":"2026-05-29T19:47:08.633145978+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/o3l1vpla/wandb-summary.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T114708Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=7226b6bd23e4ef9db8e48e70a2774674ebb0cbec0bb484247d588b1c4633fbc5"}
19
+ {"time":"2026-05-29T19:47:08.633266177+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/o3l1vpla/wandb-summary.json</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/o3l1vpla/wandb-summary.json</Resource><RequestId>18B406CC9F223DB3</RequestId><HostId>29678716-7d96-4915-b26c-b7113941467d</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260529_194707-o3l1vpla/files/wandb-summary.json, Name: wandb-summary.json, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/o3l1vpla/wandb-summary.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T114708Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=7226b6bd23e4ef9db8e48e70a2774674ebb0cbec0bb484247d588b1c4633fbc5, Size: 267}"}
20
+ {"time":"2026-05-29T19:47:08.633747103+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/o3l1vpla/code/reward/rl_reward_video_reversal.py?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T114708Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=03e385aef9c6b56540adbe0ddb3f51b263ba0e7776fdc7debbb663e00aa220b0"}
21
+ {"time":"2026-05-29T19:47:08.633803977+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/o3l1vpla/code/reward/rl_reward_video_reversal.py</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/o3l1vpla/code/reward/rl_reward_video_reversal.py</Resource><RequestId>18B406CC9F05F1CD</RequestId><HostId>29678716-7d96-4915-b26c-b7113941467d</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260529_194707-o3l1vpla/files/code/reward/rl_reward_video_reversal.py, Name: code/reward/rl_reward_video_reversal.py, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/o3l1vpla/code/reward/rl_reward_video_reversal.py?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T114708Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=03e385aef9c6b56540adbe0ddb3f51b263ba0e7776fdc7debbb663e00aa220b0, Size: 14790}"}
22
+ {"time":"2026-05-29T19:47:08.63416604+08:00","level":"INFO","msg":"fileTransfer: Close: file transfer manager closed"}
23
+ {"time":"2026-05-29T19:47:08.676087931+08:00","level":"INFO","msg":"handler: operation stats","stats":{}}
24
+ {"time":"2026-05-29T19:47:08.685079701+08:00","level":"INFO","msg":"stream: closing","id":"o3l1vpla"}
25
+ {"time":"2026-05-29T19:47:08.685100599+08:00","level":"INFO","msg":"handler: closed","stream_id":"o3l1vpla"}
26
+ {"time":"2026-05-29T19:47:08.685170573+08:00","level":"INFO","msg":"sender: closed","stream_id":"o3l1vpla"}
27
+ {"time":"2026-05-29T19:47:08.685177465+08:00","level":"INFO","msg":"stream: closed","id":"o3l1vpla"}
reward/wandb/run-20260529_194707-o3l1vpla/logs/debug.log ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2026-05-29 19:47:07,401 INFO MainThread:1212640 [wandb_setup.py:_flush():81] Current SDK version is 0.25.0
2
+ 2026-05-29 19:47:07,402 INFO MainThread:1212640 [wandb_setup.py:_flush():81] Configure stats pid to 1212640
3
+ 2026-05-29 19:47:07,402 INFO MainThread:1212640 [wandb_setup.py:_flush():81] Loading settings from environment variables
4
+ 2026-05-29 19:47:07,402 INFO MainThread:1212640 [wandb_init.py:setup_run_log_directory():717] Logging user logs to /data4/runqing/dLLM-RL/reward/wandb/run-20260529_194707-o3l1vpla/logs/debug.log
5
+ 2026-05-29 19:47:07,402 INFO MainThread:1212640 [wandb_init.py:setup_run_log_directory():718] Logging internal logs to /data4/runqing/dLLM-RL/reward/wandb/run-20260529_194707-o3l1vpla/logs/debug-internal.log
6
+ 2026-05-29 19:47:07,402 INFO MainThread:1212640 [wandb_init.py:init():844] calling init triggers
7
+ 2026-05-29 19:47:07,402 INFO MainThread:1212640 [wandb_init.py:init():849] wandb.init called with sweep_config: {}
8
+ config: {'wandb.entity': None, 'wandb.resume': 'auto', 'wandb.run_id': 'o3l1vpla', 'system.HTTP_PROXY': None, 'system.HF_HOME': None, 'system.env_name': '/data8/runqing/miniconda/envs/dllm-rl', 'system.envs_dir': '/data8/runqing/miniconda/envs/dllm-rl', 'system.base_dir': '/data4/runqing/dLLM-RL', 'experiment.project': 'rl_lavida_video_reversal', 'experiment.function': 'train', 'experiment.start_from_scratch': True, 'experiment.total_step': 30, 'experiment.save_every': 10, 'experiment.eval_every': 5, 'experiment.current_epoch': 1, 'experiment.deepspeed_file': '1_node_8_gpus_deepspeed_zero2', 'experiment.num_node': 1, 'experiment.node_index': 0, 'model.pretrained_model': '/data4/runqing/dLLM-RL/sft_lavida_video_reversal/ckpt/optimized', 'model.optimized_name': 'optimized', 'model.model_base': 'lavida', 'model.vq_model_path': '/data4/runqing/hf/magvitv2', 'model.image_resolution': 512, 'dataset.train_dataset': 'video_reversal_rl_train', 'dataset.data_type': 'video_reverse', 'dataset.optimization_data': 'rl_data', 'rollout.num_task_per_step': 128, 'rollout.num_response_per_task': 8, 'rollout.temperature': 0.8, 'rollout.steps': 128, 'rollout.max_gen_length': 128, 'rollout.batch_size': 1, 'rollout.remasking_strategy': 'low_confidence_dynamic', 'rollout.target': 'confidence', 'rollout.dynamic_threshold': 0.9, 'rollout.block_size': 32, 'rollout.further_horizon': 128, 'rollout.use_cache': True, 'reward.answer_must_in_box': True, 'reward.strict_len_check': False, 'execute.num_chunk': 128, 'training.gradient_accumulation_steps': 2, 'training.batch_size_lm': 1, 'training.mixed_precision': 'bf16', 'training.enable_tf32': True, 'training.seed': 10086, 'training.num_train_epochs': 1, 'training.max_grad_norm': 1.0, 'training.method': 'random_masking', 'training.lower_p': 0.35, 'training.upper_p': 0.9, 'training.shrink': 8, 'training.post_num': 1, 'training.mask_times_per_sample': 2, 'training.max_gen_length': 128, 'training.max_prompt_len': 512, 'training.eps': 0.2, 'training.beta': 0.01, 'training.use_kl_estimator_k3': True, 'optimizer.name': 'adamw', 'optimizer.params.learning_rate': 1e-06, 'optimizer.params.scale_lr': False, 'optimizer.params.beta1': 0.9, 'optimizer.params.beta2': 0.999, 'optimizer.params.weight_decay': 0.0, 'optimizer.params.epsilon': 1e-08, 'lr_scheduler.scheduler': 'cosine', 'lr_scheduler.params.learning_rate': 1e-06, 'lr_scheduler.params.warmup_steps': 0, 'lr_scheduler.params.min_lr_scale': 1.0, 'evaluation.if_eval': False, 'evaluation.eval_dataset': 'video_reversal_rl_eval', 'evaluation.data_type': 'video_reverse', 'evaluation.num_response_per_task': 3, 'evaluation.temperature': 0.1, 'evaluation.steps': 128, 'evaluation.max_gen_length': 128, 'evaluation.batch_size': 1, 'evaluation.remasking_strategy': 'None', 'evaluation.target': 'confidence', 'evaluation.dynamic_threshold': 0.9, 'evaluation.block_size': 'None', 'evaluation.further_horizon': 128, 'evaluation.use_cache': True, 'evaluation.top_k': 'None', 'config': '../configs/rl_lavida_video_reversal.yaml', '_wandb': {'code_path': 'code/reward/rl_reward_video_reversal.py'}}
9
+ 2026-05-29 19:47:07,402 INFO MainThread:1212640 [wandb_init.py:init():892] starting backend
10
+ 2026-05-29 19:47:07,656 INFO MainThread:1212640 [wandb_init.py:init():895] sending inform_init request
11
+ 2026-05-29 19:47:07,660 INFO MainThread:1212640 [wandb_init.py:init():903] backend started and connected
12
+ 2026-05-29 19:47:07,662 INFO MainThread:1212640 [wandb_init.py:init():973] updated telemetry
13
+ 2026-05-29 19:47:07,673 INFO MainThread:1212640 [wandb_init.py:init():997] communicating run to backend with 90.0 second timeout
14
+ 2026-05-29 19:47:08,204 INFO MainThread:1212640 [wandb_init.py:init():1042] starting run threads in backend
15
+ 2026-05-29 19:47:08,315 INFO MainThread:1212640 [wandb_run.py:_console_start():2524] atexit reg
16
+ 2026-05-29 19:47:08,316 INFO MainThread:1212640 [wandb_run.py:_redirect():2373] redirect: wrap_raw
17
+ 2026-05-29 19:47:08,316 INFO MainThread:1212640 [wandb_run.py:_redirect():2442] Wrapping output streams.
18
+ 2026-05-29 19:47:08,316 INFO MainThread:1212640 [wandb_run.py:_redirect():2465] Redirects installed.
19
+ 2026-05-29 19:47:08,318 INFO MainThread:1212640 [wandb_init.py:init():1082] run started, returning control to user process
20
+ 2026-05-29 19:47:08,479 INFO MainThread:1212640 [wandb_run.py:_finish():2291] finishing run shixi_runqing/rl_lavida_video_reversal/o3l1vpla
21
+ 2026-05-29 19:47:08,480 INFO MainThread:1212640 [wandb_run.py:_atexit_cleanup():2490] got exitcode: 0
22
+ 2026-05-29 19:47:08,480 INFO MainThread:1212640 [wandb_run.py:_restore():2472] restore
23
+ 2026-05-29 19:47:08,480 INFO MainThread:1212640 [wandb_run.py:_restore():2478] restore done
24
+ 2026-05-29 19:47:08,684 INFO MainThread:1212640 [wandb_run.py:_footer_sync_info():3868] logging synced files
reward/wandb/run-20260529_194707-o3l1vpla/run-o3l1vpla.wandb ADDED
Binary file (6.28 kB). View file
 
reward/wandb/run-20260529_221548-fmmkx1a5/files/wandb-metadata.json ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "os": "Linux-5.15.0-144-generic-x86_64-with-glibc2.35",
3
+ "python": "CPython 3.10.19",
4
+ "startedAt": "2026-05-29T14:15:48.972009Z",
5
+ "args": [
6
+ "config=../configs/rl_lavida_video_reversal.yaml",
7
+ "wandb.run_id=fmmkx1a5",
8
+ "experiment.function=train",
9
+ "evaluation.block_size=None",
10
+ "evaluation.top_k=None",
11
+ "evaluation.remasking_strategy=None",
12
+ "experiment.current_epoch=2"
13
+ ],
14
+ "program": "/data4/runqing/dLLM-RL/reward/rl_reward_video_reversal.py",
15
+ "codePath": "reward/rl_reward_video_reversal.py",
16
+ "codePathLocal": "rl_reward_video_reversal.py",
17
+ "git": {
18
+ "remote": "https://gitclone.com/github.com/Gen-Verse/dLLM-RL.git",
19
+ "commit": "10b4fd1cba83e4496c20585dc2fd01dc02f20255"
20
+ },
21
+ "email": "shixi_runqing@staff.weibo.com",
22
+ "root": "/data4/runqing/dLLM-RL/reward",
23
+ "host": "b1301b38c75f",
24
+ "executable": "/data8/runqing/miniconda/envs/dllm-rl/bin/python",
25
+ "cpu_count": 96,
26
+ "cpu_count_logical": 192,
27
+ "gpu": "NVIDIA H800",
28
+ "gpu_count": 8,
29
+ "disk": {
30
+ "/": {
31
+ "total": "806578724864",
32
+ "used": "624733896704"
33
+ }
34
+ },
35
+ "memory": {
36
+ "total": "2164113764352"
37
+ },
38
+ "gpu_nvidia": [
39
+ {
40
+ "name": "NVIDIA H800",
41
+ "memoryTotal": "85520809984",
42
+ "cudaCores": 16896,
43
+ "architecture": "Hopper",
44
+ "uuid": "GPU-f768b684-b9ce-23a2-81a6-af16161cf9be"
45
+ },
46
+ {
47
+ "name": "NVIDIA H800",
48
+ "memoryTotal": "85520809984",
49
+ "cudaCores": 16896,
50
+ "architecture": "Hopper",
51
+ "uuid": "GPU-2f1e1a7b-76a2-e00b-3dc5-79add059b8f9"
52
+ },
53
+ {
54
+ "name": "NVIDIA H800",
55
+ "memoryTotal": "85520809984",
56
+ "cudaCores": 16896,
57
+ "architecture": "Hopper",
58
+ "uuid": "GPU-33d7b8d4-af9c-4719-9686-1712e9694cd6"
59
+ },
60
+ {
61
+ "name": "NVIDIA H800",
62
+ "memoryTotal": "85520809984",
63
+ "cudaCores": 16896,
64
+ "architecture": "Hopper",
65
+ "uuid": "GPU-0b797f66-23ec-d0ff-1c65-fb34b9064e53"
66
+ },
67
+ {
68
+ "name": "NVIDIA H800",
69
+ "memoryTotal": "85520809984",
70
+ "cudaCores": 16896,
71
+ "architecture": "Hopper",
72
+ "uuid": "GPU-ad9e9c73-0f31-a8b3-e8f7-7be19f5338ad"
73
+ },
74
+ {
75
+ "name": "NVIDIA H800",
76
+ "memoryTotal": "85520809984",
77
+ "cudaCores": 16896,
78
+ "architecture": "Hopper",
79
+ "uuid": "GPU-f531028f-805c-3301-61b3-0c46329dc9c0"
80
+ },
81
+ {
82
+ "name": "NVIDIA H800",
83
+ "memoryTotal": "85520809984",
84
+ "cudaCores": 16896,
85
+ "architecture": "Hopper",
86
+ "uuid": "GPU-2775489f-18c8-2328-8829-c46238575379"
87
+ },
88
+ {
89
+ "name": "NVIDIA H800",
90
+ "memoryTotal": "85520809984",
91
+ "cudaCores": 16896,
92
+ "architecture": "Hopper",
93
+ "uuid": "GPU-1dd27781-c1f3-d980-6f18-fe8a778b69fd"
94
+ }
95
+ ],
96
+ "cudaVersion": "12.8",
97
+ "writerId": "of7uuhm8djcrujnrkdjlueoxbofh7yt3"
98
+ }
reward/wandb/run-20260529_221548-fmmkx1a5/logs/debug-core.log ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"time":"2026-05-29T22:15:49.038496026+08:00","level":"INFO","msg":"main: starting server","port-filename":"/tmp/tmpextmq8yv/port-1544888.txt","pid":1544888,"log-level":0,"disable-analytics":false,"shutdown-on-parent-exit":false,"enable-dcgm-profiling":false}
2
+ {"time":"2026-05-29T22:15:49.039517557+08:00","level":"INFO","msg":"server: will exit if parent process dies","ppid":1544888}
3
+ {"time":"2026-05-29T22:15:49.039525747+08:00","level":"INFO","msg":"server: accepting connections","addr":{"Name":"/tmp/wandb-1544888-1545045-3458517359/socket","Net":"unix"}}
4
+ {"time":"2026-05-29T22:15:49.220936217+08:00","level":"INFO","msg":"connection: ManageConnectionData: new connection created","id":"1(@)"}
5
+ {"time":"2026-05-29T22:15:49.231304816+08:00","level":"INFO","msg":"handleInformInit: received","streamId":"fmmkx1a5","id":"1(@)"}
6
+ {"time":"2026-05-29T22:15:49.532027363+08:00","level":"INFO","msg":"handleInformInit: stream started","streamId":"fmmkx1a5","id":"1(@)"}
7
+ {"time":"2026-05-29T22:15:49.887995417+08:00","level":"INFO","msg":"connection: cancelling request","id":"1(@)","requestId":"zs4zg8uz72tg"}
8
+ {"time":"2026-05-29T22:15:50.066303944+08:00","level":"INFO","msg":"connection: cancelling request","id":"1(@)","requestId":"zs4zg8uz72tg"}
9
+ {"time":"2026-05-29T22:15:50.067591053+08:00","level":"INFO","msg":"handleInformFinish: finish message received","streamId":"fmmkx1a5","id":"1(@)"}
10
+ {"time":"2026-05-29T22:15:50.068479156+08:00","level":"INFO","msg":"handleInformFinish: stream closed","streamId":"fmmkx1a5","id":"1(@)"}
11
+ {"time":"2026-05-29T22:15:50.068513746+08:00","level":"INFO","msg":"handleInformTeardown: server teardown initiated","id":"1(@)"}
12
+ {"time":"2026-05-29T22:15:50.068538601+08:00","level":"INFO","msg":"handleInformTeardown: server shutdown complete","id":"1(@)"}
13
+ {"time":"2026-05-29T22:15:50.068549089+08:00","level":"INFO","msg":"connection: closing","id":"1(@)"}
14
+ {"time":"2026-05-29T22:15:50.068566656+08:00","level":"INFO","msg":"server is shutting down"}
15
+ {"time":"2026-05-29T22:15:50.068599467+08:00","level":"INFO","msg":"connection: closed successfully","id":"1(@)"}
16
+ {"time":"2026-05-29T22:15:50.068611716+08:00","level":"INFO","msg":"connection: ManageConnectionData: connection closed","id":"1(@)"}
17
+ {"time":"2026-05-29T22:15:50.06874089+08:00","level":"INFO","msg":"server: listener closed","addr":{"Name":"/tmp/wandb-1544888-1545045-3458517359/socket","Net":"unix"}}
18
+ {"time":"2026-05-29T22:15:50.068796137+08:00","level":"INFO","msg":"server is closed"}
reward/wandb/run-20260529_221548-fmmkx1a5/logs/debug-internal.log ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"time":"2026-05-29T22:15:49.231529459+08:00","level":"INFO","msg":"stream: starting","core version":"0.25.0"}
2
+ {"time":"2026-05-29T22:15:49.531421968+08:00","level":"ERROR","msg":"featurechecker: failed to load features, all will be disabled","error":"input:4:3: Cannot query field \"features\" on type \"ServerInfo\".\n"}
3
+ {"time":"2026-05-29T22:15:49.531682346+08:00","level":"INFO","msg":"stream: created new stream","id":"fmmkx1a5"}
4
+ {"time":"2026-05-29T22:15:49.53183915+08:00","level":"INFO","msg":"handler: started","stream_id":"fmmkx1a5"}
5
+ {"time":"2026-05-29T22:15:49.532000568+08:00","level":"INFO","msg":"stream: started","id":"fmmkx1a5"}
6
+ {"time":"2026-05-29T22:15:49.532047358+08:00","level":"INFO","msg":"writer: started","stream_id":"fmmkx1a5"}
7
+ {"time":"2026-05-29T22:15:49.532051598+08:00","level":"INFO","msg":"sender: started","stream_id":"fmmkx1a5"}
8
+ {"time":"2026-05-29T22:15:49.534503641+08:00","level":"WARN","msg":"runupserter: server does not expand metric globs but the x_server_side_expand_glob_metrics setting is set; ignoring"}
9
+ {"time":"2026-05-29T22:15:49.676991563+08:00","level":"ERROR","msg":"git repo not found","error":"repository does not exist"}
10
+ {"time":"2026-05-29T22:15:49.886864995+08:00","level":"WARN","msg":"handler: ignoring partial history record","step":2,"current":23}
11
+ {"time":"2026-05-29T22:15:50.012976753+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-summary.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T141549Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=1c618949f54f91ead5f029d477b6f3a66b28049d8038323dc4e7c19987324b9d"}
12
+ {"time":"2026-05-29T22:15:50.013148766+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-summary.json</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-summary.json</Resource><RequestId>18B40EE9CACCD1E7</RequestId><HostId>29678716-7d96-4915-b26c-b7113941467d</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260529_221548-fmmkx1a5/files/wandb-summary.json, Name: wandb-summary.json, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-summary.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T141549Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=1c618949f54f91ead5f029d477b6f3a66b28049d8038323dc4e7c19987324b9d, Size: 339}"}
13
+ {"time":"2026-05-29T22:15:50.013183236+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/config.yaml?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T141549Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=c615766f40662e6943a47d0789f9209b0dce3b6b820193907bbc7ec403b423a2"}
14
+ {"time":"2026-05-29T22:15:50.013319357+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/config.yaml</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/config.yaml</Resource><RequestId>18B40EE9CAC0BA72</RequestId><HostId>29678716-7d96-4915-b26c-b7113941467d</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260529_221548-fmmkx1a5/files/config.yaml, Name: config.yaml, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/config.yaml?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T141549Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=c615766f40662e6943a47d0789f9209b0dce3b6b820193907bbc7ec403b423a2, Size: 7994}"}
15
+ {"time":"2026-05-29T22:15:50.013842455+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-metadata.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T141549Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=9e76d2be777d1c7ca83aad7eb2ea22d1cbf6d583c423df7e1d096b094110beb1"}
16
+ {"time":"2026-05-29T22:15:50.013942597+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-metadata.json</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-metadata.json</Resource><RequestId>18B40EE9CACDD070</RequestId><HostId>29678716-7d96-4915-b26c-b7113941467d</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260529_221548-fmmkx1a5/files/wandb-metadata.json, Name: wandb-metadata.json, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-metadata.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T141549Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=9e76d2be777d1c7ca83aad7eb2ea22d1cbf6d583c423df7e1d096b094110beb1, Size: 2849}"}
17
+ {"time":"2026-05-29T22:15:50.014336234+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/requirements.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T141549Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=e6a49b3ce09eab10673811108dd02727a560b4aa9b50821a1ce992f363b5e7f7"}
18
+ {"time":"2026-05-29T22:15:50.014497174+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/requirements.txt</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/requirements.txt</Resource><RequestId>18B40EE9CB5CF821</RequestId><HostId>17e81bf8-654d-4ce6-b556-0f7349513ee1</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260529_221548-fmmkx1a5/files/requirements.txt, Name: requirements.txt, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/requirements.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T141549Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=e6a49b3ce09eab10673811108dd02727a560b4aa9b50821a1ce992f363b5e7f7, Size: 2982}"}
19
+ {"time":"2026-05-29T22:15:50.015699606+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/output.log?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T141549Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=eefbe5c2c8d9371e1c63c8ec320a10cf528f816dec9c2f86a97a3194a7363fe0"}
20
+ {"time":"2026-05-29T22:15:50.015867408+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/output.log</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/output.log</Resource><RequestId>18B40EE9CB77AB38</RequestId><HostId>17e81bf8-654d-4ce6-b556-0f7349513ee1</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260529_221548-fmmkx1a5/files/output.log, Name: output.log, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/output.log?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T141549Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=eefbe5c2c8d9371e1c63c8ec320a10cf528f816dec9c2f86a97a3194a7363fe0, Size: 110}"}
21
+ {"time":"2026-05-29T22:15:50.022155163+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/code/reward/rl_reward_video_reversal.py?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T141549Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=9d1064af61d48bce0c860f3c3c26be81a940a20ec21aab3db9f87403d7af47e4"}
22
+ {"time":"2026-05-29T22:15:50.022205902+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/code/reward/rl_reward_video_reversal.py</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/code/reward/rl_reward_video_reversal.py</Resource><RequestId>18B40EE9CB5CA459</RequestId><HostId>17e81bf8-654d-4ce6-b556-0f7349513ee1</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260529_221548-fmmkx1a5/files/code/reward/rl_reward_video_reversal.py, Name: code/reward/rl_reward_video_reversal.py, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/code/reward/rl_reward_video_reversal.py?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T141549Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=9d1064af61d48bce0c860f3c3c26be81a940a20ec21aab3db9f87403d7af47e4, Size: 14790}"}
23
+ {"time":"2026-05-29T22:15:50.022643716+08:00","level":"INFO","msg":"fileTransfer: Close: file transfer manager closed"}
24
+ {"time":"2026-05-29T22:15:50.062268078+08:00","level":"INFO","msg":"handler: operation stats","stats":{}}
25
+ {"time":"2026-05-29T22:15:50.067618841+08:00","level":"INFO","msg":"stream: closing","id":"fmmkx1a5"}
26
+ {"time":"2026-05-29T22:15:50.067638466+08:00","level":"INFO","msg":"handler: closed","stream_id":"fmmkx1a5"}
27
+ {"time":"2026-05-29T22:15:50.067710417+08:00","level":"INFO","msg":"sender: closed","stream_id":"fmmkx1a5"}
28
+ {"time":"2026-05-29T22:15:50.06774884+08:00","level":"INFO","msg":"stream: closed","id":"fmmkx1a5"}
reward/wandb/run-20260529_221548-fmmkx1a5/logs/debug.log ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2026-05-29 22:15:48,974 INFO MainThread:1544888 [wandb_setup.py:_flush():81] Current SDK version is 0.25.0
2
+ 2026-05-29 22:15:48,974 INFO MainThread:1544888 [wandb_setup.py:_flush():81] Configure stats pid to 1544888
3
+ 2026-05-29 22:15:48,974 INFO MainThread:1544888 [wandb_setup.py:_flush():81] Loading settings from environment variables
4
+ 2026-05-29 22:15:48,975 INFO MainThread:1544888 [wandb_init.py:setup_run_log_directory():717] Logging user logs to /data4/runqing/dLLM-RL/reward/wandb/run-20260529_221548-fmmkx1a5/logs/debug.log
5
+ 2026-05-29 22:15:48,975 INFO MainThread:1544888 [wandb_init.py:setup_run_log_directory():718] Logging internal logs to /data4/runqing/dLLM-RL/reward/wandb/run-20260529_221548-fmmkx1a5/logs/debug-internal.log
6
+ 2026-05-29 22:15:48,975 INFO MainThread:1544888 [wandb_init.py:init():844] calling init triggers
7
+ 2026-05-29 22:15:48,975 INFO MainThread:1544888 [wandb_init.py:init():849] wandb.init called with sweep_config: {}
8
+ config: {'wandb.entity': None, 'wandb.resume': 'auto', 'wandb.run_id': 'fmmkx1a5', 'system.HTTP_PROXY': None, 'system.HF_HOME': None, 'system.env_name': '/data8/runqing/miniconda/envs/dllm-rl', 'system.envs_dir': '/data8/runqing/miniconda/envs/dllm-rl', 'system.base_dir': '/data4/runqing/dLLM-RL', 'experiment.project': 'rl_lavida_video_reversal', 'experiment.function': 'train', 'experiment.start_from_scratch': True, 'experiment.total_step': 30, 'experiment.save_every': 10, 'experiment.eval_every': 5, 'experiment.current_epoch': 2, 'experiment.deepspeed_file': '1_node_8_gpus_deepspeed_zero2', 'experiment.num_node': 1, 'experiment.node_index': 0, 'model.pretrained_model': '/data4/runqing/dLLM-RL/sft_lavida_video_reversal/ckpt/optimized', 'model.optimized_name': 'optimized', 'model.model_base': 'lavida', 'model.vq_model_path': '/data4/runqing/hf/magvitv2', 'model.image_resolution': 512, 'dataset.train_dataset': 'video_reversal_rl_train', 'dataset.data_type': 'video_reverse', 'dataset.optimization_data': 'rl_data', 'rollout.num_task_per_step': 128, 'rollout.num_response_per_task': 8, 'rollout.temperature': 0.8, 'rollout.steps': 128, 'rollout.max_gen_length': 128, 'rollout.batch_size': 1, 'rollout.remasking_strategy': 'low_confidence_dynamic', 'rollout.target': 'confidence', 'rollout.dynamic_threshold': 0.9, 'rollout.block_size': 32, 'rollout.further_horizon': 128, 'rollout.use_cache': True, 'reward.answer_must_in_box': True, 'reward.strict_len_check': False, 'execute.num_chunk': 128, 'training.gradient_accumulation_steps': 2, 'training.batch_size_lm': 1, 'training.mixed_precision': 'bf16', 'training.enable_tf32': True, 'training.seed': 10086, 'training.num_train_epochs': 1, 'training.max_grad_norm': 1.0, 'training.method': 'random_masking', 'training.lower_p': 0.35, 'training.upper_p': 0.9, 'training.shrink': 8, 'training.post_num': 1, 'training.mask_times_per_sample': 2, 'training.max_gen_length': 128, 'training.max_prompt_len': 512, 'training.eps': 0.2, 'training.beta': 0.01, 'training.use_kl_estimator_k3': True, 'optimizer.name': 'adamw', 'optimizer.params.learning_rate': 1e-06, 'optimizer.params.scale_lr': False, 'optimizer.params.beta1': 0.9, 'optimizer.params.beta2': 0.999, 'optimizer.params.weight_decay': 0.0, 'optimizer.params.epsilon': 1e-08, 'lr_scheduler.scheduler': 'cosine', 'lr_scheduler.params.learning_rate': 1e-06, 'lr_scheduler.params.warmup_steps': 0, 'lr_scheduler.params.min_lr_scale': 1.0, 'evaluation.if_eval': False, 'evaluation.eval_dataset': 'video_reversal_rl_eval', 'evaluation.data_type': 'video_reverse', 'evaluation.num_response_per_task': 3, 'evaluation.temperature': 0.1, 'evaluation.steps': 128, 'evaluation.max_gen_length': 128, 'evaluation.batch_size': 1, 'evaluation.remasking_strategy': 'None', 'evaluation.target': 'confidence', 'evaluation.dynamic_threshold': 0.9, 'evaluation.block_size': 'None', 'evaluation.further_horizon': 128, 'evaluation.use_cache': True, 'evaluation.top_k': 'None', 'config': '../configs/rl_lavida_video_reversal.yaml', '_wandb': {'code_path': 'code/reward/rl_reward_video_reversal.py'}}
9
+ 2026-05-29 22:15:48,975 INFO MainThread:1544888 [wandb_init.py:init():892] starting backend
10
+ 2026-05-29 22:15:49,221 INFO MainThread:1544888 [wandb_init.py:init():895] sending inform_init request
11
+ 2026-05-29 22:15:49,227 INFO MainThread:1544888 [wandb_init.py:init():903] backend started and connected
12
+ 2026-05-29 22:15:49,228 INFO MainThread:1544888 [wandb_init.py:init():973] updated telemetry
13
+ 2026-05-29 22:15:49,234 INFO MainThread:1544888 [wandb_init.py:init():997] communicating run to backend with 90.0 second timeout
14
+ 2026-05-29 22:15:49,670 INFO MainThread:1544888 [wandb_init.py:init():1037] run resumed
15
+ 2026-05-29 22:15:49,674 INFO MainThread:1544888 [wandb_init.py:init():1042] starting run threads in backend
16
+ 2026-05-29 22:15:49,764 INFO MainThread:1544888 [wandb_run.py:_console_start():2524] atexit reg
17
+ 2026-05-29 22:15:49,765 INFO MainThread:1544888 [wandb_run.py:_redirect():2373] redirect: wrap_raw
18
+ 2026-05-29 22:15:49,765 INFO MainThread:1544888 [wandb_run.py:_redirect():2442] Wrapping output streams.
19
+ 2026-05-29 22:15:49,765 INFO MainThread:1544888 [wandb_run.py:_redirect():2465] Redirects installed.
20
+ 2026-05-29 22:15:49,769 INFO MainThread:1544888 [wandb_init.py:init():1082] run started, returning control to user process
21
+ 2026-05-29 22:15:49,886 INFO MainThread:1544888 [wandb_run.py:_finish():2291] finishing run shixi_runqing/rl_lavida_video_reversal/fmmkx1a5
22
+ 2026-05-29 22:15:49,887 INFO MainThread:1544888 [wandb_run.py:_atexit_cleanup():2490] got exitcode: 0
23
+ 2026-05-29 22:15:49,887 INFO MainThread:1544888 [wandb_run.py:_restore():2472] restore
24
+ 2026-05-29 22:15:49,887 INFO MainThread:1544888 [wandb_run.py:_restore():2478] restore done
25
+ 2026-05-29 22:15:50,066 INFO MainThread:1544888 [wandb_run.py:_footer_sync_info():3868] logging synced files
reward/wandb/run-20260529_221548-fmmkx1a5/run-fmmkx1a5.wandb ADDED
Binary file (6.1 kB). View file
 
reward/wandb/run-20260530_001305-fmmkx1a5/files/code/reward/rl_reward_video_reversal.py ADDED
@@ -0,0 +1,339 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import math_utils_v
3
+ import nest_asyncio
4
+ from concurrent.futures import ThreadPoolExecutor
5
+ import asyncio
6
+ import re
7
+ from termcolor import cprint
8
+ from omegaconf import MISSING
9
+ from omegaconf import DictConfig, ListConfig, OmegaConf
10
+ from typing import List, Union
11
+ import os
12
+ from collections import defaultdict
13
+ import sys
14
+
15
+ REPO_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
16
+ sys.path.insert(0, REPO_ROOT)
17
+
18
+ import wandb
19
+ from train.utils import flatten_omega_conf, ensure_wandb_run_id
20
+
21
+ def resolve_media_abs_path(sample: dict, dataset_root: str | None, media_type: str = "image") -> str | None:
22
+ p = sample.get(f"{media_type}_abs_path")
23
+ if p is None:
24
+ p = sample.get(media_type) or sample.get(f"{media_type}_path")
25
+ if p is None:
26
+ return None
27
+ if not os.path.isabs(p) and dataset_root:
28
+ p = os.path.join(dataset_root, p)
29
+ try:
30
+ return os.path.abspath(p)
31
+ except Exception:
32
+ return p
33
+
34
+ def get_config():
35
+ cli_conf = OmegaConf.from_cli()
36
+ yaml_conf = OmegaConf.load(cli_conf.config)
37
+ conf = OmegaConf.merge(yaml_conf, cli_conf)
38
+ return conf
39
+
40
+ def remove_endoftext(obj: Union[str, List[str]]) -> Union[str, List[str]]:
41
+ token = '<|endoftext|>'
42
+ if isinstance(obj, str):
43
+ return obj.replace(token, '')
44
+ if isinstance(obj, list):
45
+ return [s.replace(token, '') if isinstance(s, str) else s for s in obj]
46
+ raise TypeError("Expected str or list of str")
47
+
48
+
49
+ if __name__ == "__main__":
50
+
51
+ config = get_config()
52
+ run = None
53
+ if config.experiment.function == "train":
54
+ existing_run_id = OmegaConf.select(config, "wandb.run_id", default=None)
55
+ run_id = ensure_wandb_run_id(config)
56
+ resume_wandb_run = config.wandb.resume
57
+ if existing_run_id is None:
58
+ resume_wandb_run = False
59
+ wandb_config = {k: v for k, v in flatten_omega_conf(config, resolve=True)}
60
+ run = wandb.init(
61
+ project=config.experiment.project,
62
+ entity=config.wandb.get("entity", None),
63
+ id=run_id,
64
+ resume=resume_wandb_run,
65
+ config=wandb_config,
66
+ reinit=True,
67
+ name=config.experiment.project,
68
+ )
69
+
70
+ project_name = config.experiment.project
71
+
72
+ if config.experiment.current_epoch == 1:
73
+ pretrained_model = config.model.pretrained_model
74
+ else:
75
+ pretrained_model = "../" + project_name + "/ckpt/" + config.model.optimized_name
76
+
77
+ if config.experiment.function == "train":
78
+ shrink = config.training.shrink
79
+ dataset = config.dataset.train_dataset
80
+ outputs_name = "rl-" + pretrained_model.replace("/", ".") + "-" + dataset + f"-step{config.experiment.current_epoch}"
81
+
82
+ elif config.experiment.function == "evaluation":
83
+ dataset = config.evaluation.eval_dataset
84
+ outputs_name = "eval-" + pretrained_model.replace("/", ".") + "-" + dataset + f"-step{config.experiment.current_epoch}"
85
+
86
+ file_name = "../" + project_name + "/temp_data/outputs-" + outputs_name + ".json"
87
+
88
+ with open(file_name, 'r') as f:
89
+ data = json.load(f)
90
+
91
+ index_list = []
92
+ extracted_output_list = []
93
+ response_length_list = []
94
+ for i in range(len(data)):
95
+ data[i]["correctness"] = []
96
+ response_length_list += data[i]["response_length"]
97
+ index_list += [i] * len(data[i]["extracted_output"])
98
+ extracted_output_list += remove_endoftext(data[i]["extracted_output"])
99
+
100
+ nest_asyncio.apply()
101
+
102
+ async def get_correctness_all():
103
+ executor = ThreadPoolExecutor(max_workers=64)
104
+ tasks = []
105
+
106
+ for p in range(len(index_list)):
107
+ pred = extracted_output_list[p]
108
+ idx = index_list[p]
109
+
110
+ # 选择题正确性匹配逻辑
111
+ if config.dataset.data_type == "video_reverse" or config.evaluation.data_type == "video_reverse":
112
+ gt = data[idx].get("response", "")
113
+
114
+ async def mcq_check(p_str, g_str):
115
+ if p_str in g_str or g_str in p_str:
116
+ return True
117
+
118
+ p_str = str(p_str).strip()
119
+ g_str = str(g_str).strip()
120
+ p_match = re.search(r'^([A-Z])[\.\s]', p_str)
121
+ g_match = re.search(r'^([A-Z])[\.\s]', g_str)
122
+ if p_match and g_match:
123
+ return p_match.group(1) == g_match.group(1)
124
+ return g_str in p_str
125
+
126
+ tasks.append(mcq_check(pred, gt))
127
+ else:
128
+ gt = data[idx].get("ground_truth_answer", "")
129
+ tasks.append(math_utils_v.is_equal(pred, gt, executor))
130
+
131
+ return await asyncio.gather(*tasks)
132
+
133
+ correctness_all = asyncio.run(get_correctness_all())
134
+ for p, ok in enumerate(correctness_all):
135
+ index_i = index_list[p]
136
+ data[index_i]["correctness"].append(bool(ok))
137
+
138
+ # =========================================================================
139
+ # 核心新增逻辑:跨样本群组计算 T-GRPO 奖励 和 逆转无偏奖励
140
+ # =========================================================================
141
+
142
+ # 1. 按照 data_id 分组映射索引
143
+ grouped_data = defaultdict(lambda: {
144
+ "forward_False": [], "backward_False": [],
145
+ "forward_True": [], "backward_True": []
146
+ })
147
+
148
+ for i in range(len(data)):
149
+ d_id = data[i].get("data_id")
150
+ if d_id is None:
151
+ continue
152
+ r_type = data[i].get("reversal_type", "forward")
153
+ is_shuf = str(data[i].get("is_shuffled", False))
154
+ grouped_data[d_id][f"{r_type}_{is_shuf}"].append(i)
155
+
156
+ # 计算并应用群组奖励
157
+ all_temporal_bonuses = [] # 新增:记录所有的时序红利
158
+ all_unbiased_bonuses = [] # 新增:记录所有的无偏红利
159
+
160
+ # 2. 计算并应用群组奖励
161
+ for d_id, group in grouped_data.items():
162
+
163
+ def get_acc(key):
164
+ if not group[key]: return 0.0
165
+ idx = group[key][0]
166
+ corr = data[idx]["correctness"]
167
+ return sum(corr) / len(corr) if len(corr) > 0 else 0.0
168
+
169
+ # 获取四组情况的正确率
170
+ acc_f_ord = get_acc("forward_False")
171
+ acc_f_shuf = get_acc("forward_True")
172
+ acc_b_ord = get_acc("backward_False")
173
+ acc_b_shuf = get_acc("backward_True")
174
+
175
+ # T-GRPO 奖励: 顺序正确率 >= 0.8 * 打乱正确率,得 0.3
176
+ f_temporal_bonus = 0.3 if acc_f_ord >= 0.8 * acc_f_shuf else 0.0
177
+ b_temporal_bonus = 0.3 if acc_b_ord >= 0.8 * acc_b_shuf else 0.0
178
+
179
+ # 逆转无偏奖励: 正反正确率差值 <= 0.2,且都不是彻底全错,得 0.3
180
+ unbiased_bonus = 0.0
181
+ if abs(acc_f_ord - acc_b_ord) <= 0.2 and (acc_f_ord > 0.1 or acc_b_ord > 0.1):
182
+ unbiased_bonus = 0.3
183
+
184
+ # 新增:将当前组的奖励记录下来用于统计
185
+ if group["forward_False"]:
186
+ all_temporal_bonuses.append(f_temporal_bonus)
187
+ all_unbiased_bonuses.append(unbiased_bonus)
188
+ if group["backward_False"]:
189
+ all_temporal_bonuses.append(b_temporal_bonus)
190
+ all_unbiased_bonuses.append(unbiased_bonus)
191
+
192
+ # 仅将奖励发放给 顺序组(is_shuffled=False) 中回答正确的样本
193
+ def apply_bonus(key, temporal_bonus, unbiased_bonus):
194
+ if not group[key]: return
195
+ idx = group[key][0]
196
+ raw_rewards = []
197
+ for is_correct in data[idx]["correctness"]:
198
+ if is_correct:
199
+ # 基础分 1.0 + 时序红利 + 无偏红利
200
+ raw_rewards.append(1.0 + temporal_bonus + unbiased_bonus)
201
+ else:
202
+ raw_rewards.append(0.0)
203
+ data[idx]["raw_rewards"] = raw_rewards
204
+
205
+ apply_bonus("forward_False", f_temporal_bonus, unbiased_bonus)
206
+ apply_bonus("backward_False", b_temporal_bonus, unbiased_bonus)
207
+
208
+ # =========================================================================
209
+
210
+ def z_score_normalize(lst):
211
+ mean = sum(lst) / len(lst) if len(lst) > 0 else 0.0
212
+ std = (sum((x - mean) ** 2 for x in lst) / len(lst)) ** 0.5 if len(lst) > 0 else 0.0
213
+ if std == 0:
214
+ return [0 for _ in lst]
215
+ return [(x - mean) / std for x in lst]
216
+
217
+ final_data = []
218
+ ordered_correctness = [] # 用于日志打印,不记录被打乱的实验数据
219
+
220
+ for i in range(len(data)):
221
+ # 丢弃打乱的对照组,它们仅仅用于上面的计算参照,不进入强化学习
222
+ if data[i].get("is_shuffled", False):
223
+ continue
224
+
225
+ ordered_correctness.extend(data[i]["correctness"])
226
+
227
+ # 如果部分数据没有走过分组逻辑,默认回退为原始 correct 分数
228
+ raw_rewards = data[i].get("raw_rewards", [float(c) for c in data[i]["correctness"]])
229
+ lengths = data[i]["response_length"]
230
+
231
+ # 长度惩罚
232
+ if config.reward.strict_len_check:
233
+ for j in range(len(lengths)):
234
+ if OmegaConf.select(config, "rollout.max_gen_length", default=MISSING) is not MISSING and lengths[j] >= config.rollout.max_gen_length - 5:
235
+ raw_rewards[j] = 0.0
236
+ if OmegaConf.select(config, "rollout.max_token", default=MISSING) is not MISSING and lengths[j] >= config.rollout.max_token - 5:
237
+ raw_rewards[j] = 0.0
238
+
239
+ # Z-Score 优势归一化
240
+ rewards = z_score_normalize(raw_rewards)
241
+ data[i]["rewards"] = rewards
242
+
243
+ if config.experiment.function == "train":
244
+ proportion = sum(data[i]["correctness"]) / len(data[i]["correctness"]) if len(data[i]["correctness"]) > 0 else 0.0
245
+ # 如果全部回答都是错的,或者全是对的(无差别区分度),则剔除该样本
246
+ if proportion > 0.95 or proportion < 0.05:
247
+ continue
248
+
249
+ for j in range(len(rewards)):
250
+ data_i = {}
251
+ data_i["prompt"] = data[i]["prompt"]
252
+ data_i["reward"] = rewards[j]
253
+ data_i["response"] = data[i]["full_output"][j]
254
+ data_i["step_map"] = data[i]["step_map"][j]
255
+
256
+ # 保留其他需要的上下文 ID
257
+ data_i["data_id"] = data[i].get("data_id")
258
+ data_i["reversal_type"] = data[i].get("reversal_type")
259
+
260
+ if "image_token_ids" in data[i]:
261
+ data_i["image_token_ids"] = data[i]["image_token_ids"]
262
+
263
+ p_video_abs = resolve_media_abs_path(data[i], config.dataset.get("image_root", None), "video")
264
+ if p_video_abs is not None:
265
+ data_i["video_abs_path"] = p_video_abs
266
+
267
+ p_image_abs = resolve_media_abs_path(data[i], config.dataset.get("image_root", None), "image")
268
+ if p_image_abs is not None:
269
+ data_i["image_abs_path"] = p_image_abs
270
+
271
+ final_data.append(data_i)
272
+
273
+ if config.experiment.function == "evaluation":
274
+ data[i]["step_map"] = []
275
+
276
+ if config.experiment.function == "train":
277
+ with open("../" + project_name + "/temp_data/" + config.dataset.optimization_data + ".json", "w", encoding="utf-8") as f:
278
+ json.dump(final_data, f, indent=2, ensure_ascii=False)
279
+
280
+
281
+ os.makedirs(os.path.dirname(file_name), exist_ok=True)
282
+ with open(file_name, "w", encoding="utf-8") as f:
283
+ json.dump(data, f, indent=2, ensure_ascii=False)
284
+
285
+
286
+ outputs_result_name = "../" + project_name + "/results/results-" + outputs_name + ".txt"
287
+ os.makedirs(os.path.dirname(outputs_result_name), exist_ok=True)
288
+ with open(outputs_result_name, "a") as f:
289
+ # Save + print
290
+ def save_and_print(text):
291
+ cprint("\n\n\n" + text, color="green")
292
+ f.write(text + "\n")
293
+
294
+ # 只计算有序组(有效学习组)的准确率来作为监控指标
295
+ acc = (sum(ordered_correctness)/len(ordered_correctness)) if len(ordered_correctness) > 0 else float("nan")
296
+ avg_len = sum(response_length_list)/len(response_length_list)
297
+
298
+ # 新增:计算 T-GRPO 和 Unbiased 奖励的平均值
299
+ avg_temp = sum(all_temporal_bonuses)/len(all_temporal_bonuses) if all_temporal_bonuses else 0.0
300
+ avg_unbias = sum(all_unbiased_bonuses)/len(all_unbiased_bonuses) if all_unbiased_bonuses else 0.0
301
+
302
+ output_text = f"train step: {config.experiment.current_epoch} "
303
+ if config.experiment.function == "train":
304
+ if config.model.model_base != "sdar" and config.model.model_base != "trado":
305
+ output_text = output_text + f"remasking_strategy: {config.rollout.remasking_strategy} block_size: {config.rollout.block_size} acc: {acc:.4f} avg length: {avg_len:.2f}"
306
+ else:
307
+ output_text = output_text + f"remasking_strategy: {config.rollout.remasking_strategy} top_k: {config.rollout.top_k} acc: {acc:.4f} avg length: {avg_len:.2f}"
308
+ else:
309
+ if config.model.model_base != "sdar" and config.model.model_base != "trado":
310
+ output_text = output_text + f"remasking_strategy: {config.evaluation.remasking_strategy} block_size: {config.evaluation.block_size} acc: {acc:.4f} avg length: {avg_len:.2f}"
311
+ else:
312
+ output_text = output_text + f"remasking_strategy: {config.evaluation.remasking_strategy} top_k: {config.evaluation.top_k} acc: {acc:.4f} avg length: {avg_len:.2f}"
313
+ save_and_print(output_text)
314
+
315
+ if config.experiment.function == "train":
316
+ csv_file_path = f"../{project_name}/results/all_rewards.csv"
317
+
318
+ # 如果是第1个 epoch/step,或者是新文件,就先写入表头
319
+ write_header = not os.path.exists(csv_file_path) or config.experiment.current_epoch == 1
320
+
321
+ with open(csv_file_path, "a", encoding="utf-8") as f_csv:
322
+ if write_header:
323
+ f_csv.write("step,acc_reward,t_grpo_reward,unbiased_reward,response_length\n")
324
+
325
+ # 按行追加当前 step 的数据
326
+ f_csv.write(f"{config.experiment.current_epoch},{acc:.4f},{avg_temp:.4f},{avg_unbias:.4f},{avg_len:.2f}\n")
327
+
328
+ if run is not None:
329
+ wandb.log(
330
+ {
331
+ "reward/acc": acc,
332
+ "reward/t_grpo_bonus": avg_temp,
333
+ "reward/unbiased_bonus": avg_unbias,
334
+ "reward/avg_response_length": avg_len,
335
+ "reward/train_step": config.experiment.current_epoch,
336
+ },
337
+ step=config.experiment.current_epoch,
338
+ )
339
+ wandb.finish()
reward/wandb/run-20260530_001305-fmmkx1a5/files/config.yaml ADDED
@@ -0,0 +1,281 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ _wandb:
2
+ value:
3
+ cli_version: 0.25.0
4
+ code_path: code/reward/rl_reward_video_reversal.py
5
+ e:
6
+ nbjlrwv1znq9ynwn7j97kr9f61plnzak:
7
+ args:
8
+ - config=../configs/rl_lavida_video_reversal.yaml
9
+ - wandb.run_id=fmmkx1a5
10
+ - experiment.function=train
11
+ - evaluation.block_size=None
12
+ - evaluation.top_k=None
13
+ - evaluation.remasking_strategy=None
14
+ - experiment.current_epoch=4
15
+ codePath: reward/rl_reward_video_reversal.py
16
+ codePathLocal: rl_reward_video_reversal.py
17
+ cpu_count: 96
18
+ cpu_count_logical: 192
19
+ cudaVersion: "12.8"
20
+ disk:
21
+ /:
22
+ total: "806578724864"
23
+ used: "625472454656"
24
+ email: shixi_runqing@staff.weibo.com
25
+ executable: /data8/runqing/miniconda/envs/dllm-rl/bin/python
26
+ git:
27
+ commit: 10b4fd1cba83e4496c20585dc2fd01dc02f20255
28
+ remote: https://gitclone.com/github.com/Gen-Verse/dLLM-RL.git
29
+ gpu: NVIDIA H800
30
+ gpu_count: 8
31
+ gpu_nvidia:
32
+ - architecture: Hopper
33
+ cudaCores: 16896
34
+ memoryTotal: "85520809984"
35
+ name: NVIDIA H800
36
+ uuid: GPU-f768b684-b9ce-23a2-81a6-af16161cf9be
37
+ - architecture: Hopper
38
+ cudaCores: 16896
39
+ memoryTotal: "85520809984"
40
+ name: NVIDIA H800
41
+ uuid: GPU-2f1e1a7b-76a2-e00b-3dc5-79add059b8f9
42
+ - architecture: Hopper
43
+ cudaCores: 16896
44
+ memoryTotal: "85520809984"
45
+ name: NVIDIA H800
46
+ uuid: GPU-33d7b8d4-af9c-4719-9686-1712e9694cd6
47
+ - architecture: Hopper
48
+ cudaCores: 16896
49
+ memoryTotal: "85520809984"
50
+ name: NVIDIA H800
51
+ uuid: GPU-0b797f66-23ec-d0ff-1c65-fb34b9064e53
52
+ - architecture: Hopper
53
+ cudaCores: 16896
54
+ memoryTotal: "85520809984"
55
+ name: NVIDIA H800
56
+ uuid: GPU-ad9e9c73-0f31-a8b3-e8f7-7be19f5338ad
57
+ - architecture: Hopper
58
+ cudaCores: 16896
59
+ memoryTotal: "85520809984"
60
+ name: NVIDIA H800
61
+ uuid: GPU-f531028f-805c-3301-61b3-0c46329dc9c0
62
+ - architecture: Hopper
63
+ cudaCores: 16896
64
+ memoryTotal: "85520809984"
65
+ name: NVIDIA H800
66
+ uuid: GPU-2775489f-18c8-2328-8829-c46238575379
67
+ - architecture: Hopper
68
+ cudaCores: 16896
69
+ memoryTotal: "85520809984"
70
+ name: NVIDIA H800
71
+ uuid: GPU-1dd27781-c1f3-d980-6f18-fe8a778b69fd
72
+ host: b1301b38c75f
73
+ memory:
74
+ total: "2164113764352"
75
+ os: Linux-5.15.0-144-generic-x86_64-with-glibc2.35
76
+ program: /data4/runqing/dLLM-RL/reward/rl_reward_video_reversal.py
77
+ python: CPython 3.10.19
78
+ root: /data4/runqing/dLLM-RL/reward
79
+ startedAt: "2026-05-29T16:13:05.220431Z"
80
+ writerId: nbjlrwv1znq9ynwn7j97kr9f61plnzak
81
+ m: []
82
+ python_version: 3.10.19
83
+ t:
84
+ "1":
85
+ - 1
86
+ - 41
87
+ "2":
88
+ - 1
89
+ - 41
90
+ "3":
91
+ - 2
92
+ - 5
93
+ - 13
94
+ - 14
95
+ - 16
96
+ - 61
97
+ - 62
98
+ "4": 3.10.19
99
+ "5": 0.25.0
100
+ "10":
101
+ - 20
102
+ "12": 0.25.0
103
+ "13": linux-x86_64
104
+ config:
105
+ value: ../configs/rl_lavida_video_reversal.yaml
106
+ dataset.data_type:
107
+ value: video_reverse
108
+ dataset.optimization_data:
109
+ value: rl_data
110
+ dataset.train_dataset:
111
+ value: video_reversal_rl_train
112
+ evaluation.batch_size:
113
+ value: 1
114
+ evaluation.block_size:
115
+ value: None
116
+ evaluation.data_type:
117
+ value: video_reverse
118
+ evaluation.dynamic_threshold:
119
+ value: 0.9
120
+ evaluation.eval_dataset:
121
+ value: video_reversal_rl_eval
122
+ evaluation.further_horizon:
123
+ value: 128
124
+ evaluation.if_eval:
125
+ value: false
126
+ evaluation.max_gen_length:
127
+ value: 128
128
+ evaluation.num_response_per_task:
129
+ value: 3
130
+ evaluation.remasking_strategy:
131
+ value: None
132
+ evaluation.remasking_strategy.0:
133
+ value: low_confidence_static
134
+ evaluation.remasking_strategy.1:
135
+ value: low_confidence_dynamic
136
+ evaluation.steps:
137
+ value: 128
138
+ evaluation.target:
139
+ value: confidence
140
+ evaluation.temperature:
141
+ value: 0.1
142
+ evaluation.top_k:
143
+ value: None
144
+ evaluation.use_cache:
145
+ value: true
146
+ execute.num_chunk:
147
+ value: 128
148
+ experiment.current_epoch:
149
+ value: 4
150
+ experiment.deepspeed_file:
151
+ value: 1_node_8_gpus_deepspeed_zero2
152
+ experiment.eval_every:
153
+ value: 5
154
+ experiment.function:
155
+ value: train
156
+ experiment.logging_dir:
157
+ value: rl_lavida_video_reversal/logs
158
+ experiment.node_index:
159
+ value: 0
160
+ experiment.num_node:
161
+ value: 1
162
+ experiment.project:
163
+ value: rl_lavida_video_reversal
164
+ experiment.save_every:
165
+ value: 10
166
+ experiment.start_from_scratch:
167
+ value: true
168
+ experiment.total_step:
169
+ value: 30
170
+ lr_scheduler.params.learning_rate:
171
+ value: 1e-06
172
+ lr_scheduler.params.min_lr_scale:
173
+ value: 1
174
+ lr_scheduler.params.warmup_steps:
175
+ value: 0
176
+ lr_scheduler.scheduler:
177
+ value: cosine
178
+ model.image_resolution:
179
+ value: 512
180
+ model.model_base:
181
+ value: lavida
182
+ model.optimized_name:
183
+ value: optimized
184
+ model.pretrained_model:
185
+ value: /data4/runqing/dLLM-RL/sft_lavida_video_reversal/ckpt/optimized
186
+ model.vq_model_path:
187
+ value: /data4/runqing/hf/magvitv2
188
+ optimizer.name:
189
+ value: adamw
190
+ optimizer.params.beta1:
191
+ value: 0.9
192
+ optimizer.params.beta2:
193
+ value: 0.999
194
+ optimizer.params.epsilon:
195
+ value: 1e-08
196
+ optimizer.params.learning_rate:
197
+ value: 1e-06
198
+ optimizer.params.scale_lr:
199
+ value: false
200
+ optimizer.params.weight_decay:
201
+ value: 0
202
+ reward.answer_must_in_box:
203
+ value: true
204
+ reward.strict_len_check:
205
+ value: false
206
+ rollout.batch_size:
207
+ value: 1
208
+ rollout.block_size:
209
+ value: 32
210
+ rollout.dynamic_threshold:
211
+ value: 0.9
212
+ rollout.further_horizon:
213
+ value: 128
214
+ rollout.max_gen_length:
215
+ value: 128
216
+ rollout.num_response_per_task:
217
+ value: 8
218
+ rollout.num_task_per_step:
219
+ value: 128
220
+ rollout.remasking_strategy:
221
+ value: low_confidence_dynamic
222
+ rollout.steps:
223
+ value: 128
224
+ rollout.target:
225
+ value: confidence
226
+ rollout.temperature:
227
+ value: 0.8
228
+ rollout.use_cache:
229
+ value: true
230
+ system.HF_HOME:
231
+ value: null
232
+ system.HTTP_PROXY:
233
+ value: null
234
+ system.base_dir:
235
+ value: /data4/runqing/dLLM-RL
236
+ system.env_name:
237
+ value: /data8/runqing/miniconda/envs/dllm-rl
238
+ system.envs_dir:
239
+ value: /data8/runqing/miniconda/envs/dllm-rl
240
+ training.batch_size_lm:
241
+ value: 1
242
+ training.beta:
243
+ value: 0.01
244
+ training.enable_tf32:
245
+ value: true
246
+ training.eps:
247
+ value: 0.2
248
+ training.gradient_accumulation_steps:
249
+ value: 2
250
+ training.lower_p:
251
+ value: 0.35
252
+ training.mask_times_per_sample:
253
+ value: 2
254
+ training.max_gen_length:
255
+ value: 128
256
+ training.max_grad_norm:
257
+ value: 1
258
+ training.max_prompt_len:
259
+ value: 512
260
+ training.method:
261
+ value: random_masking
262
+ training.mixed_precision:
263
+ value: bf16
264
+ training.num_train_epochs:
265
+ value: 1
266
+ training.post_num:
267
+ value: 1
268
+ training.seed:
269
+ value: 10086
270
+ training.shrink:
271
+ value: 8
272
+ training.upper_p:
273
+ value: 0.9
274
+ training.use_kl_estimator_k3:
275
+ value: true
276
+ wandb.entity:
277
+ value: null
278
+ wandb.resume:
279
+ value: auto
280
+ wandb.run_id:
281
+ value: fmmkx1a5
reward/wandb/run-20260530_001305-fmmkx1a5/files/output.log ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+
2
+
3
+
4
+ train step: 4 remasking_strategy: low_confidence_dynamic block_size: 32 acc: 0.4590 avg length: 126.43
reward/wandb/run-20260530_001305-fmmkx1a5/files/requirements.txt ADDED
@@ -0,0 +1,157 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ transformers==4.52.4
2
+ nvidia-nvtx-cu12==12.4.127
3
+ deepspeed==0.18.6
4
+ typing-inspection==0.4.2
5
+ scipy==1.15.3
6
+ MarkupSafe==3.0.3
7
+ nvidia-cuda-runtime-cu12==12.4.127
8
+ detoxify==0.5.2
9
+ yarl==1.22.0
10
+ tornado==6.5.4
11
+ nvidia-curand-cu12==10.3.5.147
12
+ nest-asyncio==1.6.0
13
+ safetensors==0.7.0
14
+ async-timeout==5.0.1
15
+ typing_extensions==4.15.0
16
+ asttokens==3.0.1
17
+ cuda-python==13.1.1
18
+ executing==2.2.1
19
+ nvidia-cudnn-frontend==1.18.0
20
+ comm==0.2.3
21
+ tokenizers==0.21.4
22
+ six==1.17.0
23
+ Pygments==2.19.2
24
+ nvidia-cusparselt-cu12==0.6.2
25
+ apache-tvm-ffi==0.1.8.post2
26
+ flash_attn==2.7.4.post1
27
+ tqdm==4.67.3
28
+ tensorboard-data-server==0.7.2
29
+ annotated-types==0.7.0
30
+ math-verify==0.9.0
31
+ idna==3.11
32
+ regex==2026.1.15
33
+ nvidia-cutlass-dsl-libs-base==4.4.0
34
+ flashinfer-python==0.6.3
35
+ click==8.3.1
36
+ pytz==2025.2
37
+ wheel==0.46.3
38
+ ipykernel==7.2.0
39
+ stack-data==0.6.3
40
+ absl-py==2.4.0
41
+ wandb==0.25.0
42
+ pandas==2.3.3
43
+ termcolor==3.3.0
44
+ sympy==1.13.1
45
+ joblib==1.5.3
46
+ prompt_toolkit==3.0.52
47
+ attrs==25.4.0
48
+ nvidia-cusolver-cu12==11.6.1.9
49
+ xxhash==3.6.0
50
+ aiohappyeyeballs==2.6.1
51
+ python-dateutil==2.9.0.post0
52
+ frozenlist==1.8.0
53
+ nvidia-ml-py==13.590.48
54
+ multiprocess==0.70.18
55
+ decorator==5.2.1
56
+ cuda-pathfinder==1.3.4
57
+ multidict==6.7.1
58
+ pure_eval==0.2.3
59
+ nvidia-cufft-cu12==11.2.1.3
60
+ omegaconf==2.3.0
61
+ PyYAML==6.0.3
62
+ debugpy==1.8.20
63
+ psutil==7.2.2
64
+ ninja==1.13.0
65
+ nvidia-cublas-cu12==12.4.5.8
66
+ triton==3.2.0
67
+ antlr4-python3-runtime==4.9.3
68
+ peft==0.18.1
69
+ aiosignal==1.4.0
70
+ accelerate==1.12.0
71
+ liger_kernel==0.7.0
72
+ anyio==4.12.1
73
+ decord==0.6.0
74
+ h11==0.16.0
75
+ urllib3==2.6.3
76
+ wcwidth==0.6.0
77
+ networkx==3.4.2
78
+ huggingface_hub==0.36.2
79
+ tzdata==2025.3
80
+ xformers==0.0.29.post3
81
+ tabulate==0.9.0
82
+ certifi==2026.1.4
83
+ tensorboard==2.20.0
84
+ matplotlib-inline==0.2.1
85
+ pip==26.0.1
86
+ smmap==5.0.2
87
+ nvidia-cuda-cupti-cu12==12.4.127
88
+ Markdown==3.10.2
89
+ nvidia-nccl-cu12==2.21.5
90
+ aiohttp==3.13.3
91
+ scikit-learn==1.7.2
92
+ nvidia-cutlass-dsl==4.4.0
93
+ setuptools==82.0.0
94
+ jupyter_core==5.9.1
95
+ asyncio==4.0.0
96
+ einops==0.8.2
97
+ pydantic==2.12.5
98
+ av==16.1.0
99
+ protobuf==6.33.5
100
+ evaluate==0.4.6
101
+ Jinja2==3.1.6
102
+ exceptiongroup==1.3.1
103
+ ipython==8.38.0
104
+ sentry-sdk==2.53.0
105
+ httpx==0.28.1
106
+ msgpack==1.1.2
107
+ platformdirs==4.9.2
108
+ hjson==3.1.0
109
+ torchvision==0.21.0
110
+ parso==0.8.6
111
+ cuda-bindings==13.1.1
112
+ pexpect==4.9.0
113
+ threadpoolctl==3.6.0
114
+ pyarrow==23.0.1
115
+ jedi==0.19.2
116
+ nvidia-cuda-nvrtc-cu12==12.4.127
117
+ Werkzeug==3.1.5
118
+ fsspec==2025.10.0
119
+ pydantic_core==2.41.5
120
+ GitPython==3.1.46
121
+ propcache==0.4.1
122
+ mpmath==1.3.0
123
+ nvidia-nvjitlink-cu12==12.4.127
124
+ nvidia-cusparse-cu12==12.3.1.170
125
+ hf-xet==1.2.0
126
+ charset-normalizer==3.4.4
127
+ dill==0.4.0
128
+ datasets==4.5.0
129
+ py-cpuinfo==9.0.0
130
+ sentencepiece==0.2.1
131
+ latex2sympy2_extended==1.11.0
132
+ jupyter_client==8.8.0
133
+ pyzmq==27.1.0
134
+ numpy==2.2.6
135
+ gitdb==4.0.12
136
+ grpcio==1.78.0
137
+ packaging==26.0
138
+ requests==2.32.5
139
+ nvidia-cudnn-cu12==9.1.0.70
140
+ httpcore==1.0.9
141
+ traitlets==5.14.3
142
+ filelock==3.24.2
143
+ ptyprocess==0.7.0
144
+ pillow==12.1.1
145
+ torch==2.6.0
146
+ more-itertools==10.8.0
147
+ wheel==0.46.3
148
+ jaraco.text==4.0.0
149
+ zipp==3.23.0
150
+ autocommand==2.2.2
151
+ jaraco.context==6.1.0
152
+ jaraco.functools==4.4.0
153
+ tomli==2.4.0
154
+ backports.tarfile==1.2.0
155
+ importlib_metadata==8.7.1
156
+ platformdirs==4.4.0
157
+ packaging==26.0
reward/wandb/run-20260530_001305-fmmkx1a5/files/wandb-metadata.json ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "os": "Linux-5.15.0-144-generic-x86_64-with-glibc2.35",
3
+ "python": "CPython 3.10.19",
4
+ "startedAt": "2026-05-29T16:13:05.220431Z",
5
+ "args": [
6
+ "config=../configs/rl_lavida_video_reversal.yaml",
7
+ "wandb.run_id=fmmkx1a5",
8
+ "experiment.function=train",
9
+ "evaluation.block_size=None",
10
+ "evaluation.top_k=None",
11
+ "evaluation.remasking_strategy=None",
12
+ "experiment.current_epoch=4"
13
+ ],
14
+ "program": "/data4/runqing/dLLM-RL/reward/rl_reward_video_reversal.py",
15
+ "codePath": "reward/rl_reward_video_reversal.py",
16
+ "codePathLocal": "rl_reward_video_reversal.py",
17
+ "git": {
18
+ "remote": "https://gitclone.com/github.com/Gen-Verse/dLLM-RL.git",
19
+ "commit": "10b4fd1cba83e4496c20585dc2fd01dc02f20255"
20
+ },
21
+ "email": "shixi_runqing@staff.weibo.com",
22
+ "root": "/data4/runqing/dLLM-RL/reward",
23
+ "host": "b1301b38c75f",
24
+ "executable": "/data8/runqing/miniconda/envs/dllm-rl/bin/python",
25
+ "cpu_count": 96,
26
+ "cpu_count_logical": 192,
27
+ "gpu": "NVIDIA H800",
28
+ "gpu_count": 8,
29
+ "disk": {
30
+ "/": {
31
+ "total": "806578724864",
32
+ "used": "625472454656"
33
+ }
34
+ },
35
+ "memory": {
36
+ "total": "2164113764352"
37
+ },
38
+ "gpu_nvidia": [
39
+ {
40
+ "name": "NVIDIA H800",
41
+ "memoryTotal": "85520809984",
42
+ "cudaCores": 16896,
43
+ "architecture": "Hopper",
44
+ "uuid": "GPU-f768b684-b9ce-23a2-81a6-af16161cf9be"
45
+ },
46
+ {
47
+ "name": "NVIDIA H800",
48
+ "memoryTotal": "85520809984",
49
+ "cudaCores": 16896,
50
+ "architecture": "Hopper",
51
+ "uuid": "GPU-2f1e1a7b-76a2-e00b-3dc5-79add059b8f9"
52
+ },
53
+ {
54
+ "name": "NVIDIA H800",
55
+ "memoryTotal": "85520809984",
56
+ "cudaCores": 16896,
57
+ "architecture": "Hopper",
58
+ "uuid": "GPU-33d7b8d4-af9c-4719-9686-1712e9694cd6"
59
+ },
60
+ {
61
+ "name": "NVIDIA H800",
62
+ "memoryTotal": "85520809984",
63
+ "cudaCores": 16896,
64
+ "architecture": "Hopper",
65
+ "uuid": "GPU-0b797f66-23ec-d0ff-1c65-fb34b9064e53"
66
+ },
67
+ {
68
+ "name": "NVIDIA H800",
69
+ "memoryTotal": "85520809984",
70
+ "cudaCores": 16896,
71
+ "architecture": "Hopper",
72
+ "uuid": "GPU-ad9e9c73-0f31-a8b3-e8f7-7be19f5338ad"
73
+ },
74
+ {
75
+ "name": "NVIDIA H800",
76
+ "memoryTotal": "85520809984",
77
+ "cudaCores": 16896,
78
+ "architecture": "Hopper",
79
+ "uuid": "GPU-f531028f-805c-3301-61b3-0c46329dc9c0"
80
+ },
81
+ {
82
+ "name": "NVIDIA H800",
83
+ "memoryTotal": "85520809984",
84
+ "cudaCores": 16896,
85
+ "architecture": "Hopper",
86
+ "uuid": "GPU-2775489f-18c8-2328-8829-c46238575379"
87
+ },
88
+ {
89
+ "name": "NVIDIA H800",
90
+ "memoryTotal": "85520809984",
91
+ "cudaCores": 16896,
92
+ "architecture": "Hopper",
93
+ "uuid": "GPU-1dd27781-c1f3-d980-6f18-fe8a778b69fd"
94
+ }
95
+ ],
96
+ "cudaVersion": "12.8",
97
+ "writerId": "nbjlrwv1znq9ynwn7j97kr9f61plnzak"
98
+ }
reward/wandb/run-20260530_001305-fmmkx1a5/files/wandb-summary.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"_runtime":2202,"reward/t_grpo_bonus":0.2718750000000003,"reward/unbiased_bonus":0.09374999999999996,"train/learning_rate":7.300325188655752e-07,"reward/acc":0.396484375,"_step":22,"train/loss":0.3783190548419952,"reward/train_step":1,"reward/avg_response_length":124.568359375,"_wandb":{"runtime":2202},"_timestamp":1.7800614303455548e+09}
reward/wandb/run-20260530_001305-fmmkx1a5/logs/debug-core.log ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"time":"2026-05-30T00:13:05.286065679+08:00","level":"INFO","msg":"main: starting server","port-filename":"/tmp/tmpp62euswa/port-1751242.txt","pid":1751242,"log-level":0,"disable-analytics":false,"shutdown-on-parent-exit":false,"enable-dcgm-profiling":false}
2
+ {"time":"2026-05-30T00:13:05.287189973+08:00","level":"INFO","msg":"server: will exit if parent process dies","ppid":1751242}
3
+ {"time":"2026-05-30T00:13:05.287151511+08:00","level":"INFO","msg":"server: accepting connections","addr":{"Name":"/tmp/wandb-1751242-1751409-2046619474/socket","Net":"unix"}}
4
+ {"time":"2026-05-30T00:13:05.468769376+08:00","level":"INFO","msg":"connection: ManageConnectionData: new connection created","id":"1(@)"}
5
+ {"time":"2026-05-30T00:13:05.477564719+08:00","level":"INFO","msg":"handleInformInit: received","streamId":"fmmkx1a5","id":"1(@)"}
6
+ {"time":"2026-05-30T00:13:05.780034643+08:00","level":"INFO","msg":"handleInformInit: stream started","streamId":"fmmkx1a5","id":"1(@)"}
7
+ {"time":"2026-05-30T00:13:06.242278206+08:00","level":"INFO","msg":"connection: cancelling request","id":"1(@)","requestId":"k7igfwpnqhw4"}
8
+ {"time":"2026-05-30T00:13:06.425328395+08:00","level":"INFO","msg":"connection: cancelling request","id":"1(@)","requestId":"k7igfwpnqhw4"}
9
+ {"time":"2026-05-30T00:13:06.42595584+08:00","level":"INFO","msg":"handleInformFinish: finish message received","streamId":"fmmkx1a5","id":"1(@)"}
10
+ {"time":"2026-05-30T00:13:06.42694024+08:00","level":"INFO","msg":"handleInformFinish: stream closed","streamId":"fmmkx1a5","id":"1(@)"}
11
+ {"time":"2026-05-30T00:13:06.426952049+08:00","level":"INFO","msg":"handleInformTeardown: server teardown initiated","id":"1(@)"}
12
+ {"time":"2026-05-30T00:13:06.426964821+08:00","level":"INFO","msg":"handleInformTeardown: server shutdown complete","id":"1(@)"}
13
+ {"time":"2026-05-30T00:13:06.426975472+08:00","level":"INFO","msg":"connection: closing","id":"1(@)"}
14
+ {"time":"2026-05-30T00:13:06.426985269+08:00","level":"INFO","msg":"server is shutting down"}
15
+ {"time":"2026-05-30T00:13:06.427015094+08:00","level":"INFO","msg":"connection: closed successfully","id":"1(@)"}
16
+ {"time":"2026-05-30T00:13:06.427038141+08:00","level":"INFO","msg":"connection: ManageConnectionData: connection closed","id":"1(@)"}
17
+ {"time":"2026-05-30T00:13:06.427156462+08:00","level":"INFO","msg":"server: listener closed","addr":{"Name":"/tmp/wandb-1751242-1751409-2046619474/socket","Net":"unix"}}
18
+ {"time":"2026-05-30T00:13:06.427212116+08:00","level":"INFO","msg":"server is closed"}
reward/wandb/run-20260530_001305-fmmkx1a5/logs/debug-internal.log ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"time":"2026-05-30T00:13:05.477770765+08:00","level":"INFO","msg":"stream: starting","core version":"0.25.0"}
2
+ {"time":"2026-05-30T00:13:05.779450034+08:00","level":"ERROR","msg":"featurechecker: failed to load features, all will be disabled","error":"input:4:3: Cannot query field \"features\" on type \"ServerInfo\".\n"}
3
+ {"time":"2026-05-30T00:13:05.779652585+08:00","level":"INFO","msg":"stream: created new stream","id":"fmmkx1a5"}
4
+ {"time":"2026-05-30T00:13:05.779744219+08:00","level":"INFO","msg":"handler: started","stream_id":"fmmkx1a5"}
5
+ {"time":"2026-05-30T00:13:05.780014388+08:00","level":"INFO","msg":"stream: started","id":"fmmkx1a5"}
6
+ {"time":"2026-05-30T00:13:05.780055478+08:00","level":"INFO","msg":"writer: started","stream_id":"fmmkx1a5"}
7
+ {"time":"2026-05-30T00:13:05.780055506+08:00","level":"INFO","msg":"sender: started","stream_id":"fmmkx1a5"}
8
+ {"time":"2026-05-30T00:13:05.782697905+08:00","level":"WARN","msg":"runupserter: server does not expand metric globs but the x_server_side_expand_glob_metrics setting is set; ignoring"}
9
+ {"time":"2026-05-30T00:13:06.028313692+08:00","level":"ERROR","msg":"git repo not found","error":"repository does not exist"}
10
+ {"time":"2026-05-30T00:13:06.2385663+08:00","level":"WARN","msg":"handler: ignoring partial history record","step":4,"current":23}
11
+ {"time":"2026-05-30T00:13:06.368370958+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/output.log?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T161306Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=8578fc7b87857bdd751003ba69247abe51fa215fdca5c83876ba57e01529f06f"}
12
+ {"time":"2026-05-30T00:13:06.368497869+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/output.log</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/output.log</Resource><RequestId>18B415501297BED1</RequestId><HostId>17e81bf8-654d-4ce6-b556-0f7349513ee1</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260530_001305-fmmkx1a5/files/output.log, Name: output.log, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/output.log?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T161306Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=8578fc7b87857bdd751003ba69247abe51fa215fdca5c83876ba57e01529f06f, Size: 110}"}
13
+ {"time":"2026-05-30T00:13:06.368902337+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/config.yaml?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T161306Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=74595d174d88f5f42545e11c808630835e87001e8a5296f7c2c718f2d4995bdc"}
14
+ {"time":"2026-05-30T00:13:06.369039843+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/config.yaml</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/config.yaml</Resource><RequestId>18B415501291CB61</RequestId><HostId>17e81bf8-654d-4ce6-b556-0f7349513ee1</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260530_001305-fmmkx1a5/files/config.yaml, Name: config.yaml, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/config.yaml?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T161306Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=74595d174d88f5f42545e11c808630835e87001e8a5296f7c2c718f2d4995bdc, Size: 7994}"}
15
+ {"time":"2026-05-30T00:13:06.369639945+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-metadata.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T161306Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=a2d0a58bb258141ad482f96245ac2182bdfbbdab1e2fa96a04db7ecbc47d2843"}
16
+ {"time":"2026-05-30T00:13:06.369798939+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-metadata.json</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-metadata.json</Resource><RequestId>18B4155012169184</RequestId><HostId>29678716-7d96-4915-b26c-b7113941467d</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260530_001305-fmmkx1a5/files/wandb-metadata.json, Name: wandb-metadata.json, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-metadata.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T161306Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=a2d0a58bb258141ad482f96245ac2182bdfbbdab1e2fa96a04db7ecbc47d2843, Size: 2849}"}
17
+ {"time":"2026-05-30T00:13:06.370661611+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-summary.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T161306Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=99480e690e5934203d2d0ba772e2d0ce0a39c37c4d8b6b6d9db3c4482f0b9fc1"}
18
+ {"time":"2026-05-30T00:13:06.370783078+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-summary.json</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-summary.json</Resource><RequestId>18B41550110447D3</RequestId><HostId>4b5cbd82-31a6-4e32-8e3a-3b4f1cd8a94b</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260530_001305-fmmkx1a5/files/wandb-summary.json, Name: wandb-summary.json, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-summary.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T161306Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=99480e690e5934203d2d0ba772e2d0ce0a39c37c4d8b6b6d9db3c4482f0b9fc1, Size: 341}"}
19
+ {"time":"2026-05-30T00:13:06.370857593+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/requirements.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T161306Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=932abcfbee1a259382384175d32ca10d553bb10e5e18f491f305f95f6f890ab1"}
20
+ {"time":"2026-05-30T00:13:06.370975128+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/requirements.txt</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/requirements.txt</Resource><RequestId>18B41550122B1FAB</RequestId><HostId>29678716-7d96-4915-b26c-b7113941467d</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260530_001305-fmmkx1a5/files/requirements.txt, Name: requirements.txt, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/requirements.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T161306Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=932abcfbee1a259382384175d32ca10d553bb10e5e18f491f305f95f6f890ab1, Size: 2982}"}
21
+ {"time":"2026-05-30T00:13:06.378523807+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/code/reward/rl_reward_video_reversal.py?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T161306Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=ce774c4d207911537ae5971450542027f4d47ab73f9f0e5a233371ed80539cb7"}
22
+ {"time":"2026-05-30T00:13:06.378678161+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/code/reward/rl_reward_video_reversal.py</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/code/reward/rl_reward_video_reversal.py</Resource><RequestId>18B4155010FA7E6E</RequestId><HostId>4b5cbd82-31a6-4e32-8e3a-3b4f1cd8a94b</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260530_001305-fmmkx1a5/files/code/reward/rl_reward_video_reversal.py, Name: code/reward/rl_reward_video_reversal.py, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/code/reward/rl_reward_video_reversal.py?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T161306Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=ce774c4d207911537ae5971450542027f4d47ab73f9f0e5a233371ed80539cb7, Size: 14790}"}
23
+ {"time":"2026-05-30T00:13:06.378940351+08:00","level":"INFO","msg":"fileTransfer: Close: file transfer manager closed"}
24
+ {"time":"2026-05-30T00:13:06.421106068+08:00","level":"INFO","msg":"handler: operation stats","stats":{}}
25
+ {"time":"2026-05-30T00:13:06.425978529+08:00","level":"INFO","msg":"stream: closing","id":"fmmkx1a5"}
26
+ {"time":"2026-05-30T00:13:06.425995378+08:00","level":"INFO","msg":"handler: closed","stream_id":"fmmkx1a5"}
27
+ {"time":"2026-05-30T00:13:06.426060973+08:00","level":"INFO","msg":"sender: closed","stream_id":"fmmkx1a5"}
28
+ {"time":"2026-05-30T00:13:06.426080026+08:00","level":"INFO","msg":"stream: closed","id":"fmmkx1a5"}
reward/wandb/run-20260530_001305-fmmkx1a5/logs/debug.log ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2026-05-30 00:13:05,223 INFO MainThread:1751242 [wandb_setup.py:_flush():81] Current SDK version is 0.25.0
2
+ 2026-05-30 00:13:05,223 INFO MainThread:1751242 [wandb_setup.py:_flush():81] Configure stats pid to 1751242
3
+ 2026-05-30 00:13:05,223 INFO MainThread:1751242 [wandb_setup.py:_flush():81] Loading settings from environment variables
4
+ 2026-05-30 00:13:05,223 INFO MainThread:1751242 [wandb_init.py:setup_run_log_directory():717] Logging user logs to /data4/runqing/dLLM-RL/reward/wandb/run-20260530_001305-fmmkx1a5/logs/debug.log
5
+ 2026-05-30 00:13:05,223 INFO MainThread:1751242 [wandb_init.py:setup_run_log_directory():718] Logging internal logs to /data4/runqing/dLLM-RL/reward/wandb/run-20260530_001305-fmmkx1a5/logs/debug-internal.log
6
+ 2026-05-30 00:13:05,223 INFO MainThread:1751242 [wandb_init.py:init():844] calling init triggers
7
+ 2026-05-30 00:13:05,223 INFO MainThread:1751242 [wandb_init.py:init():849] wandb.init called with sweep_config: {}
8
+ config: {'wandb.entity': None, 'wandb.resume': 'auto', 'wandb.run_id': 'fmmkx1a5', 'system.HTTP_PROXY': None, 'system.HF_HOME': None, 'system.env_name': '/data8/runqing/miniconda/envs/dllm-rl', 'system.envs_dir': '/data8/runqing/miniconda/envs/dllm-rl', 'system.base_dir': '/data4/runqing/dLLM-RL', 'experiment.project': 'rl_lavida_video_reversal', 'experiment.function': 'train', 'experiment.start_from_scratch': True, 'experiment.total_step': 30, 'experiment.save_every': 10, 'experiment.eval_every': 5, 'experiment.current_epoch': 4, 'experiment.deepspeed_file': '1_node_8_gpus_deepspeed_zero2', 'experiment.num_node': 1, 'experiment.node_index': 0, 'model.pretrained_model': '/data4/runqing/dLLM-RL/sft_lavida_video_reversal/ckpt/optimized', 'model.optimized_name': 'optimized', 'model.model_base': 'lavida', 'model.vq_model_path': '/data4/runqing/hf/magvitv2', 'model.image_resolution': 512, 'dataset.train_dataset': 'video_reversal_rl_train', 'dataset.data_type': 'video_reverse', 'dataset.optimization_data': 'rl_data', 'rollout.num_task_per_step': 128, 'rollout.num_response_per_task': 8, 'rollout.temperature': 0.8, 'rollout.steps': 128, 'rollout.max_gen_length': 128, 'rollout.batch_size': 1, 'rollout.remasking_strategy': 'low_confidence_dynamic', 'rollout.target': 'confidence', 'rollout.dynamic_threshold': 0.9, 'rollout.block_size': 32, 'rollout.further_horizon': 128, 'rollout.use_cache': True, 'reward.answer_must_in_box': True, 'reward.strict_len_check': False, 'execute.num_chunk': 128, 'training.gradient_accumulation_steps': 2, 'training.batch_size_lm': 1, 'training.mixed_precision': 'bf16', 'training.enable_tf32': True, 'training.seed': 10086, 'training.num_train_epochs': 1, 'training.max_grad_norm': 1.0, 'training.method': 'random_masking', 'training.lower_p': 0.35, 'training.upper_p': 0.9, 'training.shrink': 8, 'training.post_num': 1, 'training.mask_times_per_sample': 2, 'training.max_gen_length': 128, 'training.max_prompt_len': 512, 'training.eps': 0.2, 'training.beta': 0.01, 'training.use_kl_estimator_k3': True, 'optimizer.name': 'adamw', 'optimizer.params.learning_rate': 1e-06, 'optimizer.params.scale_lr': False, 'optimizer.params.beta1': 0.9, 'optimizer.params.beta2': 0.999, 'optimizer.params.weight_decay': 0.0, 'optimizer.params.epsilon': 1e-08, 'lr_scheduler.scheduler': 'cosine', 'lr_scheduler.params.learning_rate': 1e-06, 'lr_scheduler.params.warmup_steps': 0, 'lr_scheduler.params.min_lr_scale': 1.0, 'evaluation.if_eval': False, 'evaluation.eval_dataset': 'video_reversal_rl_eval', 'evaluation.data_type': 'video_reverse', 'evaluation.num_response_per_task': 3, 'evaluation.temperature': 0.1, 'evaluation.steps': 128, 'evaluation.max_gen_length': 128, 'evaluation.batch_size': 1, 'evaluation.remasking_strategy': 'None', 'evaluation.target': 'confidence', 'evaluation.dynamic_threshold': 0.9, 'evaluation.block_size': 'None', 'evaluation.further_horizon': 128, 'evaluation.use_cache': True, 'evaluation.top_k': 'None', 'config': '../configs/rl_lavida_video_reversal.yaml', '_wandb': {'code_path': 'code/reward/rl_reward_video_reversal.py'}}
9
+ 2026-05-30 00:13:05,223 INFO MainThread:1751242 [wandb_init.py:init():892] starting backend
10
+ 2026-05-30 00:13:05,469 INFO MainThread:1751242 [wandb_init.py:init():895] sending inform_init request
11
+ 2026-05-30 00:13:05,474 INFO MainThread:1751242 [wandb_init.py:init():903] backend started and connected
12
+ 2026-05-30 00:13:05,475 INFO MainThread:1751242 [wandb_init.py:init():973] updated telemetry
13
+ 2026-05-30 00:13:05,479 INFO MainThread:1751242 [wandb_init.py:init():997] communicating run to backend with 90.0 second timeout
14
+ 2026-05-30 00:13:06,023 INFO MainThread:1751242 [wandb_init.py:init():1037] run resumed
15
+ 2026-05-30 00:13:06,026 INFO MainThread:1751242 [wandb_init.py:init():1042] starting run threads in backend
16
+ 2026-05-30 00:13:06,116 INFO MainThread:1751242 [wandb_run.py:_console_start():2524] atexit reg
17
+ 2026-05-30 00:13:06,116 INFO MainThread:1751242 [wandb_run.py:_redirect():2373] redirect: wrap_raw
18
+ 2026-05-30 00:13:06,116 INFO MainThread:1751242 [wandb_run.py:_redirect():2442] Wrapping output streams.
19
+ 2026-05-30 00:13:06,116 INFO MainThread:1751242 [wandb_run.py:_redirect():2465] Redirects installed.
20
+ 2026-05-30 00:13:06,120 INFO MainThread:1751242 [wandb_init.py:init():1082] run started, returning control to user process
21
+ 2026-05-30 00:13:06,238 INFO MainThread:1751242 [wandb_run.py:_finish():2291] finishing run shixi_runqing/rl_lavida_video_reversal/fmmkx1a5
22
+ 2026-05-30 00:13:06,238 INFO MainThread:1751242 [wandb_run.py:_atexit_cleanup():2490] got exitcode: 0
23
+ 2026-05-30 00:13:06,239 INFO MainThread:1751242 [wandb_run.py:_restore():2472] restore
24
+ 2026-05-30 00:13:06,239 INFO MainThread:1751242 [wandb_run.py:_restore():2478] restore done
25
+ 2026-05-30 00:13:06,425 INFO MainThread:1751242 [wandb_run.py:_footer_sync_info():3868] logging synced files
reward/wandb/run-20260530_001305-fmmkx1a5/run-fmmkx1a5.wandb ADDED
Binary file (6.09 kB). View file
 
reward/wandb/run-20260530_022315-fmmkx1a5/files/code/reward/rl_reward_video_reversal.py ADDED
@@ -0,0 +1,339 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import math_utils_v
3
+ import nest_asyncio
4
+ from concurrent.futures import ThreadPoolExecutor
5
+ import asyncio
6
+ import re
7
+ from termcolor import cprint
8
+ from omegaconf import MISSING
9
+ from omegaconf import DictConfig, ListConfig, OmegaConf
10
+ from typing import List, Union
11
+ import os
12
+ from collections import defaultdict
13
+ import sys
14
+
15
+ REPO_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
16
+ sys.path.insert(0, REPO_ROOT)
17
+
18
+ import wandb
19
+ from train.utils import flatten_omega_conf, ensure_wandb_run_id
20
+
21
+ def resolve_media_abs_path(sample: dict, dataset_root: str | None, media_type: str = "image") -> str | None:
22
+ p = sample.get(f"{media_type}_abs_path")
23
+ if p is None:
24
+ p = sample.get(media_type) or sample.get(f"{media_type}_path")
25
+ if p is None:
26
+ return None
27
+ if not os.path.isabs(p) and dataset_root:
28
+ p = os.path.join(dataset_root, p)
29
+ try:
30
+ return os.path.abspath(p)
31
+ except Exception:
32
+ return p
33
+
34
+ def get_config():
35
+ cli_conf = OmegaConf.from_cli()
36
+ yaml_conf = OmegaConf.load(cli_conf.config)
37
+ conf = OmegaConf.merge(yaml_conf, cli_conf)
38
+ return conf
39
+
40
+ def remove_endoftext(obj: Union[str, List[str]]) -> Union[str, List[str]]:
41
+ token = '<|endoftext|>'
42
+ if isinstance(obj, str):
43
+ return obj.replace(token, '')
44
+ if isinstance(obj, list):
45
+ return [s.replace(token, '') if isinstance(s, str) else s for s in obj]
46
+ raise TypeError("Expected str or list of str")
47
+
48
+
49
+ if __name__ == "__main__":
50
+
51
+ config = get_config()
52
+ run = None
53
+ if config.experiment.function == "train":
54
+ existing_run_id = OmegaConf.select(config, "wandb.run_id", default=None)
55
+ run_id = ensure_wandb_run_id(config)
56
+ resume_wandb_run = config.wandb.resume
57
+ if existing_run_id is None:
58
+ resume_wandb_run = False
59
+ wandb_config = {k: v for k, v in flatten_omega_conf(config, resolve=True)}
60
+ run = wandb.init(
61
+ project=config.experiment.project,
62
+ entity=config.wandb.get("entity", None),
63
+ id=run_id,
64
+ resume=resume_wandb_run,
65
+ config=wandb_config,
66
+ reinit=True,
67
+ name=config.experiment.project,
68
+ )
69
+
70
+ project_name = config.experiment.project
71
+
72
+ if config.experiment.current_epoch == 1:
73
+ pretrained_model = config.model.pretrained_model
74
+ else:
75
+ pretrained_model = "../" + project_name + "/ckpt/" + config.model.optimized_name
76
+
77
+ if config.experiment.function == "train":
78
+ shrink = config.training.shrink
79
+ dataset = config.dataset.train_dataset
80
+ outputs_name = "rl-" + pretrained_model.replace("/", ".") + "-" + dataset + f"-step{config.experiment.current_epoch}"
81
+
82
+ elif config.experiment.function == "evaluation":
83
+ dataset = config.evaluation.eval_dataset
84
+ outputs_name = "eval-" + pretrained_model.replace("/", ".") + "-" + dataset + f"-step{config.experiment.current_epoch}"
85
+
86
+ file_name = "../" + project_name + "/temp_data/outputs-" + outputs_name + ".json"
87
+
88
+ with open(file_name, 'r') as f:
89
+ data = json.load(f)
90
+
91
+ index_list = []
92
+ extracted_output_list = []
93
+ response_length_list = []
94
+ for i in range(len(data)):
95
+ data[i]["correctness"] = []
96
+ response_length_list += data[i]["response_length"]
97
+ index_list += [i] * len(data[i]["extracted_output"])
98
+ extracted_output_list += remove_endoftext(data[i]["extracted_output"])
99
+
100
+ nest_asyncio.apply()
101
+
102
+ async def get_correctness_all():
103
+ executor = ThreadPoolExecutor(max_workers=64)
104
+ tasks = []
105
+
106
+ for p in range(len(index_list)):
107
+ pred = extracted_output_list[p]
108
+ idx = index_list[p]
109
+
110
+ # 选择题正确性匹配逻辑
111
+ if config.dataset.data_type == "video_reverse" or config.evaluation.data_type == "video_reverse":
112
+ gt = data[idx].get("response", "")
113
+
114
+ async def mcq_check(p_str, g_str):
115
+ if p_str in g_str or g_str in p_str:
116
+ return True
117
+
118
+ p_str = str(p_str).strip()
119
+ g_str = str(g_str).strip()
120
+ p_match = re.search(r'^([A-Z])[\.\s]', p_str)
121
+ g_match = re.search(r'^([A-Z])[\.\s]', g_str)
122
+ if p_match and g_match:
123
+ return p_match.group(1) == g_match.group(1)
124
+ return g_str in p_str
125
+
126
+ tasks.append(mcq_check(pred, gt))
127
+ else:
128
+ gt = data[idx].get("ground_truth_answer", "")
129
+ tasks.append(math_utils_v.is_equal(pred, gt, executor))
130
+
131
+ return await asyncio.gather(*tasks)
132
+
133
+ correctness_all = asyncio.run(get_correctness_all())
134
+ for p, ok in enumerate(correctness_all):
135
+ index_i = index_list[p]
136
+ data[index_i]["correctness"].append(bool(ok))
137
+
138
+ # =========================================================================
139
+ # 核心新增逻辑:跨样本群组计算 T-GRPO 奖励 和 逆转无偏奖励
140
+ # =========================================================================
141
+
142
+ # 1. 按照 data_id 分组映射索引
143
+ grouped_data = defaultdict(lambda: {
144
+ "forward_False": [], "backward_False": [],
145
+ "forward_True": [], "backward_True": []
146
+ })
147
+
148
+ for i in range(len(data)):
149
+ d_id = data[i].get("data_id")
150
+ if d_id is None:
151
+ continue
152
+ r_type = data[i].get("reversal_type", "forward")
153
+ is_shuf = str(data[i].get("is_shuffled", False))
154
+ grouped_data[d_id][f"{r_type}_{is_shuf}"].append(i)
155
+
156
+ # 计算并应用群组奖励
157
+ all_temporal_bonuses = [] # 新增:记录所有的时序红利
158
+ all_unbiased_bonuses = [] # 新增:记录所有的无偏红利
159
+
160
+ # 2. 计算并应用群组奖励
161
+ for d_id, group in grouped_data.items():
162
+
163
+ def get_acc(key):
164
+ if not group[key]: return 0.0
165
+ idx = group[key][0]
166
+ corr = data[idx]["correctness"]
167
+ return sum(corr) / len(corr) if len(corr) > 0 else 0.0
168
+
169
+ # 获取四组情况的正确率
170
+ acc_f_ord = get_acc("forward_False")
171
+ acc_f_shuf = get_acc("forward_True")
172
+ acc_b_ord = get_acc("backward_False")
173
+ acc_b_shuf = get_acc("backward_True")
174
+
175
+ # T-GRPO 奖励: 顺序正确率 >= 0.8 * 打乱正确率,得 0.3
176
+ f_temporal_bonus = 0.3 if acc_f_ord >= 0.8 * acc_f_shuf else 0.0
177
+ b_temporal_bonus = 0.3 if acc_b_ord >= 0.8 * acc_b_shuf else 0.0
178
+
179
+ # 逆转无偏奖励: 正反正确率差值 <= 0.2,且都不是彻底全错,得 0.3
180
+ unbiased_bonus = 0.0
181
+ if abs(acc_f_ord - acc_b_ord) <= 0.2 and (acc_f_ord > 0.1 or acc_b_ord > 0.1):
182
+ unbiased_bonus = 0.3
183
+
184
+ # 新增:将当前组的奖励记录下来用于统计
185
+ if group["forward_False"]:
186
+ all_temporal_bonuses.append(f_temporal_bonus)
187
+ all_unbiased_bonuses.append(unbiased_bonus)
188
+ if group["backward_False"]:
189
+ all_temporal_bonuses.append(b_temporal_bonus)
190
+ all_unbiased_bonuses.append(unbiased_bonus)
191
+
192
+ # 仅将奖励发放给 顺序组(is_shuffled=False) 中回答正确的样本
193
+ def apply_bonus(key, temporal_bonus, unbiased_bonus):
194
+ if not group[key]: return
195
+ idx = group[key][0]
196
+ raw_rewards = []
197
+ for is_correct in data[idx]["correctness"]:
198
+ if is_correct:
199
+ # 基础分 1.0 + 时序红利 + 无偏红利
200
+ raw_rewards.append(1.0 + temporal_bonus + unbiased_bonus)
201
+ else:
202
+ raw_rewards.append(0.0)
203
+ data[idx]["raw_rewards"] = raw_rewards
204
+
205
+ apply_bonus("forward_False", f_temporal_bonus, unbiased_bonus)
206
+ apply_bonus("backward_False", b_temporal_bonus, unbiased_bonus)
207
+
208
+ # =========================================================================
209
+
210
+ def z_score_normalize(lst):
211
+ mean = sum(lst) / len(lst) if len(lst) > 0 else 0.0
212
+ std = (sum((x - mean) ** 2 for x in lst) / len(lst)) ** 0.5 if len(lst) > 0 else 0.0
213
+ if std == 0:
214
+ return [0 for _ in lst]
215
+ return [(x - mean) / std for x in lst]
216
+
217
+ final_data = []
218
+ ordered_correctness = [] # 用于日志打印,不记录被打乱的实验数据
219
+
220
+ for i in range(len(data)):
221
+ # 丢弃打乱的对照组,它们仅仅用于上面的计算参照,不进入强化学习
222
+ if data[i].get("is_shuffled", False):
223
+ continue
224
+
225
+ ordered_correctness.extend(data[i]["correctness"])
226
+
227
+ # 如果部分数据没有走过分组逻辑,默认回退为原始 correct 分数
228
+ raw_rewards = data[i].get("raw_rewards", [float(c) for c in data[i]["correctness"]])
229
+ lengths = data[i]["response_length"]
230
+
231
+ # 长度惩罚
232
+ if config.reward.strict_len_check:
233
+ for j in range(len(lengths)):
234
+ if OmegaConf.select(config, "rollout.max_gen_length", default=MISSING) is not MISSING and lengths[j] >= config.rollout.max_gen_length - 5:
235
+ raw_rewards[j] = 0.0
236
+ if OmegaConf.select(config, "rollout.max_token", default=MISSING) is not MISSING and lengths[j] >= config.rollout.max_token - 5:
237
+ raw_rewards[j] = 0.0
238
+
239
+ # Z-Score 优势归一化
240
+ rewards = z_score_normalize(raw_rewards)
241
+ data[i]["rewards"] = rewards
242
+
243
+ if config.experiment.function == "train":
244
+ proportion = sum(data[i]["correctness"]) / len(data[i]["correctness"]) if len(data[i]["correctness"]) > 0 else 0.0
245
+ # 如果全部回答都是错的,或者全是对的(无差别区分度),则剔除该样本
246
+ if proportion > 0.95 or proportion < 0.05:
247
+ continue
248
+
249
+ for j in range(len(rewards)):
250
+ data_i = {}
251
+ data_i["prompt"] = data[i]["prompt"]
252
+ data_i["reward"] = rewards[j]
253
+ data_i["response"] = data[i]["full_output"][j]
254
+ data_i["step_map"] = data[i]["step_map"][j]
255
+
256
+ # 保留其他需要的上下文 ID
257
+ data_i["data_id"] = data[i].get("data_id")
258
+ data_i["reversal_type"] = data[i].get("reversal_type")
259
+
260
+ if "image_token_ids" in data[i]:
261
+ data_i["image_token_ids"] = data[i]["image_token_ids"]
262
+
263
+ p_video_abs = resolve_media_abs_path(data[i], config.dataset.get("image_root", None), "video")
264
+ if p_video_abs is not None:
265
+ data_i["video_abs_path"] = p_video_abs
266
+
267
+ p_image_abs = resolve_media_abs_path(data[i], config.dataset.get("image_root", None), "image")
268
+ if p_image_abs is not None:
269
+ data_i["image_abs_path"] = p_image_abs
270
+
271
+ final_data.append(data_i)
272
+
273
+ if config.experiment.function == "evaluation":
274
+ data[i]["step_map"] = []
275
+
276
+ if config.experiment.function == "train":
277
+ with open("../" + project_name + "/temp_data/" + config.dataset.optimization_data + ".json", "w", encoding="utf-8") as f:
278
+ json.dump(final_data, f, indent=2, ensure_ascii=False)
279
+
280
+
281
+ os.makedirs(os.path.dirname(file_name), exist_ok=True)
282
+ with open(file_name, "w", encoding="utf-8") as f:
283
+ json.dump(data, f, indent=2, ensure_ascii=False)
284
+
285
+
286
+ outputs_result_name = "../" + project_name + "/results/results-" + outputs_name + ".txt"
287
+ os.makedirs(os.path.dirname(outputs_result_name), exist_ok=True)
288
+ with open(outputs_result_name, "a") as f:
289
+ # Save + print
290
+ def save_and_print(text):
291
+ cprint("\n\n\n" + text, color="green")
292
+ f.write(text + "\n")
293
+
294
+ # 只计算有序组(有效学习组)的准确率来作为监控指标
295
+ acc = (sum(ordered_correctness)/len(ordered_correctness)) if len(ordered_correctness) > 0 else float("nan")
296
+ avg_len = sum(response_length_list)/len(response_length_list)
297
+
298
+ # 新增:计算 T-GRPO 和 Unbiased 奖励的平均值
299
+ avg_temp = sum(all_temporal_bonuses)/len(all_temporal_bonuses) if all_temporal_bonuses else 0.0
300
+ avg_unbias = sum(all_unbiased_bonuses)/len(all_unbiased_bonuses) if all_unbiased_bonuses else 0.0
301
+
302
+ output_text = f"train step: {config.experiment.current_epoch} "
303
+ if config.experiment.function == "train":
304
+ if config.model.model_base != "sdar" and config.model.model_base != "trado":
305
+ output_text = output_text + f"remasking_strategy: {config.rollout.remasking_strategy} block_size: {config.rollout.block_size} acc: {acc:.4f} avg length: {avg_len:.2f}"
306
+ else:
307
+ output_text = output_text + f"remasking_strategy: {config.rollout.remasking_strategy} top_k: {config.rollout.top_k} acc: {acc:.4f} avg length: {avg_len:.2f}"
308
+ else:
309
+ if config.model.model_base != "sdar" and config.model.model_base != "trado":
310
+ output_text = output_text + f"remasking_strategy: {config.evaluation.remasking_strategy} block_size: {config.evaluation.block_size} acc: {acc:.4f} avg length: {avg_len:.2f}"
311
+ else:
312
+ output_text = output_text + f"remasking_strategy: {config.evaluation.remasking_strategy} top_k: {config.evaluation.top_k} acc: {acc:.4f} avg length: {avg_len:.2f}"
313
+ save_and_print(output_text)
314
+
315
+ if config.experiment.function == "train":
316
+ csv_file_path = f"../{project_name}/results/all_rewards.csv"
317
+
318
+ # 如果是第1个 epoch/step,或者是新文件,就先写入表头
319
+ write_header = not os.path.exists(csv_file_path) or config.experiment.current_epoch == 1
320
+
321
+ with open(csv_file_path, "a", encoding="utf-8") as f_csv:
322
+ if write_header:
323
+ f_csv.write("step,acc_reward,t_grpo_reward,unbiased_reward,response_length\n")
324
+
325
+ # 按行追加当前 step 的数据
326
+ f_csv.write(f"{config.experiment.current_epoch},{acc:.4f},{avg_temp:.4f},{avg_unbias:.4f},{avg_len:.2f}\n")
327
+
328
+ if run is not None:
329
+ wandb.log(
330
+ {
331
+ "reward/acc": acc,
332
+ "reward/t_grpo_bonus": avg_temp,
333
+ "reward/unbiased_bonus": avg_unbias,
334
+ "reward/avg_response_length": avg_len,
335
+ "reward/train_step": config.experiment.current_epoch,
336
+ },
337
+ step=config.experiment.current_epoch,
338
+ )
339
+ wandb.finish()
reward/wandb/run-20260530_022315-fmmkx1a5/files/config.yaml ADDED
@@ -0,0 +1,281 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ _wandb:
2
+ value:
3
+ cli_version: 0.25.0
4
+ code_path: code/reward/rl_reward_video_reversal.py
5
+ e:
6
+ rit67u7afan4qam30286z3mhxid958av:
7
+ args:
8
+ - config=../configs/rl_lavida_video_reversal.yaml
9
+ - wandb.run_id=fmmkx1a5
10
+ - experiment.function=train
11
+ - evaluation.block_size=None
12
+ - evaluation.top_k=None
13
+ - evaluation.remasking_strategy=None
14
+ - experiment.current_epoch=6
15
+ codePath: reward/rl_reward_video_reversal.py
16
+ codePathLocal: rl_reward_video_reversal.py
17
+ cpu_count: 96
18
+ cpu_count_logical: 192
19
+ cudaVersion: "12.8"
20
+ disk:
21
+ /:
22
+ total: "806578724864"
23
+ used: "625479712768"
24
+ email: shixi_runqing@staff.weibo.com
25
+ executable: /data8/runqing/miniconda/envs/dllm-rl/bin/python
26
+ git:
27
+ commit: 10b4fd1cba83e4496c20585dc2fd01dc02f20255
28
+ remote: https://gitclone.com/github.com/Gen-Verse/dLLM-RL.git
29
+ gpu: NVIDIA H800
30
+ gpu_count: 8
31
+ gpu_nvidia:
32
+ - architecture: Hopper
33
+ cudaCores: 16896
34
+ memoryTotal: "85520809984"
35
+ name: NVIDIA H800
36
+ uuid: GPU-f768b684-b9ce-23a2-81a6-af16161cf9be
37
+ - architecture: Hopper
38
+ cudaCores: 16896
39
+ memoryTotal: "85520809984"
40
+ name: NVIDIA H800
41
+ uuid: GPU-2f1e1a7b-76a2-e00b-3dc5-79add059b8f9
42
+ - architecture: Hopper
43
+ cudaCores: 16896
44
+ memoryTotal: "85520809984"
45
+ name: NVIDIA H800
46
+ uuid: GPU-33d7b8d4-af9c-4719-9686-1712e9694cd6
47
+ - architecture: Hopper
48
+ cudaCores: 16896
49
+ memoryTotal: "85520809984"
50
+ name: NVIDIA H800
51
+ uuid: GPU-0b797f66-23ec-d0ff-1c65-fb34b9064e53
52
+ - architecture: Hopper
53
+ cudaCores: 16896
54
+ memoryTotal: "85520809984"
55
+ name: NVIDIA H800
56
+ uuid: GPU-ad9e9c73-0f31-a8b3-e8f7-7be19f5338ad
57
+ - architecture: Hopper
58
+ cudaCores: 16896
59
+ memoryTotal: "85520809984"
60
+ name: NVIDIA H800
61
+ uuid: GPU-f531028f-805c-3301-61b3-0c46329dc9c0
62
+ - architecture: Hopper
63
+ cudaCores: 16896
64
+ memoryTotal: "85520809984"
65
+ name: NVIDIA H800
66
+ uuid: GPU-2775489f-18c8-2328-8829-c46238575379
67
+ - architecture: Hopper
68
+ cudaCores: 16896
69
+ memoryTotal: "85520809984"
70
+ name: NVIDIA H800
71
+ uuid: GPU-1dd27781-c1f3-d980-6f18-fe8a778b69fd
72
+ host: b1301b38c75f
73
+ memory:
74
+ total: "2164113764352"
75
+ os: Linux-5.15.0-144-generic-x86_64-with-glibc2.35
76
+ program: /data4/runqing/dLLM-RL/reward/rl_reward_video_reversal.py
77
+ python: CPython 3.10.19
78
+ root: /data4/runqing/dLLM-RL/reward
79
+ startedAt: "2026-05-29T18:23:15.496253Z"
80
+ writerId: rit67u7afan4qam30286z3mhxid958av
81
+ m: []
82
+ python_version: 3.10.19
83
+ t:
84
+ "1":
85
+ - 1
86
+ - 41
87
+ "2":
88
+ - 1
89
+ - 41
90
+ "3":
91
+ - 2
92
+ - 5
93
+ - 13
94
+ - 14
95
+ - 16
96
+ - 61
97
+ - 62
98
+ "4": 3.10.19
99
+ "5": 0.25.0
100
+ "10":
101
+ - 20
102
+ "12": 0.25.0
103
+ "13": linux-x86_64
104
+ config:
105
+ value: ../configs/rl_lavida_video_reversal.yaml
106
+ dataset.data_type:
107
+ value: video_reverse
108
+ dataset.optimization_data:
109
+ value: rl_data
110
+ dataset.train_dataset:
111
+ value: video_reversal_rl_train
112
+ evaluation.batch_size:
113
+ value: 1
114
+ evaluation.block_size:
115
+ value: None
116
+ evaluation.data_type:
117
+ value: video_reverse
118
+ evaluation.dynamic_threshold:
119
+ value: 0.9
120
+ evaluation.eval_dataset:
121
+ value: video_reversal_rl_eval
122
+ evaluation.further_horizon:
123
+ value: 128
124
+ evaluation.if_eval:
125
+ value: false
126
+ evaluation.max_gen_length:
127
+ value: 128
128
+ evaluation.num_response_per_task:
129
+ value: 3
130
+ evaluation.remasking_strategy:
131
+ value: None
132
+ evaluation.remasking_strategy.0:
133
+ value: low_confidence_static
134
+ evaluation.remasking_strategy.1:
135
+ value: low_confidence_dynamic
136
+ evaluation.steps:
137
+ value: 128
138
+ evaluation.target:
139
+ value: confidence
140
+ evaluation.temperature:
141
+ value: 0.1
142
+ evaluation.top_k:
143
+ value: None
144
+ evaluation.use_cache:
145
+ value: true
146
+ execute.num_chunk:
147
+ value: 128
148
+ experiment.current_epoch:
149
+ value: 6
150
+ experiment.deepspeed_file:
151
+ value: 1_node_8_gpus_deepspeed_zero2
152
+ experiment.eval_every:
153
+ value: 5
154
+ experiment.function:
155
+ value: train
156
+ experiment.logging_dir:
157
+ value: rl_lavida_video_reversal/logs
158
+ experiment.node_index:
159
+ value: 0
160
+ experiment.num_node:
161
+ value: 1
162
+ experiment.project:
163
+ value: rl_lavida_video_reversal
164
+ experiment.save_every:
165
+ value: 10
166
+ experiment.start_from_scratch:
167
+ value: true
168
+ experiment.total_step:
169
+ value: 30
170
+ lr_scheduler.params.learning_rate:
171
+ value: 1e-06
172
+ lr_scheduler.params.min_lr_scale:
173
+ value: 1
174
+ lr_scheduler.params.warmup_steps:
175
+ value: 0
176
+ lr_scheduler.scheduler:
177
+ value: cosine
178
+ model.image_resolution:
179
+ value: 512
180
+ model.model_base:
181
+ value: lavida
182
+ model.optimized_name:
183
+ value: optimized
184
+ model.pretrained_model:
185
+ value: /data4/runqing/dLLM-RL/sft_lavida_video_reversal/ckpt/optimized
186
+ model.vq_model_path:
187
+ value: /data4/runqing/hf/magvitv2
188
+ optimizer.name:
189
+ value: adamw
190
+ optimizer.params.beta1:
191
+ value: 0.9
192
+ optimizer.params.beta2:
193
+ value: 0.999
194
+ optimizer.params.epsilon:
195
+ value: 1e-08
196
+ optimizer.params.learning_rate:
197
+ value: 1e-06
198
+ optimizer.params.scale_lr:
199
+ value: false
200
+ optimizer.params.weight_decay:
201
+ value: 0
202
+ reward.answer_must_in_box:
203
+ value: true
204
+ reward.strict_len_check:
205
+ value: false
206
+ rollout.batch_size:
207
+ value: 1
208
+ rollout.block_size:
209
+ value: 32
210
+ rollout.dynamic_threshold:
211
+ value: 0.9
212
+ rollout.further_horizon:
213
+ value: 128
214
+ rollout.max_gen_length:
215
+ value: 128
216
+ rollout.num_response_per_task:
217
+ value: 8
218
+ rollout.num_task_per_step:
219
+ value: 128
220
+ rollout.remasking_strategy:
221
+ value: low_confidence_dynamic
222
+ rollout.steps:
223
+ value: 128
224
+ rollout.target:
225
+ value: confidence
226
+ rollout.temperature:
227
+ value: 0.8
228
+ rollout.use_cache:
229
+ value: true
230
+ system.HF_HOME:
231
+ value: null
232
+ system.HTTP_PROXY:
233
+ value: null
234
+ system.base_dir:
235
+ value: /data4/runqing/dLLM-RL
236
+ system.env_name:
237
+ value: /data8/runqing/miniconda/envs/dllm-rl
238
+ system.envs_dir:
239
+ value: /data8/runqing/miniconda/envs/dllm-rl
240
+ training.batch_size_lm:
241
+ value: 1
242
+ training.beta:
243
+ value: 0.01
244
+ training.enable_tf32:
245
+ value: true
246
+ training.eps:
247
+ value: 0.2
248
+ training.gradient_accumulation_steps:
249
+ value: 2
250
+ training.lower_p:
251
+ value: 0.35
252
+ training.mask_times_per_sample:
253
+ value: 2
254
+ training.max_gen_length:
255
+ value: 128
256
+ training.max_grad_norm:
257
+ value: 1
258
+ training.max_prompt_len:
259
+ value: 512
260
+ training.method:
261
+ value: random_masking
262
+ training.mixed_precision:
263
+ value: bf16
264
+ training.num_train_epochs:
265
+ value: 1
266
+ training.post_num:
267
+ value: 1
268
+ training.seed:
269
+ value: 10086
270
+ training.shrink:
271
+ value: 8
272
+ training.upper_p:
273
+ value: 0.9
274
+ training.use_kl_estimator_k3:
275
+ value: true
276
+ wandb.entity:
277
+ value: null
278
+ wandb.resume:
279
+ value: auto
280
+ wandb.run_id:
281
+ value: fmmkx1a5
reward/wandb/run-20260530_022315-fmmkx1a5/files/output.log ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+
2
+
3
+
4
+ train step: 6 remasking_strategy: low_confidence_dynamic block_size: 32 acc: 0.3926 avg length: 126.23
reward/wandb/run-20260530_022315-fmmkx1a5/files/requirements.txt ADDED
@@ -0,0 +1,157 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ transformers==4.52.4
2
+ nvidia-nvtx-cu12==12.4.127
3
+ deepspeed==0.18.6
4
+ typing-inspection==0.4.2
5
+ scipy==1.15.3
6
+ MarkupSafe==3.0.3
7
+ nvidia-cuda-runtime-cu12==12.4.127
8
+ detoxify==0.5.2
9
+ yarl==1.22.0
10
+ tornado==6.5.4
11
+ nvidia-curand-cu12==10.3.5.147
12
+ nest-asyncio==1.6.0
13
+ safetensors==0.7.0
14
+ async-timeout==5.0.1
15
+ typing_extensions==4.15.0
16
+ asttokens==3.0.1
17
+ cuda-python==13.1.1
18
+ executing==2.2.1
19
+ nvidia-cudnn-frontend==1.18.0
20
+ comm==0.2.3
21
+ tokenizers==0.21.4
22
+ six==1.17.0
23
+ Pygments==2.19.2
24
+ nvidia-cusparselt-cu12==0.6.2
25
+ apache-tvm-ffi==0.1.8.post2
26
+ flash_attn==2.7.4.post1
27
+ tqdm==4.67.3
28
+ tensorboard-data-server==0.7.2
29
+ annotated-types==0.7.0
30
+ math-verify==0.9.0
31
+ idna==3.11
32
+ regex==2026.1.15
33
+ nvidia-cutlass-dsl-libs-base==4.4.0
34
+ flashinfer-python==0.6.3
35
+ click==8.3.1
36
+ pytz==2025.2
37
+ wheel==0.46.3
38
+ ipykernel==7.2.0
39
+ stack-data==0.6.3
40
+ absl-py==2.4.0
41
+ wandb==0.25.0
42
+ pandas==2.3.3
43
+ termcolor==3.3.0
44
+ sympy==1.13.1
45
+ joblib==1.5.3
46
+ prompt_toolkit==3.0.52
47
+ attrs==25.4.0
48
+ nvidia-cusolver-cu12==11.6.1.9
49
+ xxhash==3.6.0
50
+ aiohappyeyeballs==2.6.1
51
+ python-dateutil==2.9.0.post0
52
+ frozenlist==1.8.0
53
+ nvidia-ml-py==13.590.48
54
+ multiprocess==0.70.18
55
+ decorator==5.2.1
56
+ cuda-pathfinder==1.3.4
57
+ multidict==6.7.1
58
+ pure_eval==0.2.3
59
+ nvidia-cufft-cu12==11.2.1.3
60
+ omegaconf==2.3.0
61
+ PyYAML==6.0.3
62
+ debugpy==1.8.20
63
+ psutil==7.2.2
64
+ ninja==1.13.0
65
+ nvidia-cublas-cu12==12.4.5.8
66
+ triton==3.2.0
67
+ antlr4-python3-runtime==4.9.3
68
+ peft==0.18.1
69
+ aiosignal==1.4.0
70
+ accelerate==1.12.0
71
+ liger_kernel==0.7.0
72
+ anyio==4.12.1
73
+ decord==0.6.0
74
+ h11==0.16.0
75
+ urllib3==2.6.3
76
+ wcwidth==0.6.0
77
+ networkx==3.4.2
78
+ huggingface_hub==0.36.2
79
+ tzdata==2025.3
80
+ xformers==0.0.29.post3
81
+ tabulate==0.9.0
82
+ certifi==2026.1.4
83
+ tensorboard==2.20.0
84
+ matplotlib-inline==0.2.1
85
+ pip==26.0.1
86
+ smmap==5.0.2
87
+ nvidia-cuda-cupti-cu12==12.4.127
88
+ Markdown==3.10.2
89
+ nvidia-nccl-cu12==2.21.5
90
+ aiohttp==3.13.3
91
+ scikit-learn==1.7.2
92
+ nvidia-cutlass-dsl==4.4.0
93
+ setuptools==82.0.0
94
+ jupyter_core==5.9.1
95
+ asyncio==4.0.0
96
+ einops==0.8.2
97
+ pydantic==2.12.5
98
+ av==16.1.0
99
+ protobuf==6.33.5
100
+ evaluate==0.4.6
101
+ Jinja2==3.1.6
102
+ exceptiongroup==1.3.1
103
+ ipython==8.38.0
104
+ sentry-sdk==2.53.0
105
+ httpx==0.28.1
106
+ msgpack==1.1.2
107
+ platformdirs==4.9.2
108
+ hjson==3.1.0
109
+ torchvision==0.21.0
110
+ parso==0.8.6
111
+ cuda-bindings==13.1.1
112
+ pexpect==4.9.0
113
+ threadpoolctl==3.6.0
114
+ pyarrow==23.0.1
115
+ jedi==0.19.2
116
+ nvidia-cuda-nvrtc-cu12==12.4.127
117
+ Werkzeug==3.1.5
118
+ fsspec==2025.10.0
119
+ pydantic_core==2.41.5
120
+ GitPython==3.1.46
121
+ propcache==0.4.1
122
+ mpmath==1.3.0
123
+ nvidia-nvjitlink-cu12==12.4.127
124
+ nvidia-cusparse-cu12==12.3.1.170
125
+ hf-xet==1.2.0
126
+ charset-normalizer==3.4.4
127
+ dill==0.4.0
128
+ datasets==4.5.0
129
+ py-cpuinfo==9.0.0
130
+ sentencepiece==0.2.1
131
+ latex2sympy2_extended==1.11.0
132
+ jupyter_client==8.8.0
133
+ pyzmq==27.1.0
134
+ numpy==2.2.6
135
+ gitdb==4.0.12
136
+ grpcio==1.78.0
137
+ packaging==26.0
138
+ requests==2.32.5
139
+ nvidia-cudnn-cu12==9.1.0.70
140
+ httpcore==1.0.9
141
+ traitlets==5.14.3
142
+ filelock==3.24.2
143
+ ptyprocess==0.7.0
144
+ pillow==12.1.1
145
+ torch==2.6.0
146
+ more-itertools==10.8.0
147
+ wheel==0.46.3
148
+ jaraco.text==4.0.0
149
+ zipp==3.23.0
150
+ autocommand==2.2.2
151
+ jaraco.context==6.1.0
152
+ jaraco.functools==4.4.0
153
+ tomli==2.4.0
154
+ backports.tarfile==1.2.0
155
+ importlib_metadata==8.7.1
156
+ platformdirs==4.4.0
157
+ packaging==26.0
reward/wandb/run-20260530_022315-fmmkx1a5/files/wandb-metadata.json ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "os": "Linux-5.15.0-144-generic-x86_64-with-glibc2.35",
3
+ "python": "CPython 3.10.19",
4
+ "startedAt": "2026-05-29T18:23:15.496253Z",
5
+ "args": [
6
+ "config=../configs/rl_lavida_video_reversal.yaml",
7
+ "wandb.run_id=fmmkx1a5",
8
+ "experiment.function=train",
9
+ "evaluation.block_size=None",
10
+ "evaluation.top_k=None",
11
+ "evaluation.remasking_strategy=None",
12
+ "experiment.current_epoch=6"
13
+ ],
14
+ "program": "/data4/runqing/dLLM-RL/reward/rl_reward_video_reversal.py",
15
+ "codePath": "reward/rl_reward_video_reversal.py",
16
+ "codePathLocal": "rl_reward_video_reversal.py",
17
+ "git": {
18
+ "remote": "https://gitclone.com/github.com/Gen-Verse/dLLM-RL.git",
19
+ "commit": "10b4fd1cba83e4496c20585dc2fd01dc02f20255"
20
+ },
21
+ "email": "shixi_runqing@staff.weibo.com",
22
+ "root": "/data4/runqing/dLLM-RL/reward",
23
+ "host": "b1301b38c75f",
24
+ "executable": "/data8/runqing/miniconda/envs/dllm-rl/bin/python",
25
+ "cpu_count": 96,
26
+ "cpu_count_logical": 192,
27
+ "gpu": "NVIDIA H800",
28
+ "gpu_count": 8,
29
+ "disk": {
30
+ "/": {
31
+ "total": "806578724864",
32
+ "used": "625479712768"
33
+ }
34
+ },
35
+ "memory": {
36
+ "total": "2164113764352"
37
+ },
38
+ "gpu_nvidia": [
39
+ {
40
+ "name": "NVIDIA H800",
41
+ "memoryTotal": "85520809984",
42
+ "cudaCores": 16896,
43
+ "architecture": "Hopper",
44
+ "uuid": "GPU-f768b684-b9ce-23a2-81a6-af16161cf9be"
45
+ },
46
+ {
47
+ "name": "NVIDIA H800",
48
+ "memoryTotal": "85520809984",
49
+ "cudaCores": 16896,
50
+ "architecture": "Hopper",
51
+ "uuid": "GPU-2f1e1a7b-76a2-e00b-3dc5-79add059b8f9"
52
+ },
53
+ {
54
+ "name": "NVIDIA H800",
55
+ "memoryTotal": "85520809984",
56
+ "cudaCores": 16896,
57
+ "architecture": "Hopper",
58
+ "uuid": "GPU-33d7b8d4-af9c-4719-9686-1712e9694cd6"
59
+ },
60
+ {
61
+ "name": "NVIDIA H800",
62
+ "memoryTotal": "85520809984",
63
+ "cudaCores": 16896,
64
+ "architecture": "Hopper",
65
+ "uuid": "GPU-0b797f66-23ec-d0ff-1c65-fb34b9064e53"
66
+ },
67
+ {
68
+ "name": "NVIDIA H800",
69
+ "memoryTotal": "85520809984",
70
+ "cudaCores": 16896,
71
+ "architecture": "Hopper",
72
+ "uuid": "GPU-ad9e9c73-0f31-a8b3-e8f7-7be19f5338ad"
73
+ },
74
+ {
75
+ "name": "NVIDIA H800",
76
+ "memoryTotal": "85520809984",
77
+ "cudaCores": 16896,
78
+ "architecture": "Hopper",
79
+ "uuid": "GPU-f531028f-805c-3301-61b3-0c46329dc9c0"
80
+ },
81
+ {
82
+ "name": "NVIDIA H800",
83
+ "memoryTotal": "85520809984",
84
+ "cudaCores": 16896,
85
+ "architecture": "Hopper",
86
+ "uuid": "GPU-2775489f-18c8-2328-8829-c46238575379"
87
+ },
88
+ {
89
+ "name": "NVIDIA H800",
90
+ "memoryTotal": "85520809984",
91
+ "cudaCores": 16896,
92
+ "architecture": "Hopper",
93
+ "uuid": "GPU-1dd27781-c1f3-d980-6f18-fe8a778b69fd"
94
+ }
95
+ ],
96
+ "cudaVersion": "12.8",
97
+ "writerId": "rit67u7afan4qam30286z3mhxid958av"
98
+ }
reward/wandb/run-20260530_022315-fmmkx1a5/files/wandb-summary.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"_timestamp":1.7800760271916904e+09,"reward/train_step":1,"_step":26,"_wandb":{"runtime":4222},"train/learning_rate":7.985792958513929e-07,"reward/t_grpo_bonus":0.2718750000000003,"train/loss":-0.37430867552757263,"reward/avg_response_length":124.568359375,"reward/unbiased_bonus":0.09374999999999996,"reward/acc":0.396484375,"_runtime":4222}
reward/wandb/run-20260530_022315-fmmkx1a5/logs/debug-core.log ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"time":"2026-05-30T02:23:15.564585624+08:00","level":"INFO","msg":"main: starting server","port-filename":"/tmp/tmpvrnq85bv/port-1972975.txt","pid":1972975,"log-level":0,"disable-analytics":false,"shutdown-on-parent-exit":false,"enable-dcgm-profiling":false}
2
+ {"time":"2026-05-30T02:23:15.567024905+08:00","level":"INFO","msg":"server: will exit if parent process dies","ppid":1972975}
3
+ {"time":"2026-05-30T02:23:15.56702786+08:00","level":"INFO","msg":"server: accepting connections","addr":{"Name":"/tmp/wandb-1972975-1973131-39973928/socket","Net":"unix"}}
4
+ {"time":"2026-05-30T02:23:15.745166446+08:00","level":"INFO","msg":"connection: ManageConnectionData: new connection created","id":"1(@)"}
5
+ {"time":"2026-05-30T02:23:15.755860291+08:00","level":"INFO","msg":"handleInformInit: received","streamId":"fmmkx1a5","id":"1(@)"}
6
+ {"time":"2026-05-30T02:23:16.055380273+08:00","level":"INFO","msg":"handleInformInit: stream started","streamId":"fmmkx1a5","id":"1(@)"}
7
+ {"time":"2026-05-30T02:23:16.546440823+08:00","level":"INFO","msg":"connection: cancelling request","id":"1(@)","requestId":"fu9pap2v31pp"}
8
+ {"time":"2026-05-30T02:23:16.730663414+08:00","level":"INFO","msg":"connection: cancelling request","id":"1(@)","requestId":"fu9pap2v31pp"}
9
+ {"time":"2026-05-30T02:23:16.732391613+08:00","level":"INFO","msg":"handleInformFinish: finish message received","streamId":"fmmkx1a5","id":"1(@)"}
10
+ {"time":"2026-05-30T02:23:16.733226984+08:00","level":"INFO","msg":"handleInformFinish: stream closed","streamId":"fmmkx1a5","id":"1(@)"}
11
+ {"time":"2026-05-30T02:23:16.733240787+08:00","level":"INFO","msg":"handleInformTeardown: server teardown initiated","id":"1(@)"}
12
+ {"time":"2026-05-30T02:23:16.733255106+08:00","level":"INFO","msg":"handleInformTeardown: server shutdown complete","id":"1(@)"}
13
+ {"time":"2026-05-30T02:23:16.733267833+08:00","level":"INFO","msg":"server is shutting down"}
14
+ {"time":"2026-05-30T02:23:16.733276961+08:00","level":"INFO","msg":"connection: closing","id":"1(@)"}
15
+ {"time":"2026-05-30T02:23:16.733350086+08:00","level":"INFO","msg":"server: listener closed","addr":{"Name":"/tmp/wandb-1972975-1973131-39973928/socket","Net":"unix"}}
16
+ {"time":"2026-05-30T02:23:16.733430555+08:00","level":"INFO","msg":"connection: closed successfully","id":"1(@)"}
17
+ {"time":"2026-05-30T02:23:16.733447157+08:00","level":"INFO","msg":"connection: ManageConnectionData: connection closed","id":"1(@)"}
18
+ {"time":"2026-05-30T02:23:16.733468785+08:00","level":"INFO","msg":"server is closed"}
reward/wandb/run-20260530_022315-fmmkx1a5/logs/debug-internal.log ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"time":"2026-05-30T02:23:15.756016562+08:00","level":"INFO","msg":"stream: starting","core version":"0.25.0"}
2
+ {"time":"2026-05-30T02:23:16.054970322+08:00","level":"ERROR","msg":"featurechecker: failed to load features, all will be disabled","error":"input:4:3: Cannot query field \"features\" on type \"ServerInfo\".\n"}
3
+ {"time":"2026-05-30T02:23:16.055173873+08:00","level":"INFO","msg":"stream: created new stream","id":"fmmkx1a5"}
4
+ {"time":"2026-05-30T02:23:16.055246728+08:00","level":"INFO","msg":"handler: started","stream_id":"fmmkx1a5"}
5
+ {"time":"2026-05-30T02:23:16.055363043+08:00","level":"INFO","msg":"stream: started","id":"fmmkx1a5"}
6
+ {"time":"2026-05-30T02:23:16.055380438+08:00","level":"INFO","msg":"writer: started","stream_id":"fmmkx1a5"}
7
+ {"time":"2026-05-30T02:23:16.055393379+08:00","level":"INFO","msg":"sender: started","stream_id":"fmmkx1a5"}
8
+ {"time":"2026-05-30T02:23:16.059603255+08:00","level":"WARN","msg":"runupserter: server does not expand metric globs but the x_server_side_expand_glob_metrics setting is set; ignoring"}
9
+ {"time":"2026-05-30T02:23:16.335493869+08:00","level":"ERROR","msg":"git repo not found","error":"repository does not exist"}
10
+ {"time":"2026-05-30T02:23:16.545805834+08:00","level":"WARN","msg":"handler: ignoring partial history record","step":6,"current":27}
11
+ {"time":"2026-05-30T02:23:16.677526751+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/config.yaml?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T182316Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=821bfbf28a105fa324036c7aab937e5955c74cc8ce99454b4e05e18681bed874"}
12
+ {"time":"2026-05-30T02:23:16.677717912+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/config.yaml</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/config.yaml</Resource><RequestId>18B41C6A8D404808</RequestId><HostId>4b5cbd82-31a6-4e32-8e3a-3b4f1cd8a94b</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260530_022315-fmmkx1a5/files/config.yaml, Name: config.yaml, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/config.yaml?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T182316Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=821bfbf28a105fa324036c7aab937e5955c74cc8ce99454b4e05e18681bed874, Size: 7994}"}
13
+ {"time":"2026-05-30T02:23:16.678145344+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-summary.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T182316Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=9936bf6fb1a6034661afb45fccd887766fa50da78ed3dd0dd0a9c75ac6738e28"}
14
+ {"time":"2026-05-30T02:23:16.67830001+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-summary.json</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-summary.json</Resource><RequestId>18B41C6A8C90601F</RequestId><HostId>29678716-7d96-4915-b26c-b7113941467d</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260530_022315-fmmkx1a5/files/wandb-summary.json, Name: wandb-summary.json, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-summary.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T182316Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=9936bf6fb1a6034661afb45fccd887766fa50da78ed3dd0dd0a9c75ac6738e28, Size: 343}"}
15
+ {"time":"2026-05-30T02:23:16.679660464+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/output.log?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T182316Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=d1a151f9161d8724a96f5cf5290917f0f27f95e56c278d8aeb0bef59702e3624"}
16
+ {"time":"2026-05-30T02:23:16.679851441+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/output.log</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/output.log</Resource><RequestId>18B41C6A8D3A116E</RequestId><HostId>17e81bf8-654d-4ce6-b556-0f7349513ee1</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260530_022315-fmmkx1a5/files/output.log, Name: output.log, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/output.log?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T182316Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=d1a151f9161d8724a96f5cf5290917f0f27f95e56c278d8aeb0bef59702e3624, Size: 110}"}
17
+ {"time":"2026-05-30T02:23:16.68138543+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-metadata.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T182316Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=63d9ebec3584b60becb67d7402bcda98014208276ed41ff4039e920fa99f4335"}
18
+ {"time":"2026-05-30T02:23:16.681533107+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-metadata.json</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-metadata.json</Resource><RequestId>18B41C6A8D37E2C7</RequestId><HostId>17e81bf8-654d-4ce6-b556-0f7349513ee1</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260530_022315-fmmkx1a5/files/wandb-metadata.json, Name: wandb-metadata.json, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-metadata.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T182316Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=63d9ebec3584b60becb67d7402bcda98014208276ed41ff4039e920fa99f4335, Size: 2849}"}
19
+ {"time":"2026-05-30T02:23:16.685224569+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/code/reward/rl_reward_video_reversal.py?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T182316Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=7f134f6231481934027ed53fe2c3b34d2356fabc7496ac5ed8bf95a505cf10e5"}
20
+ {"time":"2026-05-30T02:23:16.685330732+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/code/reward/rl_reward_video_reversal.py</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/code/reward/rl_reward_video_reversal.py</Resource><RequestId>18B41C6A8C9F1741</RequestId><HostId>29678716-7d96-4915-b26c-b7113941467d</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260530_022315-fmmkx1a5/files/code/reward/rl_reward_video_reversal.py, Name: code/reward/rl_reward_video_reversal.py, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/code/reward/rl_reward_video_reversal.py?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T182316Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=7f134f6231481934027ed53fe2c3b34d2356fabc7496ac5ed8bf95a505cf10e5, Size: 14790}"}
21
+ {"time":"2026-05-30T02:23:16.686129396+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/requirements.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T182316Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=33b21b6b3a8f6747127fcbaccf98aee64e2a8e82b3fbfe76e620d358ad90e198"}
22
+ {"time":"2026-05-30T02:23:16.68618286+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/requirements.txt</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/requirements.txt</Resource><RequestId>18B41C6A8CF03B7E</RequestId><HostId>29678716-7d96-4915-b26c-b7113941467d</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260530_022315-fmmkx1a5/files/requirements.txt, Name: requirements.txt, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/requirements.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T182316Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=33b21b6b3a8f6747127fcbaccf98aee64e2a8e82b3fbfe76e620d358ad90e198, Size: 2982}"}
23
+ {"time":"2026-05-30T02:23:16.686494398+08:00","level":"INFO","msg":"fileTransfer: Close: file transfer manager closed"}
24
+ {"time":"2026-05-30T02:23:16.727909569+08:00","level":"INFO","msg":"handler: operation stats","stats":{}}
25
+ {"time":"2026-05-30T02:23:16.732429923+08:00","level":"INFO","msg":"stream: closing","id":"fmmkx1a5"}
26
+ {"time":"2026-05-30T02:23:16.732456013+08:00","level":"INFO","msg":"handler: closed","stream_id":"fmmkx1a5"}
27
+ {"time":"2026-05-30T02:23:16.732531196+08:00","level":"INFO","msg":"sender: closed","stream_id":"fmmkx1a5"}
28
+ {"time":"2026-05-30T02:23:16.732548218+08:00","level":"INFO","msg":"stream: closed","id":"fmmkx1a5"}
reward/wandb/run-20260530_022315-fmmkx1a5/logs/debug.log ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2026-05-30 02:23:15,499 INFO MainThread:1972975 [wandb_setup.py:_flush():81] Current SDK version is 0.25.0
2
+ 2026-05-30 02:23:15,499 INFO MainThread:1972975 [wandb_setup.py:_flush():81] Configure stats pid to 1972975
3
+ 2026-05-30 02:23:15,499 INFO MainThread:1972975 [wandb_setup.py:_flush():81] Loading settings from environment variables
4
+ 2026-05-30 02:23:15,499 INFO MainThread:1972975 [wandb_init.py:setup_run_log_directory():717] Logging user logs to /data4/runqing/dLLM-RL/reward/wandb/run-20260530_022315-fmmkx1a5/logs/debug.log
5
+ 2026-05-30 02:23:15,499 INFO MainThread:1972975 [wandb_init.py:setup_run_log_directory():718] Logging internal logs to /data4/runqing/dLLM-RL/reward/wandb/run-20260530_022315-fmmkx1a5/logs/debug-internal.log
6
+ 2026-05-30 02:23:15,499 INFO MainThread:1972975 [wandb_init.py:init():844] calling init triggers
7
+ 2026-05-30 02:23:15,499 INFO MainThread:1972975 [wandb_init.py:init():849] wandb.init called with sweep_config: {}
8
+ config: {'wandb.entity': None, 'wandb.resume': 'auto', 'wandb.run_id': 'fmmkx1a5', 'system.HTTP_PROXY': None, 'system.HF_HOME': None, 'system.env_name': '/data8/runqing/miniconda/envs/dllm-rl', 'system.envs_dir': '/data8/runqing/miniconda/envs/dllm-rl', 'system.base_dir': '/data4/runqing/dLLM-RL', 'experiment.project': 'rl_lavida_video_reversal', 'experiment.function': 'train', 'experiment.start_from_scratch': True, 'experiment.total_step': 30, 'experiment.save_every': 10, 'experiment.eval_every': 5, 'experiment.current_epoch': 6, 'experiment.deepspeed_file': '1_node_8_gpus_deepspeed_zero2', 'experiment.num_node': 1, 'experiment.node_index': 0, 'model.pretrained_model': '/data4/runqing/dLLM-RL/sft_lavida_video_reversal/ckpt/optimized', 'model.optimized_name': 'optimized', 'model.model_base': 'lavida', 'model.vq_model_path': '/data4/runqing/hf/magvitv2', 'model.image_resolution': 512, 'dataset.train_dataset': 'video_reversal_rl_train', 'dataset.data_type': 'video_reverse', 'dataset.optimization_data': 'rl_data', 'rollout.num_task_per_step': 128, 'rollout.num_response_per_task': 8, 'rollout.temperature': 0.8, 'rollout.steps': 128, 'rollout.max_gen_length': 128, 'rollout.batch_size': 1, 'rollout.remasking_strategy': 'low_confidence_dynamic', 'rollout.target': 'confidence', 'rollout.dynamic_threshold': 0.9, 'rollout.block_size': 32, 'rollout.further_horizon': 128, 'rollout.use_cache': True, 'reward.answer_must_in_box': True, 'reward.strict_len_check': False, 'execute.num_chunk': 128, 'training.gradient_accumulation_steps': 2, 'training.batch_size_lm': 1, 'training.mixed_precision': 'bf16', 'training.enable_tf32': True, 'training.seed': 10086, 'training.num_train_epochs': 1, 'training.max_grad_norm': 1.0, 'training.method': 'random_masking', 'training.lower_p': 0.35, 'training.upper_p': 0.9, 'training.shrink': 8, 'training.post_num': 1, 'training.mask_times_per_sample': 2, 'training.max_gen_length': 128, 'training.max_prompt_len': 512, 'training.eps': 0.2, 'training.beta': 0.01, 'training.use_kl_estimator_k3': True, 'optimizer.name': 'adamw', 'optimizer.params.learning_rate': 1e-06, 'optimizer.params.scale_lr': False, 'optimizer.params.beta1': 0.9, 'optimizer.params.beta2': 0.999, 'optimizer.params.weight_decay': 0.0, 'optimizer.params.epsilon': 1e-08, 'lr_scheduler.scheduler': 'cosine', 'lr_scheduler.params.learning_rate': 1e-06, 'lr_scheduler.params.warmup_steps': 0, 'lr_scheduler.params.min_lr_scale': 1.0, 'evaluation.if_eval': False, 'evaluation.eval_dataset': 'video_reversal_rl_eval', 'evaluation.data_type': 'video_reverse', 'evaluation.num_response_per_task': 3, 'evaluation.temperature': 0.1, 'evaluation.steps': 128, 'evaluation.max_gen_length': 128, 'evaluation.batch_size': 1, 'evaluation.remasking_strategy': 'None', 'evaluation.target': 'confidence', 'evaluation.dynamic_threshold': 0.9, 'evaluation.block_size': 'None', 'evaluation.further_horizon': 128, 'evaluation.use_cache': True, 'evaluation.top_k': 'None', 'config': '../configs/rl_lavida_video_reversal.yaml', '_wandb': {'code_path': 'code/reward/rl_reward_video_reversal.py'}}
9
+ 2026-05-30 02:23:15,499 INFO MainThread:1972975 [wandb_init.py:init():892] starting backend
10
+ 2026-05-30 02:23:15,745 INFO MainThread:1972975 [wandb_init.py:init():895] sending inform_init request
11
+ 2026-05-30 02:23:15,751 INFO MainThread:1972975 [wandb_init.py:init():903] backend started and connected
12
+ 2026-05-30 02:23:15,753 INFO MainThread:1972975 [wandb_init.py:init():973] updated telemetry
13
+ 2026-05-30 02:23:15,756 INFO MainThread:1972975 [wandb_init.py:init():997] communicating run to backend with 90.0 second timeout
14
+ 2026-05-30 02:23:16,328 INFO MainThread:1972975 [wandb_init.py:init():1037] run resumed
15
+ 2026-05-30 02:23:16,333 INFO MainThread:1972975 [wandb_init.py:init():1042] starting run threads in backend
16
+ 2026-05-30 02:23:16,425 INFO MainThread:1972975 [wandb_run.py:_console_start():2524] atexit reg
17
+ 2026-05-30 02:23:16,425 INFO MainThread:1972975 [wandb_run.py:_redirect():2373] redirect: wrap_raw
18
+ 2026-05-30 02:23:16,425 INFO MainThread:1972975 [wandb_run.py:_redirect():2442] Wrapping output streams.
19
+ 2026-05-30 02:23:16,425 INFO MainThread:1972975 [wandb_run.py:_redirect():2465] Redirects installed.
20
+ 2026-05-30 02:23:16,428 INFO MainThread:1972975 [wandb_init.py:init():1082] run started, returning control to user process
21
+ 2026-05-30 02:23:16,545 INFO MainThread:1972975 [wandb_run.py:_finish():2291] finishing run shixi_runqing/rl_lavida_video_reversal/fmmkx1a5
22
+ 2026-05-30 02:23:16,545 INFO MainThread:1972975 [wandb_run.py:_atexit_cleanup():2490] got exitcode: 0
23
+ 2026-05-30 02:23:16,546 INFO MainThread:1972975 [wandb_run.py:_restore():2472] restore
24
+ 2026-05-30 02:23:16,546 INFO MainThread:1972975 [wandb_run.py:_restore():2478] restore done
25
+ 2026-05-30 02:23:16,731 INFO MainThread:1972975 [wandb_run.py:_footer_sync_info():3868] logging synced files
reward/wandb/run-20260530_022315-fmmkx1a5/run-fmmkx1a5.wandb ADDED
Binary file (6.11 kB). View file
 
reward/wandb/run-20260530_042845-fmmkx1a5/files/code/reward/rl_reward_video_reversal.py ADDED
@@ -0,0 +1,339 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import math_utils_v
3
+ import nest_asyncio
4
+ from concurrent.futures import ThreadPoolExecutor
5
+ import asyncio
6
+ import re
7
+ from termcolor import cprint
8
+ from omegaconf import MISSING
9
+ from omegaconf import DictConfig, ListConfig, OmegaConf
10
+ from typing import List, Union
11
+ import os
12
+ from collections import defaultdict
13
+ import sys
14
+
15
+ REPO_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
16
+ sys.path.insert(0, REPO_ROOT)
17
+
18
+ import wandb
19
+ from train.utils import flatten_omega_conf, ensure_wandb_run_id
20
+
21
+ def resolve_media_abs_path(sample: dict, dataset_root: str | None, media_type: str = "image") -> str | None:
22
+ p = sample.get(f"{media_type}_abs_path")
23
+ if p is None:
24
+ p = sample.get(media_type) or sample.get(f"{media_type}_path")
25
+ if p is None:
26
+ return None
27
+ if not os.path.isabs(p) and dataset_root:
28
+ p = os.path.join(dataset_root, p)
29
+ try:
30
+ return os.path.abspath(p)
31
+ except Exception:
32
+ return p
33
+
34
+ def get_config():
35
+ cli_conf = OmegaConf.from_cli()
36
+ yaml_conf = OmegaConf.load(cli_conf.config)
37
+ conf = OmegaConf.merge(yaml_conf, cli_conf)
38
+ return conf
39
+
40
+ def remove_endoftext(obj: Union[str, List[str]]) -> Union[str, List[str]]:
41
+ token = '<|endoftext|>'
42
+ if isinstance(obj, str):
43
+ return obj.replace(token, '')
44
+ if isinstance(obj, list):
45
+ return [s.replace(token, '') if isinstance(s, str) else s for s in obj]
46
+ raise TypeError("Expected str or list of str")
47
+
48
+
49
+ if __name__ == "__main__":
50
+
51
+ config = get_config()
52
+ run = None
53
+ if config.experiment.function == "train":
54
+ existing_run_id = OmegaConf.select(config, "wandb.run_id", default=None)
55
+ run_id = ensure_wandb_run_id(config)
56
+ resume_wandb_run = config.wandb.resume
57
+ if existing_run_id is None:
58
+ resume_wandb_run = False
59
+ wandb_config = {k: v for k, v in flatten_omega_conf(config, resolve=True)}
60
+ run = wandb.init(
61
+ project=config.experiment.project,
62
+ entity=config.wandb.get("entity", None),
63
+ id=run_id,
64
+ resume=resume_wandb_run,
65
+ config=wandb_config,
66
+ reinit=True,
67
+ name=config.experiment.project,
68
+ )
69
+
70
+ project_name = config.experiment.project
71
+
72
+ if config.experiment.current_epoch == 1:
73
+ pretrained_model = config.model.pretrained_model
74
+ else:
75
+ pretrained_model = "../" + project_name + "/ckpt/" + config.model.optimized_name
76
+
77
+ if config.experiment.function == "train":
78
+ shrink = config.training.shrink
79
+ dataset = config.dataset.train_dataset
80
+ outputs_name = "rl-" + pretrained_model.replace("/", ".") + "-" + dataset + f"-step{config.experiment.current_epoch}"
81
+
82
+ elif config.experiment.function == "evaluation":
83
+ dataset = config.evaluation.eval_dataset
84
+ outputs_name = "eval-" + pretrained_model.replace("/", ".") + "-" + dataset + f"-step{config.experiment.current_epoch}"
85
+
86
+ file_name = "../" + project_name + "/temp_data/outputs-" + outputs_name + ".json"
87
+
88
+ with open(file_name, 'r') as f:
89
+ data = json.load(f)
90
+
91
+ index_list = []
92
+ extracted_output_list = []
93
+ response_length_list = []
94
+ for i in range(len(data)):
95
+ data[i]["correctness"] = []
96
+ response_length_list += data[i]["response_length"]
97
+ index_list += [i] * len(data[i]["extracted_output"])
98
+ extracted_output_list += remove_endoftext(data[i]["extracted_output"])
99
+
100
+ nest_asyncio.apply()
101
+
102
+ async def get_correctness_all():
103
+ executor = ThreadPoolExecutor(max_workers=64)
104
+ tasks = []
105
+
106
+ for p in range(len(index_list)):
107
+ pred = extracted_output_list[p]
108
+ idx = index_list[p]
109
+
110
+ # 选择题正确性匹配逻辑
111
+ if config.dataset.data_type == "video_reverse" or config.evaluation.data_type == "video_reverse":
112
+ gt = data[idx].get("response", "")
113
+
114
+ async def mcq_check(p_str, g_str):
115
+ if p_str in g_str or g_str in p_str:
116
+ return True
117
+
118
+ p_str = str(p_str).strip()
119
+ g_str = str(g_str).strip()
120
+ p_match = re.search(r'^([A-Z])[\.\s]', p_str)
121
+ g_match = re.search(r'^([A-Z])[\.\s]', g_str)
122
+ if p_match and g_match:
123
+ return p_match.group(1) == g_match.group(1)
124
+ return g_str in p_str
125
+
126
+ tasks.append(mcq_check(pred, gt))
127
+ else:
128
+ gt = data[idx].get("ground_truth_answer", "")
129
+ tasks.append(math_utils_v.is_equal(pred, gt, executor))
130
+
131
+ return await asyncio.gather(*tasks)
132
+
133
+ correctness_all = asyncio.run(get_correctness_all())
134
+ for p, ok in enumerate(correctness_all):
135
+ index_i = index_list[p]
136
+ data[index_i]["correctness"].append(bool(ok))
137
+
138
+ # =========================================================================
139
+ # 核心新增逻辑:跨样本群组计算 T-GRPO 奖励 和 逆转无偏奖励
140
+ # =========================================================================
141
+
142
+ # 1. 按照 data_id 分组映射索引
143
+ grouped_data = defaultdict(lambda: {
144
+ "forward_False": [], "backward_False": [],
145
+ "forward_True": [], "backward_True": []
146
+ })
147
+
148
+ for i in range(len(data)):
149
+ d_id = data[i].get("data_id")
150
+ if d_id is None:
151
+ continue
152
+ r_type = data[i].get("reversal_type", "forward")
153
+ is_shuf = str(data[i].get("is_shuffled", False))
154
+ grouped_data[d_id][f"{r_type}_{is_shuf}"].append(i)
155
+
156
+ # 计算并应用群组奖励
157
+ all_temporal_bonuses = [] # 新增:记录所有的时序红利
158
+ all_unbiased_bonuses = [] # 新增:记录所有的无偏红利
159
+
160
+ # 2. 计算并应用群组奖励
161
+ for d_id, group in grouped_data.items():
162
+
163
+ def get_acc(key):
164
+ if not group[key]: return 0.0
165
+ idx = group[key][0]
166
+ corr = data[idx]["correctness"]
167
+ return sum(corr) / len(corr) if len(corr) > 0 else 0.0
168
+
169
+ # 获取四组情况的正确率
170
+ acc_f_ord = get_acc("forward_False")
171
+ acc_f_shuf = get_acc("forward_True")
172
+ acc_b_ord = get_acc("backward_False")
173
+ acc_b_shuf = get_acc("backward_True")
174
+
175
+ # T-GRPO 奖励: 顺序正确率 >= 0.8 * 打乱正确率,得 0.3
176
+ f_temporal_bonus = 0.3 if acc_f_ord >= 0.8 * acc_f_shuf else 0.0
177
+ b_temporal_bonus = 0.3 if acc_b_ord >= 0.8 * acc_b_shuf else 0.0
178
+
179
+ # 逆转无偏奖励: 正反正确率差值 <= 0.2,且都不是彻底全错,得 0.3
180
+ unbiased_bonus = 0.0
181
+ if abs(acc_f_ord - acc_b_ord) <= 0.2 and (acc_f_ord > 0.1 or acc_b_ord > 0.1):
182
+ unbiased_bonus = 0.3
183
+
184
+ # 新增:将当前组的奖励记录下来用于统计
185
+ if group["forward_False"]:
186
+ all_temporal_bonuses.append(f_temporal_bonus)
187
+ all_unbiased_bonuses.append(unbiased_bonus)
188
+ if group["backward_False"]:
189
+ all_temporal_bonuses.append(b_temporal_bonus)
190
+ all_unbiased_bonuses.append(unbiased_bonus)
191
+
192
+ # 仅将奖励发放给 顺序组(is_shuffled=False) 中回答正确的样本
193
+ def apply_bonus(key, temporal_bonus, unbiased_bonus):
194
+ if not group[key]: return
195
+ idx = group[key][0]
196
+ raw_rewards = []
197
+ for is_correct in data[idx]["correctness"]:
198
+ if is_correct:
199
+ # 基础分 1.0 + 时序红利 + 无偏红利
200
+ raw_rewards.append(1.0 + temporal_bonus + unbiased_bonus)
201
+ else:
202
+ raw_rewards.append(0.0)
203
+ data[idx]["raw_rewards"] = raw_rewards
204
+
205
+ apply_bonus("forward_False", f_temporal_bonus, unbiased_bonus)
206
+ apply_bonus("backward_False", b_temporal_bonus, unbiased_bonus)
207
+
208
+ # =========================================================================
209
+
210
+ def z_score_normalize(lst):
211
+ mean = sum(lst) / len(lst) if len(lst) > 0 else 0.0
212
+ std = (sum((x - mean) ** 2 for x in lst) / len(lst)) ** 0.5 if len(lst) > 0 else 0.0
213
+ if std == 0:
214
+ return [0 for _ in lst]
215
+ return [(x - mean) / std for x in lst]
216
+
217
+ final_data = []
218
+ ordered_correctness = [] # 用于日志打印,不记录被打乱的实验数据
219
+
220
+ for i in range(len(data)):
221
+ # 丢弃打乱的对照组,它们仅仅用于上面的计算参照,不进入强化学习
222
+ if data[i].get("is_shuffled", False):
223
+ continue
224
+
225
+ ordered_correctness.extend(data[i]["correctness"])
226
+
227
+ # 如果部分数据没有走过分组逻辑,默认回退为原始 correct 分数
228
+ raw_rewards = data[i].get("raw_rewards", [float(c) for c in data[i]["correctness"]])
229
+ lengths = data[i]["response_length"]
230
+
231
+ # 长度惩罚
232
+ if config.reward.strict_len_check:
233
+ for j in range(len(lengths)):
234
+ if OmegaConf.select(config, "rollout.max_gen_length", default=MISSING) is not MISSING and lengths[j] >= config.rollout.max_gen_length - 5:
235
+ raw_rewards[j] = 0.0
236
+ if OmegaConf.select(config, "rollout.max_token", default=MISSING) is not MISSING and lengths[j] >= config.rollout.max_token - 5:
237
+ raw_rewards[j] = 0.0
238
+
239
+ # Z-Score 优势归一化
240
+ rewards = z_score_normalize(raw_rewards)
241
+ data[i]["rewards"] = rewards
242
+
243
+ if config.experiment.function == "train":
244
+ proportion = sum(data[i]["correctness"]) / len(data[i]["correctness"]) if len(data[i]["correctness"]) > 0 else 0.0
245
+ # 如果全部回答都是错的,或者全是对的(无差别区分度),则剔除该样本
246
+ if proportion > 0.95 or proportion < 0.05:
247
+ continue
248
+
249
+ for j in range(len(rewards)):
250
+ data_i = {}
251
+ data_i["prompt"] = data[i]["prompt"]
252
+ data_i["reward"] = rewards[j]
253
+ data_i["response"] = data[i]["full_output"][j]
254
+ data_i["step_map"] = data[i]["step_map"][j]
255
+
256
+ # 保留其他需要的上下文 ID
257
+ data_i["data_id"] = data[i].get("data_id")
258
+ data_i["reversal_type"] = data[i].get("reversal_type")
259
+
260
+ if "image_token_ids" in data[i]:
261
+ data_i["image_token_ids"] = data[i]["image_token_ids"]
262
+
263
+ p_video_abs = resolve_media_abs_path(data[i], config.dataset.get("image_root", None), "video")
264
+ if p_video_abs is not None:
265
+ data_i["video_abs_path"] = p_video_abs
266
+
267
+ p_image_abs = resolve_media_abs_path(data[i], config.dataset.get("image_root", None), "image")
268
+ if p_image_abs is not None:
269
+ data_i["image_abs_path"] = p_image_abs
270
+
271
+ final_data.append(data_i)
272
+
273
+ if config.experiment.function == "evaluation":
274
+ data[i]["step_map"] = []
275
+
276
+ if config.experiment.function == "train":
277
+ with open("../" + project_name + "/temp_data/" + config.dataset.optimization_data + ".json", "w", encoding="utf-8") as f:
278
+ json.dump(final_data, f, indent=2, ensure_ascii=False)
279
+
280
+
281
+ os.makedirs(os.path.dirname(file_name), exist_ok=True)
282
+ with open(file_name, "w", encoding="utf-8") as f:
283
+ json.dump(data, f, indent=2, ensure_ascii=False)
284
+
285
+
286
+ outputs_result_name = "../" + project_name + "/results/results-" + outputs_name + ".txt"
287
+ os.makedirs(os.path.dirname(outputs_result_name), exist_ok=True)
288
+ with open(outputs_result_name, "a") as f:
289
+ # Save + print
290
+ def save_and_print(text):
291
+ cprint("\n\n\n" + text, color="green")
292
+ f.write(text + "\n")
293
+
294
+ # 只计算有序组(有效学习组)的准确率来作为监控指标
295
+ acc = (sum(ordered_correctness)/len(ordered_correctness)) if len(ordered_correctness) > 0 else float("nan")
296
+ avg_len = sum(response_length_list)/len(response_length_list)
297
+
298
+ # 新增:计算 T-GRPO 和 Unbiased 奖励的平均值
299
+ avg_temp = sum(all_temporal_bonuses)/len(all_temporal_bonuses) if all_temporal_bonuses else 0.0
300
+ avg_unbias = sum(all_unbiased_bonuses)/len(all_unbiased_bonuses) if all_unbiased_bonuses else 0.0
301
+
302
+ output_text = f"train step: {config.experiment.current_epoch} "
303
+ if config.experiment.function == "train":
304
+ if config.model.model_base != "sdar" and config.model.model_base != "trado":
305
+ output_text = output_text + f"remasking_strategy: {config.rollout.remasking_strategy} block_size: {config.rollout.block_size} acc: {acc:.4f} avg length: {avg_len:.2f}"
306
+ else:
307
+ output_text = output_text + f"remasking_strategy: {config.rollout.remasking_strategy} top_k: {config.rollout.top_k} acc: {acc:.4f} avg length: {avg_len:.2f}"
308
+ else:
309
+ if config.model.model_base != "sdar" and config.model.model_base != "trado":
310
+ output_text = output_text + f"remasking_strategy: {config.evaluation.remasking_strategy} block_size: {config.evaluation.block_size} acc: {acc:.4f} avg length: {avg_len:.2f}"
311
+ else:
312
+ output_text = output_text + f"remasking_strategy: {config.evaluation.remasking_strategy} top_k: {config.evaluation.top_k} acc: {acc:.4f} avg length: {avg_len:.2f}"
313
+ save_and_print(output_text)
314
+
315
+ if config.experiment.function == "train":
316
+ csv_file_path = f"../{project_name}/results/all_rewards.csv"
317
+
318
+ # 如果是第1个 epoch/step,或者是新文件,就先写入表头
319
+ write_header = not os.path.exists(csv_file_path) or config.experiment.current_epoch == 1
320
+
321
+ with open(csv_file_path, "a", encoding="utf-8") as f_csv:
322
+ if write_header:
323
+ f_csv.write("step,acc_reward,t_grpo_reward,unbiased_reward,response_length\n")
324
+
325
+ # 按行追加当前 step 的数据
326
+ f_csv.write(f"{config.experiment.current_epoch},{acc:.4f},{avg_temp:.4f},{avg_unbias:.4f},{avg_len:.2f}\n")
327
+
328
+ if run is not None:
329
+ wandb.log(
330
+ {
331
+ "reward/acc": acc,
332
+ "reward/t_grpo_bonus": avg_temp,
333
+ "reward/unbiased_bonus": avg_unbias,
334
+ "reward/avg_response_length": avg_len,
335
+ "reward/train_step": config.experiment.current_epoch,
336
+ },
337
+ step=config.experiment.current_epoch,
338
+ )
339
+ wandb.finish()
reward/wandb/run-20260530_042845-fmmkx1a5/files/config.yaml ADDED
@@ -0,0 +1,281 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ _wandb:
2
+ value:
3
+ cli_version: 0.25.0
4
+ code_path: code/reward/rl_reward_video_reversal.py
5
+ e:
6
+ iv8zvsdp3bk0inm3f71d72crajbgfbvu:
7
+ args:
8
+ - config=../configs/rl_lavida_video_reversal.yaml
9
+ - wandb.run_id=fmmkx1a5
10
+ - experiment.function=train
11
+ - evaluation.block_size=None
12
+ - evaluation.top_k=None
13
+ - evaluation.remasking_strategy=None
14
+ - experiment.current_epoch=8
15
+ codePath: reward/rl_reward_video_reversal.py
16
+ codePathLocal: rl_reward_video_reversal.py
17
+ cpu_count: 96
18
+ cpu_count_logical: 192
19
+ cudaVersion: "12.8"
20
+ disk:
21
+ /:
22
+ total: "806578724864"
23
+ used: "625480916992"
24
+ email: shixi_runqing@staff.weibo.com
25
+ executable: /data8/runqing/miniconda/envs/dllm-rl/bin/python
26
+ git:
27
+ commit: 10b4fd1cba83e4496c20585dc2fd01dc02f20255
28
+ remote: https://gitclone.com/github.com/Gen-Verse/dLLM-RL.git
29
+ gpu: NVIDIA H800
30
+ gpu_count: 8
31
+ gpu_nvidia:
32
+ - architecture: Hopper
33
+ cudaCores: 16896
34
+ memoryTotal: "85520809984"
35
+ name: NVIDIA H800
36
+ uuid: GPU-f768b684-b9ce-23a2-81a6-af16161cf9be
37
+ - architecture: Hopper
38
+ cudaCores: 16896
39
+ memoryTotal: "85520809984"
40
+ name: NVIDIA H800
41
+ uuid: GPU-2f1e1a7b-76a2-e00b-3dc5-79add059b8f9
42
+ - architecture: Hopper
43
+ cudaCores: 16896
44
+ memoryTotal: "85520809984"
45
+ name: NVIDIA H800
46
+ uuid: GPU-33d7b8d4-af9c-4719-9686-1712e9694cd6
47
+ - architecture: Hopper
48
+ cudaCores: 16896
49
+ memoryTotal: "85520809984"
50
+ name: NVIDIA H800
51
+ uuid: GPU-0b797f66-23ec-d0ff-1c65-fb34b9064e53
52
+ - architecture: Hopper
53
+ cudaCores: 16896
54
+ memoryTotal: "85520809984"
55
+ name: NVIDIA H800
56
+ uuid: GPU-ad9e9c73-0f31-a8b3-e8f7-7be19f5338ad
57
+ - architecture: Hopper
58
+ cudaCores: 16896
59
+ memoryTotal: "85520809984"
60
+ name: NVIDIA H800
61
+ uuid: GPU-f531028f-805c-3301-61b3-0c46329dc9c0
62
+ - architecture: Hopper
63
+ cudaCores: 16896
64
+ memoryTotal: "85520809984"
65
+ name: NVIDIA H800
66
+ uuid: GPU-2775489f-18c8-2328-8829-c46238575379
67
+ - architecture: Hopper
68
+ cudaCores: 16896
69
+ memoryTotal: "85520809984"
70
+ name: NVIDIA H800
71
+ uuid: GPU-1dd27781-c1f3-d980-6f18-fe8a778b69fd
72
+ host: b1301b38c75f
73
+ memory:
74
+ total: "2164113764352"
75
+ os: Linux-5.15.0-144-generic-x86_64-with-glibc2.35
76
+ program: /data4/runqing/dLLM-RL/reward/rl_reward_video_reversal.py
77
+ python: CPython 3.10.19
78
+ root: /data4/runqing/dLLM-RL/reward
79
+ startedAt: "2026-05-29T20:28:45.290476Z"
80
+ writerId: iv8zvsdp3bk0inm3f71d72crajbgfbvu
81
+ m: []
82
+ python_version: 3.10.19
83
+ t:
84
+ "1":
85
+ - 1
86
+ - 41
87
+ "2":
88
+ - 1
89
+ - 41
90
+ "3":
91
+ - 2
92
+ - 5
93
+ - 13
94
+ - 14
95
+ - 16
96
+ - 61
97
+ - 62
98
+ "4": 3.10.19
99
+ "5": 0.25.0
100
+ "10":
101
+ - 20
102
+ "12": 0.25.0
103
+ "13": linux-x86_64
104
+ config:
105
+ value: ../configs/rl_lavida_video_reversal.yaml
106
+ dataset.data_type:
107
+ value: video_reverse
108
+ dataset.optimization_data:
109
+ value: rl_data
110
+ dataset.train_dataset:
111
+ value: video_reversal_rl_train
112
+ evaluation.batch_size:
113
+ value: 1
114
+ evaluation.block_size:
115
+ value: None
116
+ evaluation.data_type:
117
+ value: video_reverse
118
+ evaluation.dynamic_threshold:
119
+ value: 0.9
120
+ evaluation.eval_dataset:
121
+ value: video_reversal_rl_eval
122
+ evaluation.further_horizon:
123
+ value: 128
124
+ evaluation.if_eval:
125
+ value: false
126
+ evaluation.max_gen_length:
127
+ value: 128
128
+ evaluation.num_response_per_task:
129
+ value: 3
130
+ evaluation.remasking_strategy:
131
+ value: None
132
+ evaluation.remasking_strategy.0:
133
+ value: low_confidence_static
134
+ evaluation.remasking_strategy.1:
135
+ value: low_confidence_dynamic
136
+ evaluation.steps:
137
+ value: 128
138
+ evaluation.target:
139
+ value: confidence
140
+ evaluation.temperature:
141
+ value: 0.1
142
+ evaluation.top_k:
143
+ value: None
144
+ evaluation.use_cache:
145
+ value: true
146
+ execute.num_chunk:
147
+ value: 128
148
+ experiment.current_epoch:
149
+ value: 8
150
+ experiment.deepspeed_file:
151
+ value: 1_node_8_gpus_deepspeed_zero2
152
+ experiment.eval_every:
153
+ value: 5
154
+ experiment.function:
155
+ value: train
156
+ experiment.logging_dir:
157
+ value: rl_lavida_video_reversal/logs
158
+ experiment.node_index:
159
+ value: 0
160
+ experiment.num_node:
161
+ value: 1
162
+ experiment.project:
163
+ value: rl_lavida_video_reversal
164
+ experiment.save_every:
165
+ value: 10
166
+ experiment.start_from_scratch:
167
+ value: true
168
+ experiment.total_step:
169
+ value: 30
170
+ lr_scheduler.params.learning_rate:
171
+ value: 1e-06
172
+ lr_scheduler.params.min_lr_scale:
173
+ value: 1
174
+ lr_scheduler.params.warmup_steps:
175
+ value: 0
176
+ lr_scheduler.scheduler:
177
+ value: cosine
178
+ model.image_resolution:
179
+ value: 512
180
+ model.model_base:
181
+ value: lavida
182
+ model.optimized_name:
183
+ value: optimized
184
+ model.pretrained_model:
185
+ value: /data4/runqing/dLLM-RL/sft_lavida_video_reversal/ckpt/optimized
186
+ model.vq_model_path:
187
+ value: /data4/runqing/hf/magvitv2
188
+ optimizer.name:
189
+ value: adamw
190
+ optimizer.params.beta1:
191
+ value: 0.9
192
+ optimizer.params.beta2:
193
+ value: 0.999
194
+ optimizer.params.epsilon:
195
+ value: 1e-08
196
+ optimizer.params.learning_rate:
197
+ value: 1e-06
198
+ optimizer.params.scale_lr:
199
+ value: false
200
+ optimizer.params.weight_decay:
201
+ value: 0
202
+ reward.answer_must_in_box:
203
+ value: true
204
+ reward.strict_len_check:
205
+ value: false
206
+ rollout.batch_size:
207
+ value: 1
208
+ rollout.block_size:
209
+ value: 32
210
+ rollout.dynamic_threshold:
211
+ value: 0.9
212
+ rollout.further_horizon:
213
+ value: 128
214
+ rollout.max_gen_length:
215
+ value: 128
216
+ rollout.num_response_per_task:
217
+ value: 8
218
+ rollout.num_task_per_step:
219
+ value: 128
220
+ rollout.remasking_strategy:
221
+ value: low_confidence_dynamic
222
+ rollout.steps:
223
+ value: 128
224
+ rollout.target:
225
+ value: confidence
226
+ rollout.temperature:
227
+ value: 0.8
228
+ rollout.use_cache:
229
+ value: true
230
+ system.HF_HOME:
231
+ value: null
232
+ system.HTTP_PROXY:
233
+ value: null
234
+ system.base_dir:
235
+ value: /data4/runqing/dLLM-RL
236
+ system.env_name:
237
+ value: /data8/runqing/miniconda/envs/dllm-rl
238
+ system.envs_dir:
239
+ value: /data8/runqing/miniconda/envs/dllm-rl
240
+ training.batch_size_lm:
241
+ value: 1
242
+ training.beta:
243
+ value: 0.01
244
+ training.enable_tf32:
245
+ value: true
246
+ training.eps:
247
+ value: 0.2
248
+ training.gradient_accumulation_steps:
249
+ value: 2
250
+ training.lower_p:
251
+ value: 0.35
252
+ training.mask_times_per_sample:
253
+ value: 2
254
+ training.max_gen_length:
255
+ value: 128
256
+ training.max_grad_norm:
257
+ value: 1
258
+ training.max_prompt_len:
259
+ value: 512
260
+ training.method:
261
+ value: random_masking
262
+ training.mixed_precision:
263
+ value: bf16
264
+ training.num_train_epochs:
265
+ value: 1
266
+ training.post_num:
267
+ value: 1
268
+ training.seed:
269
+ value: 10086
270
+ training.shrink:
271
+ value: 8
272
+ training.upper_p:
273
+ value: 0.9
274
+ training.use_kl_estimator_k3:
275
+ value: true
276
+ wandb.entity:
277
+ value: null
278
+ wandb.resume:
279
+ value: auto
280
+ wandb.run_id:
281
+ value: fmmkx1a5
reward/wandb/run-20260530_042845-fmmkx1a5/files/output.log ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+
2
+
3
+
4
+ train step: 8 remasking_strategy: low_confidence_dynamic block_size: 32 acc: 0.4688 avg length: 126.02
reward/wandb/run-20260530_042845-fmmkx1a5/files/requirements.txt ADDED
@@ -0,0 +1,157 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ transformers==4.52.4
2
+ nvidia-nvtx-cu12==12.4.127
3
+ deepspeed==0.18.6
4
+ typing-inspection==0.4.2
5
+ scipy==1.15.3
6
+ MarkupSafe==3.0.3
7
+ nvidia-cuda-runtime-cu12==12.4.127
8
+ detoxify==0.5.2
9
+ yarl==1.22.0
10
+ tornado==6.5.4
11
+ nvidia-curand-cu12==10.3.5.147
12
+ nest-asyncio==1.6.0
13
+ safetensors==0.7.0
14
+ async-timeout==5.0.1
15
+ typing_extensions==4.15.0
16
+ asttokens==3.0.1
17
+ cuda-python==13.1.1
18
+ executing==2.2.1
19
+ nvidia-cudnn-frontend==1.18.0
20
+ comm==0.2.3
21
+ tokenizers==0.21.4
22
+ six==1.17.0
23
+ Pygments==2.19.2
24
+ nvidia-cusparselt-cu12==0.6.2
25
+ apache-tvm-ffi==0.1.8.post2
26
+ flash_attn==2.7.4.post1
27
+ tqdm==4.67.3
28
+ tensorboard-data-server==0.7.2
29
+ annotated-types==0.7.0
30
+ math-verify==0.9.0
31
+ idna==3.11
32
+ regex==2026.1.15
33
+ nvidia-cutlass-dsl-libs-base==4.4.0
34
+ flashinfer-python==0.6.3
35
+ click==8.3.1
36
+ pytz==2025.2
37
+ wheel==0.46.3
38
+ ipykernel==7.2.0
39
+ stack-data==0.6.3
40
+ absl-py==2.4.0
41
+ wandb==0.25.0
42
+ pandas==2.3.3
43
+ termcolor==3.3.0
44
+ sympy==1.13.1
45
+ joblib==1.5.3
46
+ prompt_toolkit==3.0.52
47
+ attrs==25.4.0
48
+ nvidia-cusolver-cu12==11.6.1.9
49
+ xxhash==3.6.0
50
+ aiohappyeyeballs==2.6.1
51
+ python-dateutil==2.9.0.post0
52
+ frozenlist==1.8.0
53
+ nvidia-ml-py==13.590.48
54
+ multiprocess==0.70.18
55
+ decorator==5.2.1
56
+ cuda-pathfinder==1.3.4
57
+ multidict==6.7.1
58
+ pure_eval==0.2.3
59
+ nvidia-cufft-cu12==11.2.1.3
60
+ omegaconf==2.3.0
61
+ PyYAML==6.0.3
62
+ debugpy==1.8.20
63
+ psutil==7.2.2
64
+ ninja==1.13.0
65
+ nvidia-cublas-cu12==12.4.5.8
66
+ triton==3.2.0
67
+ antlr4-python3-runtime==4.9.3
68
+ peft==0.18.1
69
+ aiosignal==1.4.0
70
+ accelerate==1.12.0
71
+ liger_kernel==0.7.0
72
+ anyio==4.12.1
73
+ decord==0.6.0
74
+ h11==0.16.0
75
+ urllib3==2.6.3
76
+ wcwidth==0.6.0
77
+ networkx==3.4.2
78
+ huggingface_hub==0.36.2
79
+ tzdata==2025.3
80
+ xformers==0.0.29.post3
81
+ tabulate==0.9.0
82
+ certifi==2026.1.4
83
+ tensorboard==2.20.0
84
+ matplotlib-inline==0.2.1
85
+ pip==26.0.1
86
+ smmap==5.0.2
87
+ nvidia-cuda-cupti-cu12==12.4.127
88
+ Markdown==3.10.2
89
+ nvidia-nccl-cu12==2.21.5
90
+ aiohttp==3.13.3
91
+ scikit-learn==1.7.2
92
+ nvidia-cutlass-dsl==4.4.0
93
+ setuptools==82.0.0
94
+ jupyter_core==5.9.1
95
+ asyncio==4.0.0
96
+ einops==0.8.2
97
+ pydantic==2.12.5
98
+ av==16.1.0
99
+ protobuf==6.33.5
100
+ evaluate==0.4.6
101
+ Jinja2==3.1.6
102
+ exceptiongroup==1.3.1
103
+ ipython==8.38.0
104
+ sentry-sdk==2.53.0
105
+ httpx==0.28.1
106
+ msgpack==1.1.2
107
+ platformdirs==4.9.2
108
+ hjson==3.1.0
109
+ torchvision==0.21.0
110
+ parso==0.8.6
111
+ cuda-bindings==13.1.1
112
+ pexpect==4.9.0
113
+ threadpoolctl==3.6.0
114
+ pyarrow==23.0.1
115
+ jedi==0.19.2
116
+ nvidia-cuda-nvrtc-cu12==12.4.127
117
+ Werkzeug==3.1.5
118
+ fsspec==2025.10.0
119
+ pydantic_core==2.41.5
120
+ GitPython==3.1.46
121
+ propcache==0.4.1
122
+ mpmath==1.3.0
123
+ nvidia-nvjitlink-cu12==12.4.127
124
+ nvidia-cusparse-cu12==12.3.1.170
125
+ hf-xet==1.2.0
126
+ charset-normalizer==3.4.4
127
+ dill==0.4.0
128
+ datasets==4.5.0
129
+ py-cpuinfo==9.0.0
130
+ sentencepiece==0.2.1
131
+ latex2sympy2_extended==1.11.0
132
+ jupyter_client==8.8.0
133
+ pyzmq==27.1.0
134
+ numpy==2.2.6
135
+ gitdb==4.0.12
136
+ grpcio==1.78.0
137
+ packaging==26.0
138
+ requests==2.32.5
139
+ nvidia-cudnn-cu12==9.1.0.70
140
+ httpcore==1.0.9
141
+ traitlets==5.14.3
142
+ filelock==3.24.2
143
+ ptyprocess==0.7.0
144
+ pillow==12.1.1
145
+ torch==2.6.0
146
+ more-itertools==10.8.0
147
+ wheel==0.46.3
148
+ jaraco.text==4.0.0
149
+ zipp==3.23.0
150
+ autocommand==2.2.2
151
+ jaraco.context==6.1.0
152
+ jaraco.functools==4.4.0
153
+ tomli==2.4.0
154
+ backports.tarfile==1.2.0
155
+ importlib_metadata==8.7.1
156
+ platformdirs==4.4.0
157
+ packaging==26.0
reward/wandb/run-20260530_042845-fmmkx1a5/files/wandb-metadata.json ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "os": "Linux-5.15.0-144-generic-x86_64-with-glibc2.35",
3
+ "python": "CPython 3.10.19",
4
+ "startedAt": "2026-05-29T20:28:45.290476Z",
5
+ "args": [
6
+ "config=../configs/rl_lavida_video_reversal.yaml",
7
+ "wandb.run_id=fmmkx1a5",
8
+ "experiment.function=train",
9
+ "evaluation.block_size=None",
10
+ "evaluation.top_k=None",
11
+ "evaluation.remasking_strategy=None",
12
+ "experiment.current_epoch=8"
13
+ ],
14
+ "program": "/data4/runqing/dLLM-RL/reward/rl_reward_video_reversal.py",
15
+ "codePath": "reward/rl_reward_video_reversal.py",
16
+ "codePathLocal": "rl_reward_video_reversal.py",
17
+ "git": {
18
+ "remote": "https://gitclone.com/github.com/Gen-Verse/dLLM-RL.git",
19
+ "commit": "10b4fd1cba83e4496c20585dc2fd01dc02f20255"
20
+ },
21
+ "email": "shixi_runqing@staff.weibo.com",
22
+ "root": "/data4/runqing/dLLM-RL/reward",
23
+ "host": "b1301b38c75f",
24
+ "executable": "/data8/runqing/miniconda/envs/dllm-rl/bin/python",
25
+ "cpu_count": 96,
26
+ "cpu_count_logical": 192,
27
+ "gpu": "NVIDIA H800",
28
+ "gpu_count": 8,
29
+ "disk": {
30
+ "/": {
31
+ "total": "806578724864",
32
+ "used": "625480916992"
33
+ }
34
+ },
35
+ "memory": {
36
+ "total": "2164113764352"
37
+ },
38
+ "gpu_nvidia": [
39
+ {
40
+ "name": "NVIDIA H800",
41
+ "memoryTotal": "85520809984",
42
+ "cudaCores": 16896,
43
+ "architecture": "Hopper",
44
+ "uuid": "GPU-f768b684-b9ce-23a2-81a6-af16161cf9be"
45
+ },
46
+ {
47
+ "name": "NVIDIA H800",
48
+ "memoryTotal": "85520809984",
49
+ "cudaCores": 16896,
50
+ "architecture": "Hopper",
51
+ "uuid": "GPU-2f1e1a7b-76a2-e00b-3dc5-79add059b8f9"
52
+ },
53
+ {
54
+ "name": "NVIDIA H800",
55
+ "memoryTotal": "85520809984",
56
+ "cudaCores": 16896,
57
+ "architecture": "Hopper",
58
+ "uuid": "GPU-33d7b8d4-af9c-4719-9686-1712e9694cd6"
59
+ },
60
+ {
61
+ "name": "NVIDIA H800",
62
+ "memoryTotal": "85520809984",
63
+ "cudaCores": 16896,
64
+ "architecture": "Hopper",
65
+ "uuid": "GPU-0b797f66-23ec-d0ff-1c65-fb34b9064e53"
66
+ },
67
+ {
68
+ "name": "NVIDIA H800",
69
+ "memoryTotal": "85520809984",
70
+ "cudaCores": 16896,
71
+ "architecture": "Hopper",
72
+ "uuid": "GPU-ad9e9c73-0f31-a8b3-e8f7-7be19f5338ad"
73
+ },
74
+ {
75
+ "name": "NVIDIA H800",
76
+ "memoryTotal": "85520809984",
77
+ "cudaCores": 16896,
78
+ "architecture": "Hopper",
79
+ "uuid": "GPU-f531028f-805c-3301-61b3-0c46329dc9c0"
80
+ },
81
+ {
82
+ "name": "NVIDIA H800",
83
+ "memoryTotal": "85520809984",
84
+ "cudaCores": 16896,
85
+ "architecture": "Hopper",
86
+ "uuid": "GPU-2775489f-18c8-2328-8829-c46238575379"
87
+ },
88
+ {
89
+ "name": "NVIDIA H800",
90
+ "memoryTotal": "85520809984",
91
+ "cudaCores": 16896,
92
+ "architecture": "Hopper",
93
+ "uuid": "GPU-1dd27781-c1f3-d980-6f18-fe8a778b69fd"
94
+ }
95
+ ],
96
+ "cudaVersion": "12.8",
97
+ "writerId": "iv8zvsdp3bk0inm3f71d72crajbgfbvu"
98
+ }
reward/wandb/run-20260530_042845-fmmkx1a5/files/wandb-summary.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"reward/acc":0.396484375,"_runtime":5992,"reward/avg_response_length":124.568359375,"train/loss":-0.37430867552757263,"reward/train_step":1,"_timestamp":1.7800760271916904e+09,"_wandb":{"runtime":5992},"reward/t_grpo_bonus":0.2718750000000003,"train/learning_rate":7.985792958513929e-07,"reward/unbiased_bonus":0.09374999999999996,"_step":26}
reward/wandb/run-20260530_042845-fmmkx1a5/logs/debug-core.log ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"time":"2026-05-30T04:28:45.357187774+08:00","level":"INFO","msg":"main: starting server","port-filename":"/tmp/tmpe2ektbof/port-2189265.txt","pid":2189265,"log-level":0,"disable-analytics":false,"shutdown-on-parent-exit":false,"enable-dcgm-profiling":false}
2
+ {"time":"2026-05-30T04:28:45.357749747+08:00","level":"INFO","msg":"server: will exit if parent process dies","ppid":2189265}
3
+ {"time":"2026-05-30T04:28:45.357737063+08:00","level":"INFO","msg":"server: accepting connections","addr":{"Name":"/tmp/wandb-2189265-2189429-3673607564/socket","Net":"unix"}}
4
+ {"time":"2026-05-30T04:28:45.538534603+08:00","level":"INFO","msg":"connection: ManageConnectionData: new connection created","id":"1(@)"}
5
+ {"time":"2026-05-30T04:28:45.547157906+08:00","level":"INFO","msg":"handleInformInit: received","streamId":"fmmkx1a5","id":"1(@)"}
6
+ {"time":"2026-05-30T04:28:45.852526644+08:00","level":"INFO","msg":"handleInformInit: stream started","streamId":"fmmkx1a5","id":"1(@)"}
7
+ {"time":"2026-05-30T04:28:46.370665657+08:00","level":"INFO","msg":"connection: cancelling request","id":"1(@)","requestId":"viw1ypxpd56s"}
8
+ {"time":"2026-05-30T04:28:46.550283848+08:00","level":"INFO","msg":"connection: cancelling request","id":"1(@)","requestId":"viw1ypxpd56s"}
9
+ {"time":"2026-05-30T04:28:46.551572545+08:00","level":"INFO","msg":"handleInformFinish: finish message received","streamId":"fmmkx1a5","id":"1(@)"}
10
+ {"time":"2026-05-30T04:28:46.552278813+08:00","level":"INFO","msg":"handleInformFinish: stream closed","streamId":"fmmkx1a5","id":"1(@)"}
11
+ {"time":"2026-05-30T04:28:46.552287358+08:00","level":"INFO","msg":"handleInformTeardown: server teardown initiated","id":"1(@)"}
12
+ {"time":"2026-05-30T04:28:46.552297327+08:00","level":"INFO","msg":"handleInformTeardown: server shutdown complete","id":"1(@)"}
13
+ {"time":"2026-05-30T04:28:46.552305555+08:00","level":"INFO","msg":"connection: closing","id":"1(@)"}
14
+ {"time":"2026-05-30T04:28:46.552320535+08:00","level":"INFO","msg":"server is shutting down"}
15
+ {"time":"2026-05-30T04:28:46.552335675+08:00","level":"INFO","msg":"connection: closed successfully","id":"1(@)"}
16
+ {"time":"2026-05-30T04:28:46.552423726+08:00","level":"INFO","msg":"connection: ManageConnectionData: connection closed","id":"1(@)"}
17
+ {"time":"2026-05-30T04:28:46.552482901+08:00","level":"INFO","msg":"server: listener closed","addr":{"Name":"/tmp/wandb-2189265-2189429-3673607564/socket","Net":"unix"}}
18
+ {"time":"2026-05-30T04:28:46.552538115+08:00","level":"INFO","msg":"server is closed"}
reward/wandb/run-20260530_042845-fmmkx1a5/logs/debug-internal.log ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"time":"2026-05-30T04:28:45.547363162+08:00","level":"INFO","msg":"stream: starting","core version":"0.25.0"}
2
+ {"time":"2026-05-30T04:28:45.851985924+08:00","level":"ERROR","msg":"featurechecker: failed to load features, all will be disabled","error":"input:4:3: Cannot query field \"features\" on type \"ServerInfo\".\n"}
3
+ {"time":"2026-05-30T04:28:45.852256915+08:00","level":"INFO","msg":"stream: created new stream","id":"fmmkx1a5"}
4
+ {"time":"2026-05-30T04:28:45.852386761+08:00","level":"INFO","msg":"handler: started","stream_id":"fmmkx1a5"}
5
+ {"time":"2026-05-30T04:28:45.852507919+08:00","level":"INFO","msg":"stream: started","id":"fmmkx1a5"}
6
+ {"time":"2026-05-30T04:28:45.852536962+08:00","level":"INFO","msg":"writer: started","stream_id":"fmmkx1a5"}
7
+ {"time":"2026-05-30T04:28:45.852534157+08:00","level":"INFO","msg":"sender: started","stream_id":"fmmkx1a5"}
8
+ {"time":"2026-05-30T04:28:45.858252069+08:00","level":"WARN","msg":"runupserter: server does not expand metric globs but the x_server_side_expand_glob_metrics setting is set; ignoring"}
9
+ {"time":"2026-05-30T04:28:46.158666066+08:00","level":"ERROR","msg":"git repo not found","error":"repository does not exist"}
10
+ {"time":"2026-05-30T04:28:46.369997093+08:00","level":"WARN","msg":"handler: ignoring partial history record","step":8,"current":27}
11
+ {"time":"2026-05-30T04:28:46.501935127+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/output.log?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T202846Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=dadf76cf88cfe1ec58e2105e56b323d6ac39772d8e5bb0ad7ed85e429bd4e85e"}
12
+ {"time":"2026-05-30T04:28:46.502060021+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/output.log</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/output.log</Resource><RequestId>18B42343B965E108</RequestId><HostId>17e81bf8-654d-4ce6-b556-0f7349513ee1</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260530_042845-fmmkx1a5/files/output.log, Name: output.log, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/output.log?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T202846Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=dadf76cf88cfe1ec58e2105e56b323d6ac39772d8e5bb0ad7ed85e429bd4e85e, Size: 110}"}
13
+ {"time":"2026-05-30T04:28:46.502198522+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/config.yaml?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T202846Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=6aa16e413100df81d7b2c203db0e968d616ffff4e373204c41041478c7fbfe13"}
14
+ {"time":"2026-05-30T04:28:46.502298169+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-metadata.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T202846Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=e05b7e592252a0fe524561bedbb211f5123fe01e58341c518a6f90f8f8ccad28"}
15
+ {"time":"2026-05-30T04:28:46.50236231+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/config.yaml</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/config.yaml</Resource><RequestId>18B42343B966889E</RequestId><HostId>17e81bf8-654d-4ce6-b556-0f7349513ee1</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260530_042845-fmmkx1a5/files/config.yaml, Name: config.yaml, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/config.yaml?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T202846Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=6aa16e413100df81d7b2c203db0e968d616ffff4e373204c41041478c7fbfe13, Size: 7994}"}
16
+ {"time":"2026-05-30T04:28:46.502536921+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-metadata.json</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-metadata.json</Resource><RequestId>18B42343B9A1978F</RequestId><HostId>4b5cbd82-31a6-4e32-8e3a-3b4f1cd8a94b</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260530_042845-fmmkx1a5/files/wandb-metadata.json, Name: wandb-metadata.json, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-metadata.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T202846Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=e05b7e592252a0fe524561bedbb211f5123fe01e58341c518a6f90f8f8ccad28, Size: 2849}"}
17
+ {"time":"2026-05-30T04:28:46.5035542+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-summary.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T202846Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=38aaaf3093af2965c378a7cf0d77ea697514c7df7c85d2d318d1ae08d7932f11"}
18
+ {"time":"2026-05-30T04:28:46.503761198+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-summary.json</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-summary.json</Resource><RequestId>18B42343B8DC7687</RequestId><HostId>29678716-7d96-4915-b26c-b7113941467d</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260530_042845-fmmkx1a5/files/wandb-summary.json, Name: wandb-summary.json, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/wandb-summary.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T202846Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=38aaaf3093af2965c378a7cf0d77ea697514c7df7c85d2d318d1ae08d7932f11, Size: 343}"}
19
+ {"time":"2026-05-30T04:28:46.505924826+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/requirements.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T202846Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=326cb6c5ef32f7ec9d65c1165435635a9e1d486c435f164c34ec192c8dcdbd4d"}
20
+ {"time":"2026-05-30T04:28:46.506020205+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/requirements.txt</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/requirements.txt</Resource><RequestId>18B42343B9BD0B61</RequestId><HostId>4b5cbd82-31a6-4e32-8e3a-3b4f1cd8a94b</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260530_042845-fmmkx1a5/files/requirements.txt, Name: requirements.txt, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/requirements.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T202846Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=326cb6c5ef32f7ec9d65c1165435635a9e1d486c435f164c34ec192c8dcdbd4d, Size: 2982}"}
21
+ {"time":"2026-05-30T04:28:46.506408954+08:00","level":"ERROR","msg":"api: HTTP error","status":403,"method":"PUT","url":"http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/code/reward/rl_reward_video_reversal.py?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T202846Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=fa24244b919ee0c3b1debd877157ca47f4dfaf89a9c2928302cae995ae265dc6"}
22
+ {"time":"2026-05-30T04:28:46.506468235+08:00","level":"ERROR","msg":"file transfer: upload: failed to upload: status: 403 Forbidden: body: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key>shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/code/reward/rl_reward_video_reversal.py</Key><BucketName>netdisk</BucketName><Resource>/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/code/reward/rl_reward_video_reversal.py</Resource><RequestId>18B42343B9587729</RequestId><HostId>17e81bf8-654d-4ce6-b556-0f7349513ee1</HostId></Error>","task":"DefaultUploadTask{FileKind: 1, Path: /data4/runqing/dLLM-RL/reward/wandb/run-20260530_042845-fmmkx1a5/files/code/reward/rl_reward_video_reversal.py, Name: code/reward/rl_reward_video_reversal.py, Url: http://jfs-s3-gateway.wml.weibo.com:80/netdisk/shixi_runqing/rl_lavida_video_reversal/fmmkx1a5/code/reward/rl_reward_video_reversal.py?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20260529%2Fregion%2Fs3%2Faws4_request&X-Amz-Date=20260529T202846Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-User=shixi_runqing&X-Amz-Signature=fa24244b919ee0c3b1debd877157ca47f4dfaf89a9c2928302cae995ae265dc6, Size: 14790}"}
23
+ {"time":"2026-05-30T04:28:46.506804552+08:00","level":"INFO","msg":"fileTransfer: Close: file transfer manager closed"}
24
+ {"time":"2026-05-30T04:28:46.547050766+08:00","level":"INFO","msg":"handler: operation stats","stats":{}}
25
+ {"time":"2026-05-30T04:28:46.551595229+08:00","level":"INFO","msg":"stream: closing","id":"fmmkx1a5"}
26
+ {"time":"2026-05-30T04:28:46.551609585+08:00","level":"INFO","msg":"handler: closed","stream_id":"fmmkx1a5"}
27
+ {"time":"2026-05-30T04:28:46.551670861+08:00","level":"INFO","msg":"sender: closed","stream_id":"fmmkx1a5"}
28
+ {"time":"2026-05-30T04:28:46.551687822+08:00","level":"INFO","msg":"stream: closed","id":"fmmkx1a5"}
reward/wandb/run-20260530_042845-fmmkx1a5/logs/debug.log ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2026-05-30 04:28:45,293 INFO MainThread:2189265 [wandb_setup.py:_flush():81] Current SDK version is 0.25.0
2
+ 2026-05-30 04:28:45,293 INFO MainThread:2189265 [wandb_setup.py:_flush():81] Configure stats pid to 2189265
3
+ 2026-05-30 04:28:45,293 INFO MainThread:2189265 [wandb_setup.py:_flush():81] Loading settings from environment variables
4
+ 2026-05-30 04:28:45,293 INFO MainThread:2189265 [wandb_init.py:setup_run_log_directory():717] Logging user logs to /data4/runqing/dLLM-RL/reward/wandb/run-20260530_042845-fmmkx1a5/logs/debug.log
5
+ 2026-05-30 04:28:45,293 INFO MainThread:2189265 [wandb_init.py:setup_run_log_directory():718] Logging internal logs to /data4/runqing/dLLM-RL/reward/wandb/run-20260530_042845-fmmkx1a5/logs/debug-internal.log
6
+ 2026-05-30 04:28:45,293 INFO MainThread:2189265 [wandb_init.py:init():844] calling init triggers
7
+ 2026-05-30 04:28:45,293 INFO MainThread:2189265 [wandb_init.py:init():849] wandb.init called with sweep_config: {}
8
+ config: {'wandb.entity': None, 'wandb.resume': 'auto', 'wandb.run_id': 'fmmkx1a5', 'system.HTTP_PROXY': None, 'system.HF_HOME': None, 'system.env_name': '/data8/runqing/miniconda/envs/dllm-rl', 'system.envs_dir': '/data8/runqing/miniconda/envs/dllm-rl', 'system.base_dir': '/data4/runqing/dLLM-RL', 'experiment.project': 'rl_lavida_video_reversal', 'experiment.function': 'train', 'experiment.start_from_scratch': True, 'experiment.total_step': 30, 'experiment.save_every': 10, 'experiment.eval_every': 5, 'experiment.current_epoch': 8, 'experiment.deepspeed_file': '1_node_8_gpus_deepspeed_zero2', 'experiment.num_node': 1, 'experiment.node_index': 0, 'model.pretrained_model': '/data4/runqing/dLLM-RL/sft_lavida_video_reversal/ckpt/optimized', 'model.optimized_name': 'optimized', 'model.model_base': 'lavida', 'model.vq_model_path': '/data4/runqing/hf/magvitv2', 'model.image_resolution': 512, 'dataset.train_dataset': 'video_reversal_rl_train', 'dataset.data_type': 'video_reverse', 'dataset.optimization_data': 'rl_data', 'rollout.num_task_per_step': 128, 'rollout.num_response_per_task': 8, 'rollout.temperature': 0.8, 'rollout.steps': 128, 'rollout.max_gen_length': 128, 'rollout.batch_size': 1, 'rollout.remasking_strategy': 'low_confidence_dynamic', 'rollout.target': 'confidence', 'rollout.dynamic_threshold': 0.9, 'rollout.block_size': 32, 'rollout.further_horizon': 128, 'rollout.use_cache': True, 'reward.answer_must_in_box': True, 'reward.strict_len_check': False, 'execute.num_chunk': 128, 'training.gradient_accumulation_steps': 2, 'training.batch_size_lm': 1, 'training.mixed_precision': 'bf16', 'training.enable_tf32': True, 'training.seed': 10086, 'training.num_train_epochs': 1, 'training.max_grad_norm': 1.0, 'training.method': 'random_masking', 'training.lower_p': 0.35, 'training.upper_p': 0.9, 'training.shrink': 8, 'training.post_num': 1, 'training.mask_times_per_sample': 2, 'training.max_gen_length': 128, 'training.max_prompt_len': 512, 'training.eps': 0.2, 'training.beta': 0.01, 'training.use_kl_estimator_k3': True, 'optimizer.name': 'adamw', 'optimizer.params.learning_rate': 1e-06, 'optimizer.params.scale_lr': False, 'optimizer.params.beta1': 0.9, 'optimizer.params.beta2': 0.999, 'optimizer.params.weight_decay': 0.0, 'optimizer.params.epsilon': 1e-08, 'lr_scheduler.scheduler': 'cosine', 'lr_scheduler.params.learning_rate': 1e-06, 'lr_scheduler.params.warmup_steps': 0, 'lr_scheduler.params.min_lr_scale': 1.0, 'evaluation.if_eval': False, 'evaluation.eval_dataset': 'video_reversal_rl_eval', 'evaluation.data_type': 'video_reverse', 'evaluation.num_response_per_task': 3, 'evaluation.temperature': 0.1, 'evaluation.steps': 128, 'evaluation.max_gen_length': 128, 'evaluation.batch_size': 1, 'evaluation.remasking_strategy': 'None', 'evaluation.target': 'confidence', 'evaluation.dynamic_threshold': 0.9, 'evaluation.block_size': 'None', 'evaluation.further_horizon': 128, 'evaluation.use_cache': True, 'evaluation.top_k': 'None', 'config': '../configs/rl_lavida_video_reversal.yaml', '_wandb': {'code_path': 'code/reward/rl_reward_video_reversal.py'}}
9
+ 2026-05-30 04:28:45,293 INFO MainThread:2189265 [wandb_init.py:init():892] starting backend
10
+ 2026-05-30 04:28:45,538 INFO MainThread:2189265 [wandb_init.py:init():895] sending inform_init request
11
+ 2026-05-30 04:28:45,543 INFO MainThread:2189265 [wandb_init.py:init():903] backend started and connected
12
+ 2026-05-30 04:28:45,545 INFO MainThread:2189265 [wandb_init.py:init():973] updated telemetry
13
+ 2026-05-30 04:28:45,548 INFO MainThread:2189265 [wandb_init.py:init():997] communicating run to backend with 90.0 second timeout
14
+ 2026-05-30 04:28:46,152 INFO MainThread:2189265 [wandb_init.py:init():1037] run resumed
15
+ 2026-05-30 04:28:46,157 INFO MainThread:2189265 [wandb_init.py:init():1042] starting run threads in backend
16
+ 2026-05-30 04:28:46,246 INFO MainThread:2189265 [wandb_run.py:_console_start():2524] atexit reg
17
+ 2026-05-30 04:28:46,246 INFO MainThread:2189265 [wandb_run.py:_redirect():2373] redirect: wrap_raw
18
+ 2026-05-30 04:28:46,246 INFO MainThread:2189265 [wandb_run.py:_redirect():2442] Wrapping output streams.
19
+ 2026-05-30 04:28:46,246 INFO MainThread:2189265 [wandb_run.py:_redirect():2465] Redirects installed.
20
+ 2026-05-30 04:28:46,250 INFO MainThread:2189265 [wandb_init.py:init():1082] run started, returning control to user process
21
+ 2026-05-30 04:28:46,369 INFO MainThread:2189265 [wandb_run.py:_finish():2291] finishing run shixi_runqing/rl_lavida_video_reversal/fmmkx1a5
22
+ 2026-05-30 04:28:46,370 INFO MainThread:2189265 [wandb_run.py:_atexit_cleanup():2490] got exitcode: 0
23
+ 2026-05-30 04:28:46,370 INFO MainThread:2189265 [wandb_run.py:_restore():2472] restore
24
+ 2026-05-30 04:28:46,370 INFO MainThread:2189265 [wandb_run.py:_restore():2478] restore done
25
+ 2026-05-30 04:28:46,550 INFO MainThread:2189265 [wandb_run.py:_footer_sync_info():3868] logging synced files
reward/wandb/run-20260530_042845-fmmkx1a5/run-fmmkx1a5.wandb ADDED
Binary file (6.1 kB). View file
 
reward/wandb/run-20260530_063905-fmmkx1a5/files/code/reward/rl_reward_video_reversal.py ADDED
@@ -0,0 +1,339 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import math_utils_v
3
+ import nest_asyncio
4
+ from concurrent.futures import ThreadPoolExecutor
5
+ import asyncio
6
+ import re
7
+ from termcolor import cprint
8
+ from omegaconf import MISSING
9
+ from omegaconf import DictConfig, ListConfig, OmegaConf
10
+ from typing import List, Union
11
+ import os
12
+ from collections import defaultdict
13
+ import sys
14
+
15
+ REPO_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
16
+ sys.path.insert(0, REPO_ROOT)
17
+
18
+ import wandb
19
+ from train.utils import flatten_omega_conf, ensure_wandb_run_id
20
+
21
+ def resolve_media_abs_path(sample: dict, dataset_root: str | None, media_type: str = "image") -> str | None:
22
+ p = sample.get(f"{media_type}_abs_path")
23
+ if p is None:
24
+ p = sample.get(media_type) or sample.get(f"{media_type}_path")
25
+ if p is None:
26
+ return None
27
+ if not os.path.isabs(p) and dataset_root:
28
+ p = os.path.join(dataset_root, p)
29
+ try:
30
+ return os.path.abspath(p)
31
+ except Exception:
32
+ return p
33
+
34
+ def get_config():
35
+ cli_conf = OmegaConf.from_cli()
36
+ yaml_conf = OmegaConf.load(cli_conf.config)
37
+ conf = OmegaConf.merge(yaml_conf, cli_conf)
38
+ return conf
39
+
40
+ def remove_endoftext(obj: Union[str, List[str]]) -> Union[str, List[str]]:
41
+ token = '<|endoftext|>'
42
+ if isinstance(obj, str):
43
+ return obj.replace(token, '')
44
+ if isinstance(obj, list):
45
+ return [s.replace(token, '') if isinstance(s, str) else s for s in obj]
46
+ raise TypeError("Expected str or list of str")
47
+
48
+
49
+ if __name__ == "__main__":
50
+
51
+ config = get_config()
52
+ run = None
53
+ if config.experiment.function == "train":
54
+ existing_run_id = OmegaConf.select(config, "wandb.run_id", default=None)
55
+ run_id = ensure_wandb_run_id(config)
56
+ resume_wandb_run = config.wandb.resume
57
+ if existing_run_id is None:
58
+ resume_wandb_run = False
59
+ wandb_config = {k: v for k, v in flatten_omega_conf(config, resolve=True)}
60
+ run = wandb.init(
61
+ project=config.experiment.project,
62
+ entity=config.wandb.get("entity", None),
63
+ id=run_id,
64
+ resume=resume_wandb_run,
65
+ config=wandb_config,
66
+ reinit=True,
67
+ name=config.experiment.project,
68
+ )
69
+
70
+ project_name = config.experiment.project
71
+
72
+ if config.experiment.current_epoch == 1:
73
+ pretrained_model = config.model.pretrained_model
74
+ else:
75
+ pretrained_model = "../" + project_name + "/ckpt/" + config.model.optimized_name
76
+
77
+ if config.experiment.function == "train":
78
+ shrink = config.training.shrink
79
+ dataset = config.dataset.train_dataset
80
+ outputs_name = "rl-" + pretrained_model.replace("/", ".") + "-" + dataset + f"-step{config.experiment.current_epoch}"
81
+
82
+ elif config.experiment.function == "evaluation":
83
+ dataset = config.evaluation.eval_dataset
84
+ outputs_name = "eval-" + pretrained_model.replace("/", ".") + "-" + dataset + f"-step{config.experiment.current_epoch}"
85
+
86
+ file_name = "../" + project_name + "/temp_data/outputs-" + outputs_name + ".json"
87
+
88
+ with open(file_name, 'r') as f:
89
+ data = json.load(f)
90
+
91
+ index_list = []
92
+ extracted_output_list = []
93
+ response_length_list = []
94
+ for i in range(len(data)):
95
+ data[i]["correctness"] = []
96
+ response_length_list += data[i]["response_length"]
97
+ index_list += [i] * len(data[i]["extracted_output"])
98
+ extracted_output_list += remove_endoftext(data[i]["extracted_output"])
99
+
100
+ nest_asyncio.apply()
101
+
102
+ async def get_correctness_all():
103
+ executor = ThreadPoolExecutor(max_workers=64)
104
+ tasks = []
105
+
106
+ for p in range(len(index_list)):
107
+ pred = extracted_output_list[p]
108
+ idx = index_list[p]
109
+
110
+ # 选择题正确性匹配逻辑
111
+ if config.dataset.data_type == "video_reverse" or config.evaluation.data_type == "video_reverse":
112
+ gt = data[idx].get("response", "")
113
+
114
+ async def mcq_check(p_str, g_str):
115
+ if p_str in g_str or g_str in p_str:
116
+ return True
117
+
118
+ p_str = str(p_str).strip()
119
+ g_str = str(g_str).strip()
120
+ p_match = re.search(r'^([A-Z])[\.\s]', p_str)
121
+ g_match = re.search(r'^([A-Z])[\.\s]', g_str)
122
+ if p_match and g_match:
123
+ return p_match.group(1) == g_match.group(1)
124
+ return g_str in p_str
125
+
126
+ tasks.append(mcq_check(pred, gt))
127
+ else:
128
+ gt = data[idx].get("ground_truth_answer", "")
129
+ tasks.append(math_utils_v.is_equal(pred, gt, executor))
130
+
131
+ return await asyncio.gather(*tasks)
132
+
133
+ correctness_all = asyncio.run(get_correctness_all())
134
+ for p, ok in enumerate(correctness_all):
135
+ index_i = index_list[p]
136
+ data[index_i]["correctness"].append(bool(ok))
137
+
138
+ # =========================================================================
139
+ # 核心新增逻辑:跨样本群组计算 T-GRPO 奖励 和 逆转无偏奖励
140
+ # =========================================================================
141
+
142
+ # 1. 按照 data_id 分组映射索引
143
+ grouped_data = defaultdict(lambda: {
144
+ "forward_False": [], "backward_False": [],
145
+ "forward_True": [], "backward_True": []
146
+ })
147
+
148
+ for i in range(len(data)):
149
+ d_id = data[i].get("data_id")
150
+ if d_id is None:
151
+ continue
152
+ r_type = data[i].get("reversal_type", "forward")
153
+ is_shuf = str(data[i].get("is_shuffled", False))
154
+ grouped_data[d_id][f"{r_type}_{is_shuf}"].append(i)
155
+
156
+ # 计算并应用群组奖励
157
+ all_temporal_bonuses = [] # 新增:记录所有的时序红利
158
+ all_unbiased_bonuses = [] # 新增:记录所有的无偏红利
159
+
160
+ # 2. 计算并应用群组奖励
161
+ for d_id, group in grouped_data.items():
162
+
163
+ def get_acc(key):
164
+ if not group[key]: return 0.0
165
+ idx = group[key][0]
166
+ corr = data[idx]["correctness"]
167
+ return sum(corr) / len(corr) if len(corr) > 0 else 0.0
168
+
169
+ # 获取四组情况的正确率
170
+ acc_f_ord = get_acc("forward_False")
171
+ acc_f_shuf = get_acc("forward_True")
172
+ acc_b_ord = get_acc("backward_False")
173
+ acc_b_shuf = get_acc("backward_True")
174
+
175
+ # T-GRPO 奖励: 顺序正确率 >= 0.8 * 打乱正确率,得 0.3
176
+ f_temporal_bonus = 0.3 if acc_f_ord >= 0.8 * acc_f_shuf else 0.0
177
+ b_temporal_bonus = 0.3 if acc_b_ord >= 0.8 * acc_b_shuf else 0.0
178
+
179
+ # 逆转无偏奖励: 正反正确率差值 <= 0.2,且都不是彻底全错,得 0.3
180
+ unbiased_bonus = 0.0
181
+ if abs(acc_f_ord - acc_b_ord) <= 0.2 and (acc_f_ord > 0.1 or acc_b_ord > 0.1):
182
+ unbiased_bonus = 0.3
183
+
184
+ # 新增:将当前组的奖励记录下来用于统计
185
+ if group["forward_False"]:
186
+ all_temporal_bonuses.append(f_temporal_bonus)
187
+ all_unbiased_bonuses.append(unbiased_bonus)
188
+ if group["backward_False"]:
189
+ all_temporal_bonuses.append(b_temporal_bonus)
190
+ all_unbiased_bonuses.append(unbiased_bonus)
191
+
192
+ # 仅将奖励发放给 顺序组(is_shuffled=False) 中回答正确的样本
193
+ def apply_bonus(key, temporal_bonus, unbiased_bonus):
194
+ if not group[key]: return
195
+ idx = group[key][0]
196
+ raw_rewards = []
197
+ for is_correct in data[idx]["correctness"]:
198
+ if is_correct:
199
+ # 基础分 1.0 + 时序红利 + 无偏红利
200
+ raw_rewards.append(1.0 + temporal_bonus + unbiased_bonus)
201
+ else:
202
+ raw_rewards.append(0.0)
203
+ data[idx]["raw_rewards"] = raw_rewards
204
+
205
+ apply_bonus("forward_False", f_temporal_bonus, unbiased_bonus)
206
+ apply_bonus("backward_False", b_temporal_bonus, unbiased_bonus)
207
+
208
+ # =========================================================================
209
+
210
+ def z_score_normalize(lst):
211
+ mean = sum(lst) / len(lst) if len(lst) > 0 else 0.0
212
+ std = (sum((x - mean) ** 2 for x in lst) / len(lst)) ** 0.5 if len(lst) > 0 else 0.0
213
+ if std == 0:
214
+ return [0 for _ in lst]
215
+ return [(x - mean) / std for x in lst]
216
+
217
+ final_data = []
218
+ ordered_correctness = [] # 用于日志打印,不记录被打乱的实验数据
219
+
220
+ for i in range(len(data)):
221
+ # 丢弃打乱的对照组,它们仅仅用于上面的计算参照,不进入强化学习
222
+ if data[i].get("is_shuffled", False):
223
+ continue
224
+
225
+ ordered_correctness.extend(data[i]["correctness"])
226
+
227
+ # 如果部分数据没有走过分组逻辑,默认回退为原始 correct 分数
228
+ raw_rewards = data[i].get("raw_rewards", [float(c) for c in data[i]["correctness"]])
229
+ lengths = data[i]["response_length"]
230
+
231
+ # 长度惩罚
232
+ if config.reward.strict_len_check:
233
+ for j in range(len(lengths)):
234
+ if OmegaConf.select(config, "rollout.max_gen_length", default=MISSING) is not MISSING and lengths[j] >= config.rollout.max_gen_length - 5:
235
+ raw_rewards[j] = 0.0
236
+ if OmegaConf.select(config, "rollout.max_token", default=MISSING) is not MISSING and lengths[j] >= config.rollout.max_token - 5:
237
+ raw_rewards[j] = 0.0
238
+
239
+ # Z-Score 优势归一化
240
+ rewards = z_score_normalize(raw_rewards)
241
+ data[i]["rewards"] = rewards
242
+
243
+ if config.experiment.function == "train":
244
+ proportion = sum(data[i]["correctness"]) / len(data[i]["correctness"]) if len(data[i]["correctness"]) > 0 else 0.0
245
+ # 如果全部回答都是错的,或者全是对的(无差别区分度),则剔除该样本
246
+ if proportion > 0.95 or proportion < 0.05:
247
+ continue
248
+
249
+ for j in range(len(rewards)):
250
+ data_i = {}
251
+ data_i["prompt"] = data[i]["prompt"]
252
+ data_i["reward"] = rewards[j]
253
+ data_i["response"] = data[i]["full_output"][j]
254
+ data_i["step_map"] = data[i]["step_map"][j]
255
+
256
+ # 保留其他需要的上下文 ID
257
+ data_i["data_id"] = data[i].get("data_id")
258
+ data_i["reversal_type"] = data[i].get("reversal_type")
259
+
260
+ if "image_token_ids" in data[i]:
261
+ data_i["image_token_ids"] = data[i]["image_token_ids"]
262
+
263
+ p_video_abs = resolve_media_abs_path(data[i], config.dataset.get("image_root", None), "video")
264
+ if p_video_abs is not None:
265
+ data_i["video_abs_path"] = p_video_abs
266
+
267
+ p_image_abs = resolve_media_abs_path(data[i], config.dataset.get("image_root", None), "image")
268
+ if p_image_abs is not None:
269
+ data_i["image_abs_path"] = p_image_abs
270
+
271
+ final_data.append(data_i)
272
+
273
+ if config.experiment.function == "evaluation":
274
+ data[i]["step_map"] = []
275
+
276
+ if config.experiment.function == "train":
277
+ with open("../" + project_name + "/temp_data/" + config.dataset.optimization_data + ".json", "w", encoding="utf-8") as f:
278
+ json.dump(final_data, f, indent=2, ensure_ascii=False)
279
+
280
+
281
+ os.makedirs(os.path.dirname(file_name), exist_ok=True)
282
+ with open(file_name, "w", encoding="utf-8") as f:
283
+ json.dump(data, f, indent=2, ensure_ascii=False)
284
+
285
+
286
+ outputs_result_name = "../" + project_name + "/results/results-" + outputs_name + ".txt"
287
+ os.makedirs(os.path.dirname(outputs_result_name), exist_ok=True)
288
+ with open(outputs_result_name, "a") as f:
289
+ # Save + print
290
+ def save_and_print(text):
291
+ cprint("\n\n\n" + text, color="green")
292
+ f.write(text + "\n")
293
+
294
+ # 只计算有序组(有效学习组)的准确率来作为监控指标
295
+ acc = (sum(ordered_correctness)/len(ordered_correctness)) if len(ordered_correctness) > 0 else float("nan")
296
+ avg_len = sum(response_length_list)/len(response_length_list)
297
+
298
+ # 新增:计算 T-GRPO 和 Unbiased 奖励的平均值
299
+ avg_temp = sum(all_temporal_bonuses)/len(all_temporal_bonuses) if all_temporal_bonuses else 0.0
300
+ avg_unbias = sum(all_unbiased_bonuses)/len(all_unbiased_bonuses) if all_unbiased_bonuses else 0.0
301
+
302
+ output_text = f"train step: {config.experiment.current_epoch} "
303
+ if config.experiment.function == "train":
304
+ if config.model.model_base != "sdar" and config.model.model_base != "trado":
305
+ output_text = output_text + f"remasking_strategy: {config.rollout.remasking_strategy} block_size: {config.rollout.block_size} acc: {acc:.4f} avg length: {avg_len:.2f}"
306
+ else:
307
+ output_text = output_text + f"remasking_strategy: {config.rollout.remasking_strategy} top_k: {config.rollout.top_k} acc: {acc:.4f} avg length: {avg_len:.2f}"
308
+ else:
309
+ if config.model.model_base != "sdar" and config.model.model_base != "trado":
310
+ output_text = output_text + f"remasking_strategy: {config.evaluation.remasking_strategy} block_size: {config.evaluation.block_size} acc: {acc:.4f} avg length: {avg_len:.2f}"
311
+ else:
312
+ output_text = output_text + f"remasking_strategy: {config.evaluation.remasking_strategy} top_k: {config.evaluation.top_k} acc: {acc:.4f} avg length: {avg_len:.2f}"
313
+ save_and_print(output_text)
314
+
315
+ if config.experiment.function == "train":
316
+ csv_file_path = f"../{project_name}/results/all_rewards.csv"
317
+
318
+ # 如果是第1个 epoch/step,或者是新文件,就先写入表头
319
+ write_header = not os.path.exists(csv_file_path) or config.experiment.current_epoch == 1
320
+
321
+ with open(csv_file_path, "a", encoding="utf-8") as f_csv:
322
+ if write_header:
323
+ f_csv.write("step,acc_reward,t_grpo_reward,unbiased_reward,response_length\n")
324
+
325
+ # 按行追加当前 step 的数据
326
+ f_csv.write(f"{config.experiment.current_epoch},{acc:.4f},{avg_temp:.4f},{avg_unbias:.4f},{avg_len:.2f}\n")
327
+
328
+ if run is not None:
329
+ wandb.log(
330
+ {
331
+ "reward/acc": acc,
332
+ "reward/t_grpo_bonus": avg_temp,
333
+ "reward/unbiased_bonus": avg_unbias,
334
+ "reward/avg_response_length": avg_len,
335
+ "reward/train_step": config.experiment.current_epoch,
336
+ },
337
+ step=config.experiment.current_epoch,
338
+ )
339
+ wandb.finish()
reward/wandb/run-20260530_063905-fmmkx1a5/files/config.yaml ADDED
@@ -0,0 +1,281 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ _wandb:
2
+ value:
3
+ cli_version: 0.25.0
4
+ code_path: code/reward/rl_reward_video_reversal.py
5
+ e:
6
+ cabjrf3uennqcbtqsnxq22932fx3o8bo:
7
+ args:
8
+ - config=../configs/rl_lavida_video_reversal.yaml
9
+ - wandb.run_id=fmmkx1a5
10
+ - experiment.function=train
11
+ - evaluation.block_size=None
12
+ - evaluation.top_k=None
13
+ - evaluation.remasking_strategy=None
14
+ - experiment.current_epoch=10
15
+ codePath: reward/rl_reward_video_reversal.py
16
+ codePathLocal: rl_reward_video_reversal.py
17
+ cpu_count: 96
18
+ cpu_count_logical: 192
19
+ cudaVersion: "12.8"
20
+ disk:
21
+ /:
22
+ total: "806578724864"
23
+ used: "625483096064"
24
+ email: shixi_runqing@staff.weibo.com
25
+ executable: /data8/runqing/miniconda/envs/dllm-rl/bin/python
26
+ git:
27
+ commit: 10b4fd1cba83e4496c20585dc2fd01dc02f20255
28
+ remote: https://gitclone.com/github.com/Gen-Verse/dLLM-RL.git
29
+ gpu: NVIDIA H800
30
+ gpu_count: 8
31
+ gpu_nvidia:
32
+ - architecture: Hopper
33
+ cudaCores: 16896
34
+ memoryTotal: "85520809984"
35
+ name: NVIDIA H800
36
+ uuid: GPU-f768b684-b9ce-23a2-81a6-af16161cf9be
37
+ - architecture: Hopper
38
+ cudaCores: 16896
39
+ memoryTotal: "85520809984"
40
+ name: NVIDIA H800
41
+ uuid: GPU-2f1e1a7b-76a2-e00b-3dc5-79add059b8f9
42
+ - architecture: Hopper
43
+ cudaCores: 16896
44
+ memoryTotal: "85520809984"
45
+ name: NVIDIA H800
46
+ uuid: GPU-33d7b8d4-af9c-4719-9686-1712e9694cd6
47
+ - architecture: Hopper
48
+ cudaCores: 16896
49
+ memoryTotal: "85520809984"
50
+ name: NVIDIA H800
51
+ uuid: GPU-0b797f66-23ec-d0ff-1c65-fb34b9064e53
52
+ - architecture: Hopper
53
+ cudaCores: 16896
54
+ memoryTotal: "85520809984"
55
+ name: NVIDIA H800
56
+ uuid: GPU-ad9e9c73-0f31-a8b3-e8f7-7be19f5338ad
57
+ - architecture: Hopper
58
+ cudaCores: 16896
59
+ memoryTotal: "85520809984"
60
+ name: NVIDIA H800
61
+ uuid: GPU-f531028f-805c-3301-61b3-0c46329dc9c0
62
+ - architecture: Hopper
63
+ cudaCores: 16896
64
+ memoryTotal: "85520809984"
65
+ name: NVIDIA H800
66
+ uuid: GPU-2775489f-18c8-2328-8829-c46238575379
67
+ - architecture: Hopper
68
+ cudaCores: 16896
69
+ memoryTotal: "85520809984"
70
+ name: NVIDIA H800
71
+ uuid: GPU-1dd27781-c1f3-d980-6f18-fe8a778b69fd
72
+ host: b1301b38c75f
73
+ memory:
74
+ total: "2164113764352"
75
+ os: Linux-5.15.0-144-generic-x86_64-with-glibc2.35
76
+ program: /data4/runqing/dLLM-RL/reward/rl_reward_video_reversal.py
77
+ python: CPython 3.10.19
78
+ root: /data4/runqing/dLLM-RL/reward
79
+ startedAt: "2026-05-29T22:39:05.986619Z"
80
+ writerId: cabjrf3uennqcbtqsnxq22932fx3o8bo
81
+ m: []
82
+ python_version: 3.10.19
83
+ t:
84
+ "1":
85
+ - 1
86
+ - 41
87
+ "2":
88
+ - 1
89
+ - 41
90
+ "3":
91
+ - 2
92
+ - 5
93
+ - 13
94
+ - 14
95
+ - 16
96
+ - 61
97
+ - 62
98
+ "4": 3.10.19
99
+ "5": 0.25.0
100
+ "10":
101
+ - 20
102
+ "12": 0.25.0
103
+ "13": linux-x86_64
104
+ config:
105
+ value: ../configs/rl_lavida_video_reversal.yaml
106
+ dataset.data_type:
107
+ value: video_reverse
108
+ dataset.optimization_data:
109
+ value: rl_data
110
+ dataset.train_dataset:
111
+ value: video_reversal_rl_train
112
+ evaluation.batch_size:
113
+ value: 1
114
+ evaluation.block_size:
115
+ value: None
116
+ evaluation.data_type:
117
+ value: video_reverse
118
+ evaluation.dynamic_threshold:
119
+ value: 0.9
120
+ evaluation.eval_dataset:
121
+ value: video_reversal_rl_eval
122
+ evaluation.further_horizon:
123
+ value: 128
124
+ evaluation.if_eval:
125
+ value: false
126
+ evaluation.max_gen_length:
127
+ value: 128
128
+ evaluation.num_response_per_task:
129
+ value: 3
130
+ evaluation.remasking_strategy:
131
+ value: None
132
+ evaluation.remasking_strategy.0:
133
+ value: low_confidence_static
134
+ evaluation.remasking_strategy.1:
135
+ value: low_confidence_dynamic
136
+ evaluation.steps:
137
+ value: 128
138
+ evaluation.target:
139
+ value: confidence
140
+ evaluation.temperature:
141
+ value: 0.1
142
+ evaluation.top_k:
143
+ value: None
144
+ evaluation.use_cache:
145
+ value: true
146
+ execute.num_chunk:
147
+ value: 128
148
+ experiment.current_epoch:
149
+ value: 10
150
+ experiment.deepspeed_file:
151
+ value: 1_node_8_gpus_deepspeed_zero2
152
+ experiment.eval_every:
153
+ value: 5
154
+ experiment.function:
155
+ value: train
156
+ experiment.logging_dir:
157
+ value: rl_lavida_video_reversal/logs
158
+ experiment.node_index:
159
+ value: 0
160
+ experiment.num_node:
161
+ value: 1
162
+ experiment.project:
163
+ value: rl_lavida_video_reversal
164
+ experiment.save_every:
165
+ value: 10
166
+ experiment.start_from_scratch:
167
+ value: true
168
+ experiment.total_step:
169
+ value: 30
170
+ lr_scheduler.params.learning_rate:
171
+ value: 1e-06
172
+ lr_scheduler.params.min_lr_scale:
173
+ value: 1
174
+ lr_scheduler.params.warmup_steps:
175
+ value: 0
176
+ lr_scheduler.scheduler:
177
+ value: cosine
178
+ model.image_resolution:
179
+ value: 512
180
+ model.model_base:
181
+ value: lavida
182
+ model.optimized_name:
183
+ value: optimized
184
+ model.pretrained_model:
185
+ value: /data4/runqing/dLLM-RL/sft_lavida_video_reversal/ckpt/optimized
186
+ model.vq_model_path:
187
+ value: /data4/runqing/hf/magvitv2
188
+ optimizer.name:
189
+ value: adamw
190
+ optimizer.params.beta1:
191
+ value: 0.9
192
+ optimizer.params.beta2:
193
+ value: 0.999
194
+ optimizer.params.epsilon:
195
+ value: 1e-08
196
+ optimizer.params.learning_rate:
197
+ value: 1e-06
198
+ optimizer.params.scale_lr:
199
+ value: false
200
+ optimizer.params.weight_decay:
201
+ value: 0
202
+ reward.answer_must_in_box:
203
+ value: true
204
+ reward.strict_len_check:
205
+ value: false
206
+ rollout.batch_size:
207
+ value: 1
208
+ rollout.block_size:
209
+ value: 32
210
+ rollout.dynamic_threshold:
211
+ value: 0.9
212
+ rollout.further_horizon:
213
+ value: 128
214
+ rollout.max_gen_length:
215
+ value: 128
216
+ rollout.num_response_per_task:
217
+ value: 8
218
+ rollout.num_task_per_step:
219
+ value: 128
220
+ rollout.remasking_strategy:
221
+ value: low_confidence_dynamic
222
+ rollout.steps:
223
+ value: 128
224
+ rollout.target:
225
+ value: confidence
226
+ rollout.temperature:
227
+ value: 0.8
228
+ rollout.use_cache:
229
+ value: true
230
+ system.HF_HOME:
231
+ value: null
232
+ system.HTTP_PROXY:
233
+ value: null
234
+ system.base_dir:
235
+ value: /data4/runqing/dLLM-RL
236
+ system.env_name:
237
+ value: /data8/runqing/miniconda/envs/dllm-rl
238
+ system.envs_dir:
239
+ value: /data8/runqing/miniconda/envs/dllm-rl
240
+ training.batch_size_lm:
241
+ value: 1
242
+ training.beta:
243
+ value: 0.01
244
+ training.enable_tf32:
245
+ value: true
246
+ training.eps:
247
+ value: 0.2
248
+ training.gradient_accumulation_steps:
249
+ value: 2
250
+ training.lower_p:
251
+ value: 0.35
252
+ training.mask_times_per_sample:
253
+ value: 2
254
+ training.max_gen_length:
255
+ value: 128
256
+ training.max_grad_norm:
257
+ value: 1
258
+ training.max_prompt_len:
259
+ value: 512
260
+ training.method:
261
+ value: random_masking
262
+ training.mixed_precision:
263
+ value: bf16
264
+ training.num_train_epochs:
265
+ value: 1
266
+ training.post_num:
267
+ value: 1
268
+ training.seed:
269
+ value: 10086
270
+ training.shrink:
271
+ value: 8
272
+ training.upper_p:
273
+ value: 0.9
274
+ training.use_kl_estimator_k3:
275
+ value: true
276
+ wandb.entity:
277
+ value: null
278
+ wandb.resume:
279
+ value: auto
280
+ wandb.run_id:
281
+ value: fmmkx1a5
reward/wandb/run-20260530_063905-fmmkx1a5/files/output.log ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+
2
+
3
+
4
+ train step: 10 remasking_strategy: low_confidence_dynamic block_size: 32 acc: 0.5078 avg length: 125.81
reward/wandb/run-20260530_063905-fmmkx1a5/files/requirements.txt ADDED
@@ -0,0 +1,157 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ transformers==4.52.4
2
+ nvidia-nvtx-cu12==12.4.127
3
+ deepspeed==0.18.6
4
+ typing-inspection==0.4.2
5
+ scipy==1.15.3
6
+ MarkupSafe==3.0.3
7
+ nvidia-cuda-runtime-cu12==12.4.127
8
+ detoxify==0.5.2
9
+ yarl==1.22.0
10
+ tornado==6.5.4
11
+ nvidia-curand-cu12==10.3.5.147
12
+ nest-asyncio==1.6.0
13
+ safetensors==0.7.0
14
+ async-timeout==5.0.1
15
+ typing_extensions==4.15.0
16
+ asttokens==3.0.1
17
+ cuda-python==13.1.1
18
+ executing==2.2.1
19
+ nvidia-cudnn-frontend==1.18.0
20
+ comm==0.2.3
21
+ tokenizers==0.21.4
22
+ six==1.17.0
23
+ Pygments==2.19.2
24
+ nvidia-cusparselt-cu12==0.6.2
25
+ apache-tvm-ffi==0.1.8.post2
26
+ flash_attn==2.7.4.post1
27
+ tqdm==4.67.3
28
+ tensorboard-data-server==0.7.2
29
+ annotated-types==0.7.0
30
+ math-verify==0.9.0
31
+ idna==3.11
32
+ regex==2026.1.15
33
+ nvidia-cutlass-dsl-libs-base==4.4.0
34
+ flashinfer-python==0.6.3
35
+ click==8.3.1
36
+ pytz==2025.2
37
+ wheel==0.46.3
38
+ ipykernel==7.2.0
39
+ stack-data==0.6.3
40
+ absl-py==2.4.0
41
+ wandb==0.25.0
42
+ pandas==2.3.3
43
+ termcolor==3.3.0
44
+ sympy==1.13.1
45
+ joblib==1.5.3
46
+ prompt_toolkit==3.0.52
47
+ attrs==25.4.0
48
+ nvidia-cusolver-cu12==11.6.1.9
49
+ xxhash==3.6.0
50
+ aiohappyeyeballs==2.6.1
51
+ python-dateutil==2.9.0.post0
52
+ frozenlist==1.8.0
53
+ nvidia-ml-py==13.590.48
54
+ multiprocess==0.70.18
55
+ decorator==5.2.1
56
+ cuda-pathfinder==1.3.4
57
+ multidict==6.7.1
58
+ pure_eval==0.2.3
59
+ nvidia-cufft-cu12==11.2.1.3
60
+ omegaconf==2.3.0
61
+ PyYAML==6.0.3
62
+ debugpy==1.8.20
63
+ psutil==7.2.2
64
+ ninja==1.13.0
65
+ nvidia-cublas-cu12==12.4.5.8
66
+ triton==3.2.0
67
+ antlr4-python3-runtime==4.9.3
68
+ peft==0.18.1
69
+ aiosignal==1.4.0
70
+ accelerate==1.12.0
71
+ liger_kernel==0.7.0
72
+ anyio==4.12.1
73
+ decord==0.6.0
74
+ h11==0.16.0
75
+ urllib3==2.6.3
76
+ wcwidth==0.6.0
77
+ networkx==3.4.2
78
+ huggingface_hub==0.36.2
79
+ tzdata==2025.3
80
+ xformers==0.0.29.post3
81
+ tabulate==0.9.0
82
+ certifi==2026.1.4
83
+ tensorboard==2.20.0
84
+ matplotlib-inline==0.2.1
85
+ pip==26.0.1
86
+ smmap==5.0.2
87
+ nvidia-cuda-cupti-cu12==12.4.127
88
+ Markdown==3.10.2
89
+ nvidia-nccl-cu12==2.21.5
90
+ aiohttp==3.13.3
91
+ scikit-learn==1.7.2
92
+ nvidia-cutlass-dsl==4.4.0
93
+ setuptools==82.0.0
94
+ jupyter_core==5.9.1
95
+ asyncio==4.0.0
96
+ einops==0.8.2
97
+ pydantic==2.12.5
98
+ av==16.1.0
99
+ protobuf==6.33.5
100
+ evaluate==0.4.6
101
+ Jinja2==3.1.6
102
+ exceptiongroup==1.3.1
103
+ ipython==8.38.0
104
+ sentry-sdk==2.53.0
105
+ httpx==0.28.1
106
+ msgpack==1.1.2
107
+ platformdirs==4.9.2
108
+ hjson==3.1.0
109
+ torchvision==0.21.0
110
+ parso==0.8.6
111
+ cuda-bindings==13.1.1
112
+ pexpect==4.9.0
113
+ threadpoolctl==3.6.0
114
+ pyarrow==23.0.1
115
+ jedi==0.19.2
116
+ nvidia-cuda-nvrtc-cu12==12.4.127
117
+ Werkzeug==3.1.5
118
+ fsspec==2025.10.0
119
+ pydantic_core==2.41.5
120
+ GitPython==3.1.46
121
+ propcache==0.4.1
122
+ mpmath==1.3.0
123
+ nvidia-nvjitlink-cu12==12.4.127
124
+ nvidia-cusparse-cu12==12.3.1.170
125
+ hf-xet==1.2.0
126
+ charset-normalizer==3.4.4
127
+ dill==0.4.0
128
+ datasets==4.5.0
129
+ py-cpuinfo==9.0.0
130
+ sentencepiece==0.2.1
131
+ latex2sympy2_extended==1.11.0
132
+ jupyter_client==8.8.0
133
+ pyzmq==27.1.0
134
+ numpy==2.2.6
135
+ gitdb==4.0.12
136
+ grpcio==1.78.0
137
+ packaging==26.0
138
+ requests==2.32.5
139
+ nvidia-cudnn-cu12==9.1.0.70
140
+ httpcore==1.0.9
141
+ traitlets==5.14.3
142
+ filelock==3.24.2
143
+ ptyprocess==0.7.0
144
+ pillow==12.1.1
145
+ torch==2.6.0
146
+ more-itertools==10.8.0
147
+ wheel==0.46.3
148
+ jaraco.text==4.0.0
149
+ zipp==3.23.0
150
+ autocommand==2.2.2
151
+ jaraco.context==6.1.0
152
+ jaraco.functools==4.4.0
153
+ tomli==2.4.0
154
+ backports.tarfile==1.2.0
155
+ importlib_metadata==8.7.1
156
+ platformdirs==4.4.0
157
+ packaging==26.0
reward/wandb/run-20260530_063905-fmmkx1a5/files/wandb-metadata.json ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "os": "Linux-5.15.0-144-generic-x86_64-with-glibc2.35",
3
+ "python": "CPython 3.10.19",
4
+ "startedAt": "2026-05-29T22:39:05.986619Z",
5
+ "args": [
6
+ "config=../configs/rl_lavida_video_reversal.yaml",
7
+ "wandb.run_id=fmmkx1a5",
8
+ "experiment.function=train",
9
+ "evaluation.block_size=None",
10
+ "evaluation.top_k=None",
11
+ "evaluation.remasking_strategy=None",
12
+ "experiment.current_epoch=10"
13
+ ],
14
+ "program": "/data4/runqing/dLLM-RL/reward/rl_reward_video_reversal.py",
15
+ "codePath": "reward/rl_reward_video_reversal.py",
16
+ "codePathLocal": "rl_reward_video_reversal.py",
17
+ "git": {
18
+ "remote": "https://gitclone.com/github.com/Gen-Verse/dLLM-RL.git",
19
+ "commit": "10b4fd1cba83e4496c20585dc2fd01dc02f20255"
20
+ },
21
+ "email": "shixi_runqing@staff.weibo.com",
22
+ "root": "/data4/runqing/dLLM-RL/reward",
23
+ "host": "b1301b38c75f",
24
+ "executable": "/data8/runqing/miniconda/envs/dllm-rl/bin/python",
25
+ "cpu_count": 96,
26
+ "cpu_count_logical": 192,
27
+ "gpu": "NVIDIA H800",
28
+ "gpu_count": 8,
29
+ "disk": {
30
+ "/": {
31
+ "total": "806578724864",
32
+ "used": "625483096064"
33
+ }
34
+ },
35
+ "memory": {
36
+ "total": "2164113764352"
37
+ },
38
+ "gpu_nvidia": [
39
+ {
40
+ "name": "NVIDIA H800",
41
+ "memoryTotal": "85520809984",
42
+ "cudaCores": 16896,
43
+ "architecture": "Hopper",
44
+ "uuid": "GPU-f768b684-b9ce-23a2-81a6-af16161cf9be"
45
+ },
46
+ {
47
+ "name": "NVIDIA H800",
48
+ "memoryTotal": "85520809984",
49
+ "cudaCores": 16896,
50
+ "architecture": "Hopper",
51
+ "uuid": "GPU-2f1e1a7b-76a2-e00b-3dc5-79add059b8f9"
52
+ },
53
+ {
54
+ "name": "NVIDIA H800",
55
+ "memoryTotal": "85520809984",
56
+ "cudaCores": 16896,
57
+ "architecture": "Hopper",
58
+ "uuid": "GPU-33d7b8d4-af9c-4719-9686-1712e9694cd6"
59
+ },
60
+ {
61
+ "name": "NVIDIA H800",
62
+ "memoryTotal": "85520809984",
63
+ "cudaCores": 16896,
64
+ "architecture": "Hopper",
65
+ "uuid": "GPU-0b797f66-23ec-d0ff-1c65-fb34b9064e53"
66
+ },
67
+ {
68
+ "name": "NVIDIA H800",
69
+ "memoryTotal": "85520809984",
70
+ "cudaCores": 16896,
71
+ "architecture": "Hopper",
72
+ "uuid": "GPU-ad9e9c73-0f31-a8b3-e8f7-7be19f5338ad"
73
+ },
74
+ {
75
+ "name": "NVIDIA H800",
76
+ "memoryTotal": "85520809984",
77
+ "cudaCores": 16896,
78
+ "architecture": "Hopper",
79
+ "uuid": "GPU-f531028f-805c-3301-61b3-0c46329dc9c0"
80
+ },
81
+ {
82
+ "name": "NVIDIA H800",
83
+ "memoryTotal": "85520809984",
84
+ "cudaCores": 16896,
85
+ "architecture": "Hopper",
86
+ "uuid": "GPU-2775489f-18c8-2328-8829-c46238575379"
87
+ },
88
+ {
89
+ "name": "NVIDIA H800",
90
+ "memoryTotal": "85520809984",
91
+ "cudaCores": 16896,
92
+ "architecture": "Hopper",
93
+ "uuid": "GPU-1dd27781-c1f3-d980-6f18-fe8a778b69fd"
94
+ }
95
+ ],
96
+ "cudaVersion": "12.8",
97
+ "writerId": "cabjrf3uennqcbtqsnxq22932fx3o8bo"
98
+ }