toml-config

โดย huggingface

วิธีการเขียนและใช้ไฟล์กำหนดค่า TOML ใน prime-rl ใช้เมื่อสร้างไฟล์กำหนดค่า รันคำสั่งพร้อมไฟล์กำหนดค่า หรือแทนที่ค่ากำหนดค่าผ่าน CLI

npx skills add https://github.com/huggingface/prime-rl --skill toml-config

TOML Config

All prime-rl commands use pydantic_config (tyro-backed) with TOML configs and CLI overrides.

Running with configs

# Load a config file with @ syntax
uv run inference @ configs/debug/infer.toml
uv run sft @ configs/debug/sft/train.toml
uv run rl @ configs/debug/rl/train.toml

# CLI overrides (take precedence over TOML)
uv run inference @ config.toml --model.name Qwen/Qwen3-0.6B --server.port 8001

# Boolean flags: no value needed
uv run inference --model.enforce-eager          # sets to true
uv run inference --no-model.enforce-eager       # sets to false

# CLI-only (no TOML file)
uv run inference --model.name Qwen/Qwen3-0.6B --model.max-model-len 2048

# Compose multiple config files (later files override earlier ones)
uv run rl @ examples/reverse_text/rl.toml @ examples/reverse_text/slurm_rl.toml

# Nested config files: load a config for a specific section
uv run rl --model @ model.toml --data @ data.toml

TOML structure

Top-level fields must come before any [section] header — this is a TOML rule.

# Top-level fields first
gpu_memory_utilization = 0.5
seed = 42

# Then sections
[model]
name = "Qwen/Qwen3-0.6B"
max_model_len = 4096

[server]
port = 8000

Putting a top-level field after a section header nests it inside that section, which causes validation errors.

Setting None

Use the string "None" in TOML to set a field to None:

max_model_len = "None"

SLURM mode

Both rl and sft commands support SLURM execution via an optional [slurm] section. When present, the run is submitted as a SLURM job instead of running locally.

SLURM configs are composed with the base config via CLI:

uv run rl @ examples/reverse_text/rl.toml @ examples/reverse_text/slurm_rl.toml

RL SLURM

output_dir = "/shared/experiments/my-run"

[deployment]
type = "multi_node"
num_train_nodes = 2
num_infer_nodes = 1
gpus_per_node = 8
# nodes_per_fsdp_group = 1

[slurm]
job_name = "my-rl-job"
# dry_run = true          # generate script without submitting
# template_path = "path/to/custom.sh.j2"
# project_dir = "/path/to/project"

When [slurm] is set for RL:

  • output_dir must be explicitly set (the default outputs is rejected)
  • Teacher inference is not supported in multi-node deployment

SFT SLURM

output_dir = "/shared/experiments/my-sft-run"

[deployment]
type = "multi_node"
num_nodes = 2
gpus_per_node = 8
# nodes_per_fsdp_group = 1

[slurm]
job_name = "my-sft-job"
# dry_run = true
# template_path = "path/to/custom.sh.j2"
# project_dir = "/path/to/project"

SFT deployment follows the same pattern as RL:

  • [deployment] configures node/GPU allocation (single_node default or multi_node)
  • [slurm] configures SLURM submission (job name, partition, template)
  • output_dir must be explicitly set when using SLURM
  • Multi-node deployment requires [slurm] to be set

Available commands

All accept @ config.toml and CLI overrides:

CommandConfig classDescription
uv run rlfull RL pipelineOrchestrator + inference + trainer (local or SLURM)
uv run inferenceInferenceConfigvLLM inference server
uv run trainertrainer configRL trainer
uv run orchestratororchestrator configRollout orchestrator
uv run env-serverenv server configEnvironment server
uv run sftSFT configSupervised fine-tuning (local or SLURM)

Key files

  • src/prime_rl/utils/config.pyBaseConfig, cli, get_all_fields
  • src/prime_rl/entrypoints/rl.py — unified RL entrypoint (local + SLURM)
  • src/prime_rl/configs/rl.pyRLConfig, SlurmConfig, DeploymentConfig
  • src/prime_rl/entrypoints/sft.py — unified SFT entrypoint (local + SLURM)
  • src/prime_rl/configs/sft.pySFTConfig
  • configs/ — all config files, organized by task

Skills เพิ่มเติมจาก huggingface

cpu-kernels
huggingface
ให้คำแนะนำในการเขียน ปรับแต่งประสิทธิภาพ และวัดประสิทธิภาพของ CPU kernels ในภาษา C++ ด้วย SIMD intrinsics (AVX2/AVX512) สำหรับระบบนิเวศของ Hugging Face kernels รวมถึง…
official
generate-openenv-env
huggingface
สร้างสภาพแวดล้อม OpenEnv จากกรณีการใช้งานที่เป็นรูปธรรม (เช่น "สร้างสภาพแวดล้อมสำหรับ library textarena") ใช้เมื่อถูกขอให้ออกแบบหรือนำไปใช้งานใหม่…
official
hf-mcp
huggingface
ใช้ Hugging Face Hub ผ่านเครื่องมือเซิร์ฟเวอร์ MCP ค้นหาโมเดล ชุดข้อมูล Spaces เอกสารวิจัย รับรายละเอียด repo ดึงเอกสารประกอบ เรียกใช้งาน compute และใช้ Gradio…
official
trl-training
huggingface
ฝึกและปรับแต่งโมเดลภาษาทรานส์ฟอร์มเมอร์โดยใช้ TRL (Transformers Reinforcement Learning) รองรับการฝึก SFT, DPO, GRPO, KTO, RLOO และ Reward Model…
official
deploy-hf
huggingface
ปรับใช้สภาพแวดล้อม OpenEnv ไปยัง Hugging Face Spaces ใช้เมื่อถูกขอให้ปรับใช้, ส่งไปยัง Hugging Face, หรืออัปเดตสเปซ
official
hf-space-recovery
huggingface
Diagnose and recover failing or stuck Hugging Face Space deployments for OpenEnv environments. Use when deploying envs from `envs/` to the Hub (`openenv`…
official
pre-submit-pr
huggingface
ตรวจสอบการเปลี่ยนแปลงก่อนส่ง pull request โดยรันการตรวจสอบที่ครอบคลุม เช่น lint, การทดสอบ, การตรวจสอบความสอดคล้อง และการวิเคราะห์ RFC ใช้ก่อนสร้าง…
official
example-skill
huggingface
สกิลฟิกซ์เจอร์ตัวอย่างสำหรับการทดสอบสโม้กของแอคชัน
official