When supervised fine-tuning quality looks wrong, first check what the trainer actually saw. Fireworks can attach a Render Samples download to supervised fine-tuning job details. The file is a JSONL sample of records after Fireworks applies the model’s chat template, tokenizer, and training mask. Use render samples to answer questions such as: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.
- Did
system,user,assistant, and tool messages render with the expected special tokens? - Are only the intended assistant tokens included in the loss?
- Did a message-level
weight: 0or sample-levelweightremove the tokens you expected? - Does Fireworks’ tokenizer output match the tokenizer behavior you tested locally?
The render samples file is a diagnostic sample, not a full dataset export. New supervised fine-tuning jobs capture up to 20 rendered records by default. Older jobs, jobs that fail before rendering, or jobs without captured samples may not show the download.
Download render samples
Open the supervised fine-tuning job
Go to the Fireworks dashboard, then open the supervised fine-tuning job you want to inspect.
Understand the JSONL fields
A render sample record looks like this:| Field | Meaning |
|---|---|
source_jsonl_row_index | Zero-based index of the source dataset row. |
source_jsonl_line_number | One-based source line number, useful for opening the row in an editor. |
split_index | Index of the rendered record produced from that source row. Most rows produce one record. |
renderer | Chat template renderer selected for the base model. |
train_on_what | Which message content is configured to contribute to training loss. |
token_ids | Full rendered token sequence before the next-token shift. |
decoded_tokens | One-token decode for each token ID. Tokenizers may show whitespace markers or byte fallback pieces. |
token_weights | Per-token training weight in rendered order. 0 means context only; a positive value contributes to loss. |
training_target_token_ids | Shifted next-token targets passed to the trainer. This array is usually one shorter than token_ids. |
training_loss_weights | Loss weights aligned with training_target_token_ids. A positive value means that target token is trained. |
token_ids, decoded_tokens, and token_weights are the easiest fields to scan. For exact trainer behavior, use training_target_token_ids and training_loss_weights; those are shifted for next-token prediction.
Inspect a downloaded file
Use this local script to print each rendered token with its training status:source_jsonl_line_number with the original dataset row:
5 with the line number from the render sample.
Common findings
| What you see | Likely cause | What to do |
|---|---|---|
Assistant answer tokens have token_weights of 0 | The assistant message has weight: 0, the sample has zero weight, or the job is configured to train on different content. | Check the original JSONL row and remove unintended weights. |
User or system tokens have positive token_weights | The row schema or training configuration is not representing roles as intended. | Verify every message has the correct role, and avoid putting assistant text in a user message. |
Expected text is missing from decoded_tokens | The source row may have been split, truncated, or rendered differently by the model chat template. | Check split_index, source line number, and the job’s max context length. |
| Extra special tokens appear around messages | The selected model renderer is adding chat template markers. | This is often expected. If the markers are wrong for your use case, check that the base model and dataset format match. |
| Token boundaries look surprising | Many tokenizers encode whitespace, Unicode, and byte fallback pieces in non-obvious ways. | Compare with the same Hugging Face tokenizer using skip_special_tokens=False. |
| The Render Samples row is missing | The job may predate this feature, may have failed before rendering, or may not have captured samples. | Create a new supervised fine-tuning job, or contact support with the job ID if the job should have rendered samples. |