eval-protocol create rft.
Before launching, review Training Prerequisites & Validation for requirements, validation checks, and common errors.
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
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 Dockerfile constraints for RFT evaluators for details.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
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:Advanced options
Weights & Biases integration
Weights & Biases integration
Track training metrics in W&B for deeper analysis:Set
WANDB_API_KEY in your environment first.Custom checkpoint frequency
Custom checkpoint frequency
Save intermediate checkpoints during training:Available in
firectl only.Multi-GPU acceleration
Multi-GPU acceleration
Speed up training with multiple GPUs:Recommended for large models (70B+).
Custom timeout
Custom timeout
For evaluators that need more time:Default is 60 seconds. Increase for complex evaluations.
Examples
Fast experimentation (small model, 1 epoch):Using firectl CLI (Alternative)
For users already familiar with Fireworks firectl, you can create RFT jobs directly:
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