This fork of verl is tested and documented for easy use on Nexus. main is intended to be kept up to date with the official Verl, and work on specific projects can be in branches or just forks of this repo.
Project branches:
(This is a Nexus-confirmed version of the official quickstart.)
-
Setup environment. This sets up Verl to use FSDP instead of Megatron and Vllm instead of SGLang. This installs from a pre-built wheel of FlashAttention (the normal way), but it has a conflict with the version of
glibcon Nexus so there is a second step below here to fix this.module load cuda/12.8.1 module load cudnn/v9.10.2 conda create -n verl python=3.12 conda activate verl export USE_MEGATRON=0 export USE_SGLANG=0 bash scripts/install_vllm_sglang_mcore.sh pip install --no-deps -e . -
Fix the
glibcNexus conflict in FlashAttention. If you run it currently you will get something like "ImportError: /lib64/libc.so.6: version GLIBC_2.32 not found". We use a tool calledpolyfill-glibcto update the FlashAttention .so binary file so it is compatible with Nexus's version ofglibc, even though it was built for a different version ofglibc. These instructions are from here.# Confirm the problem. This should give you an error message. If no error, you can skip this whole part. python -c "import flash_attn" # Show the mismatched versions: FLASH_PATH=$(find $CONDA_PREFIX/lib/python*/site-packages/flash_attn* -name "flash_attn_2_cuda*.so" 2>/dev/null | head -1) FLASH_GLIBC_VERSION=$(objdump -T "$FLASH_PATH" 2>/dev/null | grep -oP 'GLIBC_\K\d+\.\d+' | sort -V | uniq | tail -1) NEXUS_GLIBC_VERSION=$(ldd --version | head -n1 | awk '{print $NF}') echo "$FLASH_GLIBC_VERSION must be equal to or less than $NEXUS_GLIBC_VERSION" # Now fix with polyfill cd .. git clone --single-branch --branch feat/single-threaded https://github.com/tuxxi/polyfill-glibc.git cd polyfill-glibc ninja polyfill-glibc ./polyfill-glibc --target-glibc $NEXUS_GLIBC_VERSION $FLASH_PATH # Confirm it works now. Should import silently. python -c "import flash_attn" -
Confirm installation by running a few GRPO training steps. One RTXA5000 has enough memory for this:
python run_grpo.py --model Qwen/Qwen3-0.6B --dataset openai/gsm8k --num_examples 10
Quick test. The script automatically detects the number of available GPUs and uses FSDP to shard the model and parallelize data across all of them.
python run_sft.py --model Qwen/Qwen3-0.6B --dataset openai/gsm8k --num_examples 10
Full-parameter SFT with Qwen3-8B.
- 4x RTX A6000 (48GB): Possible with only ~60 GB of CPU memory without CPU offloading (
--no-offload_weights_and_states). - 2-3x RTX A6000: Possible, but requires ~150 GB of CPU memory with offloading (
--offload_weights_and_states).
python run_sft.py --model Qwen/Qwen3-8B --dataset openai/gsm8k --val_split test --epochs 4 --lr 1e-5 --lr_schedule cosine --batch_size 256 --micro_batch_size_per_gpu 1 --max_length 1024 --gradient_checkpointing --save_freq 50 --val_freq 20
This reproduces the results from https://github.com/volcengine/verl/blob/main/examples/grpo_trainer/run_qwen3-8b.sh. It runs successfully on four RTX A6000s with 120 GB of CPU memory. These details are captured in launch.sh.
python run_grpo.py --model Qwen/Qwen3-8B --dataset openai/gsm8k --val_split test --epochs 15 --lr 1e-6 --batch_size 256 --rollout_batch_size 1024 --num_generations 5 --max_response_length 1024 --kl_coef 0.001 --lr_schedule constant --save_freq 20 --val_freq 5 --vllm_cache_utilization 0.4 --batch_size_per_gpu 1 --max_prompt_length 512 --vllm_model_shards 2
This reproduces DrGRPO as described in https://verl.readthedocs.io/en/latest/algo/grpo.html#drgrpo
python run_grpo.py --algorithm drgrpo
SFT with LoRA:
python run_sft.py --lora_rank 8 --lora_alpha 16 --lora_target_modules all-linear
GRPO with LoRA:
python run_grpo.py --lora_rank 8 --lora_alpha 16 --lora_target_modules all-linear
Both scripts accept --lora_target_modules with choices: all-linear (default), all-linear-and-embedding, all-attention, qv-only.
all-linear-and-embedding applies LoRA to the embedding layer by including embed_tokens in target_modules. This works but is non-standard — the standard peft approach is to use modules_to_save=["embed_tokens"], which fully fine-tunes the embedding instead of applying a low-rank approximation. To enable this, add "modules_to_save": ["embed_tokens"] to the lora_config dict in the upstream verl SFT trainer: fsdp_sft_trainer.py#L277-L283.
During GRPO runs, the context length for generations is limited by VLLM Cache Utilization, which Verl defaults to 0.6. The context length for the backward pass is limited by the activations, which grow roughly linearly because of flash attention. Memory taken by the optimizer states remains on the GPU during VLLM generation unless we do offloading. If we don't do offloading, we need to lower VLLM Cache Utilization to the largest possible value it can be and still fit the optimizer states on the GPU. Finding this vllm_cache_utilization value depends only on model size and GPU memory, not context length. If we have enough CPU memory to do offloading, the optimizer states are taken off the GPU during the rollout generations and we can safely set vllm_cache_utilization to it's highest possible value (0.8 or a little above).
This table lists the max context length possible for GRPO for a given model on a given GPU, and the vllm_cache_utilization setting that enables the max context length. See the notes below for a discussion of when context length is limited by vllm rollouts and when it is limited by training activations. All values assume CPU offloading enabled (--offload_weights_and_states), which requires a surprising amount of CPU memory. Without CPU offloading, FSDP keeps optimizer states on GPU (~24 GB/GPU for 8B), so you must use a much lower cache (0.3-0.4) and context lengths are shorter.
Numbers measured on RTX A5000 (24 GB) and RTX A6000 (48 GB) GPUs using GRPO, FSDP2, vLLM, with CPU offloading enabled (--offload_weights_and_states). 80 GB values are extrapolated. Because we did CPU offloading and set the vllm_cache_utilization to max, the limiting factor was always the backward pass and not the rollouts.
| Model | 24GB GPU | 48GB GPU | 80GB GPU |
|---|---|---|---|
| 0.6B, 1 Shard | 16K, cache 0.8 | 32K, cache 0.8 | 32K, cache 0.8 |
| 1.7B, 1 Shard | 8K, cache 0.8 | 32K, cache 0.8 | 32K, cache 0.8 |
| 1.7B, 2 Shards | 8K, cache 0.8 | 32K, cache 0.8 | 32K, cache 0.8 |
| 4B, 1 Shard | 8K, cache 0.8 | 16K, cache 0.8 | 32K, cache 0.8 |
| 4B, 2 Shards | 8K, cache 0.8 | 16K, cache 0.8 | 32K, cache 0.8 |
| 8B, 1 Shard | OOM | 16K, cache 0.8 | 32K, cache 0.8 |
| 8B, 2 Shards | 8K, cache 0.8 | 16K, cache 0.8 | 32K, cache 0.8 |
| 16B, 1 Shard | OOM | OOM | 4K, cache 0.8 |
| 16B, 2 Shards | OOM | 4K, cache 0.8 | 8K, cache 0.8 |
Notes:
- Num Shards is the vLLM tensor parallel size. Splits model weights across GPUs for generations, freeing per-GPU VRAM for KV cache. Does not reduce training activation memory. Requires 1 GPU per shard.
--vllm_cache_utilizationcontrols how much GPU memory vLLM reserves for model weights + KV cache during rollout. With vLLM ≥ 0.8.5 andsleep_level=2(verl's default), vLLM releases all GPU memory (weights + KV cache) during training. This means higher cache utilization helps rollout (more KV cache for longer sequences) without hurting training. Cache of 0.3 caused rollout failure because KV cache was too small. Default 0.6 is a good starting point; increase to 0.7-0.8 if you need longer rollout sequences.- Two independent bottlenecks for long context:
With
sleep_level=2, vLLM releases all GPU memory during training, so the rollout and training phases never compete for memory. Each phase has its own limiting factor:- Rollout generation (KV cache): During generation, vLLM needs enough KV cache to hold the full sequence. If
vllm_cache_utilizationis too low, the KV cache is too small and rollout fails at initialization. Example: 0.6B model, 16K prompt, cache=0.3 on 24GB GPU — vLLM reserved only 7.2 GB total (0.3×24), leaving ~6 GB for KV cache after model weights, which wasn't enough for 16K tokens. - Training backward pass (activations): During training, PyTorch stores activation tensors that scale with context length × model size. Even with gradient checkpointing, very long contexts exceed GPU memory during the backward pass. Example: 0.6B model, 32K prompt on 24GB GPU — rollout succeeded fine, but the backward pass OOM'd because 32K activations required ~40 GB. Example: 8B model (2 shards), 32K prompt on 48GB GPU — rollout succeeded (model split across GPUs with plenty of KV cache), but training OOM'd because activations required ~48 GB.
- Rollout generation (KV cache): During generation, vLLM needs enough KV cache to hold the full sequence. If
- Num Generations only affects wall clock time, and not linearly.
num_generations Wall Time 2 199s 5 243s 10 344s 16 413s
Verl's GRPO trainer uses Ray, which is pretty CPU-memory intensive. In addition, FSDP2's model offloading feature uses an extreme amount of CPU memory (something like 10x the the model weights.) The baseline memory requirement from Ray and Vllm initialization with a single GPU and no model-offloading is 26 GB. Every addtional GPU adds another 6GB of CPU memory from Ray worker overhead.
These values look pretty extreme, but here is what came out of some tests:
| Model | GPUs | Shards | CPU RAM |
|---|---|---|---|
| Qwen3-0.6B | 1 | 1 | 32 GB |
| Qwen3-0.6B | 7 | 1 | 70 GB |
| Qwen3-1.7B | 1 | 1 | 58 GB |
| Qwen3-4B | 1 | 1 | 114 GB |
| Qwen3-8B | 2 | 2 | 209 GB |
The weight transfer between FSDP2 and vLLM calls .full_tensor() on each model layer, and there is a "weights bucket" setting that reserves space for this. The Verl default is 2048, and that was fine for FSDP1, but the Verl default fails for 8B models and FSDP2. For 8B Qwen models, the embedding layer (151936 x 4096 x float32 = ~2.4 GB) exceeds the default 2048 MB weight update bucket, causing an assertion error. We override the Verl default with --update_weights_bucket_mb 4096 to fix this, and it can be set higher for larger models. For reference, see the TODO at verl/workers/rollout/vllm_rollout/vllm_rollout.py:209.
You will notice in the run log a warning about bf16 vs fp32, but you can ignore this:
Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen3Model is torch.float32.
What is happening is that Verl intentionally loads the model in fp32 because it uses this to initialize the optimizer in fp32, and then immediately converts the model to bf16 by default:
verl/verl/workers/fsdp_workers.py
Line 313 in f93129d
verl/verl/workers/fsdp_workers.py
Line 495 in f93129d
If we want to override the default, we can do so with this:
actor_rollout_ref.actor.fsdp_config.dtype=float32
actor_rollout_ref.ref.fsdp_config.dtype=float32
Show only Tomlab commits:
git log --author="Monte Hoover\|Andrew Zheng\|Abhimanyu Hans" --onelineShow commits with dates:
git log --author="Monte Hoover\|Andrew Zheng\|Abhimanyu Hans" --format="%h %an %ad %s" --date=shortIf you want to make it a git alias:
git config alias.team-log 'log --author="Monte Hoover\|Andrew Zheng\|Abhimanyu Hans" --format="%h %an %ad %s" --date=short'
git team-logverl is a flexible, efficient and production-ready RL training library for large language models (LLMs).
verl is the open-source version of HybridFlow: A Flexible and Efficient RLHF Framework paper.
verl is flexible and easy to use with:
-
Easy extension of diverse RL algorithms: The hybrid-controller programming model enables flexible representation and efficient execution of complex post-training dataflows. Build RL dataflows such as GRPO, PPO in a few lines of code.
-
Seamless integration of existing LLM infra with modular APIs: Decouples computation and data dependencies, enabling seamless integration with existing LLM frameworks, such as FSDP, Megatron-LM, vLLM, SGLang, etc
-
Flexible device mapping: Supports various placement of models onto different sets of GPUs for efficient resource utilization and scalability across different cluster sizes.
-
Ready integration with popular HuggingFace models
verl is fast with:
-
State-of-the-art throughput: SOTA LLM training and inference engine integrations and SOTA RL throughput.
-
Efficient actor model resharding with 3D-HybridEngine: Eliminates memory redundancy and significantly reduces communication overhead during transitions between training and generation phases.
- [2026/01] verl has been migrated to the verl-project
- [2026/01] verl first meetup was successfully held in Shanghai on 01/10, hosted by Volcengine and NVIDIA, the slides has been uploaded to verl-data.
- [2026/01] The
recipedirectory has been migrated to a dedicated repository: verl-recipe and added as a submodule. See verl-project#4795. It can be used as it was aftergit submodule update --init --recursive recipe. Note thattransfer_queue,fully_async_policy,one_step_off_policyandvlaare kept underverl/experimentalsince they are planned to be merged into the main library. Use them throughverl.experimental.{module}. - [2025/12] Mind Lab successfully used verl and Megatron-bridge to train GRPO Lora for Trillion-parameter model on 64 H800 - See their techblog.
- [2025/10] verl is presented in the PyTorch Conference 2025.
- [2025/08] verl is presented in the PyTorch Expert Exchange Webinar. Slides available.
- [2025/07] The ReTool recipe is fully open sourced. Blog
- [2025/07] The first verl meetup will be held at ICML Vancouver on July 16th! Please join us if you are at ICML! (onsite only)
- [2025/06] verl with Megatron backend enables large MoE models such as DeepSeek-671B and Qwen3-235B.
- [2025/03] DAPO is the open-sourced SOTA RL algorithm that achieves 50 points on AIME 2024 based on the Qwen2.5-32B pre-trained model, surpassing the previous SOTA achieved by DeepSeek's GRPO (DeepSeek-R1-Zero-Qwen-32B). DAPO's training is fully powered by verl and the reproduction code is available in
recipe/daponow.
more...
- [2025/04] [Seed-Thinking-v1.5](https://github.com/ByteDance-Seed/Seed-Thinking-v1.5/blob/main/seed-thinking-v1.5.pdf) tech report is released! Trained with verl, Seed-Thinking-v1.5 achieves 86.7 on AIME 2024, 55.0 on Codeforces and 77.3 on GPQA, demonstrating excellent reasoning abilities in STEM and coding. Beyond reasoning tasks, the method demonstrates notable generalization across diverse domains.
- [2025/07] verl keynote at [AWS AI Hours Singapore](https://pages.awscloud.com/aws-ai-hours-sg.html#agenda) on 7/8, verl & verl-agent project updates at [Agent for SWE meetup](https://lu.ma/e498qhsi) by LF AI & Data Singapore on 7/11.
- [2025/06] verl team will provide latest project updates at [PyTorch Day China](https://www.lfasiallc.com/pytorch-day-china/) on June 7th. Meet our dev team in Beijing!
- [2025/04] [VAPO](https://arxiv.org/pdf/2504.05118) (value-based augmented PPO) paper covers our latest RL method for reasoning models. Trained from Qwen-32B-base model, VAPO achieves 60.4 on AIME 2024, outperforming DAPO-32B.
- [2025/05] [PF-PPO](https://arxiv.org/abs/2409.06957), accepted to ICML 2025, is now supported in verl! PF-PPO enhances policy learning efficiency and robustness by filtering potentially noisy reward signals and reusing high-quality experiences via a replay buffer.
- [2025/04] We will give a tutorial about latest post-training techniques and programming guide for verl at [ICLR 2025 Expo](https://iclr.cc/virtual/2025/calendar?filter_events=Expo+Talk+Panel&filter_rooms=), [SCI-FM workshop](https://open-foundation-model.github.io/) and [LMSys afterparty](https://lu.ma/d23nyynm). Talk materials available [here](https://github.com/eric-haibin-lin/verl-community/tree/main/iclr25).
- [2025/03] verl v0.3.0.post1 is released! See [release note](https://github.com/volcengine/verl/releases/) for details. It achieves [~1.4x speedup](https://tongyx361.github.io/blogs/posts/verl-intro/#/verl-flexible-and-efficient-rl-for-llms) compared to prev versions.
- [2025/05] verl will be presented at [A2M Shanghai](https://a2m.msup.com.cn/home/?aid=4488&city=shanghai) on 5/16 - 5/17.
- [2025/05] verl will be presented at [GOSIM x PyTorch Day 2025](https://paris2025.gosim.org/). See you in Paris!
- [2025/03] We introduced the programming model of verl at the [vLLM Beijing Meetup](https://mp.weixin.qq.com/s/n77GibL2corAtQHtVEAzfg) and [verl intro and updates](https://github.com/eric-haibin-lin/verl-community/blob/main/slides/verl-lmsys-meetup.pdf) at the [SGLang-LMSYS Org Meetup](https://lu.ma/ntjrr7ig) in Sunnyvale mid-March.
- [2025/03] We will present verl(HybridFlow) at EuroSys 2025. See you in Rotterdam!
- [2025/02] verl v0.2.0.post2 is released!
- [2025/02] We presented verl in the Bytedance/NVIDIA/Anyscale Ray Meetup. See you in San Jose!
- [2025/01] [Doubao-1.5-pro](https://team.doubao.com/zh/special/doubao_1_5_pro) is released with SOTA-level performance on LLM & VLM. The RL scaling preview model is trained using verl, reaching OpenAI O1-level performance on math benchmarks (70.0 pass@1 on AIME).
- [2024/12] verl is presented at Ray Forward 2024. Slides available here
- [2024/12] The team presented Post-training LLMs: From Algorithms to Infrastructure at NeurIPS 2024. Slides and video available.
- [2024/10] verl is presented at Ray Summit. Youtube video available.
- [2024/08] HybridFlow (verl) is accepted to EuroSys 2025.
- FSDP, FSDP2 and Megatron-LM for training.
- vLLM, SGLang and HF Transformers for rollout generation.
- Compatible with Hugging Face Transformers and Modelscope Hub: Qwen-3, Qwen-2.5, Llama3.1, Gemma2, DeepSeek-LLM, etc
- Supervised fine-tuning.
- Reinforcement learning with PPO, GRPO, GSPO, ReMax, REINFORCE++, RLOO, PRIME, DAPO, DrGRPO, KL_Cov & Clip_Cov etc.
- Support model-based reward and function-based reward (verifiable reward) for math, coding, etc
- Support vision-language models (VLMs) and multi-modal RL with Qwen2.5-vl, Kimi-VL
- Multi-turn with tool calling
- LLM alignment recipes such as Self-play preference optimization (SPPO)
- Flash attention 2, sequence packing, sequence parallelism support via DeepSpeed Ulysses, LoRA, Liger-kernel.
- Scales up to 671B models and hundreds of GPUs with expert parallelism
- Multi-gpu LoRA RL support to save memory.
- Experiment tracking with wandb, swanlab, mlflow and tensorboard.
- Hardware Support: Supports NVIDIA, AMD, Ascend
- Q3 Roadmap verl-project#2388
- DeepSeek 671b optimizations with Megatron verl-project#1033
- Multi-turn rollout and tools using optimizations verl-project#1882
- Agent integration
- Async and off-policy architecture verl-project#2231
- List of breaking changes since v0.4 verl-project#2270
Quickstart:
- Installation
- Quickstart
- Programming Guide & Tech Talk (in Chinese)
- PPO in verl
- GRPO in verl
Running a PPO example step-by-step:
- Prepare Data for Post-Training
- Implement Reward Function for Dataset
- PPO Example Architecture
- Config Explanation
Reproducible algorithm baselines:
For code explanation and advance usage (extension):
-
PPO Trainer and Workers
-
Advanced Usage and Extension
Blogs from the community
- When Reasoning Models Break Tokenization: The Hidden Complexity of Multiturn Training
- verl deployment on AWS SageMaker
- verl x SGLang Multi-turn Code Walkthrough
- Optimizing SGLang Memory Usage in verl
- SGLang, verl, OpenBMB and Tsinghua University: Pioneering End-to-End Multi-Turn RLHF
- Reinforcement Learning from Human Feedback on AMD GPUs with verl and ROCm Integration
- veMLP x verl :玩转强化学习训练
- 使用 verl 进行 GRPO 分布式强化学习训练最佳实践
- HybridFlow verl 原文浅析
- 最高提升 20 倍吞吐量!豆包大模型团队发布全新 RLHF 框架,现已开源!
The performance is essential for on-policy RL algorithm. We have written a detailed performance tuning guide to help you optimize performance.
verl now supports vLLM>=0.8.2 when using FSDP as the training backend. Please refer to this document for the installation guide and more information. Please avoid vllm 0.7.x, which contains bugs that may lead to OOMs and unexpected errors.
SGLang is fully supported with verl, and SGLang RL Group is working extensively on building unique features, including multi-turn agentic RL, VLM RLHF, server-based RL, and partial rollout. Please refer to this document for the installation guide and more information.
verl is fully embracing FSDP2! FSDP2 is recommended by torch distributed team, providing better throughput and memory usage, and is composible with other features (e.g. torch.compile). To enable FSDP2, simply use verl main and set the following options:
actor_rollout_ref.ref.strategy=fsdp2
actor_rollout_ref.actor.strategy=fsdp2
critic.strategy=fsdp2
Furthermore, FSDP2 cpu offloading is compatible with gradient accumulation. You can turn it on to save memory with actor_rollout_ref.actor.fsdp_config.offload_policy=True. For more details, see verl-project#1026
verl now supports FSDP as the training engine (Megatron support coming soon) and both integrates with vLLM and SGLang as inference engines. Please refer to this document for the installation guide and more information, and this document for the vLLM performance tuning for ROCm.
If you find the project helpful, please cite:
- HybridFlow: A Flexible and Efficient RLHF Framework
- A Framework for Training Large Language Models for Code Generation via Proximal Policy Optimization
@article{sheng2024hybridflow,
title = {HybridFlow: A Flexible and Efficient RLHF Framework},
author = {Guangming Sheng and Chi Zhang and Zilingfeng Ye and Xibin Wu and Wang Zhang and Ru Zhang and Yanghua Peng and Haibin Lin and Chuan Wu},
year = {2024},
journal = {arXiv preprint arXiv: 2409.19256}
}verl is inspired by the design of Nemo-Aligner, Deepspeed-chat and OpenRLHF. The project is adopted and contributed by Bytedance, Anyscale, LMSys.org, Alibaba Qwen team, Shanghai AI Lab, Tsinghua University, UC Berkeley, UCLA, UIUC, University of Hong Kong, ke.com, All Hands AI, ModelBest, JD AI Lab, Microsoft Research, StepFun, Amazon, LinkedIn, Meituan, Camel-AI, OpenManus, Xiaomi, NVIDIA research, Baichuan, RedNote, SwissAI, Moonshot AI (Kimi), Baidu, Snowflake, Skywork.ai, JetBrains, IceSword Lab, and many more.
Welcome to register your awesome project build with verl for other developers' reference!
- TinyZero: a reproduction of DeepSeek R1 Zero recipe for reasoning tasks
- SkyThought: RL training for Sky-T1-7B by NovaSky AI team.
- simpleRL-reason: SimpleRL-Zoo: Investigating and Taming Zero Reinforcement Learning for Open Base Models in the Wild
- Easy-R1: Multi-modal RL training framework
- OpenManus-RL: LLM Agents RL tuning framework for multiple agent environments.
- rllm: async RL training with verl-pipeline
- RAGEN: a general-purpose reasoning agent training framework
- Search-R1: RL with reasoning and searching (tool-call) interleaved LLMs
- ReSearch: Learning to Reason with Search for LLMs via Reinforcement Learning
- Skywork-OR1: Skywork open reaonser series
- ToRL: Scaling tool-integrated RL
- Absolute Zero Reasoner: A no human curated data self-play framework for reasoning
- verl-agent: A scalable training framework for long-horizon LLM/VLM agents, along with a new algorithm GiGPO
- RL-Factory: An easy and efficient RL post-training framework for Agentic Learning
- ReTool: ReTool: reinforcement learning for strategic tool use in LLMs. Code release is in progress...
- verl-tool: An unified and easy-to-extend tool-agent training framework based on verl
- PRIME: Process reinforcement through implicit rewards
- MemAgent: MemAgent: Reshaping Long-Context LLM with Multi-Conv RL based Memory Agent
- POLARIS: A Post-training recipe for scaling RL on Advanced Reasoning models
- GUI-R1: GUI-R1: A Generalist R1-style Vision-Language Action Model For GUI Agents
- DeepRetrieval: RL Training of Search Agent with Search/Retrieval Outcome
- Code-R1: Reproducing R1 for Code with Reliable Rewards
- DeepResearcher: Scaling deep research via reinforcement learning in real-world environments
- VAGEN: Training VLM agents with multi-turn reinforcement learning
- RM-R1: RL training of reasoning reward models
- LUFFY: Learning to Reason under Off-Policy Guidance
- DeepMath: DeepMath-103K data and series models for math reasoning
- PACS: Implicit Actor Critic Coupling via a Supervised Learning Framework for RLVR
- Entropy Mechanism of RL: The Entropy Mechanism of Reinforcement Learning for Large Language Model Reasoning
- LLaSA-TTS-GRPO: TTS fine-tuning with GRPO optimization based on LLASA models
- PF-PPO: Policy Filtration for PPO based on the reliability of reward signals for more efficient and robust RLHF.
- RACRO: Build multi-modal reasoning models via decoupling it into query-conditioned captioning and text-only reasoning
- Agent Lightning: A flexible and extensible framework that enables seamless agent optimization for any existing agent framework.
- VTool-R1: VLMs Learn to Think with Images via Reinforcement Learning on Multimodal Tool Use.
- Kimina-Prover-RL: Training pipeline for formal theorem proving, based on a paradigm inspired by DeepSeek-R1.
- RL-PLUS: Countering Capability Boundary Collapse of LLMs in Reinforcement Learning with Hybrid-policy Optimization.
- rStar2-Agent: Using reinforcement learning with multi-step tool-calling for math tasks, rStar2-Agent-14B reaches frontier-level math reasoning in just 510 RL training steps
- Vision-SR1: Self-Rewarding Vision-Language Model via Reasoning Decomposition
- SimpleVLA-RL: SimpleVLA-RL: A Simple yet Effective Vision-Language Action Model for Reinforcement Learning
- Table-R1: Table-R1: Inference-Time Scaling for Table Reasoning
- Revisual-R1: Revisual-R1: Advancing Multimodal Reasoning From Optimized Cold Start to Staged Reinforcement Learning
- ARES: ARES: Multimodal Adaptive Reasoning via Difficulty-Aware Token-Level Entropy Shaping
- Meta-Bandit-LLM: Meta-Bandit-LLM: Long-horizon multiturn interactive training for meta-bandit agents
- PokeeResearch: PokeeResearch: State-of-the-art 7B DeepResearch Agent that leverages web search and content reading capabilities to answer complex questions using the most up-to-date information available online.
- Search Self-play: Pushing the Frontier of Agent Capability without Supervision
- OneThinker: All-in-one Reasoning Model for Image and Video
- OpenTinker: Democratizing Agentic Reinforcement Learning as a Service
- FlowRL: Matching reward distributions via flow balance for diverse exploration and generalizable reasoning
- Logic-RL: a reproduction of DeepSeek R1 Zero on 2K Tiny Logic Puzzle Dataset.
- Seed-Coder: RL training of Seed-Coder boosts performance on competitive programming
- all-hands/openhands-lm-32b-v0.1: A strong, open coding agent model, trained with multi-turn fine-tuning
- s3 Efficient Yet Effective Search Agent Training via RL
- Rec-R1: Bridging Generative Large Language Models and Recommendation Systems via Reinforcement Learning
- Explore RL Data Scaling: Exploring Data Scaling Trends and Effects in Reinforcement Learning from Human Feedback
- FIRE: Flaming-hot initiation with regular execution sampling for large language models
- DQO: Enhancing multi-Step reasoning abilities of language models through direct Q-function optimization
- ProRL: Prolonged Reinforcement Learning Expands Reasoning Boundaries in Large Language Models
- cognition-engineering: Test time scaling drives cognition engineering.
- Trust Region Preference Approximation: A simple and stable reinforcement learning algorithm for LLM reasoning.
- AdaRFT: Efficient Reinforcement Finetuning via Adaptive Curriculum Learning
- critic-rl: LLM critics for code generation
- self-rewarding-reasoning-LLM: self-rewarding and correction with generative reward models
- DeepEnlighten: Reproduce R1 with social reasoning tasks and analyze key findings
- MetaSpatial: Reinforcing 3D Spatial Reasoning in VLMs for the Metaverse
- PURE: Credit assignment is the key to successful reinforcement fine-tuning using process reward model
- cognitive-behaviors: Cognitive Behaviors that Enable Self-Improving Reasoners, or, Four Habits of Highly Effective STaRs
- deepscaler: iterative context scaling with GRPO
- DAPO: the fully open source SOTA RL algorithm that beats DeepSeek-R1-zero-32B
- NoisyRollout: Reinforcing Visual Reasoning with Data Augmentation
- SPEAR: Self-imitation with Progressive Exploration for Agentic Reinforcement Learning (ICLR 2026)
- RuleReasoner: RuleReasoner: Reinforced Rule-based Reasoning via Domain-aware Dynamic Sampling (ICLR 2026)
- MetaphorStar: Image Metaphor Understanding and Reasoning with End-to-End Visual Reinforcement Learning
About ByteDance Seed Team
Founded in 2023, ByteDance Seed Team is dedicated to crafting the industry's most advanced AI foundation models. The team aspires to become a world-class research team and make significant contributions to the advancement of science and society. You can get to know Bytedance Seed better through the following channels👇
We are HIRING! Send us an email if you are interested in internship/FTE opportunities in RL for agents.


