Most users don’t need this page. If you’re launching training through a cookbook recipe (
rl_loop, sft_loop, etc.), the recipe handles save, resume, and promote for you — set dcp_save_interval and output_model_id on your config and you’re done. See Checkpoints and Resume (cookbook) for the recipe-driven flow.This page is the SDK-level reference for advanced users who are forking a recipe, calling the SDK directly, or debugging a checkpoint that doesn’t promote.What this is
During training, you save checkpoints for three purposes:- Sampler refresh / weight sync (
save_weights_for_sampler+create_sampling_client(model_path=...)): Save updated sampler weights, then sync the returned snapshot identity onto a running inference deployment without restarting it. - Resuming (
save_state/load_state_with_optimizer): Persist full training state (weights + optimizer) so you can continue training from where you left off. - Promotion (
promote_checkpoint): Turn a saved sampler checkpoint into a deployable Fireworks model.
Sampler checkpoints
Sampler checkpoints are weight-only snapshots used for weight sync and promotion. For promotability rules, see Checkpoint kinds — the cookbook page is the source of truth. The raw SDK exposes twocheckpoint_type modes that affect size and weight-sync speed:
Delta is much faster for per-step weight sync (
current_weights = base XOR delta on the deployment). LoRA sampler checkpoints always contain the full adapter regardless of checkpoint_type.
Saving checkpoints
save_weights_for_sampler_ext(...) is the Fireworks-specific low-level variant that returns SaveSamplerResult directly. Use it when you need a concrete return value immediately; use save_weights_for_sampler(...).result() for the Tinker-shaped API.
Promoting a checkpoint to a model
Promote a sampler checkpoint to a deployable Fireworks model. Available onFireworksClient and on the SDK-managed FiretitanServiceClient after provisioning. The trainer job does not need to be running — its row only needs to exist; promotion is a metadata + file-copy operation. See Checkpoint kinds for which checkpoints are promotable.
Preferred: pass the 4-segment name= from list_checkpoints
list_checkpoints returns each checkpoint’s full resource name (accounts/<account>/rlorTrainerJobs/<job>/checkpoints/<id>). Hand that string straight to promote_checkpoint — no manual disassembly into (job_id, checkpoint_id):
Legacy: positional (job_id, checkpoint_id) form
The previous (job_id, checkpoint_id) shape still works for callers that haven’t migrated. It fires a DeprecationWarning whenever name= is omitted, regardless of whether job_id and checkpoint_id are passed positionally or as keywords:
list_checkpoints and pass its name field straight through:
hot_load_deployment_id parameter has its own DeprecationWarning and is only needed for deployments that predate the stored-bucket-URL migration:
Listing checkpoints on a trainer
name, createTime, updateTime, checkpointType, and promotable.
Serverless training sessions
Serverless Training runs have no trainer job, so checkpoint list and promote are scoped to the owning training session instead of anrlorTrainerJobs resource. Use the session-scoped analogs on FireworksClient, addressing the session by its resource name (service.training_session_name on the serverless FiretitanServiceClient):
name, checkpointName, checkpointType, promotable, and createTime. checkpointName is the server-side checkpoint id — prefixed with the source run id and, for sampler snapshots, suffixed with an 8-hex-char session id — not the bare name you saved. checkpointType values are full server enum strings (CHECKPOINT_TYPE_TRAINING_LORA for train-state, CHECKPOINT_TYPE_INFERENCE_LORA for sampler snapshots); treat the field as opaque and filter on promotable. As with job-scoped promotion, only sampler (INFERENCE_*) snapshots are promotable; train-state (TRAINING_*) checkpoints are resume-only. List and promote require the session and its bound trainer to still exist — promote before tearing the session down. See Saving and loading checkpoints (serverless) for the serverless save / resume flow.
Sampler refresh / weight sync
Weight sync pushes a checkpoint onto a running inference deployment without restarting it. With the SDK-managed service client, you do this by saving sampler weights and then creating a sampler for that snapshot:The service client owns the base/delta chain, incremental weight-sync metadata, deployment weight-sync call, and sampler construction. Existing low-level code that manually uses
DeploymentManager or WeightSyncer should be treated as compatibility code; new user loops should use the service-client pattern above.Train-state checkpoints
Usesave_state to persist full training state, and one of two load methods to restore it:
save_state accepts an optional timeout parameter. When set, the SDK blocks until the save completes or the timeout expires.
For the raw
FiretitanTrainingClient, save_state(), load_state(), and load_state_with_optimizer() return futures — call .result() to block. The cookbook’s ReconnectableClient wrapper blocks for you.Cross-job checkpoint resolution
Resuming and then exporting weights
save_weights_for_sampler / save_weights_for_sampler_ext export the trainer session’s currently active weights (for LoRA, the active adapter). During normal training this is unambiguous: an optim_step runs just before the export, so “active weights” means “the weights you just updated.” Right after a resume, there is no intervening optim_step, so be deliberate about the order:
List available checkpoints
Related guides
- Checkpoints and Resume (cookbook) — recipe-driven save / resume / promote (start here for most users)
- FiretitanServiceClient reference — managed trainer/deployment clients and sampler refresh
- DeploymentManager reference — compatibility weight-sync API for existing low-level integrations