Downloads · 30 days
0
AlexChen1997/fedagent-alfworld-ppo-uniform-1gpu-qwen2.5-1.5b
fedagent-alfworld-ppo-uniform-1gpu-qwen2.5-1.5b is a reinforcement learning model from AlexChen1997. Use it for the reinforcement learning task on the model card, and read the license before you ship it in a product. It is set up for transformers.
Federated PPO on ALFWorld, 100 clients, 2 sampled per round, E=3 local epochs, planned 70 rounds, baseseed: 42. The run stopped at round 54 when its allocation ended; these are the checkpoints that survived it, publis…
Downloads · 30 days
0
Access
Public
Updated Sep 21, 2026
Repo size
24.7 GB
Likes
0
Public
Click a slice to open those files.
.safetensors24.7 GB · 100%
From the Hugging Face model README
Federated PPO on ALFWorld, 100 clients, 2 sampled per round, E=3 local epochs, planned 70
rounds, base_seed: 42. The run stopped at round 54 when its allocation ended; these are the
checkpoints that survived it, published so the run can be resumed (or scored) from somewhere
other than one cluster's scratch.
| path | what it is |
|---|---|
checkpoints/round_54/actor/ | the round-54 FedAvg'd actor — the last complete round |
checkpoints/round_54/critic/ | the round-54 FedAvg'd critic (value head) |
checkpoints/round_39_best/actor/ | the best-scoring round's actor (success 0.5938 @ r39) |
checkpoints/round_39_best/critic/ | that round's critic |
PPO federates actor and critic, so a resume needs both roles of the same round; round 54 is
the valid resume anchor. Round 39 is the peak of the curve and is kept because the rolling
ckpt_latest overwrites a peak a few rounds later.
from transformers import AutoModelForCausalLM, AutoTokenizer
repo = "AlexChen1997/fedagent-alfworld-ppo-uniform-1gpu-qwen2.5-1.5b"
model = AutoModelForCausalLM.from_pretrained(repo, subfolder="checkpoints/round_39_best/actor")
tok = AutoTokenizer.from_pretrained(repo, subfolder="checkpoints/round_39_best/actor")
In-loop validation is the first 64 valid_seen ALFWorld games, the same set every round
(n=64), scored on the round's aggregated model.
| round | 0 | 10 | 20 | 30 | 39 | 45 | 50 | 54 |
|---|---|---|---|---|---|---|---|---|
| traj_success | 0.078 | 0.172 | 0.266 | 0.422 | 0.594 | 0.344 | 0.297 | 0.391 |
The run peaked at 0.5938 @ round 39 and then decayed to 0.3906 by round 54. This is not a train/eval divergence: the training reward fell too (3.49 @ r40 → 2.89 @ r54), response length collapsed (177 → 87 tokens) and entropy went with it (0.24 → 0.09), i.e. the objective itself stopped working. That degradation is the reason the ref_anchor A/B exists: this run used the rolling KL reference (see below), and the open question is whether pinning the reference to the base model prevents the collapse.
Qwen/Qwen2.5-1.5B-Instruct.clients_per_round: 2, epochs_per_round: 3, total_rounds: 70
(reached 54), uniform partition, min_goals_per_client: 100.adv_estimator: gae), actor lr 1e-6, critic lr 1e-5, kl_loss_coef 0.01,
low_var_kl, rollout.n=1, train batch 64, prompt/response 2048/512.ref_anchor unset ⇒ the verl-0.8 default): verl builds actor and
ref from the one model.path, and the driver moves each round's FedAvg'd weights through that
key, so the reference follows the aggregate: J − 0.01·KL(π ‖ π_{r−1}), a per-round proximal
term — not KL(π ‖ π_base). Anything compared against this run must use the same anchor.max_turns: 50, 64 train envs across 8 service replicas per
client; validation as described above.n_gpus_per_node: 1, FSDP world size 1), one of four
single-GPU cells sharing a node; vLLM KV fraction 0.4, optimizer offload on. This is the
single-GPU recipe, not the 4-GPU paper recipe — batch geometry matches, the parallelism does
not, so timings and curves are not interchangeable with 4-GPU runs.FedAgent_dev), single-GPU accelerated config tree; the run was resumed
across several allocations and therefore spans commits ab4ecc3 → 2b1c535. ref_anchor was
never set, so the rolling reference applies throughout.fedagent/config/paper_accelerated_1gpu/uniform/Qwen2.5-1.5B-Instruct/main/ppo/
fed_alfworld_ppo_total-100_cl-per-rd-2_rd-70_ep-per-cl-3_min-goals-per-cl-100_p-uniform.yaml.results/alfworld_ppo/, packaged at round 54).