Spaces:
Running
Running
Fixing minor issues
Browse files- index.html +24 -21
index.html
CHANGED
|
@@ -241,7 +241,7 @@
|
|
| 241 |
<a href="#memory-evolution">Memory gallery</a>
|
| 242 |
<a href="#results">Results</a>
|
| 243 |
<a href="#engineering">Engineering</a>
|
| 244 |
-
<a href="
|
| 245 |
</div>
|
| 246 |
</nav>
|
| 247 |
|
|
@@ -252,13 +252,14 @@
|
|
| 252 |
<h1>MiniGridEnv</h1>
|
| 253 |
<p class="subtitle">An OpenEnv-native wrap of Farama <strong>MiniGrid/BabyAI</strong> for text-grounded navigation, extended with <strong>cross-episodic, LLM-rewritten markdown memory</strong> and branch-stable GRPO.</p>
|
| 254 |
<div class="badges">
|
| 255 |
-
<a href="
|
| 256 |
-
<a href="
|
|
|
|
| 257 |
<img src="https://img.shields.io/badge/OpenEnv-Native-4B8BBE" alt="OpenEnv"/>
|
| 258 |
<img src="https://img.shields.io/badge/BabyAI-10%20levels-brightgreen" alt="10 BabyAI levels"/>
|
| 259 |
<img src="https://img.shields.io/badge/Training-GRPO%20%2B%20Memory-orange" alt="GRPO + Memory"/>
|
| 260 |
</div>
|
| 261 |
-
<div class="byline">AgentX Phase 2 · OpenEnv Challenge Submission | Yashaswi Sharma (University of Southern California) | Defu Cao (USC) | Muyan Weng (USC)</div>
|
| 262 |
</div>
|
| 263 |
|
| 264 |
<figure class="banner-figure">
|
|
@@ -267,8 +268,9 @@
|
|
| 267 |
</figure>
|
| 268 |
|
| 269 |
<div class="btn-group">
|
| 270 |
-
<a class="btn" href="
|
| 271 |
-
<a class="btn btn-outline" href="
|
|
|
|
| 272 |
</div>
|
| 273 |
|
| 274 |
<!-- Table of Contents -->
|
|
@@ -327,7 +329,7 @@
|
|
| 327 |
<thead><tr><th>Prior work bucket</th><th>What it does</th><th>What it does not</th></tr></thead>
|
| 328 |
<tbody>
|
| 329 |
<tr><td><strong>BabyAI / MiniGrid (base)</strong><br><span style="font-size:.85em;color:var(--muted)">Chevalier-Boisvert et al., <a href="https://arxiv.org/abs/1810.08272" target="_blank" style="color:var(--accent2)">arXiv:1810.08272</a> (ICLR 2019); <a href="https://github.com/Farama-Foundation/Minigrid" target="_blank" style="color:var(--accent2)">Farama-Foundation/Minigrid</a></span></td><td>Compositional language-conditioned navigation as a gym environment with a reference bot and a 10-stage difficulty curriculum</td><td>No OpenEnv/WebSocket contract; no text observation; no LLM post-training pipeline; no memory</td></tr>
|
| 330 |
-
<tr><td><strong>Memory-augmented LLM agents</strong><br><span style="font-size:.85em;color:var(--muted)">Voyager (<a href="
|
| 331 |
<tr><td><strong>RLVR on language environments</strong><br><span style="font-size:.85em;color:var(--muted)">DeepSeekMath / GRPO (<a href="https://arxiv.org/abs/2402.03300" target="_blank" style="color:var(--accent2)">arXiv:2402.03300</a>); TRL × OpenEnv (<a href="https://huggingface.co/docs/trl/en/openenv" target="_blank" style="color:var(--accent2)">TRL docs</a>)</span></td><td>Critic-free RL with verifiable rewards; standard WebSocket env contract and `rollout_func`</td><td>No persistent agent state across episodes; no first-class notion of branch-stable rollout chains</td></tr>
|
| 332 |
<tr class="novel"><td><strong>MiniGridEnv + MiniGridPT (ours)</strong></td><td>OpenEnv wrap of MiniGrid/BabyAI + GRPO + <em>cross-episodic LLM-rewritten markdown memory</em> + <em>branch-stable per-chain file naming</em></td><td>Not a human study; memory is text-only (no retrieval index)</td></tr>
|
| 333 |
</tbody>
|
|
@@ -490,7 +492,7 @@ def _temporary_vllm_max_tokens(trainer, max_tokens: int):
|
|
| 490 |
<h3>Branch-stable file naming (per-chain compaction)</h3>
|
| 491 |
<p>GRPO runs <em>G</em> parallel completions per prompt, each with its own advantage and gradient contribution. If every slot writes to a uniquely-named file, there's no continuity across optimizer steps, so each memory chain is one episode long. If every slot writes to one shared file, writes race and the signal is mush.</p>
|
| 492 |
<p>The solution: <strong>branch-stable naming</strong> <code>rank{R}_br{k}_{base}.md</code> with <code>k = slot_idx % num_generations</code>. The <em>k</em>-th parallel generation maps to a <strong>stable file across optimizer steps</strong>, so branch <em>k</em> after prompt group P1 is the same file used by branch <em>k</em> after prompt group P2. Each of the <em>G</em> GRPO branches builds its own evolving notebook, which is what gives the model a training signal to <em>compact and summarize</em> episode-to-episode.</p>
|
| 493 |
-
<p>Requires <code>per_device_train_batch_size == num_generations</code> (otherwise multiple groups in one step hit the same <em>k</em> and a one-time <code>UserWarning</code> fires). A third scheme (a single shared file across all slots and ranks) is
|
| 494 |
|
| 495 |
<p>Let $M_e \in \mathcal{M}$ denote the memory file (markdown string) at the start of episode $e$, let $\tau_e$ be the trajectory (observations, parsed actions, outcomes), and let $\pi_\theta^{\mathrm{mem}}$ be the same LLM invoked on the post-episode memory-update prompt. The write is a full rewrite followed by a line-budget projection $\Pi_L(\cdot)$ that keeps the last $L$ lines (here $L = 100$):</p>
|
| 496 |
$$M_{e+1} = \Pi_L\!\left( \pi_\theta^{\mathrm{mem}}(M_e,\, \tau_e,\, \mathrm{outcome}_e) \right).$$
|
|
@@ -662,7 +664,7 @@ step 4 go forward</code></pre>
|
|
| 662 |
<tr><td><strong>Append + periodic compaction</strong></td><td>Full-episode rewrite cost limits the learning signal</td><td>Requires additional compute</td></tr>
|
| 663 |
<tr><td><strong>Hierarchical</strong> (in-episode scratchpad + cross-episode long-term)</td><td>Conflating short- and long-term in one file hurts</td><td>Requires additional compute</td></tr>
|
| 664 |
<tr><td><strong>Retrieval-indexed</strong> (embed notes, top-<em>k</em> by observation)</td><td>Linear-file recall fails at scale</td><td>Requires additional compute</td></tr>
|
| 665 |
-
<tr><td><strong>Shared single-file</strong> across branches / ranks</td><td>Collective memory beats per-branch curation</td><td>
|
| 666 |
<tr><td><strong>Success-gated writes</strong></td><td>Failure episodes poison $M$</td><td>Requires additional compute</td></tr>
|
| 667 |
<tr><td><strong>Variable line budget</strong> by level difficulty</td><td>Uniform $L$ is too tight for hardest stages</td><td>Requires additional compute</td></tr>
|
| 668 |
<tr><td><strong>Dual-memory</strong> (policy vs. world knowledge)</td><td>Unified $M$ conflates two knowledge types</td><td>Requires additional compute</td></tr>
|
|
@@ -756,7 +758,7 @@ quadrantChart
|
|
| 756 |
<p>Combined per-token advantage with mixing weight $\omega \ge 0$:</p>
|
| 757 |
$$A_t \;=\; A^{E}_i + \omega\, A^{S}(a_t).$$
|
| 758 |
<p>When no anchors are found, $A^{S} = 0$ and GiGPO reduces to GRPO (equivalently $\omega = 0$).</p>
|
| 759 |
-
<p>Why this fits MiniGrid: all <em>G</em> rollouts share the same initial observation for a given prompt/seed (guaranteed anchor); corridor navigation revisits the same 7×7 egocentric view; BabyAI per-seed determinism creates exact hash matches. The full design is
|
| 760 |
|
| 761 |
<h3>Experimental matrix for the follow-up</h3>
|
| 762 |
<div class="table-wrap">
|
|
@@ -784,10 +786,10 @@ quadrantChart
|
|
| 784 |
<tr><td><strong>GRPO / DeepSeekMath</strong></td><td>Critic-free group-relative policy optimization; our default trainer via TRL's <code>GRPOTrainer</code></td><td>Shao et al., <a href="https://arxiv.org/abs/2402.03300" target="_blank" style="color:var(--accent2)">arXiv:2402.03300</a></td></tr>
|
| 785 |
<tr><td><strong>TRL × OpenEnv</strong></td><td><code>rollout_func</code> contract, vLLM colocate/server, <code>loss_type=dapo</code> length-bias handling</td><td><a href="https://huggingface.co/docs/trl/en/openenv" target="_blank" style="color:var(--accent2)">TRL OpenEnv docs</a></td></tr>
|
| 786 |
<tr><td><strong>OpenEnv</strong></td><td>Standard WebSocket env contract, per-session state, <code>create_app</code>, HF Space deploy</td><td><a href="https://huggingface.co/blog/openenv" target="_blank" style="color:var(--accent2)">HF Blog: Introducing OpenEnv</a></td></tr>
|
| 787 |
-
<tr><td><strong>Voyager</strong></td><td>Skill-library / cross-episode knowledge accumulation (closest memory-system analog; ours is RL-trained where Voyager is prompt-engineered)</td><td>Wang et al., <a href="
|
| 788 |
-
<tr><td><strong>Reflexion</strong></td><td>Verbal reflection after episodes; motivates a post-episode LLM rewrite pass over a persistent buffer</td><td>Shinn et al., <a href="
|
| 789 |
-
<tr><td><strong>Generative Agents</strong></td><td>Long-term memory stream with relevance / recency weighting; our line-budgeted rewrite is a deliberately simpler alternative</td><td>Park et al., <a href="
|
| 790 |
-
<tr><td><strong>LotteryElicitationEnv / PT</strong></td><td>Sibling OpenEnv submission; shared structural template for two-repo split, <code>rollout_func</code>, NCCL generate-count padding</td><td>Same monorepo · <a href="
|
| 791 |
<tr><td><strong>ReasoningEconomicsEnv / PT</strong></td><td>Structural template for <code>_temporary_vllm_max_tokens</code> pattern</td><td>Same monorepo</td></tr>
|
| 792 |
</tbody>
|
| 793 |
</table>
|
|
@@ -797,10 +799,10 @@ quadrantChart
|
|
| 797 |
<!-- 16. QUICK START -->
|
| 798 |
<section id="quickstart">
|
| 799 |
<h2>Quick start</h2>
|
| 800 |
-
<p>Single-A100 Lambda recipe (
|
| 801 |
-
<pre><code><span class="c"># 0. Clone</span>
|
| 802 |
-
git clone
|
| 803 |
-
|
| 804 |
|
| 805 |
<span class="c"># 1. Build + start MiniGridEnv (Docker on port 8000)</span>
|
| 806 |
cd MiniGridEnv
|
|
@@ -854,7 +856,7 @@ bash "$MGPT_ROOT/scripts/launch_curriculum.sh"</code></pre>
|
|
| 854 |
<h2>Future work</h2>
|
| 855 |
<ul>
|
| 856 |
<li><strong>Run the full A/B/C/D experimental matrix</strong> to publish the memory-vs-stateless and GRPO-vs-GiGPO comparison across the BabyAI curriculum once additional compute is available (measured numbers to be filled in after those runs).</li>
|
| 857 |
-
<li><strong>Land GiGPO</strong> as a <code>GiGPOTrainer(GRPOTrainer)</code> subclass
|
| 858 |
<li><strong>Close the inference-time gap</strong>: <code>inference/run_episode.py</code> reads memory during play but does not yet mirror training's post-episode LLM memory rewrite. Evaluation should match training end-to-end; add a <strong>post-episode-memory-rewrite eval variant</strong> when more compute is available.</li>
|
| 859 |
<li><strong>Baseline harness at scale</strong>: run Random, BabyAI <code>BotAgent</code>, and zero-shot LLM baselines with enough seeds to report completion rates and calibration vs. GRPO / GRPO+memory (deferred for lack of compute).</li>
|
| 860 |
<li><strong>Port the NCCL generate-count padding upstream into TRL</strong>: the bug is general, the fix is simple.</li>
|
|
@@ -874,8 +876,9 @@ bash "$MGPT_ROOT/scripts/launch_curriculum.sh"</code></pre>
|
|
| 874 |
<div class="footer">
|
| 875 |
<p>MiniGridEnv · AgentX OpenEnv Track · UC Berkeley RDI</p>
|
| 876 |
<p style="margin-top:.5rem;">
|
| 877 |
-
<a href="
|
| 878 |
-
<a href="
|
|
|
|
| 879 |
<a href="https://github.com/meta-pytorch/OpenEnv" target="_blank">OpenEnv Framework</a> ·
|
| 880 |
<a href="https://huggingface.co/docs/trl/en/openenv" target="_blank">TRL x OpenEnv</a> ·
|
| 881 |
<a href="https://github.com/Farama-Foundation/Minigrid" target="_blank">MiniGrid</a>
|
|
|
|
| 241 |
<a href="#memory-evolution">Memory gallery</a>
|
| 242 |
<a href="#results">Results</a>
|
| 243 |
<a href="#engineering">Engineering</a>
|
| 244 |
+
<a href="https://huggingface.co/spaces/yashu2000/MiniGridEnv" target="_blank">Live Space ↗</a>
|
| 245 |
</div>
|
| 246 |
</nav>
|
| 247 |
|
|
|
|
| 252 |
<h1>MiniGridEnv</h1>
|
| 253 |
<p class="subtitle">An OpenEnv-native wrap of Farama <strong>MiniGrid/BabyAI</strong> for text-grounded navigation, extended with <strong>cross-episodic, LLM-rewritten markdown memory</strong> and branch-stable GRPO.</p>
|
| 254 |
<div class="badges">
|
| 255 |
+
<a href="https://github.com/sharma-yash01/MiniGridEnv" target="_blank" rel="noopener noreferrer"><img src="https://img.shields.io/badge/MiniGridEnv-GitHub-181717?logo=github" alt="MiniGridEnv on GitHub"/></a>
|
| 256 |
+
<a href="https://github.com/sharma-yash01/MiniGridPT" target="_blank" rel="noopener noreferrer"><img src="https://img.shields.io/badge/MiniGridPT-GitHub-181717?logo=github" alt="MiniGridPT on GitHub"/></a>
|
| 257 |
+
<a href="https://huggingface.co/spaces/yashu2000/MiniGridEnv" target="_blank"><img src="https://img.shields.io/badge/HF%20Space-Live%20Demo-FFD21E?logo=huggingface&logoColor=black" alt="HF Space"/></a>
|
| 258 |
<img src="https://img.shields.io/badge/OpenEnv-Native-4B8BBE" alt="OpenEnv"/>
|
| 259 |
<img src="https://img.shields.io/badge/BabyAI-10%20levels-brightgreen" alt="10 BabyAI levels"/>
|
| 260 |
<img src="https://img.shields.io/badge/Training-GRPO%20%2B%20Memory-orange" alt="GRPO + Memory"/>
|
| 261 |
</div>
|
| 262 |
+
<div class="byline">AgentX Phase 2 · OpenEnv Challenge Submission | Yashaswi Sharma (University of Southern California) | Dongze Ye | Defu Cao (USC) | Muyan Weng (USC)</div>
|
| 263 |
</div>
|
| 264 |
|
| 265 |
<figure class="banner-figure">
|
|
|
|
| 268 |
</figure>
|
| 269 |
|
| 270 |
<div class="btn-group">
|
| 271 |
+
<a class="btn" href="https://huggingface.co/spaces/yashu2000/MiniGridEnv" target="_blank">Live Environment Space →</a>
|
| 272 |
+
<a class="btn btn-outline" href="https://github.com/sharma-yash01/MiniGridEnv" target="_blank" rel="noopener noreferrer">MiniGridEnv (GitHub)</a>
|
| 273 |
+
<a class="btn btn-outline" href="https://github.com/sharma-yash01/MiniGridPT" target="_blank" rel="noopener noreferrer">MiniGridPT (GitHub)</a>
|
| 274 |
</div>
|
| 275 |
|
| 276 |
<!-- Table of Contents -->
|
|
|
|
| 329 |
<thead><tr><th>Prior work bucket</th><th>What it does</th><th>What it does not</th></tr></thead>
|
| 330 |
<tbody>
|
| 331 |
<tr><td><strong>BabyAI / MiniGrid (base)</strong><br><span style="font-size:.85em;color:var(--muted)">Chevalier-Boisvert et al., <a href="https://arxiv.org/abs/1810.08272" target="_blank" style="color:var(--accent2)">arXiv:1810.08272</a> (ICLR 2019); <a href="https://github.com/Farama-Foundation/Minigrid" target="_blank" style="color:var(--accent2)">Farama-Foundation/Minigrid</a></span></td><td>Compositional language-conditioned navigation as a gym environment with a reference bot and a 10-stage difficulty curriculum</td><td>No OpenEnv/WebSocket contract; no text observation; no LLM post-training pipeline; no memory</td></tr>
|
| 332 |
+
<tr><td><strong>Memory-augmented LLM agents</strong><br><span style="font-size:.85em;color:var(--muted)">Voyager (<a href="https://arxiv.org/abs/2305.16291" target="_blank" style="color:var(--accent2)">arXiv:2305.16291</a>); Reflexion (<a href="https://arxiv.org/abs/2303.11366" target="_blank" style="color:var(--accent2)">arXiv:2303.11366</a>); Generative Agents (<a href="https://arxiv.org/abs/2304.03442" target="_blank" style="color:var(--accent2)">arXiv:2304.03442</a>)</span></td><td>Cross-episode skill libraries, verbal reflection, structured long-term memory, all <em>prompt-engineered</em> at inference time</td><td>No RL post-training; no branch-stable memory semantics under GRPO; not connected to OpenEnv</td></tr>
|
| 333 |
<tr><td><strong>RLVR on language environments</strong><br><span style="font-size:.85em;color:var(--muted)">DeepSeekMath / GRPO (<a href="https://arxiv.org/abs/2402.03300" target="_blank" style="color:var(--accent2)">arXiv:2402.03300</a>); TRL × OpenEnv (<a href="https://huggingface.co/docs/trl/en/openenv" target="_blank" style="color:var(--accent2)">TRL docs</a>)</span></td><td>Critic-free RL with verifiable rewards; standard WebSocket env contract and `rollout_func`</td><td>No persistent agent state across episodes; no first-class notion of branch-stable rollout chains</td></tr>
|
| 334 |
<tr class="novel"><td><strong>MiniGridEnv + MiniGridPT (ours)</strong></td><td>OpenEnv wrap of MiniGrid/BabyAI + GRPO + <em>cross-episodic LLM-rewritten markdown memory</em> + <em>branch-stable per-chain file naming</em></td><td>Not a human study; memory is text-only (no retrieval index)</td></tr>
|
| 335 |
</tbody>
|
|
|
|
| 492 |
<h3>Branch-stable file naming (per-chain compaction)</h3>
|
| 493 |
<p>GRPO runs <em>G</em> parallel completions per prompt, each with its own advantage and gradient contribution. If every slot writes to a uniquely-named file, there's no continuity across optimizer steps, so each memory chain is one episode long. If every slot writes to one shared file, writes race and the signal is mush.</p>
|
| 494 |
<p>The solution: <strong>branch-stable naming</strong> <code>rank{R}_br{k}_{base}.md</code> with <code>k = slot_idx % num_generations</code>. The <em>k</em>-th parallel generation maps to a <strong>stable file across optimizer steps</strong>, so branch <em>k</em> after prompt group P1 is the same file used by branch <em>k</em> after prompt group P2. Each of the <em>G</em> GRPO branches builds its own evolving notebook, which is what gives the model a training signal to <em>compact and summarize</em> episode-to-episode.</p>
|
| 495 |
+
<p>Requires <code>per_device_train_batch_size == num_generations</code> (otherwise multiple groups in one step hit the same <em>k</em> and a one-time <code>UserWarning</code> fires). A third scheme (a single shared file across all slots and ranks) is sketched but not landed; it needs a decision about concurrent-writer races.</p>
|
| 496 |
|
| 497 |
<p>Let $M_e \in \mathcal{M}$ denote the memory file (markdown string) at the start of episode $e$, let $\tau_e$ be the trajectory (observations, parsed actions, outcomes), and let $\pi_\theta^{\mathrm{mem}}$ be the same LLM invoked on the post-episode memory-update prompt. The write is a full rewrite followed by a line-budget projection $\Pi_L(\cdot)$ that keeps the last $L$ lines (here $L = 100$):</p>
|
| 498 |
$$M_{e+1} = \Pi_L\!\left( \pi_\theta^{\mathrm{mem}}(M_e,\, \tau_e,\, \mathrm{outcome}_e) \right).$$
|
|
|
|
| 664 |
<tr><td><strong>Append + periodic compaction</strong></td><td>Full-episode rewrite cost limits the learning signal</td><td>Requires additional compute</td></tr>
|
| 665 |
<tr><td><strong>Hierarchical</strong> (in-episode scratchpad + cross-episode long-term)</td><td>Conflating short- and long-term in one file hurts</td><td>Requires additional compute</td></tr>
|
| 666 |
<tr><td><strong>Retrieval-indexed</strong> (embed notes, top-<em>k</em> by observation)</td><td>Linear-file recall fails at scale</td><td>Requires additional compute</td></tr>
|
| 667 |
+
<tr><td><strong>Shared single-file</strong> across branches / ranks</td><td>Collective memory beats per-branch curation</td><td>Shared-memory design TBD; requires additional compute + concurrency design</td></tr>
|
| 668 |
<tr><td><strong>Success-gated writes</strong></td><td>Failure episodes poison $M$</td><td>Requires additional compute</td></tr>
|
| 669 |
<tr><td><strong>Variable line budget</strong> by level difficulty</td><td>Uniform $L$ is too tight for hardest stages</td><td>Requires additional compute</td></tr>
|
| 670 |
<tr><td><strong>Dual-memory</strong> (policy vs. world knowledge)</td><td>Unified $M$ conflates two knowledge types</td><td>Requires additional compute</td></tr>
|
|
|
|
| 758 |
<p>Combined per-token advantage with mixing weight $\omega \ge 0$:</p>
|
| 759 |
$$A_t \;=\; A^{E}_i + \omega\, A^{S}(a_t).$$
|
| 760 |
<p>When no anchors are found, $A^{S} = 0$ and GiGPO reduces to GRPO (equivalently $\omega = 0$).</p>
|
| 761 |
+
<p>Why this fits MiniGrid: all <em>G</em> rollouts share the same initial observation for a given prompt/seed (guaranteed anchor); corridor navigation revisits the same 7×7 egocentric view; BabyAI per-seed determinism creates exact hash matches. The full step-level design is deferred to the GiGPO follow-up (trainer subclass + rollout fields).</p>
|
| 762 |
|
| 763 |
<h3>Experimental matrix for the follow-up</h3>
|
| 764 |
<div class="table-wrap">
|
|
|
|
| 786 |
<tr><td><strong>GRPO / DeepSeekMath</strong></td><td>Critic-free group-relative policy optimization; our default trainer via TRL's <code>GRPOTrainer</code></td><td>Shao et al., <a href="https://arxiv.org/abs/2402.03300" target="_blank" style="color:var(--accent2)">arXiv:2402.03300</a></td></tr>
|
| 787 |
<tr><td><strong>TRL × OpenEnv</strong></td><td><code>rollout_func</code> contract, vLLM colocate/server, <code>loss_type=dapo</code> length-bias handling</td><td><a href="https://huggingface.co/docs/trl/en/openenv" target="_blank" style="color:var(--accent2)">TRL OpenEnv docs</a></td></tr>
|
| 788 |
<tr><td><strong>OpenEnv</strong></td><td>Standard WebSocket env contract, per-session state, <code>create_app</code>, HF Space deploy</td><td><a href="https://huggingface.co/blog/openenv" target="_blank" style="color:var(--accent2)">HF Blog: Introducing OpenEnv</a></td></tr>
|
| 789 |
+
<tr><td><strong>Voyager</strong></td><td>Skill-library / cross-episode knowledge accumulation (closest memory-system analog; ours is RL-trained where Voyager is prompt-engineered)</td><td>Wang et al., <a href="https://arxiv.org/abs/2305.16291" target="_blank" style="color:var(--accent2)">arXiv:2305.16291</a></td></tr>
|
| 790 |
+
<tr><td><strong>Reflexion</strong></td><td>Verbal reflection after episodes; motivates a post-episode LLM rewrite pass over a persistent buffer</td><td>Shinn et al., <a href="https://arxiv.org/abs/2303.11366" target="_blank" style="color:var(--accent2)">arXiv:2303.11366</a></td></tr>
|
| 791 |
+
<tr><td><strong>Generative Agents</strong></td><td>Long-term memory stream with relevance / recency weighting; our line-budgeted rewrite is a deliberately simpler alternative</td><td>Park et al., <a href="https://arxiv.org/abs/2304.03442" target="_blank" style="color:var(--accent2)">arXiv:2304.03442</a></td></tr>
|
| 792 |
+
<tr><td><strong>LotteryElicitationEnv / PT</strong></td><td>Sibling OpenEnv submission; shared structural template for two-repo split, <code>rollout_func</code>, NCCL generate-count padding</td><td>Same monorepo · <a href="https://huggingface.co/spaces/yashu2000/LotteryElicitationEnv" target="_blank" style="color:var(--accent2)">LotteryElicitationEnv HF Space</a></td></tr>
|
| 793 |
<tr><td><strong>ReasoningEconomicsEnv / PT</strong></td><td>Structural template for <code>_temporary_vllm_max_tokens</code> pattern</td><td>Same monorepo</td></tr>
|
| 794 |
</tbody>
|
| 795 |
</table>
|
|
|
|
| 799 |
<!-- 16. QUICK START -->
|
| 800 |
<section id="quickstart">
|
| 801 |
<h2>Quick start</h2>
|
| 802 |
+
<p>Single-A100 Lambda recipe (use MiniGridEnv Docker + MiniGridPT <code>scripts/</code> as the source of truth for env vars and launch order):</p>
|
| 803 |
+
<pre><code><span class="c"># 0. Clone both packages (sibling directories)</span>
|
| 804 |
+
git clone https://github.com/sharma-yash01/MiniGridEnv.git
|
| 805 |
+
git clone https://github.com/sharma-yash01/MiniGridPT.git
|
| 806 |
|
| 807 |
<span class="c"># 1. Build + start MiniGridEnv (Docker on port 8000)</span>
|
| 808 |
cd MiniGridEnv
|
|
|
|
| 856 |
<h2>Future work</h2>
|
| 857 |
<ul>
|
| 858 |
<li><strong>Run the full A/B/C/D experimental matrix</strong> to publish the memory-vs-stateless and GRPO-vs-GiGPO comparison across the BabyAI curriculum once additional compute is available (measured numbers to be filled in after those runs).</li>
|
| 859 |
+
<li><strong>Land GiGPO</strong> as a <code>GiGPOTrainer(GRPOTrainer)</code> subclass. Minimum diff: add <code>obs_texts</code> / <code>step_boundaries</code> to the rollout return, compute anchor-state groups, expand step advantages to tokens.</li>
|
| 860 |
<li><strong>Close the inference-time gap</strong>: <code>inference/run_episode.py</code> reads memory during play but does not yet mirror training's post-episode LLM memory rewrite. Evaluation should match training end-to-end; add a <strong>post-episode-memory-rewrite eval variant</strong> when more compute is available.</li>
|
| 861 |
<li><strong>Baseline harness at scale</strong>: run Random, BabyAI <code>BotAgent</code>, and zero-shot LLM baselines with enough seeds to report completion rates and calibration vs. GRPO / GRPO+memory (deferred for lack of compute).</li>
|
| 862 |
<li><strong>Port the NCCL generate-count padding upstream into TRL</strong>: the bug is general, the fix is simple.</li>
|
|
|
|
| 876 |
<div class="footer">
|
| 877 |
<p>MiniGridEnv · AgentX OpenEnv Track · UC Berkeley RDI</p>
|
| 878 |
<p style="margin-top:.5rem;">
|
| 879 |
+
<a href="https://github.com/sharma-yash01/MiniGridEnv" target="_blank" rel="noopener noreferrer">MiniGridEnv</a> ·
|
| 880 |
+
<a href="https://github.com/sharma-yash01/MiniGridPT" target="_blank" rel="noopener noreferrer">MiniGridPT</a> ·
|
| 881 |
+
<a href="https://huggingface.co/spaces/yashu2000/MiniGridEnv" target="_blank">MiniGridEnv HF Space</a> ·
|
| 882 |
<a href="https://github.com/meta-pytorch/OpenEnv" target="_blank">OpenEnv Framework</a> ·
|
| 883 |
<a href="https://huggingface.co/docs/trl/en/openenv" target="_blank">TRL x OpenEnv</a> ·
|
| 884 |
<a href="https://github.com/Farama-Foundation/Minigrid" target="_blank">MiniGrid</a>
|