You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- whether the recipe **tracks `main`** (`pip install -e .` from the same tree) or **pins** a git commit / release tag,
21
+
- a copy-pastable `pip install …` line when a pin exists.
22
+
23
+
**Rolling recipes** (`MODE=rolling` and similar): `REQUIRED_VERL.txt` now lists **exact commit IDs** taken from this workspace when the file was last refreshed:
24
+
25
+
-**`VERL_COMMIT`**: `git rev-parse HEAD` in the parent **verl** repository (core `pip install verl@git+…@VERL_COMMIT`).
26
+
-**`RECIPE_SUBMODULE_COMMIT`**: `git rev-parse HEAD` inside the **`recipe/`** submodule checkout embedded at that verl revision.
27
+
-**`RECIPE_FOLDER_LAST_COMMIT`**: `git log -1 --format=%H -- <folder>` inside **`recipe/`** for that recipe’s subdirectory only.
28
+
29
+
Together these pin both the library and the bundled recipe tree. **`REFRESH=`** at the bottom of each file is the command line used to recompute the fields after you bump verl or the submodule.
30
+
31
+
Each recipe `README.md` links to its `REQUIRED_VERL.txt` in a short **Required `verl` version** section. The repository root [`README.md`](../README.md) also points here for discoverability.
`install_verl.sh` reads a recipe's `REQUIRED_VERL.txt` and installs the pinned core `verl` for you. It understands every `MODE=` value listed above and prints the command it will run before executing it (use `--show` for a dry-run).
36
+
37
+
```bash
38
+
# From the root of this repo (the directory containing install_verl.sh):
39
+
40
+
# List every recipe + its pinned `pip install` line
41
+
./install_verl.sh --list
42
+
43
+
# Dry-run: see exactly which pip command a recipe would execute
44
+
./install_verl.sh --recipe dapo --show
45
+
46
+
# Install the pinned verl core for a recipe via pip (default)
47
+
./install_verl.sh --recipe retool
48
+
49
+
# Clone upstream verl at the pinned commit, init the recipe submodule,
50
+
# and `pip install -e .` from the checkout (useful when you want an
51
+
# editable install or plan to modify verl itself).
Flags: `--recipe NAME` (e.g. `gkd/megatron`, `specRL/histoSpec`) or `--file PATH/TO/REQUIRED_VERL.txt`, `--method pip|git` (default `pip`), `--dest DIR` (default `./verl`, only used with `--method git`), `--show` (dry-run), `--yes` (skip confirmation), `--list`, `--help`.
61
+
62
+
The script requires only `bash`, `git`, `awk`, and `pip`/`pip3` on `PATH`. It does **not**`source` or `eval` the `REQUIRED_VERL.txt` file — values are extracted with `awk` and the exact command to be executed is echoed before it runs.
-[retool](https://github.com/verl-project/verl-recipe/tree/main/retool): Reinforcement Learning for Strategic Tool Use in LLMs
18
99
-[langgraph_agent](https://github.com/verl-project/verl-recipe/tree/main/langgraph_agent): A tiny example to demonstrate multi-turn rollout with [LangGraph ReactAgent](https://langchain-ai.github.io/langgraph/agents/overview/) to solve math expression.
-[partial_rollout](./partial_rollout/): synchronous RL with cross-step rollout interruption + resume to reclaim long-tail GPU bubbles ([APRIL](https://arxiv.org/pdf/2509.18521)-style).
20
102
- TBA...
21
103
22
104
## Contribution
23
105
24
106
### Version Specification
25
107
26
-
Recipes are recommended to specify the verl version required, e.g.,
108
+
Add or update **`REQUIRED_VERL.txt`** whenever a recipe gains a new tested pin or intentionally moves forward on `main`. Examples of valid `pip` forms:
0 commit comments