Start with Serverless Training
The model is supported, LoRA covers the task, and you want pooled compute with per-token billing.
Choose Dedicated Training
You need full-parameter training, a model outside the serverless pool, explicit resume or deployment control, or sustained provisioned compute.
### Comparison
| Dimension | Serverless | Dedicated |
| ----------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| Provisioning | Shared pooled trainer; no trainer or sampler deployment creation | SDK provisions trainer and deployment resources |
| Billing | Per token; no idle GPU charge | Time-based trainer and deployment billing |
| Parameter mode | LoRA only | LoRA and full-parameter |
| Methods | SFT, DPO, ORPO, RL, distillation, and custom loops | SFT, DPO, ORPO, RL, distillation, and custom loops |
| Models | Current serverless model list | Models with an enabled dedicated training shape |
| Capacity | Shared pool and per-account limits | Resources allocated to the run, subject to account quota and platform availability |
| Checkpoint resume | In-run snapshots; cross-run resume is limited | Explicit checkpoint, reconnect, promotion, and deployment lifecycle |
| Sampling | In-session sampler, no deployment to create | SDK-managed rollout or evaluation deployment |
| Teardown | Session lifecycle is managed by the service | You must close trainers and delete or scale down deployments |
| Best fit | LoRA workloads on supported models without provisioning | Full-parameter work, models outside the serverless pool, sustained workloads, and explicit lifecycle control |
Always verify current models, limits, prices, and feature status in the [Serverless Training](/fine-tuning/training-api/serverless) and [Dedicated Training](/fine-tuning/training-api/dedicated) pages before launch.
## Who does what
| Fireworks handles | Cookbook recipes handle | Python SDK users implement |
| ------------------------------------------------------------------------ | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| GPU provisioning and cluster management | Training loop structure for supported recipes | Training loop logic (`forward_backward_custom` + `optim_step`) |
| Service-mode trainer lifecycle (create, health-check, reconnect, delete) | Resource setup, health checks, reconnect, and cleanup | Managed service setup with `FiretitanServiceClient.from_firetitan_config(...)` |
| Distributed forward pass, backward pass, optimizer execution | Common losses and reward/evaluation plumbing | Loss function and batch construction |
| Checkpoint storage and export | Checkpoint save, resume, promotion, and sampler refresh | Checkpoint calls (`save_weights_for_sampler`, DCP snapshots) |
| Inference deployments and weight sync | Deployment sampling and serving-integrated evaluation for RL recipes | Custom rollout, sampling, and evaluation logic through the managed service |
| Preemption recovery and job resume | Resume logic for supported recipe checkpoints | Resume policy and state restoration calls |
| Distributed training (multi-node, sharding, FSDP) | Config surfaces for learning rate, grad accumulation, context length, W\&B | Hyperparameter schedules, data pipeline, and experiment tracking |
## System architecture
1 · Your laptop
Python loop
Loads data, builds batches, computes rewards, and controls the experiment.
2 · Fireworks API
Control plane
Authenticates requests, routes operations, and manages the selected infrastructure.
3 · Remote compute
GPU trainer
Runs forward passes, backward passes, and optimizer steps.
4 · Separate compute
Sampling
Serves saved weights for rollouts and evaluation outside the trainer.
5 · Persistent output
Artifacts
Stores sampler snapshots and resumable training state for later use.
Your Python process stays on your laptop throughout the run. It sends model operations to Fireworks and receives metrics or completions back. Sampling uses separate inference infrastructure rather than the trainer itself.
## How service-mode training works