New_gpu_space / README.md
hiitsesh's picture
README: link blog.md as Hub long-form writeup (replace TODO).
f6ee013
|
Raw
History Blame Contribute Delete
8.02 kB
---
title: ReleaseOps Arena
emoji: 🚦
colorFrom: blue
colorTo: green
sdk: docker
pinned: false
---
# ReleaseOps Arena
**Live Space:** you are on **[hiitsesh/New_gpu_space](https://huggingface.co/spaces/hiitsesh/New_gpu_space)**. **Figures** are loaded from the public **[RL](https://github.com/eshwanthkartitr/RL)** repo via `raw.githubusercontent.com` (this Space’s Git remote **rejects plain PNG commits**; use [Xet](https://huggingface.co/docs/hub/xet) if you want images inside the Space repo). Ensure `images/*.png` exist on the **RL** `main` branch.
---
Konichiwa
Hey, this is **Eshwanth**. We know that companies are constantly shipping code to hit quarterly goals and honor commitments. That pushes teams toward **AI agents** for CI/CD, triage, security scans, and more—each is domain-specific, customizable, and powerful. The failure modes are familiar: **hallucination**, **hardcoded fixes to “pass” tests**, and changes that are hard to audit. Developers still need a strong **check** on what those agents did.
That is where **ReleaseOps** comes in: instead of an exhaustive, brittle rulebook, we try to **learn the org’s policy**—what governs systems and workflows—so we are not maintaining a huge static manual that breaks in prod. With RL I’ve shown that a **smaller** model can be steered to respect this environment, compared to a much larger model tuned for generic “agentic coding,” where the combinatorial mess of **multi-agent** interaction still blows up even with long instructions.
In this project we provide tools and agents that implement that **workflow** end-to-end.
**Full technical + narrative build log:** open **[blog.md](https://huggingface.co/spaces/hiitsesh/New_gpu_space/blob/main/blog.md)** in this repository (or browse **Files**`blog.md`). It mirrors what we ship on [GitHub RL](https://github.com/eshwanthkartitr/RL/blob/main/blog.md) and is the “long README” for agents and judges; this page stays the **Space card** with plots and links.
---
### Judge-facing links
| What | URL |
|------|-----|
| **This Hugging Face Space (submitted env)** | [huggingface.co/spaces/hiitsesh/New_gpu_space](https://huggingface.co/spaces/hiitsesh/New_gpu_space) |
| **GitHub (full repo: notebook, extra demos)** | [github.com/eshwanthkartitr/RL](https://github.com/eshwanthkartitr/RL) |
| **Same notebook on this Hub (view / download IPYNB)** | [ReleaseOps_final_walkthrough.ipynb on the Space](https://huggingface.co/spaces/hiitsesh/New_gpu_space/blob/main/notebooks/ReleaseOps_final_walkthrough.ipynb) |
| **Re-run training / eval (Colab)** | [Open `ReleaseOps_final_walkthrough.ipynb` in Colab](https://colab.research.google.com/github/eshwanthkartitr/RL/blob/main/notebooks/ReleaseOps_final_walkthrough.ipynb) |
| **Short pitch (YouTube Shorts)** | [YouTube: ReleaseOps / project pitch](https://www.youtube.com/shorts/OxfBH7jDOwg) |
| **Build log / long-form writeup (blog)** | **[blog.md in this Space](https://huggingface.co/spaces/hiitsesh/New_gpu_space/blob/main/blog.md)** (same file on [GitHub RL](https://github.com/eshwanthkartitr/RL/blob/main/blog.md)) — design → GRPO → REST → 1.7B run + inference metrics. |
| **What judges look for** | [Organizer doc](https://docs.google.com/document/d/1Odznuzwtb1ecDOm2t6ToZd4MuMXXfO6vWUGcxbC6mFs/edit?tab=t.0#bookmark=kix.2dz0x0nie3me) |
---
## Submission checklist (organizer “NOTE 1”)
| # | Requirement | Where |
|---|-------------|--------|
| 1 | **OpenEnv (latest).** | `openenv-core` in [requirements.txt](requirements.txt), spec in [openenv.yaml](openenv.yaml), env: [releaseops_arena/tool_env.py](releaseops_arena/tool_env.py). On PyPI: [openenv-core](https://pypi.org/project/openenv-core/). |
| 2 | **TRL + training** | [training/train_grpo.py](training/train_grpo.py). Colab walkthrough: [on GitHub](https://github.com/eshwanthkartitr/RL/blob/main/notebooks/ReleaseOps_final_walkthrough.ipynb). |
| 3 | **Training evidence** | Plots below; PNGs live in [RL `images/`](https://github.com/eshwanthkartitr/RL/tree/main/images) on GitHub (linked here, not stored in the Space git tree). |
| 4 | **Writeup or under-2 min video (URL only)** | This README; YouTube link in the table above. |
| 5 | **This Space** | You are here — submit this Space URL. |
| 6 | **README** | Problem, env, results, links — this file. |
**NOTE 2:** One submission per team; **team lead** submits; **deadline: 26 April, 5 PM IST** (confirm on official call). **No commits after the deadline** for judging.
---
### How the environment works
**Episode and reward (example run).**
![Episode and reward](https://raw.githubusercontent.com/eshwanthkartitr/RL/main/images/Ep%26reward.png)
ReleaseOps Arena is a **stateful, tool-using** [OpenEnv](https://pypi.org/project/openenv-core/)-style environment: a supervisor LLM gets **JSON observations** (release phase, proposals, CI refs, safety rules, budgets) and can call a fixed toolset (`inspect_pr_diff`, `inspect_ci_run`, `ask_worker`, approve / block / `hold_release`, …). Rewards come from [releaseops_arena/rewards.py](releaseops_arena/rewards.py) and the same loop drives **GRPO** in [training/train_grpo.py](training/train_grpo.py). This **Space** runs the **FastAPI** app: use **`/docs`**, `/reset`, `/step` on the public `*.hf.space` URL (see below).
---
## Training evidence and results
The supervisor was trained with **Group Relative Policy Optimization (GRPO)** (100-step run referenced in the narrative below).
![GRPO training (reward and tool usage)](https://raw.githubusercontent.com/eshwanthkartitr/RL/main/images/Training.png)
* **Adaptation and policy learning:** The reward trace shows an initial exploration dip around step 15, then a climb toward a stable reward (~3.09). The model learns the environment’s **hard** rules.
* **Tool reliability:** The lower panel shows the agent using the **OpenEnv** tool schema; `tool_failure_freq` stays near zero—no spurious tool syntax.
**Additional run traces (in this repo):**
![Training proof (metrics)](https://raw.githubusercontent.com/eshwanthkartitr/RL/main/images/Training_proof.png)
![Training proof (logs)](https://raw.githubusercontent.com/eshwanthkartitr/RL/main/images/Training_proof_logs.png)
---
## Getting started
You can use **this Space over HTTPS** (no Docker on your side) or run a **local** container from the Space image. Pick one.
**1. OpenEnv**
```bash
pip install openenv-core
```
**2. Call this Space (recommended for judges)**
Use the `*.hf.space` base URL (not the `huggingface.co/spaces/...` *page* only):
```python
from releaseops_arena.client import ReleaseOpsEnvClient
from releaseops_arena.models import ReleaseOpsAction
BASE = "https://hiitsesh-new-gpu-space.hf.space"
client = ReleaseOpsEnvClient(BASE)
obs = client.reset()
print(obs.model_dump() if hasattr(obs, "model_dump") else obs.dict())
# next: client.step(ReleaseOpsAction(...))
```
Interactive API: append **`/docs`** to `BASE` (e.g. `https://hiitsesh-new-gpu-space.hf.space/docs`).
**3. Local Docker (optional)**
Map port **7860** (see [Dockerfile](Dockerfile)). Image name: use **Space → Settings → Docker** for the exact `registry.hf.space/...` string.
```bash
docker run -d -p 7860:7860 -e PORT=7860 registry.hf.space/<user>/<space>:latest
```
Then `BASE = "http://127.0.0.1:7860"`.
---
## UI flow diagram (static HTML)
* **On this Space (same HTML, in the container):** open **`/ui/flow`** — e.g. [https://hiitsesh-new-gpu-space.hf.space/ui/flow](https://hiitsesh-new-gpu-space.hf.space/ui/flow) (Mermaid + fonts load from CDNs; allow outbound in Space if blocked).
* **Locally:** open `demo/releaseops_episode_flow.html` in a browser, or from repo root: `open demo/releaseops_episode_flow.html` (macOS).
* **On GitHub:** [demo/releaseops_episode_flow.html](https://github.com/eshwanthkartitr/RL/blob/main/demo/releaseops_episode_flow.html) (raw file or clone).
---
## Design note
Deeper design and API notes: [ref.md](ref.md) in this repository.