LLMKube — это Kubernetes-оператор для саморазмещенной инференции LLM на различных GPU, включая NVIDIA, AMD и Apple Silicon.
Он позволяет запустить модели с использованием разных технологий, таких как llama.cpp и vLLM, управляя многопроцессорной архитектурой и кэшированием моделей. Учитывая поддержку OpenAI-подобных конечных точек, проект призван облегчить процесс развертывания и управления рабочими нагрузками машинного обучения, особенно в средах с неоднородным оборудованием.
Пробовать LLMKube можно в своих локальных кластерах или на собственных серверах. Разработка активная, но следует учитывать, что проект может быть ещё на ранней стадии, что может потребовать некоторых усилий для подстройки под конкретные задачи. Лицензия Apache-2.0 допускает использование в коммерческих целях.
## Что такое LLMKube?
LLMKube — это оператор Kubernetes, который упрощает развертывание моделей машинного обучения с использованием собственных серверов. Проект позволяет запускать LLM (Language Models) на различных аппаратных платформах, таких как NVIDIA, Apple Silicon и AMD, с минимальными усилиями.
Главная задача LLMKube — упростить внедрение и управление моделями. С помощью LLMKube ты можешь развернуть модель всего с двумя строками кода в формате YAML. Оператор сам заботится о таких задачах, как загрузка и кэширование моделей, управление графическими процессорами (GPU), проверка состояния здоровья и скалирование, а также создании API, совместимого с OpenAI.
## Как установить и запустить?
### Быстрый старт
1. Установи CLI с помощью Homebrew:
```bash
brew install defilantech/tap/llmkube
```
2. Установи оператор на любом кластере Kubernetes:
```bash
helm repo add llmkube https://defilantech.github.io/LLMKube
helm install llmkube llmkube/llmkube --namespace llmkube-system --create-namespace
```
3. Разверни модель:
```bash
llmkube deploy phi-4-mini
```
4. Сделай запрос к модели:
```bash
kubectl port-forward svc/phi-4-mini 8080:8080 &
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"messages":[{"role":"user","content":"Hello!"}],"max_tokens":100}'
```
Если нужно использование GPU, добавь флаг `--gpu` при развертывании модели:
```bash
llmkube deploy llama-3.1-8b --gpu --gpu-count 1
```
## Как это работает?
LLMKube состоит из двух основных компонентов:
1. **Контроллер в кластере** — отвечает за управление состоянием на стороне Kubernetes.
2. **Metal Agent** (опционально) — необходим для работы на Apple Silicon и управляет процессами на уровне операционной системы.
Metal Agent позволяет использовать графические процессоры Apple на устройствах с macOS, так как доступ к Metal GPU из контейнеров невозможен. Он отслеживает API Kubernetes и запускает необходимые процессы natively на Mac, регистрируя их обратно в кластер.
LLMKube также предоставляет `ModelRouter`, который управляет маршрутизацией запросов между твоими локальными моделями и внешними провайдерами, такими как OpenAI и Anthropic, с соблюдением заданных правил.
## Ограничения и особенности
Несмотря на множество возможностей, у проекта есть некоторые ограничения:
- LLMKube требует Kubernetes для работы, что может потребовать дополнительных ресурсов.
- Для Apple Silicon необходим дополнительный Metal Agent, который привносит свою сложность в настройку.
- Хотя LLMKube поддерживает различные типы GPU, эффективность и производительность могут различаться в зависимости от используемого оборудования.
LLMKube имеет возможность управления GPU, включает кеширование моделей и обеспечивает интеграцию с различными библиотеками и инструментами, что делает его мощным решением для развертывания LLM, однако он нацелен на пользователей, имеющих опыт работы с Kubernetes и облачными архитектурами.