# Kubeflow Trainer

> Kubernetes-native platform for distributed AI model training and LLM fine-tuning across frameworks like PyTorch, JAX, DeepSpeed, and XGBoost.

Kubeflow Trainer is an open-source, Kubernetes-native platform from the Kubeflow community for distributed AI model training and LLM fine-tuning. It exposes a single TrainJob custom resource and a Python SDK that work across PyTorch, JAX, DeepSpeed, MLX, HuggingFace, Megatron, and XGBoost. The latest release listed in the repository is v2.3.0, and the README describes the project as alpha status with APIs that may change.

## What It Is

Kubeflow Trainer lets AI practitioners define training jobs as TrainJobs that run on Kubernetes clusters, while platform administrators supply reusable training runtimes. A job can be written once with the Python SDK, for example a CustomTrainer with a training function and a node count, and run locally with Docker or Podman or on a multi-node GPU cluster. It is a Kubeflow subproject and a CNCF project.

## Distributed Training and Fine-Tuning

The documentation describes automatic setup of DDP, FSDP, parameter servers, and gang-scheduling across nodes. It also brings MPI to Kubernetes for multi-node, multi-GPU jobs on HPC-style clusters. For LLM fine-tuning, it supports LoRA, QLoRA, and full fine-tuning through a TorchTune built-in trainer, using HuggingFace model and dataset URIs. A distributed data cache built on Apache Arrow and Apache DataFusion streams data to GPU nodes with zero-copy transfer.

## Operator Controls and Scheduling

Operator guides cover installation, runtimes, ML policy, job templates, runtime patches, Dynamic Resource Allocation, and an extension framework for customizing scheduling and resource management. Documented scheduling integrations include Kueue, Slurm Bridge, KAI Scheduler, coscheduling, and Volcano. Under the hood it reuses JobSet and LeaderWorkerSet.

## Recent Releases

The README lists v2.3.0 (2026-08), which adds a runtime snapshot mechanism for decoupled runtime lifecycle, enhanced MPI support, and Megatron-LM examples. Version 2.2 added JAX and XGBoost runtimes, metrics propagation to TrainJob status, and Flux Framework integration. Migration guidance and archived documentation exist for the legacy Training Operator v1.

## Features
- Single TrainJob CRD and unified Python SDK
- Multi-framework support: PyTorch, JAX, DeepSpeed, MLX, HuggingFace, Megatron, XGBoost
- Distributed training with DDP, FSDP, parameter servers, and gang-scheduling
- MPI runtime for multi-node multi-GPU jobs
- LLM fine-tuning with LoRA, QLoRA, and full fine-tuning via TorchTune
- Distributed data cache with Apache Arrow and DataFusion
- Local execution with Local Process, Docker, or Podman backends
- Extensible training runtimes and plugin framework
- TrainJob progress and training metrics
- Dynamic Resource Allocation support

## Integrations
PyTorch, JAX, DeepSpeed, MLX, HuggingFace, Megatron-LM, XGBoost, TorchTune, Kueue, Slurm Bridge, KAI Scheduler, Volcano, JobSet, LeaderWorkerSet, Flux Framework, Docker, Podman

## Platforms
API, CLI, DEVELOPER_SDK

## Pricing
Open Source

## Version
v2.3.0

## Links
- Website: https://trainer.kubeflow.org/en/latest/
- Documentation: https://trainer.kubeflow.org/en/latest/
- Repository: https://github.com/kubeflow/trainer
- EveryDev.ai: https://www.everydev.ai/tools/kubeflow-trainer
