Pular para o conteúdo principal

Como rodar o Kimi K2 localmente: Configuração completa e resolução de problemas

Aprenda a rodar o Kimi K2 em uma única GPU A100 com 250 GB de RAM usando o llama.cpp.
Atualizado 20 de jul. de 2025  · 6 min lido

O Kimi K2, criado pela Moonshot AI, é um modelo de linguagem Mixture-of-Experts (MoE) super avançado. É super bom em conhecimento de ponta, raciocínio e tarefas de codificação, e é especialmente otimizado para capacidades de agente, incluindo uso de ferramentas e resolução autônoma de problemas.

Conforme a gente vê no nosso guia do Kimi K2, o modelo está conseguindo resultados incríveis em testes de benchmark, tornando-o o melhor modelo de linguagem de código aberto para uso geral. Estamos vendo o momento do Deepseek R1, e pra comemorar, vou te ensinar como rodar esse modelo enorme de 1 terabyte em uma única GPU.

Vamos aprender como configurar a máquina Runpod, instalar o llama.cpp e baixar o modelo mais rápido. Além disso, vamos rodar o modelo usando a CLI llama.cpp, transferindo as camadas do modelo para a RAM. Por fim, vamos falar sobre os problemas comuns que aparecem quando a gente usa esses modelos.

Configurando o Runpod

Vá para o Runpod GPU Cloud e crie uma nuvem com a máquina A100 SXM usando a imagem de contêiner Python versão 2.8.0.

Depois disso, aumente o armazenamento do disco do contêiner para 300 GB usando a opção Editar pod. 

Editar o Pod para aumentar o armazenamento do Disco do Contêiner.

Depois que tudo estiver pronto, você vai ver que tem 300 GB de espaço, o que é suficiente, já que nosso modelo quantizado de 1 bit precisa de 250 GB. 

Painel do aparelho Runpod 1X A100 SXM

Instalando llama.cpp

1. Clique no botão “Conectar” e abra o Jupyter Lab. Crie um novo notebook e instale as ferramentas Linux necessárias, como cmake e curl.

!apt-get update
!apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y

Instalando as ferramentas Linux.

2. Mude o diretório para a raiz. Não vamos usar o diretório da área de trabalho. Isso é pra aumentar a velocidade de download e carregamento do modelo. Você vai saber mais sobre isso na seção de solução de problemas no final.

%cd ..

3. Clone a versão mais recente do repositório llama.cpp.

!git clone https://github.com/ggml-org/llama.cpp

Clonando o llama.cpp

4. Configure as opções de compilação. Estamos executando a compilação para uma máquina com GPU. Se você quiser usar a inferência da CPU, troque DGGML_CUDA=ON por DGGML_CUDA=OFF.

!cmake llama.cpp -B llama.cpp/build \
  -DBUILD_SHARED_LIBS=OFF \
  -DGGML_CUDA=ON \
  -DLLAMA_CURL=ON \
  -DCMAKE_CUDA_ARCHITECTURES="80;90" \
  -DCMAKE_CUDA_FLAGS="-Wno-deprecated-gpu-targets"

Configurando a compilação do llama.cpp

5. Vamos usar o comando “ cmake ” para compilar as ferramentas: llama-quantize ”, llama-cli ”, llama-gguf-split ” e llama-mtmd-cli ”.

!cmake --build llama.cpp/build --config Release -j --clean-first --target llama-quantize llama-cli llama-gguf-split llama-mtmd-cli

Instalando o llama-cli e outras ferramentas.

6. Copie todas as ferramentas de compilação para o repositório principal para que possamos acessá-las facilmente.

!cp llama.cpp/build/bin/llama-* llama.cpp

Baixando o Kimi K2 Fast com o xnet

As versões quantizadas do modelo Kimi K2 da Unsloth suportam xnet, que permite downloads e uploads 4 vezes mais rápidos que o Git LFS. Para ativá-lo localmente, instale a versão mais recente do huggingface_hub e hf_transfer:

!pip install huggingface_hub hf_transfer

Instalar os pacotes Python pra baixar os arquivos pro Hugging Face.

Use a API snapshot_download para baixar só os arquivos do modelo GGUF quantizado de 1 bit para o repositório:

import os
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "0"

from huggingface_hub import snapshot_download
snapshot_download(
    repo_id = "unsloth/Kimi-K2-Instruct-GGUF",
    local_dir = "/unsloth/Kimi-K2-Instruct-GGUF",
    allow_patterns = ["*UD-TQ1_0*"],
)

O download pode demorar um pouco, dependendo da velocidade da sua internet e do espaço disponível no seu dispositivo.

Baixe o modelo quantizado de 1 bit no Hugging Face.

Para nós, foi super rápido, porque temos soluções de armazenamento mais rápidas com o xnet ativado. 

Como rodar o Kimi K2 localmente

É hora de testar nossa versão quantizada do modelo. Essa é a parte em que passei a maior parte do tempo depurando, porque estou tentando rodar em uma única GPU. Embora isso não seja impossível, há vários problemas relacionados ao carregamento e execução do modelo.

Estamos usando todos os threads da CPU e maximizando o carregamento de camadas para a GPU, o que envolve a descarga da CPU das camadas de projeção ascendente e descendente da Mistura de Especialistas

Aqui tá o comando que a gente tá rodando no terminal, que funciona direitinho:

./llama.cpp/llama-cli \
  --model /unsloth/Kimi-K2-Instruct-GGUF/UD-TQ1_0/Kimi-K2-Instruct-UD-TQ1_0-00001-of-00005.gguf \
  --cache-type-k q4_0 \
  --threads -1 \
  --n-gpu-layers 99 \
  --temp 0.6 \
  --min_p 0.01 \
  --ctx-size 16384 \
  --seed 3407 \
  -ot ".ffn_(up|down)_exps.=CPU" \
  --prompt "Hey"

Terminal Jupyter Lab rodando o llama-cli

Demorou quase um minuto para carregar o modelo completo. Como dá pra ver, o modelo se encaixa direitinho na máquina.

carregando o tensor na CPU e na GPU.

Se você der uma olhada no painel do Runpod, vai ver que o uso da CPU tá alto e que tanto a memória RAM quanto a VRAM estão sendo usadas.

Painel do Runpod mostrando o uso da RAM e da VRAM.

Depois de uns quatro minutos de carregar e aquecer, você tá pronto pra fazer perguntas pra modelo.

llama.cpp UI

Fiz uma pergunta simples: O que é a monção? Escreva a resposta em uma linha.

Testando o modelo Kimi K2

Demorou quase cinco minutos pra terminar de gerar. 

Fiz uma pesquisa pra entender por que a geração de tokens tá lenta e descobri que a GPU só tá sendo usada como memória, enquanto todo o processamento é feito pela CPU. Para resolver isso, você precisa transferir mais camadas para a GPU, o que significa que vai precisar de duas máquinas A100.

Resolução de problemas

Nesta seção, vamos falar sobre os problemas comuns que aparecem quando você roda um modelo grande em uma única GPU e como você pode resolver isso.

1. Entendendo VRAM vs computação

Quando você vê 95% de uso da RAM da GPU, 0% de computação da GPU e 99% de carga da CPU, isso normalmente significa que a VRAM está agindo como armazenamento de memória para o modelo, enquanto o processamento real está acontecendo na CPU.

Mesmo os modelos altamente quantizados e menores de 1 bit ainda precisam ser carregados na memória, o que aumenta o uso da VRAM. A GPU só vai começar a ser usada pra computação se você mandar mais camadas pra VRAM.

2. Resolvendo a geração lenta de tokens

Para melhorar a velocidade de geração de tokens, você precisa transferir mais camadas do modelo para a GPU. Talvez seja uma boa ideia pensar em uma configuração com várias GPUs, tipo três GPUs A100. Defina a temperatura para 0,6 para ajudar a reduzir a repetição e a incoerência no texto gerado.

3. Requisitos de hardware e desempenho

Se você tem pouca VRAM ou RAM, ainda pode rodar modelos de 1 bit em um processador comum. Mas, a geração de tokens vai ser bem lenta (por exemplo, 1 token a cada 20 segundos).

A única regra pra rodar modelos de 1 bit é que o total de espaço no disco + RAM + VRAM seja maior ou igual a 250 GB.

Pra um desempenho legal (mais de 5 tokens por segundo), você vai precisar de pelo menos 250 GB de memória unificada ou um total de 250 GB de RAM e VRAM.

4. Resolvendo problemas com downloads lentos

Instale a versão mais recente do huggingface_hub e hf_transfer para acessar o “xnet speed”, que é 4 vezes mais rápido que o Git LFS simples.

Para otimizar o armazenamento e o carregamento de arquivos fragmentados GGUF, é melhor usar um disco de contêiner para armazenamento em vez de um volume de contêiner. Isso acontece porque o tamanho dos contêineres pode deixar o download e o carregamento do modelo bem lentos.

5. Resolução de problemas de carregamento lento do modelo

Se o modelo demora pra carregar, pode ser que ele seja muito grande. Carregar modelos do armazenamento em rede pode deixar o processo de carregamento bem mais lento. Sempre use um SSD M.2 local pra guardar seus modelos. Os SSDs M.2 são muito mais rápidos pra ler e gravar do que os discos rígidos tradicionais ou o armazenamento em rede, o que deixa o tempo de carregamento bem menor. 

Se não tiver RAM suficiente pra carregar o modelo, o sistema operacional pode começar a trocar dados pro disco (usando um arquivo de troca), o que é bem mais lento que a RAM e cria um gargalo. Tenta montar um sistema com várias GPUs e mais memória RAM.

Conclusão

A execução de versões quantizadas do Kimi K2 ainda pode apresentar desafios, pois ferramentas como llama.cpp estão sempre mudando pra acompanhar as últimas atualizações do modelo. Nas próximas semanas, a gente vai lançar soluções melhoradas que vão passar os cálculos de geração de tokens para GPUs, pra ter um desempenho melhor, em vez de depender só das CPUs.

Além disso, essa experiência foi super valiosa pra mim. Eu aprendi como a galera do código aberto trabalha junto pra otimizar e implementar esses modelos da melhor maneira possível.

O Kimi K2 é um dos melhores modelos de código aberto, quase chegando ao nível de modelos como o DeepSeek R1, com desempenho de ponta em conhecimento de ponta, matemática e codificação entre os modelos não pensantes. 

É super forte na escolha de ferramentas e tarefas de agência, o que o torna uma opção econômica em comparação com modelos premium como o Claude 4 Sonnet para projetos de codificação ou codificação vibe.

Você pode usar a versão quantizada do Kimi K2 nas suas soluções internas seguindo este guia. O Llama.cpp permite que você use os modelos de linguagem como uma API compatível com o OpenAI. Para continuar aprendendo mais, não deixe de conferir nosso guia do Kimi K2 com exemplos. Se você quer saber mais sobre IA agênica, não deixe de fazer nosso novo curso sobre construção de sistemas multiagentes com LangGraph.


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

Sou um cientista de dados certificado que gosta de criar aplicativos de aprendizado de máquina e escrever blogs sobre ciência de dados. No momento, estou me concentrando na criação e edição de conteúdo e no trabalho com modelos de linguagem de grande porte.

Tópicos

Os melhores cursos de IA

Curso

Working with Llama 3

2 h
10.1K
Explore the latest techniques for running the Llama LLM locally and integrating it within your stack.
Ver detalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

Tutorial

Como fazer o ajuste fino do GPT 3.5: Liberando todo o potencial da IA

Explore o GPT-3.5 Turbo e descubra o potencial transformador do ajuste fino. Saiba como personalizar esse modelo de linguagem avançado para aplicativos de nicho, aprimorar seu desempenho e entender os custos associados, a segurança e as considerações de privacidade.
Moez Ali's photo

Moez Ali

Tutorial

Guia para iniciantes do LlaMA-Factory WebUI: Ajuste fino dos LLMs

Saiba como fazer o ajuste fino dos LLMs em conjuntos de dados personalizados, avaliar o desempenho e exportar e servir modelos com facilidade usando a estrutura com pouco ou nenhum código do LLaMA-Factory.
Abid Ali Awan's photo

Abid Ali Awan

Tutorial

Guia de torchchat do PyTorch: Configuração local com Python

Saiba como configurar o torchchat do PyTorch localmente com Python neste tutorial prático, que fornece orientação e exemplos passo a passo.

Tutorial

Como treinar um LLM com o PyTorch

Domine o processo de treinamento de grandes modelos de linguagem usando o PyTorch, desde a configuração inicial até a implementação final.
Zoumana Keita 's photo

Zoumana Keita

cursor ai code editor

Tutorial

AI do cursor: Um guia com 10 exemplos práticos

Saiba como instalar o Cursor AI no Windows, macOS e Linux e descubra como usá-lo em 10 casos de uso diferentes.

Tutorial

Ajuste fino do SAM 2 em um conjunto de dados personalizado: Tutorial

Saiba como fazer o ajuste fino do SAM 2 do Meta AI usando o conjunto de dados Chest CT Segmentation para melhorar o desempenho da segmentação de imagens do modelo na análise de imagens médicas.
Aashi Dutt's photo

Aashi Dutt

Ver maisVer mais