Quickstart
Overview
Get started with Arctic Platform by installing the package and following the provided recipes for RL training with existing frameworks like Verl.
Quickstart
To get started training a model with Arctic Platform, first install the package, then follow the recipes provided in the repository.
Installation
From PyPI
Install the latest released version and its dependencies from PyPI:
pip install arctic-platform
Note: While this project is under active development, installing directly from source (see below) may provide the latest features.
From source (git)
To get the latest development version or to contribute, clone the repository and install it in editable mode:
git clone https://github.com/Snowflake-AI-Research/Arctic-Platform.git
cd Arctic-Platform
pip install -e .[rl]
Your First Training Run
The simplest way to get Arctic Platform working is to follow the simple single-GPU GRPO recipe, which trains a Qwen3-1.7B model on GSM8K using a single GPU.
1. Set up the environment
Create a fresh conda environment and install dependencies:
conda create -y -n arctic python=3.12
conda activate arctic
pip install uv
Clone the Arctic Platform repository and navigate to the simple recipe:
git clone https://github.com/Snowflake-AI-Research/Arctic-Platform
cd Arctic-Platform/recipes/rl/verl/simple
2. Install recipe dependencies
Install the pinned dependencies for the simple recipe (assumes CUDA 12.9):
# Install PyTorch first (CUDA 12.9)
uv pip install torch==2.10.0 --index-url https://download.pytorch.org/whl/cu129 -U
# Install remaining dependencies
uv pip install -r requirements.txt --override overrides.txt
# Install additional build tools
uv pip install -U pip wheel packaging setuptools
Install Flash Attention 2 (prebuilt):
uv pip install flash-attn --no-build-isolation
Install the Verl framework (Snowflake fork):
cd ../../../../../verl
grep -v flash-attn requirements.txt > requirements-no-fa.txt
uv pip install -r requirements-no-fa.txt
uv pip install -e .
cd -
3. Prepare the data
Download and prepare the GSM8K dataset:
cd Arctic-Platform/recipes/rl/verl/simple
python download_data.py --output_dir ~/data/gsm8k
This creates two parquet files in ~/data/gsm8k/:
train.parquet(~7.5k rows)test.parquet(~1.3k rows)
4. Start training
Launch the training script with no Ray cluster needed—it runs on your single GPU:
bash run_qwen3_1.7b_gsm8k_grpo_arl.sh
Or specify custom data paths:
bash run_qwen3_1.7b_gsm8k_grpo_arl.sh \
data.train_files=~/data/gsm8k/train.parquet \
data.val_files=~/data/gsm8k/test.parquet
Key configuration options
The launcher script includes these tunable parameters:
| Parameter | Default | Description |
|---|---|---|
NGPU_PER_JOB | 1 | Number of GPUs to use |
PROMPT_LEN | 1024 | Prompt length |
RESPONSE_LEN | 1024 | Response length |
ROLL_N | 8 | GRPO group size (number of responses per prompt) |
MAX_TOKENS_PER_GPU | 16384 | Max tokens per GPU; must be ≥ PROMPT_LEN + ROLL_N * RESPONSE_LEN |
BSZ | 32 | Training batch size |
PPO_MINI_BSZ | 32 | Actor mini-batch size |
LR | 1e-6 | Learning rate |
ARCTIC_ZERO_STAGE | 2 | DeepSpeed ZeRO stage |
USE_KL_LOSS | False | Enable KL loss against a frozen reference model |
Edit these values directly in run_qwen3_1.7b_gsm8k_grpo_arl.sh before running.
What's included in the simple recipe
- Model: Qwen3-1.7B
- Task: GSM8K math reasoning
- Training: GRPO (Group Relative Policy Optimization) without KL anchoring
- Optimization: ZoRRo Train for prompt deduplication
- Sampling: vLLM with colocated training/sampling on one GPU
- Reward: Verl's built-in GSM8K exact-match scorer
Next steps
- Review the complete recipe documentation for deeper configuration details
- Explore other recipes in
recipes/rl/verl/including Txt2SQL and long-context QA examples - See ZoRRo Train README for prompt deduplication details
- Check Forest Cascade Attention README for inference optimization details