trl
Train transformer language models with reinforcement learning.
File Explorer
Download Latest Version (.zip)- AGENTS.md
- BUGBOT.md
- custom-queries.qls
- bug-report.yml
- feature-request.yml
- new-trainer-addition.yml
- build_documentation.yml
- build_pr_documentation.yml
- clear_cache.yml
- codeQL.yml
- docker-build.yml
- pr_template_check.yml
- publish.yml
- slow-tests.yml
- sync-huggingface-skills.yml
- tests-experimental.yml
- tests.yml
- tests_latest.yml
- tests_python_versions.yml
- tests_transformers_branch.yml
- trufflehog.yml
- upload_pr_documentation.yml
- dependabot.yml
- PULL_REQUEST_TEMPLATE.md
- logo-dark.png
- logo-light.png
- Dockerfile
- Dockerfile
- _toctree.yml
- a2po_trainer.md
- async_distillation_trainer.md
- async_grpo_trainer.md
- bco_trainer.md
- bema_for_reference_model.md
- callbacks.md
- chat_template_utils.md
- chat_templates.md
- clis.md
- community_tutorials.md
- cpo_trainer.md
- customization.md
- data_utils.md
- dataset_formats.md
- deepspeed_integration.md
- distillation_trainer.md
- distributing_training.md
- dpo_trainer.md
- example_overview.md
- experimental_overview.md
- gkd_trainer.md
- gmpo.md
- gold_trainer.md
- grpo_trainer.md
- grpo_with_replay_buffer.md
- gspo_token.md
- harbor.md
- index.md
- installation.md
- jobs_training.md
- kernels_hub.md
- kto_trainer.md
- liger_kernel_integration.md
- lora_without_regret.md
- merge_model_callback.md
- minillm_trainer.md
- nash_md_trainer.md
- online_dpo_trainer.md
- openenv.md
- openreward.md
- orpo_trainer.md
- paper_index.md
- peft_integration.md
- ppo_trainer.md
- prm_trainer.md
- quickstart.md
- rapidfire_integration.md
- reducing_memory_usage.md
- reward_trainer.md
- rewards.md
- rloo_trainer.md
- script_utils.md
- sdft_trainer.md
- sdpo_trainer.md
- sft_trainer.md
- speeding_up_training.md
- ssd_trainer.md
- tpo_trainer.md
- trackio_integration.md
- unsloth_integration.md
- usage_stats.md
- use_model.md
- vllm_integration.md
- xpo_trainer.md
- alst_ulysses_4gpu.yaml
- context_parallel_2gpu.yaml
- deepspeed_zero1.yaml
- deepspeed_zero2.yaml
- deepspeed_zero3.yaml
- fsdp1.yaml
- fsdp2.yaml
- multi_gpu.yaml
- single_gpu.yaml
- example_config.yaml
- deepmath_103k.py
- hh-rlhf-helpful-base.py
- llava_instruct_mix.py
- lm-human-preferences-descriptiveness.py
- lm-human-preferences-sentiment.py
- math_shepherd.py
- prm800k.py
- rlaif-v.py
- tldr.py
- tldr_preference.py
- ultrafeedback-prompt.py
- ultrafeedback.py
- grpo_agent.ipynb
- grpo_ministral3_vl.ipynb
- grpo_qwen3_vl.ipynb
- grpo_rnj_1_instruct.ipynb
- grpo_trl_lora_qlora.ipynb
- openenv_sudoku_grpo.ipynb
- openenv_wordle_grpo.ipynb
- README.md
- sft_ministral3_vl.ipynb
- sft_nemotron_3.ipynb
- sft_qwen_vl.ipynb
- sft_tool_calling.ipynb
- sft_trl_lora_qlora.ipynb
- __init__.py
- README.md
- __init__.py
- env.py
- kernel_server.py
- README.md
- run_cell.py
- __init__.py
- env.py
- README.md
- __init__.py
- data_agent.py
- browsergym.py
- browsergym_llm.py
- carla.py
- carla_vlm.py
- carla_vlm_gemma.py
- catch.py
- echo.py
- multi_env.py
- opencode.py
- opencode_hf_sandbox.py
- sudoku.py
- sudoku_prompt.txt
- wordle.py
- seta.py
- ppo.py
- ppo_tldr.py
- async_distillation.py
- async_distillation_mopd.py
- async_grpo.py
- bco.py
- cpo.py
- distillation.py
- dpo.py
- dpo_vlm.py
- gkd.py
- gold.py
- grpo_2048.py
- grpo_agent.py
- grpo_continuous_batching.py
- grpo_vlm.py
- gspo.py
- gspo_vlm.py
- kto.py
- mpo_vlm.py
- nash_md.py
- online_dpo.py
- online_dpo_vlm.py
- orpo.py
- prm.py
- reward_modeling.py
- rloo.py
- rloo_vlm.py
- sdft.py
- sdpo.py
- sft.py
- sft_diffusion_gemma.py
- sft_gemma3.py
- sft_gpt_oss.py
- sft_nemotron_3.py
- sft_tiny_aya_tool_calling.py
- sft_vlm.py
- sft_vlm_gemma3.py
- ssd.py
- ssd_eval.py
- tiny_aya_chat_template.jinja
- tpo.py
- xpo.py
- README.md
- __init__.py
- diffusion_gemma_for_block_diffusion.py
- __init__.py
- configuration_remote.py
- modeling_remote.py
- __init__.py
- cohere2_for_causal_lm.py
- cohere_for_causal_lm.py
- deepseek_v3_for_causal_lm.py
- deepseek_v3_for_causal_lm_0528.py
- falcon_mamba_for_causal_lm.py
- gemma2_for_causal_lm.py
- gemma_for_causal_lm.py
- glm4_moe_for_causal_lm.py
- gpt2_lm_head_model.py
- gpt_neox_for_causal_lm.py
- gpt_oss_for_causal_lm.py
- lfm2_for_causal_lm.py
- lfm2_for_causal_lm_2_5.py
- llama_for_causal_lm_3.py
- llama_for_causal_lm_3_1.py
- llama_for_causal_lm_3_2.py
- mistral_for_causal_lm_0_1.py
- mistral_for_causal_lm_0_2.py
- nemotron_3_5_lightning_for_causal_lm.py
- nemotron_3_nano_for_causal_lm.py
- nemotron_3_super_for_causal_lm.py
- nemotron_3_ultra_for_causal_lm.py
- olmo3_for_causal_lm.py
- opt_for_causal_lm.py
- peft_qwen3_for_causal_lm.py
- peft_qwen3_for_causal_lm_2.py
- phi3_for_causal_lm_3.py
- phi3_for_causal_lm_3_5.py
- qwen2_for_causal_lm_2_5.py
- qwen2_for_causal_lm_2_5_coder.py
- qwen2_for_causal_lm_r1_distill.py
- qwen3_for_causal_lm.py
- qwen3_for_causal_lm_instruct_2507.py
- qwen3_moe_for_causal_lm.py
- qwen3_moe_for_causal_lm_response_template.py
- remote_for_causal_lm.py
- small_qwen2_for_causal_lm_2_5.py
- small_qwen3_for_causal_lm.py
- __init__.py
- bart_model.py
- gemma3_for_conditional_generation.py
- gemma4_for_conditional_generation.py
- idefics2_for_conditional_generation.py
- idefics3_for_conditional_generation.py
- internvl_for_conditional_generation.py
- lfm2_vl_for_conditional_generation.py
- llava_for_conditional_generation.py
- llava_next_for_conditional_generation.py
- muse_glimmer_for_conditional_generation.py
- paligemma_for_conditional_generation.py
- qwen2_5_vl_for_conditional_generation.py
- qwen2_vl_for_conditional_generation.py
- qwen3_5_for_conditional_generation_nothink.py
- qwen3_5_for_conditional_generation_think.py
- qwen3_6_for_conditional_generation.py
- qwen3_8_for_conditional_generation.py
- qwen3_vl_for_conditional_generation.py
- smolvlm_for_conditional_generation.py
- t5_for_conditional_generation.py
- __init__.py
- gpt_neox_for_sequence_classification.py
- llama_for_sequence_classification_3_2.py
- qwen2_for_sequence_classification_2_5.py
- qwen3_for_sequence_classification.py
- qwen3_moe_for_sequence_classification.py
- __init__.py
- _common.py
- README.md
- add_copyrights.py
- generate_harmony_dataset.py
- generate_toolcall_dataset.py
- generate_zen_dataset.py
- generate_zen_image_dataset.py
- generate_zen_multi_image_dataset.py
- log_reports.py
- template.jinja
- ddp.yaml
- fsdp2.yaml
- zero2.yaml
- zero3.yaml
- __init__.py
- test_distributed.py
- __init__.py
- _openreward_echo_env.py
- test_a2po_trainer.py
- test_async_distillation_trainer.py
- test_async_grpo_trainer.py
- test_bco_trainer.py
- test_cpo_trainer.py
- test_gkd_trainer.py
- test_gmpo_trainer.py
- test_gold_trainer.py
- test_grpo_with_replay_buffer_trainer.py
- test_gspo_token_trainer.py
- test_harbor.py
- test_iw_opd_trainer.py
- test_merge_model_callback.py
- test_minillm_trainer.py
- test_modeling_value_head.py
- test_nash_md_trainer.py
- test_online_dpo_trainer.py
- test_openreward.py
- test_orpo_trainer.py
- test_ppo_trainer.py
- test_prm_trainer.py
- test_sdft_trainer.py
- test_sdpo_trainer.py
- test_self_distillation_trainer_behavior.py
- test_server_distillation_trainer.py
- test_ssd_trainer.py
- test_tpo_trainer.py
- test_utils.py
- test_xpo_trainer.py
- dpo.json
- sft.json
- sft_fa2.json
- __init__.py
- README.md
- test_invariant.py
- __init__.py
- conftest.py
- test_activation_offloading.py
- test_callbacks.py
- test_chat_template_utils.py
- test_cli.py
- test_cli_utils.py
- test_data_utils.py
- test_distillation_trainer.py
- test_dpo_trainer.py
- test_grpo_trainer.py
- test_kto_trainer.py
- test_model_utils.py
- test_reward_trainer.py
- test_rewards.py
- test_rich_progress_callback.py
- test_rloo_trainer.py
- test_sft_trainer.py
- test_skills.py
- test_skills_cli.py
- test_utils.py
- test_vllm_client_server.py
- testing_constants.py
- testing_utils.py
- fsdp1.yaml
- fsdp2.yaml
- multi_gpu.yaml
- single_gpu.yaml
- zero1.yaml
- zero2.yaml
- zero3.yaml
- cohere.jinja
- cohere2.jinja
- cohere2_training.jinja
- cohere_training.jinja
- deepseek_r1_distill.jinja
- deepseek_r1_distill_training.jinja
- deepseekv3.jinja
- deepseekv3_training.jinja
- diffusion_gemma.jinja
- diffusion_gemma_training.jinja
- gemma.jinja
- gemma3.jinja
- gemma3_training.jinja
- gemma4.jinja
- gemma_training.jinja
- glm4moe.jinja
- glm4moe_training.jinja
- gptoss.jinja
- gptoss_training.jinja
- idefics3.jinja
- idefics3_training.jinja
- lfm2.jinja
- lfm2_2_5.jinja
- lfm2_2_5_vl.jinja
- lfm2_training.jinja
- llama3.jinja
- llama3_1.jinja
- llama3_2.jinja
- llama3_training.jinja
- llava_next.jinja
- llava_next_training.jinja
- muse_glimmer.jinja
- muse_glimmer_training.jinja
- nemotron_3_5_lightning.jinja
- nemotron_3_5_lightning_training.jinja
- nemotron_3_nano.jinja
- nemotron_3_nano_training.jinja
- nemotron_3_super.jinja
- nemotron_3_super_training.jinja
- nemotron_3_ultra.jinja
- nemotron_3_ultra_training.jinja
- phi3.jinja
- phi3_5.jinja
- phi3_5_training.jinja
- phi3_training.jinja
- qwen2_5.jinja
- qwen2_5_training.jinja
- qwen2_5_vl.jinja
- qwen2_5_vl_training.jinja
- qwen3.jinja
- qwen3_5_nothink.jinja
- qwen3_5_nothink_training.jinja
- qwen3_5_think.jinja
- qwen3_5_think_training.jinja
- qwen3_6.jinja
- qwen3_6_training.jinja
- qwen3_8.jinja
- qwen3_8_training.jinja
- qwen3_instruct_2507.jinja
- qwen3_instruct_2507_training.jinja
- qwen3_training.jinja
- qwen3_vl.jinja
- qwen3_vl_training.jinja
- README.md
- __init__.py
- base.py
- env.py
- skills.py
- training.py
- vllm_serve.py
- __init__.py
- accelerate_config.py
- accelerate_launcher.py
- main.py
- __init__.py
- a2po_config.py
- a2po_trainer.py
- __init__.py
- async_distillation_config.py
- async_distillation_trainer.py
- async_rollout_worker.py
- vllm_client.py
- weight_transfer.py
- __init__.py
- async_grpo_config.py
- async_grpo_trainer.py
- async_rollout_worker.py
- openenv_harness.py
- vllm_client.py
- weight_transfer.py
- __init__.py
- bco_config.py
- bco_trainer.py
- __init__.py
- callback.py
- dpo_trainer.py
- __init__.py
- cpo_config.py
- cpo_trainer.py
- __init__.py
- __init__.py
- gkd_config.py
- gkd_trainer.py
- __init__.py
- gmpo_config.py
- gmpo_trainer.py
- __init__.py
- gold_config.py
- gold_trainer.py
- gold_vlm.py
- __init__.py
- grpo_with_replay_buffer_config.py
- grpo_with_replay_buffer_trainer.py
- __init__.py
- grpo_trainer.py
- __init__.py
- _env.py
- _spec.py
- __init__.py
- iw_opd_config.py
- iw_opd_trainer.py
- __init__.py
- __init__.py
- minillm_config.py
- minillm_trainer.py
- __init__.py
- nash_md_config.py
- nash_md_trainer.py
- __init__.py
- online_dpo_config.py
- online_dpo_trainer.py
- __init__.py
- _spec.py
- environment.py
- __init__.py
- orpo_config.py
- orpo_trainer.py
- __init__.py
- modeling_value_head.py
- ppo_config.py
- ppo_trainer.py
- __init__.py
- prm_config.py
- prm_trainer.py
- __init__.py
- loss_utils.py
- sdft_config.py
- sdft_trainer.py
- teacher_sync.py
- __init__.py
- loss_utils.py
- sdpo_config.py
- sdpo_trainer.py
- teacher_sync.py
- __init__.py
- server_distillation_config.py
- server_distillation_trainer.py
- __init__.py
- ssd_config.py
- ssd_trainer.py
- __init__.py
- tpo_config.py
- tpo_trainer.py
- __init__.py
- xpo_config.py
- xpo_trainer.py
- __init__.py
- merge_model_callback.py
- utils.py
- __init__.py
- dataset_formatting.py
- profiling.py
- __init__.py
- vllm_client.py
- vllm_generation.py
- __init__.py
- activation_offloading.py
- utils.py
- __init__.py
- accuracy_rewards.py
- format_rewards.py
- other_rewards.py
- __init__.py
- _hf_argparser.py
- distillation.py
- dpo.py
- env.py
- grpo.py
- kto.py
- reward.py
- rloo.py
- sft.py
- utils.py
- vllm_serve.py
- SKILL.md
- __init__.py
- cli.py
- skills.py
- completions_dataset_card.md
- lm_model_card.md
- rm_model_card.md
- __init__.py
- base_config.py
- base_trainer.py
- callbacks.py
- distillation_config.py
- distillation_trainer.py
- dpo_config.py
- dpo_trainer.py
- grpo_config.py
- grpo_trainer.py
- kto_config.py
- kto_trainer.py
- model_config.py
- reward_config.py
- reward_trainer.py
- rloo_config.py
- rloo_trainer.py
- sft_config.py
- sft_trainer.py
- utils.py
- __init__.py
- _compat.py
- _lazy_module.py
- chat_template_utils.py
- data_utils.py
- distributed.py
- import_utils.py
- py.typed
- .gitignore
- .pre-commit-config.yaml
- AGENTS.md
- CITATION.cff
- CLAUDE.md
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- LICENSE
- Makefile
- MANIFEST.in
- MIGRATION.md
- pyproject.toml
- README.md
- RELEASE.md
- SECURITY.md
- VERSION
# Installation Guide
git clone https://github.com/huggingface/trl
Downloads the entire project code from GitHub to your computer.
cd trl
Moves into the project folder you just downloaded.
2. Official Install Script
Easy Recommended- Python 3 Python is required to use pip.
pip install trl
Installs the package published on PyPI directly โ no need to clone the source.
pip install git+https://github.com/huggingface/trl.git
Installs the package published on PyPI directly โ no need to clone the source.
Pulled directly from this repo's README.
3. Docker
Easy- Git Needed to download the project code from GitHub.
- Docker Desktop Needed to build and run containers. Install it and keep it running in the background.
docker build -f docker/trl-dev/Dockerfile -t trl .
Builds a runnable image based on the Dockerfile.
docker run -p 8080:80 trl
Runs the built image as an actual container.
4. Python
Easypip install trl
Installs the package published on PyPI directly โ no need to clone the source.
pip install git+https://github.com/huggingface/trl.git
Installs the package published on PyPI directly โ no need to clone the source.
pip install -e .[dev]
Installs the Python libraries listed in requirements.txt (or similar).
Pulled directly from this repo's README.
5. Make
Medium- Git Needed to download the project code from GitHub.
- Make Usually pre-installed on Linux/macOS. On Windows, install separately (e.g. via MSYS2 or WSL).
make
Compiles the code based on the generated build configuration to produce an executable.
