Training Prerequisites & Validation ↗
noSummary: Requirements, validation checks, and common issues when launching RFT jobs
Original Documentation
Documentation Index#
Fetch the complete documentation index at: https://docs.fireworks.ai/llms.txt Use this file to discover all available pages before exploring further.
Requirements, validation checks, and common issues when launching RFT jobs
Before launching an RFT job using the CLI or Web UI, ensure you meet these prerequisites and understand the validation process.
Prerequisites#
Before launching an RFT job, ensure you have the following set up. Our quickstart guides will walk you through this.
Upload via CLI:
eval-protocol create dataset my-dataset --file dataset.jsonl
```
Or via the [Fireworks dashboard](https://app.fireworks.ai/dashboard/datasets).
</Accordion>
<Accordion title="Evaluator created">
Your reward function must be tested and uploaded. For local evaluators, upload via pytest:
```bash
cd evaluator_directory
pytest my-evaluator-name.py -vs
```
The test automatically registers your evaluator with Fireworks. For remote environment testing, deploy your HTTP service first.
</Accordion>
<Accordion title="Fireworks API key configured">
Set your API key as an environment variable:
```bash
export FIREWORKS_API_KEY="fw_your_api_key_here"
```
Or store it in a `.env` file in your project directory.
</Accordion>
<Accordion title="Base model selected">
Choose a base model that supports fine-tuning. Popular options:
* `accounts/fireworks/models/llama-v3p1-8b-instruct` - Good balance of quality and speed
* `accounts/fireworks/models/qwen3-0p6b` - Fast training for experimentation
* `accounts/fireworks/models/llama-v3p1-70b-instruct` - Best quality, slower training
Check available models at [fireworks.ai/models](https://fireworks.ai/models).
</Accordion>
</AccordionGroup>
## Job validation
Before starting training, Fireworks validates your configuration:
<AccordionGroup>
<Accordion title="Dataset format validation">
* ✅ Valid JSONL format
* ✅ Each line has `messages` array
* ✅ Messages have `role` and `content` fields
* ✅ File size within limits
* ❌ Missing fields → error with specific line numbers
* ❌ Invalid JSON → syntax error details
</Accordion>
<Accordion title="Evaluator validation">
* ✅ Evaluator code syntax is valid
* ✅ Required dependencies are available
* ✅ Entry point function exists
* ✅ Test runs completed successfully
* ❌ Import errors → missing dependencies
* ❌ Syntax errors → code issues
</Accordion>
<Accordion title="Resource availability">
* ✅ Sufficient GPU quota
* ✅ Base model supports fine-tuning
* ✅ Account has RFT permissions
* ❌ Insufficient quota → request increase
* ❌ Invalid model → choose different base model
</Accordion>
<Accordion title="Parameter validation">
* ✅ Parameters within valid ranges
* ✅ Compatible parameter combinations
* ❌ Invalid ranges → error with allowed values
* ❌ Conflicting options → resolution guidance
</Accordion>
</AccordionGroup>
If validation fails, you'll receive specific error messages with instructions to fix the issues.
## Common errors and fixes
<AccordionGroup>
<Accordion title="Invalid dataset format">
**Error**: `Dataset validation failed: invalid JSON on line 42`
**Fix**:
1. Open your JSONL file
2. Check line 42 for JSON syntax errors
3. Common issues: missing quotes, trailing commas, unescaped characters
4. Validate JSON at jsonlint.com
**Error**: `Missing required field 'messages'`
**Fix**: Each dataset row must have a `messages` array:
```json
{"messages": [{"role": "user", "content": "..."}]}
```
</Accordion>
<Accordion title="Evaluator not found">
**Error**: `Evaluator 'my-evaluator' not found in account`
**Fix**:
1. Upload your evaluator first:
```bash
cd evaluator_directory
pytest my-evaluator-name.py -vs
```
2. Or specify evaluator ID if using UI:
* Check [Evaluators dashboard](https://app.fireworks.ai/dashboard/evaluators)
* Copy exact evaluator ID
</Accordion>
<Accordion title="Insufficient quota">
**Error**: `Insufficient GPU quota for this job`
**Fix**:
1. Check your current quota at [Account Settings](https://app.fireworks.ai/account/settings)
2. Request a quota increase through the dashboard
3. Or choose a smaller base model to reduce GPU requirements
</Accordion>
<Accordion title="Parameter out of range">
**Error**: `Learning rate 1e-2 outside valid range [1e-5, 5e-4]`
**Fix**: Adjust the parameter to be within the allowed range:
```bash
--learning-rate 1e-4 # Use default value
```
See [CLI Reference](tools-sdks/firectl/commands/reinforcement-fine-tuning-job-create) for all available parameters.
</Accordion>
<Accordion title="Evaluator build timeout">
**Error**: `Evaluator build timed out after 10 minutes`
**Fix**:
1. Check build logs in [Evaluators dashboard](https://app.fireworks.ai/dashboard/evaluators)
2. Common issues:
* Large dependencies taking too long to install
* Network issues downloading packages
* Syntax errors in requirements.txt
3. Wait for build to complete, then retry launching your job
4. Consider splitting large dependencies or using lighter alternatives
</Accordion>
</AccordionGroup>
## What happens after launching
Once your job is created, here's what happens:
<span class="steps-start"></span>
<span class="step-marker" data-step-title="Job queued"></span>
Your job enters the queue and waits for available GPU resources. Queue time depends on current demand.
**Status**: `PENDING`
<span class="step-end"></span>
<span class="step-marker" data-step-title="Dataset validation"></span>
Fireworks validates your dataset to ensure it meets format requirements and quality standards. This typically takes 1-2 minutes.
**Status**: `VALIDATING`
<span class="step-end"></span>
<span class="step-marker" data-step-title="Training starts"></span>
The system begins generating rollouts, evaluating them, and updating model weights. You'll see:
* Rollout generation and evaluation
* Reward curves updating in real-time
* Training loss decreasing
**Status**: `RUNNING`
<span class="step-end"></span>
<span class="step-marker" data-step-title="Monitor progress"></span>
Track training via the dashboard. See [Monitor Training](/fine-tuning/monitor-training) for details on interpreting metrics and debugging issues.
**Status**: `RUNNING` → `COMPLETED`
<span class="step-end"></span>
<span class="step-marker" data-step-title="Job completes"></span>
When training finishes, your fine-tuned model is ready for deployment.
**Status**: `COMPLETED`
Next: [Deploy your model](/fine-tuning/deploying-loras) for inference.
<span class="step-end"></span>
<span class="steps-end"></span>
## Next steps
<span class="card-group-start" data-cols="3"></span>
<span class="card-start" data-card-title="Launch with CLI" data-card-icon="terminal" data-card-href="/fine-tuning/cli-reference"></span>
Use eval-protocol CLI for fast, scriptable launches
<span class="card-end"></span>
<span class="card-start" data-card-title="Launch with Web UI" data-card-icon="browser" data-card-href="/fine-tuning/web-ui-guide"></span>
Use the dashboard for visual, guided job creation
<span class="card-end"></span>
<span class="card-start" data-card-title="Monitor training" data-card-icon="chart-line" data-card-href="/fine-tuning/monitor-training"></span>
Track job progress, inspect rollouts, and debug issues
<span class="card-end"></span>
<span class="card-group-end"></span>Link last verified
June 7, 2026.
View original ↗
Source: Fireworks AI Docs
Link last verified: 2026-06-07