Skip to main content
Reinforcement Fine-Tuning (RFT) is free for models under 16B parameters. When creating an RFT job in the UI, filter for free tuning models in the model selection area on the fine-tuning creation page. If kicking off jobs from the terminal, you can find the model ID from the Model Library. Note: SFT and DPO jobs are billed per training token for all model sizes—see the pricing page for details.
The Eval Protocol CLI provides the fastest, most reproducible way to launch RFT jobs. This page covers everything you need to know about using eval-protocol create rft.
Before launching, review Training Prerequisites & Validation for requirements, validation checks, and common errors.
Already familiar with firectl? Use it as an alternative to eval-protocol.

Installation and setup

The following guide will help you:
  • Upload your evaluator to Fireworks. If you don’t have one yet, see Concepts > Evaluators
  • Upload your dataset to Fireworks
  • Create and launch the RFT job
1

Install Eval Protocol CLI

Verify installation:
2

Set up authentication

Configure your Fireworks API key:
Or create a .env file:
3

Test your evaluator locally

Before training, verify your evaluator works. This command discovers and runs your @evaluation_test with pytest. If a Dockerfile is present, it builds an image and runs the test in Docker; otherwise it runs on your host.
If using a Dockerfile, it must use a Debian-based image (no Alpine or CentOS), be single-stage (no multi-stage builds), and only use supported instructions: FROM, RUN, COPY, ADD, WORKDIR, USER, ENV, CMD, ENTRYPOINT, ARG. Instructions like EXPOSE and VOLUME are ignored. See the RFT quickstart guide for details.
4

Create the RFT job

From the directory where your evaluator and dataset (dataset.jsonl) are located,
The CLI will:
  • Upload evaluator code (if changed)
  • Upload dataset (if changed)
  • Create the RFT job
  • Display dashboard links for monitoring
Expected output:
5

Monitor training

Click the RFT Job link to watch training progress in real-time. See Monitor Training for details.

Common CLI options

Customize your RFT job with these flags: Model and output:
Training parameters:
Loss method:
Rollout (sampling) parameters:
Remote environments:
Force re-upload:
See all options:

Advanced options

Track training metrics in W&B for deeper analysis:
Set WANDB_API_KEY in your environment first.
Save intermediate checkpoints during training:
Available in firectl only.
For evaluators that need more time:
Default is 60 seconds. Increase for complex evaluations.
For other tuning parameters — rollout concurrency, chunk size, loss method, and more — see Parameter Tuning.

Examples

Fast experimentation (small model, 1 epoch):
High-quality training (more rollouts, higher temperature):
Remote environment (for multi-turn agents):
Multiple epochs with custom learning rate:

Using firectl CLI (Alternative)

For users already familiar with Fireworks firectl, you can create RFT jobs directly:
Differences from eval-protocol:
  • Requires fully qualified resource names (accounts/…)
  • Must manually upload evaluators and datasets first
  • More verbose but offers finer control
  • Same underlying API as eval-protocol
See firectl documentation for all options.

Next steps

Prerequisites & Validation

Review requirements, validation, and common errors

Monitor training

Track job progress, inspect rollouts, and debug issues

Parameter tuning

Learn how to adjust parameters for better results