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

StatusDescription
requestedJob has been submitted and is queued for provisioning.
runningTraining is actively in progress.
completeTraining finished successfully. Metrics and checkpoints are available.
failedTraining encountered an error. Check logs for details.
deployedModel has been deployed and is serving inference traffic.
cancelledJob was manually stopped via POST /felix/training-jobs/:id/stop.

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
base_model
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.
datasets
object[]
required
Array of dataset references to train on. Each object must include a name field matching an existing dataset in the ready state.
model_name
string
required
A human-readable name for the resulting trained model. Defaults to a generated identifier if not provided.
training_type
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.
training_algorithm
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.
rl_config
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.
nr_epochs
number
Number of training epochs. Defaults vary by base model.
learning_rate
number
Learning rate for the optimizer. For example, 5e-5.
curl -X POST https://api.pioneer.ai/felix/training-jobs \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model_name": "my-ner-model",
    "base_model": "fastino/gliner2-base-v1",
    "datasets": [{"name": "my-dataset"}],
    "training_type": "lora",
    "nr_epochs": 5,
    "learning_rate": 5e-5
  }'
Response
id
string
UUID of the training job. Use this ID in all subsequent requests.
status
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
status
string
Filter by job status. Accepted values: requested, running, complete, deployed, failed, cancelled.
project_id
string
Filter by project ID to show only jobs associated with a specific project.
curl "https://api.pioneer.ai/felix/training-jobs?status=complete" \
  -H "X-API-Key: YOUR_API_KEY"
limit
number
Maximum number of jobs to return. Accepts 1–200. Defaults to 200.
offset
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
id
string
required
The training job UUID.
curl https://api.pioneer.ai/felix/training-jobs/YOUR_TRAINING_JOB_ID \
  -H "X-API-Key: YOUR_API_KEY"
Response
id
string
Training job UUID.
status
string
Current job status.
metrics
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
id
string
required
The training job UUID.
curl https://api.pioneer.ai/felix/training-jobs/YOUR_TRAINING_JOB_ID/logs \
  -H "X-API-Key: YOUR_API_KEY"

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
id
string
required
The training job UUID.
curl https://api.pioneer.ai/felix/training-jobs/YOUR_TRAINING_JOB_ID/checkpoints \
  -H "X-API-Key: YOUR_API_KEY"

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
id
string
required
The training job UUID.
curl https://api.pioneer.ai/felix/training-jobs/YOUR_TRAINING_JOB_ID/download \
  -H "X-API-Key: YOUR_API_KEY"

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
id
string
required
The training job UUID.
curl -X POST https://api.pioneer.ai/felix/training-jobs/YOUR_TRAINING_JOB_ID/stop \
  -H "X-API-Key: YOUR_API_KEY"

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
id
string
required
The training job UUID.
curl -X DELETE https://api.pioneer.ai/felix/training-jobs/YOUR_TRAINING_JOB_ID \
  -H "X-API-Key: YOUR_API_KEY"
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.
curl https://api.pioneer.ai/felix/trained-models \
  -H "X-API-Key: YOUR_API_KEY"
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.