Views
No views yet
scienceworld_single_warmstart_ms100_1k_seed0 (seed 0).| folder | step | val test_score | val success_rate | note |
|---|---|---|---|---|
single_expert_warmstart/final_step1000/ | 1000 | 5.11 | 0.271 | final policy (1000 RL steps) |
single_expert_warmstart/best_step140/ | 140 | 5.50 | 0.314 | best checkpoint by val/success_rate |
val/text/test_score is the mean ScienceWorld raw score / 10 over a fixed, stratified dev
validation set (140 episodes, all 30 task types, greedy decode). So test_score ≈ 5.1 means an
average raw score of ~51/100; success_rate is the fraction of episodes fully solved (raw
score = 100).Note: intermediate checkpoints (e.g. the test_score peaks at steps 210 / 510, both ~5.6–5.7) were not retained; only the final and the best-by-success-rate checkpoints are available.
env.getGoldActionSequence(); ~6k (prompt, <think>…</think><action>…</action>) pairs;
3 epochs). Cold-start RL never solves a task (val success ≈ 0), so the warm start is
required to give GiGPO a learning signal.adv_estimator=gigpo, γ = 0.95), lr = 3e-6, 1000 steps.
train_batch_size = 8, GiGPO group rollout.n = 8, ppo_mini_batch_size = 64max_steps = 100, history_length = 2 (last 2 obs+action pairs in
the prompt). Reward = per-step ScienceWorld score delta / 10 (dense).1from peft import PeftModel
2from transformers import AutoModelForCausalLM, AutoTokenizer
3
4base = "Qwen/Qwen2.5-1.5B-Instruct"
5model = AutoModelForCausalLM.from_pretrained(base, torch_dtype="bfloat16", device_map="auto")
6tok = AutoTokenizer.from_pretrained(base)
7model = PeftModel.from_pretrained(
8 model,
9 "efficient-moe-agent-project/scienceworld",
10 subfolder="single_expert_warmstart/best_step140", # or final_step1000
11)