Modelos e LLMs

WASTE: motor em C roda Kimi K3 com 2,78 trilhões de parâmetros em MacBook de 64 GB

O engenheiro que quer rodar um modelo de IA completo com trilhões de parâmetros na máquina, sem poda, enfrenta um obstáculo simples: não cabe em RAM.

O engenheiro que quer rodar um modelo de IA completo com trilhões de parâmetros na máquina, sem poda, enfrenta um obstáculo simples: não cabe em RAM. O WASTE contorna isso ao ler os experts diretamente do disco SSD, mantendo apenas os pesos compartilhados em memória. Um MacBook Pro de 64 GB com chip M5 roda o Kimi K3 a 0,6 tokens por segundo com o modelo inteiro.

O projeto nasceu em 28 de julho de 2026. Em cinco dias acumulou 1.349 estrelas no GitHub e 104 forks. O último commit é de 3 de agosto, na versão v0.6.3. São duas issues abertas — uma delas ainda sem resolução, sobre como o motor calcula o orçamento de memória.

O motor lê experts do disco e sobrepõe leitura a cálculo

O Kimi K3 é mixture-of-experts: para cada token ativa só 4% dos 2,78 trilhões de parâmetros. O WASTE mantém em RAM a parte compartilhada do modelo, sempre necessária. Os experts específicos de cada camada são carregados diretamente do container no disco, organizados para que cada um corresponda a uma leitura alinhada. As leituras se sobrepõem ao cálculo, e a RAM que sobra forma um cache delimitado para experts reutilizáveis.

Um roteiro de lookahead prevê quais experts a próxima camada vai precisar e começa a lê-los antes. O roteiro real ainda decide — isso muda o tempo, não o resultado. Os experts usam quantização vetorial residual de 3 bits. Os pesos compartilhados, mais sensíveis, ficam em 4 ou 8 bits. A atenção linear do K3 comprime o cache KV: 0,21 GB em contexto de 4K tokens, contra 11,25 GB em transformers tradicionais. Para abrir o modelo completo, o motor precisa de 29,06 GB de RAM.

O código é todo em C, sem dependências de runtime de terceiros. Compila para um binário CLI e para a biblioteca estática libwaste.a. A equipe por trás do projeto diz que humanos definem ideias, prioridades e decisões, mas LLMs escrevem o código — a justificativa é que nessa escala de parâmetros é o único jeito de iterar rápido em algoritmos novos.

Do download ao primeiro token em 4,7 horas

O caminho começa com git clone e make. O comando make check cria um modelo sintético para testar o motor sem baixar pesos reais. Para obter o Kimi K3, o script fetch_weights.sh baixa os pesos originais da Moonshot AI e o convert.py os converte para o formato WASTE. A conversão levou 4,7 horas com três workers na máquina de teste. O resultado é um container de 982 GB, menor que os 1,42 TB dos pesos publicados.

Uma das issues abertas (#14) aponta que o motor calcula o orçamento de memória usando sysconf(_SC_PHYS_PAGES), que reporta a RAM total do host mesmo dentro de um container Docker com limite menor. O Kimi K3 dentro de um cgroup de 32 GiB em máquina maior pedia cerca de 80 GB e era finalizado pelo kernel. A correção na v0.6.3 passou a usar o menor entre a RAM física e o limite do cgroup, definido por memory.max ou memory.high na hierarquia. A issue segue aberta porque o time debate se a solução deveria trimar o multiplicador do working set em vez de cortar o valor absoluto do orçamento.

Outro bug (#13), reportado por @andrewwhitecdw, mostrou que o script convert.py gerava "--jobs" vezes o número de núcleos em threads. Em uma máquina de 224 cores com --jobs 8, isso criou 1.792 threads competindo por CPU, e a fase do codebook rodou 20 vezes mais lenta que o baseline medido. A correção limitou cada worker a cpu_count dividido por jobs para ambos os pools de threads.

A licença Apache-2.0 permite uso comercial, modificação e redistribuição. O projeto tem cinco dias de vida — a atenção é alta, mas a maturidade é mínima. Não serve quem precisa de suporte profissional ou de ferramenta validada para ambientes críticos. Serve a quem quer empurrar os limites da inferência local e não tem medo de compilar código e gerenciar terabytes de dados em disco.

Fontes

CApache-2.0Modelos e LLMsTrendshift
Como fazemos: nossa equipe monitora diariamente os repositórios de código aberto em maior alta e produz esta cobertura com apoio de modelos de linguagem, sempre a partir de dados verificados na fonte primária — repositório, documentação oficial e ranking público. Os números de estrelas e a posição no ranking refletem o momento da coleta. Entenda o método.