Skip to main content
Training jobs are the core of Pioneer’s fine-tuning platform. You submit a job with a base model and one or more datasets, and Pioneer handles the rest — provisioning compute, training the model, and making checkpoints available for download or deployment. Both LoRA and full fine-tuning are supported for encoder and decoder architectures.
base_model is required when starting a training job. Omitting it returns a 422 Unprocessable Entity error. Supply a model ID from GET /base-models (e.g. fastino/gliner2-base-v1, Qwen/Qwen3-8B) or a checkpoint UUID from a previous training job.

Job status lifecycle


Start a training job

POST /felix/training-jobs Submits a new fine-tuning job. Returns immediately with a job ID and requested status — use GET /felix/training-jobs/:id to poll for progress.
Rate limit for this endpoint is 20 requests per minute per user.
Request body
string
required
The model to fine-tune. Use a supported model ID returned by GET /base-models (e.g. fastino/gliner2-base-v1) or a checkpoint UUID from a previous training job.
object[]
required
Array of dataset references to train on. Each object must include a name field matching an existing dataset in the ready state.
string
required
A human-readable name for the resulting trained model. Defaults to a generated identifier if not provided.
string
Fine-tuning method to use. Accepted values: lora, full. Defaults to lora. Decoder LLM training is LoRA-only; full is reserved for GLiNER encoder models.
string
Post-training algorithm. Accepted values: sft (default), grpo, dpo. sft is supervised fine-tuning; grpo and dpo are reinforcement-learning methods that require rl_config. See the LLM fine-tuning guide for algorithm selection, dataset formats, and the supported-model matrix. Submitting grpo/dpo for a model that hasn’t been verified for RL returns a 422.
object
Reinforcement-learning hyperparameters. Required when training_algorithm is grpo or dpo; must be omitted for sft. Every key inside is optional (TRL-aligned server defaults are applied) except reward_type, which is required for GRPO.
number
Number of training epochs. Defaults vary by base model.
number
Learning rate for the optimizer. For example, 5e-5.
Response
string
UUID of the training job. Use this ID in all subsequent requests.
string
Initial status, always requested on creation.

List training jobs

GET /felix/training-jobs Returns all training jobs for your account. Supports filtering to narrow results. Query parameters
string
Filter by job status. Accepted values: requested, running, complete, deployed, failed, cancelled.
string
Filter by project ID to show only jobs associated with a specific project.
number
Maximum number of jobs to return. Accepts 1–200. Defaults to 200.
number
Number of jobs to skip for pagination. Defaults to 0

Get training job status

GET /felix/training-jobs/:id Returns current status, configuration, and metrics for a specific training job. Path parameters
string
required
The training job UUID.
Response
string
Training job UUID.
string
Current job status.
object
Performance metrics. Only present when status is complete.

Get training logs

GET /felix/training-jobs/:id/logs Streams or returns the training logs for a job. Useful for debugging failed jobs or monitoring training progress in real time. Path parameters
string
required
The training job UUID.

List checkpoints

GET /felix/training-jobs/:id/checkpoints Returns all saved checkpoints for a training job. Checkpoint UUIDs can be used as the base_model value in a new training job to continue training from an intermediate state. Path parameters
string
required
The training job UUID.

Download model weights

GET /felix/training-jobs/:id/download Returns a download URL for the trained model weights. Only available once the job status is complete. Path parameters
string
required
The training job UUID.

Stop a running job

POST /felix/training-jobs/:id/stop Gracefully stops a job that is currently in running state. The job transitions to cancelled status… Path parameters
string
required
The training job UUID.

Delete a training job

DELETE /felix/training-jobs/:id Permanently deletes a training job and its associated artifacts, including checkpoints and logs.
Deleting a training job also removes the model weights. Make sure you have downloaded or deployed the model before deleting the job if you want to retain access to it.
Path parameters
string
required
The training job UUID.
Returns 200 with {"success": true, "message": "..."} on success.

List all trained models

GET /felix/trained-models Returns a flat list of all successfully trained models across all of your training jobs.
Data Privacy: If you would like to opt out of having your data used in Fastino’s model training, please email support@fastino.ai and we will ensure your data is excluded from our training pipelines.