Ir para o conteúdo
ModelVerificadoExterno
Baixar

Vergil Sota Trainer

> OpenEnv Hackathon · India 2026 — Submission > > An OpenEnv-compatible environment that teaches an LLM to manage a graph of > interlocking real-world commitments under partial observability, capacity > limits and...

TipoLoRAVersãoPublicador@thekrishdshahCnota

Fonte do modelo

Tipo
LoRA
Tamanho do arquivo
67,2 MB
Versão
vadapter_model
Atualizado
2 de out. de 2026
Publicador
@thekrishdshah
Downloads
0
Fonte
Hugging Face

Descrição da fonte

VERGIL — Commitment Dependency Graph Engine

OpenEnv Hackathon · India 2026 — Submission

An OpenEnv-compatible environment that teaches an LLM to manage a graph of interlocking real-world commitments under partial observability, capacity limits and stakeholder trust dynamics.

Themes addressed: #2 (Super) Long-Horizon Planning & Instruction Following · #3.2 Personalized Tasks (Executive Assistant)

Quick links (judges start here)

MaterialLink
Live demo (this Space)https://huggingface.co/spaces/thekrishdshah/vergil-sota-trainer
Training dashboardhttps://huggingface.co/spaces/thekrishdshah/vergil-sota-trainer/training
Trained model + plots + logshttps://huggingface.co/thekrishdshah/vergil-sota-trainer
Combined training curves PNGhttps://huggingface.co/thekrishdshah/vergil-sota-trainer/blob/main/plots/training_curves.png
Eval comparison plotshttps://huggingface.co/thekrishdshah/vergil-sota-trainer/tree/main/eval/eval_compare/plots
Source code (GitHub)https://github.com/krishdshah/vergil
Reward functionvergil/agent/rewards.py
Training script (Colab-runnable)scripts/train_vergil_sota.py
Eval harnessscripts/eval_vergil.py
OpenEnv manifestopenenv.yaml

(Blog / 2-min video links — drop them here once recorded.)

Submission checklist (hackathon minimums)

  • Uses OpenEnv — env subclasses gymnasium.Env, exposes reset / step / state; openenv.yaml declared; no reserved tool names used. POMDP wrapper in vergil/core/pomdp.py.
  • Training script using HF TRL — scripts/train_vergil_sota.py (TRL SFTTrainer + GRPOTrainer, runnable in Colab or HF Jobs).
  • Hosted on Hugging Face Spaces — this Space (thekrishdshah/vergil-sota-trainer).
  • Trained, with reward + loss plots from a real run — pushed to the model repo; also embedded on the /training dashboard.
  • README explains problem, env, results — this file + /training.
  • Mini-blog or < 2-min video — attach link here.

1. The problem we're targeting

Most RL-for-LLM environments score each task in isolation. Real personal assistants (and most professional schedulers) live in a commitment dependency graph (CDG) where:

  • accepting a task changes the feasibility of every other task,
  • promises break when a prerequisite slips, cascading through downstream edges,
  • counter-proposing a deadline can save trust at the cost of completion-rate,
  • and "do nothing" is sometimes the optimal action — but only when the schedule is genuinely blocked.

VERGIL captures these tensions in an OpenEnv-compatible Gym-style env. The agent's observation is a partially-observable view of the CDG plus a trust score per stakeholder. Its action space is

{accept, decline, counter_propose, do_nothing} × node_id

2. Why this maps to two hackathon themes

Theme #2 — Long-horizon planning. Each commitment has prerequisites, deadlines and durations that ripple downstream. The agent must reason about trajectories tens of steps long, where a single bad accept early on cascades through the graph and tanks fulfillment many steps later. The reward is sparse in time (final fulfillment) but rich in shape (trust deltas, feasibility) — exactly the deep, multi-step reasoning with sparse/delayed rewards the theme calls out.

Theme #3.2 — Personalized tasks. The agent is your over-committed self, managing real-world delegations: dinner conflicts, work overlap, vendor deadlines. We embed it as a backend so it could plug into a real EA-style product.

3. Reward design (10% of judging)

The v1 model collapsed to always-accept because the original reward was trivially gameable. The v2 reward in vergil/agent/rewards.py adds three correctives:

R(s, a) = R_env(s, a)                                     # honest signal
        + λ_fmt · 1[parseable JSON, valid action label, target ∈ pending]
        + λ_cap · CapacityPressure(s, a)                  # shaping
        + λ_div · GroupDiversity(a; group)                # anti-collapse
  • Format penalty — agent's response must be parseable JSON with a valid action label and a target ∈ the PENDING set.
  • Capacity-pressure shaping — pushes decline / counter_propose when accepting would break the calendar's 85% buffer.
  • Group-diversity bonus — within each GRPO group of N rollouts of the same prompt, under-represented actions get a small bonus so the advantage estimator can't lock in a degenerate policy.

4. Training pipeline (single-L4 on HF Jobs)

PhaseMethodPurpose
ASFT (LoRA r=32, α=64) on expert-oracle dataNon-degenerate prior over all 4 actions
BGRPO with the hardened reward aboveRefine the policy under capacity pressure
CEval on 12 hand-crafted scenarios + 8 curriculum episodesHeuristic baseline vs. trained, same RNG
DPush everything to the model repoAdapter + plots + logs + tensorboard + eval

The training script is scripts/train_vergil_sota.py. The job entrypoint is scripts/hf_job_train.sh. Re-launch with:

# from a clean checkout, with $HF_TOKEN exported
python scripts/hf_jobs_launch.py \
  --flavor l4x1 --skip-eval 0 \
  --grpo-steps 80 --num-generations 4 --max-completion 256

The launcher auto-detects 1× vs. 4× L4 — multi-GPU uses accelerate launch with configs/accelerate_4xL4.yaml.

5. Showing improvement (20% of judging)

All plots and metrics are pushed to the model repo at the end of every training run. They are mirrored on this Space's /training dashboard, which auto-refreshes every 60 s while a job is active:

  • Combined training curves (plots/training_curves.png) — SFT loss + GRPO reward + reward-component decomposition + action-distribution share over time, all on one image. The single image to start with.
  • 6-panel GRPO dashboard (plots/grpo_dashboard.png) — mean reward, policy loss, KL, learning rate, components, action share.
  • SFT loss / GRPO reward / GRPO KL as separate close-ups.
  • Eval comparison plots (eval/eval_compare/plots/) — trained vs. heuristic, side-by-side: per-scenario cumulative reward, action distribution, schedule-satisfiability curve on the simultaneous_infeasibility scenario.

6. How the env works (judge-friendly walkthrough)

The interactive demo on this Space lets a judge:

  1. Pick one of 12 hand-crafted scenarios (or a fresh curriculum draw).
  2. Watch the trained agent decide, with full reasoning visible.
  3. Toggle between the trained LoRA agent and the heuristic baseline to confirm the policy actually learned something non-trivial.
  4. Inspect trust scores, capacity pressure, and the live CDG.

Try it locally:

git clone https://huggingface.co/spaces/thekrishdshah/vergil-sota-trainer vergil
cd vergil
pip install -r requirements-space.txt
VERGIL_MODEL_PATH=thekrishdshah/vergil-sota-trainer python app.py
# open http://localhost:7860

7. OpenEnv compliance

  • Env subclasses gymnasium.Env, exposes reset / step / state cleanly.
  • POMDP wrapper in vergil/core/pomdp.py produces partial observations.
  • Reward returned as scalar float per step; rich diagnostics in info.
  • openenv.yaml declares the env; the demo Space is the discoverable URL.
  • No reserved tool names used.

8. Repository layout

vergil/                 # the env + agent code
  core/                 # CDG, env, POMDP wrapper, types
  agent/                # prompt formatting, reward function (key file)
  curriculum/           # 4-stage curriculum + failure-topology DB
  api/                  # FastAPI server (powers this Space)
scripts/
  sft_data_generator.py # expert-oracle rollouts → SFT data
  train_vergil_sota.py  # SFT + GRPO + push (TRL)
  eval_vergil.py        # heuristic vs. trained eval harness
  hf_job_train.sh       # job entrypoint (used by HF Jobs)
  hf_jobs_launch.py     # local-side job submitter
scenarios/              # 12 hand-crafted JSON scenarios
configs/                # accelerate config (4× L4 DDP)
frontend/               # built React UI (served by FastAPI)
frontend-react/         # React source
app.py                  # demo Space entrypoint
Dockerfile              # demo Space container

License

Apache-2.0.

Fontes

1 fonte
Hugging FacePrimárioVersão b68c5f190fc2591c75aed3eb0f34b558d14e6829
huggingface.co/thekrishdshah/vergil-sota-trainer/tree/b68c5f190fc2591c75aed3eb0f34b558d14e6829

Verificado 2 de out.

Artefatos de modelo

2 artefatos

adapter_model.safetensors

safetensors · 67,2 MB · SHA-256 ac5e50a64eea…14d9 · Hugging Face

Baixar

checkpoint-3/adapter_model.safetensors

safetensors · 67,2 MB · SHA-256 ac5e50a64eea…14d9 · Hugging Face

Baixar

Trechos de fonte

3 trechos

--- title: VERGIL · Commitment Dependency Graph emoji: ⚖️ colorFrom: indigo colorTo: purple sdk: docker app_port: 7860 pinned: true license: apache-2.0 models: - thekrishdshah/vergil-sota-trainer tags: - openenv - long-horizon-planning - personal-assistant - theory-of-mind - commitment-management - grpo - lora short_description: LLMs that juggle commitments under capacity & trust. --- # VERGIL — Commitment Dependency Graph Engine > **OpenEnv Hackathon · India 2026 — Submission** > > An OpenEnv-compatible environment that teaches an LLM to manage a graph of > interlocking real-world commitments under partial observability, capacity > limits and stakeholder trust dynamics. > > **Themes addressed:** **#2** *(Super) Long-Horizon Planning & Instruction > Following* &nbsp;·&nbsp; **#3.2** *Personalized Tasks (Executive Assistant)* ## Quick links (judges start here) | Material | Link | | --- | --- | | **Live demo (this Space)** | https://huggingface.co/spaces/thekrishdshah/vergil-sota-trainer | | **Training dashboard** | https://huggingface.co/spaces/thekrishdshah/vergil-sota-trainer/training | | **Trained model + plots + logs** | https://huggingface.co/thekrishdshah/vergil-sota-trainer | | **Combined training curves PNG** | https://huggingface.co/thekrishdshah/vergil-sota-trainer/blob/main/plots/training_curves.png | | **Eval comparison plots** | https://huggingface.co/thekrishdshah/vergil-sota-trainer/tree/main/eval/eval_compare/plots | | **Source code (GitHub)** | https://github.com/krishdshah/vergil | | **Reward function** | [vergil/agent/rewards.py](vergil/agent/rewards.py) | | **Training script (Colab-runnable)** | [scripts/train_vergil_sota.py](scripts/train_vergil_sota.py) | | **Eval harness** | [scripts/eval_vergil.py](scripts/eval_vergil.py) | | **OpenEnv manifest** | [openenv.yaml](openenv.yaml) | > *(Blog / 2-min video links — drop them here once recorded.)* ## Submission checklist (hackathon minimums) - [x] **Uses OpenEnv** — env subclasses `gymnasium.Env`, exposes `reset / step / state`; `openenv.yaml` declared; no reserved tool names used. POMDP wrapper in `vergil/core/pomdp.py`. - [x] **Training script using HF TRL** — [`scripts/train_vergil_sota.py`](scripts/train_vergil_sota.py) (TRL `SFTTrainer` + `GRPOTrainer`, runnable in Colab or HF Jobs). - [x] **Hosted on Hugging Face Spaces** — this Space (`thekrishdshah/vergil-sota-traine...

Source context: 0 downloads · 0 likes · Repo thekrishdshah/vergil-sota-trainer

Source context: 0 downloads · 0 likes · Repo thekrishdshah/vergil-sota-trainer