Add files using upload-large-folder tool
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- reward/wandb/run-20260529_194707-o3l1vpla/files/code/reward/rl_reward_video_reversal.py +339 -0
- reward/wandb/run-20260529_194707-o3l1vpla/files/config.yaml +273 -0
- reward/wandb/run-20260529_194707-o3l1vpla/files/output.log +4 -0
- reward/wandb/run-20260529_194707-o3l1vpla/files/requirements.txt +157 -0
- reward/wandb/run-20260529_194707-o3l1vpla/files/wandb-metadata.json +98 -0
- reward/wandb/run-20260529_194707-o3l1vpla/files/wandb-summary.json +1 -0
- reward/wandb/run-20260529_194707-o3l1vpla/logs/debug-core.log +18 -0
- reward/wandb/run-20260529_194707-o3l1vpla/logs/debug-internal.log +27 -0
- reward/wandb/run-20260529_194707-o3l1vpla/logs/debug.log +24 -0
- reward/wandb/run-20260529_194707-o3l1vpla/run-o3l1vpla.wandb +0 -0
- reward/wandb/run-20260529_221548-fmmkx1a5/files/wandb-metadata.json +98 -0
- reward/wandb/run-20260529_221548-fmmkx1a5/logs/debug-core.log +18 -0
- reward/wandb/run-20260529_221548-fmmkx1a5/logs/debug-internal.log +28 -0
- reward/wandb/run-20260529_221548-fmmkx1a5/logs/debug.log +25 -0
- reward/wandb/run-20260529_221548-fmmkx1a5/run-fmmkx1a5.wandb +0 -0
- reward/wandb/run-20260530_001305-fmmkx1a5/files/code/reward/rl_reward_video_reversal.py +339 -0
- reward/wandb/run-20260530_001305-fmmkx1a5/files/config.yaml +281 -0
- reward/wandb/run-20260530_001305-fmmkx1a5/files/output.log +4 -0
- reward/wandb/run-20260530_001305-fmmkx1a5/files/requirements.txt +157 -0
- reward/wandb/run-20260530_001305-fmmkx1a5/files/wandb-metadata.json +98 -0
- reward/wandb/run-20260530_001305-fmmkx1a5/files/wandb-summary.json +1 -0
- reward/wandb/run-20260530_001305-fmmkx1a5/logs/debug-core.log +18 -0
- reward/wandb/run-20260530_001305-fmmkx1a5/logs/debug-internal.log +28 -0
- reward/wandb/run-20260530_001305-fmmkx1a5/logs/debug.log +25 -0
- reward/wandb/run-20260530_001305-fmmkx1a5/run-fmmkx1a5.wandb +0 -0
- reward/wandb/run-20260530_022315-fmmkx1a5/files/code/reward/rl_reward_video_reversal.py +339 -0
- reward/wandb/run-20260530_022315-fmmkx1a5/files/config.yaml +281 -0
- reward/wandb/run-20260530_022315-fmmkx1a5/files/output.log +4 -0
- reward/wandb/run-20260530_022315-fmmkx1a5/files/requirements.txt +157 -0
- reward/wandb/run-20260530_022315-fmmkx1a5/files/wandb-metadata.json +98 -0
- reward/wandb/run-20260530_022315-fmmkx1a5/files/wandb-summary.json +1 -0
- reward/wandb/run-20260530_022315-fmmkx1a5/logs/debug-core.log +18 -0
- reward/wandb/run-20260530_022315-fmmkx1a5/logs/debug-internal.log +28 -0
- reward/wandb/run-20260530_022315-fmmkx1a5/logs/debug.log +25 -0
- reward/wandb/run-20260530_022315-fmmkx1a5/run-fmmkx1a5.wandb +0 -0
- reward/wandb/run-20260530_042845-fmmkx1a5/files/code/reward/rl_reward_video_reversal.py +339 -0
- reward/wandb/run-20260530_042845-fmmkx1a5/files/config.yaml +281 -0
- reward/wandb/run-20260530_042845-fmmkx1a5/files/output.log +4 -0
- reward/wandb/run-20260530_042845-fmmkx1a5/files/requirements.txt +157 -0
- reward/wandb/run-20260530_042845-fmmkx1a5/files/wandb-metadata.json +98 -0
- reward/wandb/run-20260530_042845-fmmkx1a5/files/wandb-summary.json +1 -0
- reward/wandb/run-20260530_042845-fmmkx1a5/logs/debug-core.log +18 -0
- reward/wandb/run-20260530_042845-fmmkx1a5/logs/debug-internal.log +28 -0
- reward/wandb/run-20260530_042845-fmmkx1a5/logs/debug.log +25 -0
- reward/wandb/run-20260530_042845-fmmkx1a5/run-fmmkx1a5.wandb +0 -0
- reward/wandb/run-20260530_063905-fmmkx1a5/files/code/reward/rl_reward_video_reversal.py +339 -0
- reward/wandb/run-20260530_063905-fmmkx1a5/files/config.yaml +281 -0
- reward/wandb/run-20260530_063905-fmmkx1a5/files/output.log +4 -0
- reward/wandb/run-20260530_063905-fmmkx1a5/files/requirements.txt +157 -0
- 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 |
+
}
|