Skip to main content
Pioneer supports parameter-efficient (LoRA) post-training on a wide range of open-source decoder models — from compact 1B-parameter models to 70B+ frontier models. You bring your training data, choose a base model that fits your task and budget, and Pioneer handles the infrastructure, routing, and serving. The result is a fine-tuned adapter you can call over the same API, with no GPU management required. All three post-training algorithms — supervised fine-tuning (sft), GRPO (grpo), and DPO (dpo) — are created through the same POST /felix/training-jobs endpoint and selected with the training_algorithm parameter.

Choose an algorithm

Omitting training_algorithm is equivalent to sft, so existing requests keep working unchanged.

SFT

You have example outputs you want the model to imitate (conversations, instruction-response pairs). The default and simplest path.

GRPO

“Good” is a programmatic check — exact answers, numeric correctness, JSON validity, a rubric. The model explores and is reinforced toward higher reward.

DPO

You have preference pairs — a better and a worse response per prompt — rather than a single gold answer.
All three algorithms are LoRA-based. A completed job produces a low-rank adapter that is hot-swapped onto the shared base model at serve time and exposed behind the same inference endpoints as base models — reference the training job’s id as the model_id at inference time. training_type defaults to "lora" and is the only supported value for decoder LLMs; "full" is reserved for GLiNER encoder models.

End-to-end walkthrough

1

Choose a decoder base model

Use GET /base-models to see the full current catalog, filtered to models that support training:
The table below shows a selection of popular options. Context window size matters if your training examples or inference prompts are long.Choosing a model size: Smaller models (1B–8B) train and respond faster and cost less. Larger models (30B–70B) handle complex reasoning and longer inputs more reliably. Start with Qwen/Qwen3-8B or meta-llama/Llama-3.1-8B-Instruct for most tasks and scale up if needed.Not every model supports every algorithm — see Supported models below for the SFT/GRPO/DPO matrix.
2

Prepare your training data

The dataset shape depends on the algorithm you picked. Pick the matching tab.
See the Synthetic Data guide for the full set of /generate options, including auto-labelling existing text. Once generated or uploaded, wait until the dataset status is ready before starting training.
3

Start a training job

Submit your training job with POST /felix/training-jobs. The training_algorithm parameter selects SFT, GRPO, or DPO.
Pioneer routes your job automatically to the best available provider. The response includes your job ID:
rl_config is required when training_algorithm is grpo or dpo and must be omitted for sft. Every key inside rl_config is optional and falls back to a TRL-aligned server default except reward_type, which is required for GRPO.
4

Poll until training is complete

Check job status by polling GET /felix/training-jobs/:id.
Status transitions: requestedrunningcompletedeployed (or failed / stopped). The terminal success state is deployed, reached automatically once the adapter is live behind the inference endpoints.You can also stream training logs while the job is running:
5

Run inference on your fine-tuned model

Once the job status is deployed, use your job ID as the model_id (or model) on any of the three inference interfaces.Pioneer native API — use "task": "generate" for decoder models:
OpenAI-compatible endpoint — drop-in replacement for the OpenAI SDK:
Anthropic-compatible endpoint:
Streaming is supported on all three interfaces.
Downloading your trained model weights is available on the Pro plan and above. Use GET /felix/training-jobs/:id/download to retrieve the weights once training is complete.

LoRA hyperparameters

LoRA capacity and the core optimization settings are configurable; the defaults are sensible starting points for SFT and the RL algorithms alike.

GRPO reward functions

GRPO (Group Relative Policy Optimization) samples multiple completions per prompt and reinforces the ones that score highest against a reward function. Set rl_config.reward_type to one of:
When reward_type is llm_as_judge, Pioneer mints and manages the judge credential for you — you never supply an API key. Optional judge knobs include llm_judge_model, llm_judge_rubric, and llm_judge_score_scale.

Supported models

The canonical, live list is always GET /base-models?supports_training=true. As of this writing:
GRPO and DPO are available on the subset of models that have been verified end-to-end for reinforcement learning. Every trainable decoder supports SFT. Models marked for RL accept sft only; submitting grpo/dpo for them returns a 422.
GLiNER encoder models (fastino/gliner2-base-v1, fastino/gliner2-large-v1, fastino/gliner2-multi-v1, fastino/gliner2-multi-large-v1) are also trainable through the same endpoint — see the encoder fine-tuning guides for NER, classification, and structured extraction.

Serverless inference for base models

If you want to run inference on a base model without fine-tuning, several models are available as serverless endpoints with no startup latency: Use GET /base-models?task_type=decoder&supports_inference=true to see the current serverless catalog.

Next steps