需先装 Docker 或 Podman;GPU 加速要额外按文档配置并加 --gpus all;部分模型(如 Llama)有独立许可证需自行确认

aikit
kaito-projectMIT活跃维护用 Docker 和 BuildKit 把开源大模型的微调、构建与部署串成一条流水线,并直接发布到 Kubernetes 上运行推理。
🏗️ Fine-tune, build, and deploy open-source LLMs easily!
docker run -d --rm -p 8080:8080 ghcr.io/kaito-project/aikit/qwen3.5:4bCPU 即可运行(AMD64/ARM64 均可,自动选最优指令集),无需 GPU;GPU 加速支持 NVIDIA CUDA 和 AMD ROCm,用 --gpus all 启用。README 未给出具体显存要求。
用 Docker 一条命令跑起开源 LLM,还能微调、打包成 OCI 镜像分发
用 Docker 和 BuildKit 把开源大模型的微调、构建与部署串成一条流水线,并直接发布到 Kubernetes 上运行推理。
核心能力
- 基于 LocalAI 提供 OpenAI 兼容 REST API
- 用 Unsloth 做快速省显存的微调
- 把模型打包成 OCI 制品推到任意兼容仓库
- 声明式配置推理与微调,支持 GGUF/GGML
- 单镜像可托管多个模型,支持多模态与图像生成
容易踩的坑
- v0.23.2最新正式版2026-10-09 · 2026-10-09 18:02 UTC
Chores
- release: backport main changes to release-0.23 (#891) #891 (Sertaç Özercan)
- Prepare v0.23.2 release (#892) #892 (github-actions[bot])
- v0.23.12026-10-09 · 2026-10-09 06:52 UTC
查看更新说明
Chores
- Prepare v0.23.1 release (#890) #890 (github-actions[bot])
- v0.23.02026-09-18 · 2026-09-18 22:13 UTC
查看更新说明
Features
- inference: add vllm.cpp CPU and CUDA backends (#841) #841 (Sertaç Özercan)
- inference: add digest-pinned backend catalog (#845) #845 (Sertaç Özercan)
Bug Fixes
- update Apple Silicon Vulkan to LocalAI v4.9.0 (#868) #868 (Sertaç Özercan)
Chores
- deps: Bump golang from
18aedc1to6c5605a#847 (dependabot[bot]) - deps: Bump golang from
18aedc1to6c5605a(#847) #847 (github-actions[bot]) - deps: Bump golang from
6c5605ato116d58c#849 (dependabot[bot]) - deps: Bump golang from
6c5605ato116d58c(#849) #849 (github-actions[bot]) - deps: Bump golang from 1.26-bookworm to 1.27-bookworm #852 (dependabot[bot])
- deps: Bump golang from 1.26-bookworm to 1.27-bookworm (#852) #852 (github-actions[bot])
- deps: Bump fedora from
6c75d5bto43b29f6#858 (dependabot[bot]) - deps: Bump fedora from
6c75d5bto43b29f6(#858) #858 (github-actions[bot]) - deps: Bump golang from
484ef60toded31c6#859 (dependabot[bot]) - deps: Bump golang from
484ef60toded31c6(#859) #859 (github-actions[bot]) - deps: Bump github.com/moby/go-archive #863 (dependabot[bot])
- deps: Bump github.com/moby/go-archive from 0.2.1 to 0.3.0 in the go_modules group across 1 directory (#863) #863 (github-actions[bot])
- deps: Bump google.golang.org/grpc from 1.83.0 to 1.83.2 #862 (dependabot[bot])
- deps: Bump google.golang.org/grpc from 1.83.0 to 1.83.2 (#862) #862 (github-actions[bot])
- deps: Bump github.com/sirupsen/logrus from 1.9.4 to 1.10.2 [#860](https://github.com/kaito-project/aikit/pull/86
- v0.22.12026-08-08 · 2026-08-08 20:26 UTC
查看更新说明
Notable Changes
- 🎯 Major fine-tuning improvements. Train with more dataset formats and sources, combine multiple datasets, tune preferences with DPO, focus training on assistant responses, and export portable PEFT LoRA adapters. Fine-tuning is also more reproducible and cache-efficient, with safer GPU access and immutable model snapshots. Existing Alpaca, full-sequence loss, and GGUF behavior remain the defaults. #814 #815 #827 #830 #831 #832 #833 #834 #835 #837 #838
- 🟠 AMD ROCm and Strix Halo support. Build hardware-accelerated inference images for supported AMD GPUs. Thanks @keithmattix for this contribution. #771
- ⚡ Faster builds and smaller images. Project benchmarks show large BuildKit graphs improving by up to 82% and 1,000-file packaging operations by 76–89%. Measured llama.cpp runner images are also 29–38% smaller. #805 #819
- 🚀 Preload models at startup. The new opt-in
loadToMemorysetting can warm selected LocalAI models when a container starts. #836
What's changed?
Features
- Add AMD ROCm and Strix Halo inference support. #771
- Expand fine-tuning dataset formats, loaders, and multi-dataset support. #827 #830 #831 #832 #833 #834
- Add DPO preference tuning. #835
- Load configured inference models at startup. #836
- Export portable PEFT LoRA adapter bundles. #838
Bug Fixes
- Restore compatibility with the current Unsloth and TRL stack. #814
- Regenerate cached model configurations when switching inference backends. #818
- Harden remote dataset loading, validation, timeouts, and cache handling. #837
Performance Improvements
- Optimize BuildKit graphs, local contexts, and model packaging. #805
- Make Unsloth builds reproducible and cache-aware. #815
- Reduce published inference runner image sizes. #819
Chores
New Contributors
- @keithmattix made their first contribution in https://github.com/kaito-project/aikit/pull/771
Full Changelog: https://github.com/kaito-project/aikit/compare/v0.21.0...v0.22.1
- v0.21.02026-03-17 · 2026-03-17 22:08 UTC
查看更新说明
Features
- update LocalAI to v4.0.0 (#750) #750 (Sertaç Özercan)
Bug Fixes
- add org.opencontainers.image.title for filenames (#681) #681 (Sertaç Özercan)
- packager exclude (#701) #701 (Sertaç Özercan)
- enable grammar-constrained function calling for Llama models (#711) #711 (Robbie Cronin)
Documentation
- fix packager docs (#680) #680 (Sertaç Özercan)
- replace AGENTS.md with research-backed CLAUDE.md (#749) #749 (Sertaç Özercan)
Chores
- Prepare v0.20.0 release (#679) #679 (github-actions[bot])
- deps: Bump python from 3.12-slim to 3.14-slim #684 (dependabot[bot])
- deps: Bump python from 3.12-slim to 3.14-slim (#684) #684 (github-actions[bot])
- deps: Bump github.com/containerd/containerd/v2 #687 (dependabot[bot])
- deps: Bump github.com/containerd/containerd/v2 from 2.1.4 to 2.1.5 in the go_modules group across 1 directory (#687) #687 (github-actions[bot])
- deps: Bump github.com/containerd/platforms #688 (dependabot[bot])
- deps: Bump github.com/containerd/platforms from 1.0.0-rc.1 to 1.0.0-rc.2 (#688) #688 (github-actions[bot])
- deps: Bump github.com/moby/buildkit from 0.25.1 to 0.25.2 #690 (dependabot[bot])
- deps: Bump github.com/moby/buildkit from 0.25.1 to 0.25.2 (#690) #690 (github-actions[bot])
- deps: Bump golang.org/x/sync from 0.17.0 to 0.18.0 #689 (dependabot[bot])
- deps: Bump golang.org/x/sync from 0.17.0 to 0.18.0 (#689) #689 (github-actions[bot])
- deps: Bump golang.org/x/crypto #694 ([dependabot[bot]](https://github.com/kaito-project/aikit/commi
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
AIKit ✨
AIKit is a comprehensive platform to quickly get started to host, deploy, build and fine-tune large language models (LLMs).
AIKit offers three main capabilities:
-
Inference: AIKit uses LocalAI, which supports a wide range of inference capabilities and formats. LocalAI provides a drop-in replacement REST API that is OpenAI API compatible, so you can use any OpenAI API compatible client, such as Kubectl AI, Chatbot-UI and many more, to send requests to open LLMs!
-
Fine-Tuning: AIKit offers an extensible fine-tuning interface. It supports Unsloth for fast, memory efficient, and easy fine-tuning experience.
-
OCI Packaging: Package models as OCI artifacts for distribution through any OCI-compliant registry. Supports CNCF ModelPack specification and generic artifact packaging.
👉 For full documentation, please see AIKit website!
Features
- 🐳 No GPU, Internet access or additional tools needed except for Docker or Podman!
- 🤏 Minimal image size, resulting in less vulnerabilities and smaller attack surface with a custom chiseled image
- 🎵 Fine-tune support
- 📦 OCI packaging support for distributing models as OCI artifacts
- 🚀 Easy to use declarative configuration for inference and fine-tuning
- ✨ OpenAI API compatible to use with any OpenAI API compatible client
- 📸 Multi-modal model support
- 🖼️ Image generation support
- 🦙 Support for GGUF (
llama) and GGML (llama-ggml) models - 🚢 Kubernetes deployment ready
- 📚 Supports multiple models with a single image
- 🖥️ Supports AMD64 and ARM64 CPUs and GPU-accelerated inferencing with NVIDIA CUDA and AMD ROCm support
- 🔐 Ensure supply chain security with SBOMs, Provenance attestations, and signed images
- 🌈 Supports air-gapped inference with self-hosted or local registries when model content and dependencies are baked or mirrored ahead of time; runner images that download models at startup are not air-gapped by default.
Quick Start
You can get started with AIKit quickly on your local machine without a GPU!
docker run -d --rm -p 8080:8080 ghcr.io/kaito-project/aikit/qwen3.5:4b
After running this, navigate to http://localhost:8080/chat to access the WebUI!
API
AIKit provides an OpenAI API compatible endpoint, so you can use any OpenAI API compatible client to send requests to open LLMs!
curl http://localhost:8080/v1/chat/completions -H "Content-Type: application/json" -d '{
"model": "qwen-3.5-4b",
"messages": [{"role": "user", "content": "explain kubernetes in a sentence"}]
}'
Output should be similar to:
{
// ...
"model": "qwen-3.5-4b",
"choices": [
{
"index": 0,
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "Kubernetes is an open-source container orchestration system that automates the deployment, scaling, and management of applications and services, allowing developers to focus on writing code rather than managing infrastructure."
}
}
],
// ...
}
That's it! 🎉 API is OpenAI compatible so this is a drop-in replacement for any OpenAI API compatible client.
Pre-made Models
AIKit comes with pre-made models that you can use out-of-the-box!
If it doesn't include a specific model, you can always create your own images, and host in a container registry of your choice!
CPU
[!NOTE] AIKit supports both AMD64 and ARM64 CPUs. You can run the same command on either architecture, and Docker will automatically pull the correct image for your CPU.
Depending on your CPU capabilities, AIKit will automatically select the most optimized instruction set.
| Model | Optimization | Parameters | Command | Model Name | License |
|---|---|---|---|---|---|
| Qwen 3.5 | Instruct | 2B | docker run -d --rm -p 8080:8080 ghcr.io/kaito-project/aikit/qwen3.5:2b | qwen-3.5-2b | Apache 2.0 |
| Qwen 3.5 | Instruct | 4B | docker run -d --rm -p 8080:8080 ghcr.io/kaito-project/aikit/qwen3.5:4b | qwen-3.5-4b | Apache 2.0 |
| Qwen 3.5 | Instruct | 9B | docker run -d --rm -p 8080:8080 ghcr.io/kaito-project/aikit/qwen3.5:9b | qwen-3.5-9b | Apache 2.0 |
| Qwen 3.8 | Instruct | 27B | docker run -d --rm -p 8080:8080 ghcr.io/kaito-project/aikit/qwen3.8:27b | qwen-3.8-27b | Apache 2.0 |
| Qwen3-TTS Base | Text to speech | 1.7B | docker run -d --rm -p 127.0.0.1:8080:8080 --mount "type=bind,source=$(pwd)/reference.wav,target=/models/reference.wav,readonly" ghcr.io/kaito-project/aikit/qwen3-tts:1.7b-base | qwen3-tts | Apache 2.0 |
| 🔡 Gemma 4 E2B | Instruct | 5.1B | docker run -d --rm -p 8080:8080 ghcr.io/kaito-project/aikit/gemma4:e2b | gemma-4-e2b-instruct | Apache 2.0 |
| Devstral Small 2 | Code | 24B | docker run -d --rm -p 8080:8080 ghcr.io/kaito-project/aikit/devstral-small2:24b | devstral-small-2-24b-instruct | Apache 2.0 |
| 🦙 Llama 3.2 | Instruct | 1B | docker run -d --rm -p 8080:8080 ghcr.io/kaito-project/aikit/llama3.2:1b | llama-3.2-1b-instruct | Llama |
| 🦙 Llama 3.2 | Instruct | 3B | docker run -d --rm -p 8080:8080 ghcr.io/kaito-project/aikit/llama3.2:3b | llama-3.2-3b-instruct | Llama |
| 🦙 Llama 3.1 | Instruct | 8B | docker run -d --rm -p 8080:8080 ghcr.io/kaito-project/aikit/llama3.1:8b | llama-3.1-8b-instruct | Llama |
| 🦙 Llama 3.3 | Instruct | 70B | docker run -d --rm -p 8080:8080 ghcr.io/kaito-project/aikit/llama3.3:70b | llama-3.3-70b-instruct | Llama |
| 🅿️ Phi 4 | Instruct | 14B | docker run -d --rm -p 8080:8080 ghcr.io/kaito-project/aikit/phi4:14b | phi-4-14b-instruct | MIT |
| 🤖 GPT-OSS | 20B | docker run -d --rm -p 8080:8080 ghcr.io/kaito-project/aikit/gpt-oss:20b | gpt-oss-20b | Apache 2.0 | |
| 🤖 GPT-OSS | 120B | docker run -d --rm -p 8080:8080 ghcr.io/kaito-project/aikit/gpt-oss:120b | gpt-oss-120b | Apache 2.0 |
NVIDIA CUDA
[!NOTE] To enable NVIDIA GPU acceleration, please see GPU Acceleration.
Published pre-made GPU images include NVIDIA CUDA libraries. For models also listed in the CPU section, the NVIDIA CUDA commands below add the
--gpus allflag.
| Model | Optimization | Parameters | Command | Model Name | License |
|---|---|---|---|---|---|
| Qwen 3.5 | Instruct | 2B | docker run -d --rm --gpus all -p 8080:8080 ghcr.io/kaito-project/aikit/qwen3.5:2b | qwen-3.5-2b | Apache 2.0 |
| Qwen 3.5 | Instruct | 4B | docker run -d --rm --gpus all -p 8080:8080 ghcr.io/kaito-project/aikit/qwen3.5:4b | qwen-3.5-4b | Apache 2.0 |
| Qwen 3.5 | Instruct | 9B | docker run -d --rm --gpus all -p 8080:8080 ghcr.io/kaito-project/aikit/qwen3.5:9b | qwen-3.5-9b | Apache 2.0 |
| Qwen 3.8 | Instruct | 27B | docker run -d --rm --gpus all -p 8080:8080 ghcr.io/kaito-project/aikit/qwen3.8:27b | qwen-3.8-27b | Apache 2.0 |
| Qwen3-TTS Base | Text to speech | 1.7B | docker run -d --rm --gpus all -p 127.0.0.1:8080:8080 --mount "type=bind,source=$(pwd)/reference.wav,target=/models/reference.wav,readonly" ghcr.io/kaito-project/aikit/qwen3-tts:1.7b-base | qwen3-tts | Apache 2.0 |
| 🔡 Gemma 4 E2B | Instruct | 5.1B | docker run -d --rm --gpus all -p 8080:8080 ghcr.io/kaito-project/aikit/gemma4:e2b | gemma-4-e2b-instruct | Apache 2.0 |
| Devstral Small 2 | Code | 24B | docker run -d --rm --gpus all -p 8080:8080 ghcr.io/kaito-project/aikit/devstral-small2:24b | devstral-small-2-24b-instruct | Apache 2.0 |
| 📸 Flux 2 Klein | Text to image | 4B | docker run -d --rm --gpus all -p 8080:8080 ghcr.io/kaito-project/aikit/flux2:klein-4b | flux-2-klein-4b | Apache 2.0 |
| 🦙 Llama 3.2 | Instruct | 1B | docker run -d --rm --gpus all -p 8080:8080 ghcr.io/kaito-project/aikit/llama3.2:1b | llama-3.2-1b-instruct | Llama |
| 🦙 Llama 3.2 | Instruct | 3B | docker run -d --rm --gpus all -p 8080:8080 ghcr.io/kaito-project/aikit/llama3.2:3b | llama-3.2-3b-instruct | Llama |
| 🦙 Llama 3.1 | Instruct | 8B | docker run -d --rm --gpus all -p 8080:8080 ghcr.io/kaito-project/aikit/llama3.1:8b | llama-3.1-8b-instruct | Llama |
| 🦙 Llama 3.3 | Instruct | 70B | docker run -d --rm --gpus all -p 8080:8080 ghcr.io/kaito-project/aikit/llama3.3:70b | llama-3.3-70b-instruct | Llama |
| 🅿️ Phi 4 | Instruct | 14B | docker run -d --rm --gpus all -p 8080:8080 ghcr.io/kaito-project/aikit/phi4:14b | phi-4-14b-instruct | MIT |
| 🤖 GPT-OSS | 20B | docker run -d --rm --gpus all -p 8080:8080 ghcr.io/kaito-project/aikit/gpt-oss:20b | gpt-oss-20b | Apache 2.0 | |
| 🤖 GPT-OSS | 120B | docker run -d --rm --gpus all -p 8080:8080 ghcr.io/kaito-project/aikit/gpt-oss:120b | gpt-oss-120b | Apache 2.0 |
AMD ROCm (experimental)
[!NOTE] AMD GPU acceleration is currently available for custom
llama-cppimages built withruntime: rocm. Published pre-made model images are currently CUDA-based, so for AMD GPUs please create your own image and follow the ROCm instructions in GPU Acceleration.ROCm support currently applies to the
llama-cppbackend onlinux/amd64.
Apple Silicon (experimental)
[!NOTE] To enable GPU acceleration on Apple Silicon, please see Podman Desktop documentation. For more information, please see GPU Acceleration.
Apple Silicon is an experimental runtime and it may change in the future. This runtime is specific to Apple Silicon only, and it will not work as expected on other architectures, including Intel Macs.
Only
ggufmodels are supported on Apple Silicon.
| Model | Optimization | Parameters | Command | Model Name | License |
|---|---|---|---|---|---|
| Qwen 3.5 | Instruct | 2B | podman run -d --rm --device /dev/dri -p 8080:8080 ghcr.io/kaito-project/aikit/applesilicon/qwen3.5:2b | qwen-3.5-2b | Apache 2.0 |
| Qwen 3.5 | Instruct | 4B | podman run -d --rm --device /dev/dri -p 8080:8080 ghcr.io/kaito-project/aikit/applesilicon/qwen3.5:4b | qwen-3.5-4b | Apache 2.0 |
| Qwen 3.5 | Instruct | 9B | podman run -d --rm --device /dev/dri -p 8080:8080 ghcr.io/kaito-project/aikit/applesilicon/qwen3.5:9b | qwen-3.5-9b | Apache 2.0 |
| Qwen 3.8 | Instruct | 27B | podman run -d --rm --device /dev/dri -p 8080:8080 ghcr.io/kaito-project/aikit/applesilicon/qwen3.8:27b | qwen-3.8-27b | Apache 2.0 |
| Qwen3-TTS Base | Text to speech | 1.7B | podman run -d --rm --device /dev/dri -p 127.0.0.1:8080:8080 --mount "type=bind,source=$(pwd)/reference.wav,target=/models/reference.wav,readonly" ghcr.io/kaito-project/aikit/applesilicon/qwen3-tts:1.7b-base | qwen3-tts | Apache 2.0 |
| 🔡 Gemma 4 E2B | Instruct | 5.1B | podman run -d --rm --device /dev/dri -p 8080:8080 ghcr.io/kaito-project/aikit/applesilicon/gemma4:e2b | gemma-4-e2b-instruct | Apache 2.0 |
| Devstral Small 2 | Code | 24B | podman run -d --rm --device /dev/dri -p 8080:8080 ghcr.io/kaito-project/aikit/applesilicon/devstral-small2:24b | devstral-small-2-24b-instruct | Apache 2.0 |
| 🦙 Llama 3.2 | Instruct | 1B | podman run -d --rm --device /dev/dri -p 8080:8080 ghcr.io/kaito-project/aikit/applesilicon/llama3.2:1b | llama-3.2-1b-instruct | Llama |
| 🦙 Llama 3.2 | Instruct | 3B | podman run -d --rm --device /dev/dri -p 8080:8080 ghcr.io/kaito-project/aikit/applesilicon/llama3.2:3b | llama-3.2-3b-instruct | Llama |
| 🦙 Llama 3.1 | Instruct | 8B | podman run -d --rm --device /dev/dri -p 8080:8080 ghcr.io/kaito-project/aikit/applesilicon/llama3.1:8b | llama-3.1-8b-instruct | Llama |
| 🅿️ Phi 4 | Instruct | 14B | podman run -d --rm --device /dev/dri -p 8080:8080 ghcr.io/kaito-project/aikit/applesilicon/phi4:14b | phi-4-14b-instruct | MIT |
Contributing
Want to contribute to AIKit? Check out our Contributing Guide for development setup, testing instructions, and contribution guidelines.
What's next?
👉 For more information and how to fine tune models or create your own images, please see AIKit website!