KAITO (Kubernetes AI Toolchain Operator) é um operador open source que automatiza a execução e o gerenciamento de tarefas de inferência (inference) e ajuste fino (fine-tuning) de modelos AI/ML em um cluster Kubernetes.
O projeto foi criado para que os desenvolvedores possam usar o Kubernetes não apenas para microsserviços, mas também para trabalhar com grandes modelos de linguagem (LLM), IA generativa e pipelines de ML — sem a necessidade de configurar manualmente a infraestrutura de GPU, manifestos e dependências.
KAITO foi aceito pela Cloud Native Computing Foundation (CNCF) como um projeto sandbox, o que confirma seu crescimento e abertura à comunidade.
A ideia principal é descrever a carga de trabalho de IA de forma declarativa, usando CRD (Custom Resource Definition), e o operador cria automaticamente os nós, contêineres, serviços e APIs necessários. Aplicação: KAITO é adequado para implantar modelos LLM (como Llama 3, Phi-3, Mistral, Gemma), APIs de inferência, sistemas RAG e ajuste fino de modelos em clusters Kubernetes corporativos ou privados, incluindo nós com GPU.
Links úteis
- GitHub do projeto: github.com/kaito-project/kaito
- Documentação da Azure (exemplo de uso): learn.microsoft.com/en-us/azure/aks/ai-toolchain-operator
- Projeto CNCF Sandbox: cncf.io/projects/kaito
- Blog sobre KAITO e IA no Kubernetes: blog.aks.azure.com
- Exemplos de CRD e YAML: examples/ no GitHub
Arquitetura e componentes principais
KAITO é construído com base no Kubernetes Operator Pattern e usa controladores que monitoram o estado de recursos personalizados e criam automaticamente a infraestrutura necessária para a carga de IA.
Componentes principais:
| Componente | Função |
|---|---|
| KAITO Controller | Gerencia os recursos do usuário, cria nós e implanta workloads. |
| CRD (Custom Resource Definitions) | Tipos principais de recursos: Workspace, RAGEngine, Preset, InferenceService. |
| Presets | Perfis de modelos pré-configurados (por exemplo, Phi-3, Llama-3, Mistral) com parâmetros de GPU, contêineres e API. |
| Provisioner Integration | Integração com Karpenter ou outros provisionadores de GPU para alocação automática de nós. |
| API compatível com OpenAI | Permite acessar modelos implantados por meio da interface padrão OpenAI /v1/chat/completions. |
| RAG Engine (a partir da v0.5) | Suporte para Retrieval-Augmented Generation com FAISS e LlamaIndex. |
Arquitetonicamente, o KAITO funciona assim:
- Você cria um manifesto YAML (por exemplo, Workspace) especificando o modelo, recursos e configuração.
- O controlador cria os nós GPU (via NodeClaim ou Provisioner), seleciona o contêiner e implanta o serviço.
- O Kubernetes cria um Service com API acessível para inferência.
Recursos e benefícios
- Gerenciamento declarativo de cargas de IA
Tudo é descrito em manifestos YAML — não há necessidade de escrever arquivos de deployment manualmente ou configurar GPUs. - Suporte para modelos LLM e serviços de inferência
Presets integrados para modelos populares, suporte à API OpenAI e ajuste automático de parâmetros para o pool de GPU. - Gerenciamento automático de nós GPU
KAITO integra-se a provisionadores (como o Karpenter) para alocar e liberar GPUs automaticamente. - Recursos de Fine-tuning e RAG
O operador RAGEngine permite criar serviços RAG com FAISS e serviços de embeddings diretamente no cluster. - API compatível com OpenAI
Facilita a migração de aplicativos que já usam a API OpenAI para modelos hospedados localmente. - Extensibilidade
Permite adicionar contêineres personalizados, novos modelos e integrar o KAITO em pipelines CI/CD com GitOps.
Início rápido
Abaixo está um exemplo de manifesto YAML para implantar um serviço de inferência com o modelo Phi-3.5-Mini-Instruct.
kind: Workspace
metadata:
name: workspace-phi-3.5-mini
spec:
resource:
instanceType: "Standard_NC24ads_A100_v4"
labelSelector:
matchLabels:
app: phi-3.5
inference:
preset:
name: phi-3.5-mini-instruct
Etapas de implantação
kubectl apply -f https://raw.githubusercontent.com/kaito-project/kaito/main/deploy/kaito-operator.yaml
# Aplicar o arquivo YAML
kubectl apply -f workspace-phi-3.5-mini.yaml
# Verificar o status
kubectl get workspace workspace-phi-3.5-mini
# Obter o Service e fazer uma solicitação
kubectl get svc workspace-phi-3.5-mini
Exemplo de chamada à API:
-H "Content-Type: application/json" \
-d '{
"model": "phi-3.5-mini-instruct",
"messages": [{"role": "user", "content": "O que é Kubernetes?"}],
"max_tokens": 50
}'
Configuração de nodeSelector, taints e imagens personalizadas
KAITO permite controlar com flexibilidade onde e como as workloads serão implantadas:
spec:
resource:
labelSelector:
matchLabels:
gpu-type: nvidia
nodeSelector:
disktype: ssd
tolerations:
* key: "nvidia.com/gpu"
operator: "Exists"
effect: "NoSchedule"
inference:
preset:
name: llama3-8b
image: custom.registry.io/llama3:latest
- nodeSelector — define em quais nós a workload pode ser implantada (por exemplo, nós com GPU).
- taints/tolerations — garantem que os pods sejam atribuídos apenas aos nós desejados.
- image — define um contêiner personalizado com o modelo ou build próprio (por exemplo, com bibliotecas adicionais).
Limitações e melhores práticas
Limitações:
- KAITO está na fase CNCF Sandbox — a API ainda pode mudar.
- Suporte completo para GPU e auto-scaling está mais maduro no Azure AKS (mas pode ser adaptado para outros ambientes).
- Atualização automática de modelos ainda não implementada.
- Para RAG é necessário armazenamento adicional e serviços de embeddings.
Recomendações:
- Use nós GPU com A100/V100/T4 em um pool dedicado.
- Isole workloads com taints/tolerations.
- Monitore recursos (via Prometheus/Grafana ou Kube-metrics-server).
- Adote o GitOps: armazene CRDs e YAMLs em um repositório e implante com ArgoCD ou Flux.
- Para fine-tuning, use namespaces separados e cotas de recursos limitadas.
Cenários reais de uso
1. Inferência de modelos
Implantação de modelos LLM em clusters próprios com API compatível com OpenAI para aplicativos internos.
2. Chatbots e NPCs em jogos
Integração de modelos em servidores de jogos: NPCs reagem às ações do jogador por meio de serviços locais de inferência (sem enviar dados a APIs externas).
3. Sistemas RAG
Combinação de KAITO + FAISS para Retrieval-Augmented Generation — por exemplo, gerar respostas baseadas em documentação interna ou dados do jogo.
4. Fine-tuning de modelos
Ajuste fino de modelos pré-treinados (como Mistral ou Phi-3) com datasets próprios para tarefas específicas.
Conclusão
KAITO torna o trabalho com cargas AI/ML no Kubernetes simples e declarativo.
Ele é ideal tanto para engenheiros que constroem infraestrutura de IA em nuvem ou on-premises quanto para equipes que desejam integrar modelos em projetos de jogos sem depender de APIs externas.
O projeto está em rápido desenvolvimento e já pode fazer parte do seu stack de IA no Kubernetes.