Fine-tuning
Cross-provider fine-tuning ledger. Pin training runs to immutable dataset snapshots for reproducibility; watch progress across OpenAI, Anthropic, Vertex, and more.
Dashboard: /dashboard/evals/fine-tune · REST:/api/v1/fine-tune/jobs
Phase 5 foundation — read-only today
The schema, RLS, dashboard, CLI, and read endpoints all ship today. Submit + cancel land in the follow-up sprint as we wire each vendor adapter (OpenAI, Anthropic, Vertex, Azure-OpenAI, Fireworks, Together). When that ships, jobs you submit show up in the existing ledger; no API contract churn.
Reproducible training data
Every job pins to a dataset_versions snapshot via dataset_version_id. Re-runs use the same case set even if the live dataset has been edited since. The case count, content hash, and snapshot description carry through to the job's audit trail.
Lifecycle
Jobs flow through a 7-state machine mirroring OpenAI's naming for familiarity:
pending → validating → queued → running → succeeded
→ failed
→ cancelled
(any state) → cancelled // operator-initiated cancelThe webhook handler is the authoritative writer for the vendor- driven transitions (validating → queued → running → succeeded/failed). Operators can transition any state to cancelled via the cancel endpoint (forthcoming).
CLI
# List jobs (newest first; filter by status or provider) evalguard fine-tune list evalguard fine-tune list --status running evalguard fine-tune list --provider openai # Inspect one job evalguard fine-tune get <jobId> evalguard fine-tune get <jobId> --json | jq .hyperparameters
REST
# Query params: status, provider, limit (max 200), offset
{
"data": {
"jobs": [
{
"id": "ff70…",
"provider": "openai",
"base_model": "gpt-4o-mini",
"fine_tuned_model": "ft:gpt-4o-mini:org:abc:1A2B",
"status": "succeeded",
"case_count": 1200,
"trained_tokens": 480000,
"estimated_cost": 38.40,
"dataset_version_id": "uuid…",
"created_at": "2026-05-22T12:00:00Z",
"finished_at": "2026-05-22T13:42:11Z"
}
],
"total": 1
}
}Authorization
- SELECT — any org member can view jobs.
- INSERT (submit) — admin+ only.
- UPDATE (cancel, manual corrections) — admin+.
- DELETE — owner only. Cancel via status=cancelled is the recommended path; DELETE drops the audit trail.