As lições anteriores deram o vocabulário: MoE, memória unificada, quantização, KV cache. O DS4 é onde tudo isso vira um binário que roda. Não é mais um carregador genérico de GGUF — é um engine nativo em C escrito por antirez com um único alvo em mente: rodar o DeepSeek-V4 num Mac. Esta lição abre a caixa: a arquitetura, o build que já provamos neste Mac, o streaming de SSD que dissolve o limite de RAM, e como ligar um cliente.
make (Metal)O DS4 — apelidado de "DwarfStar" — é um engine de inferência pequeno, nativo e autocontido, escrito em C. Ele não tenta rodar qualquer modelo: foi otimizado primeiro para o DeepSeek-V4-Flash (284B de parâmetros totais, 13B ativos por token, contexto de 1M). A variante Pro (1,6T totais / 49B ativos) existe para máquinas de memória gigante. Pense nele como um motor de corrida construído para uma pista — não um carro de passeio que vai a qualquer lugar.
É a primeira vez que uso um modelo local para coisa séria que eu normalmente pediria pro Claude ou pro GPT... o DS4 é muito mais B [fronteira] do que A [modelo local pequeno].— antirez, antirez.com/news/165
O DS4 é uma pilha curta e direta: um GGUF com quantização assimétrica no disco, um núcleo C com kernels Metal que faz a matemática, um KV cache que vive entre RAM e disco, e um servidor que fala os protocolos das APIs comerciais. Os clientes (Claude Code, Codex, seu app) nem percebem que estão falando com algo local.
O GGUF assimétrico (1) alimenta o núcleo C com kernels Metal (2); o KV cache (3) vive entre RAM e disco; o ds4-server (4) expõe quatro famílias de API e os clientes (5) falam o protocolo que já conhecem.
Nesta sessão, no M5 Max do fundador: git clone && make compilou 5 binários Metal — ds4, ds4-server, ds4-bench, ds4-eval e ds4-agent — com exit 0, e os binários rodam. Não é "deve compilar": compilou e executou.
Aqui está a sacada que faz 284B caber em 81 GB sem virar lixo. O DS4 não quantiza tudo no mesmo nível. Os especialistas roteados — a maior parte dos parâmetros, mas só um punhado ativo por token — vão para 2-bit. Todo o resto (atenção, embeddings, roteador, camadas densas) fica em Q8. A precisão é gasta onde importa para a fidelidade, e a economia é feita onde há volume.
Os quants de 2-bit não são brincadeira; ele chama ferramentas de forma confiável.— antirez, DS4 MODEL_CARD
Este é o mecanismo mais original do DS4. Em vez de tratar a RAM como um corte rígido — "cabe ou não cabe" — o DS4 trata o SSD como uma extensão contínua. Os pesos não-roteados (atenção, roteador, densas) ficam residentes na memória. Os especialistas roteados são lidos do GGUF sob demanda: quando o roteador pede um especialista que não está no cache, ele é trazido do SSD (cache-miss). E o KV cache é, nas palavras de antirez, "um cidadão de disco de primeira classe".
Pesos não-roteados ficam fixos na RAM; os especialistas quentes vivem num cache; um expert frio (E88) é trazido do SSD só quando o roteador o pede. Mais RAM = mais experts cabem residentes = menos misses = mais rápido — um espectro, não um corte.
O KV cache é um cidadão de disco de primeira classe. O streaming de SSD transforma a RAM disponível de um corte rígido num espectro contínuo de níveis de velocidade.— antirez, DS4 README
O download não é tamanho único. Cada quant casa com uma faixa de memória: quanto mais RAM, mais experts cabem residentes e maior a qualidade que você pode pagar. Todos vêm de hf.co/antirez/deepseek-v4-gguf.
Num M5 Max de 128 GB, o q2-imatrix (81 GB) cabe com folga e o q2-q4-imatrix (98 GB) cabe apertado; o q4 e o pro-q2 pedem máquinas maiores. O streaming de SSD suaviza as bordas, mas a tabela é o ponto de partida.
| Alvo de download | Disco ≈ | Classe de RAM | Variante |
|---|---|---|---|
| q2-imatrix | 81 GB | Macs de 96 / 128 GB | V4-Flash |
| q2-q4-imatrix | 98 GB | 128 GB (mais qualidade) | V4-Flash |
| q4-imatrix | 153 GB | ≥ 256 GB | V4-Flash |
| pro-q2 | 430 GB | 512 GB | V4-Pro |
Todos de hf.co/antirez/deepseek-v4-gguf. O q2-imatrix é o ponto de entrada para os Macs de coding/agente.
Quatro passos te levam de zero a um endpoint local servindo. Os dois primeiros — clone e make — já estão provados neste Mac. Os outros dois dependem só de disco e de apontar o cliente.
# 1+2 — clone e build (provado neste Mac: 5 binários Metal, exit 0) git clone <repo-do-ds4> && cd ds4 && make # → ds4 ds4-server ds4-bench ds4-eval ds4-agent # 3 — baixar o quant que cabe nos 128 GB (≈ 81 GB) ./download_model.sh q2-imatrix # 4 — servir (NUNCA make cpu no macOS: kernel panic; Metal é o default) ./ds4-server # OpenAI + Anthropic + Responses + completions em 127.0.0.1:8000 # 5 — plugar um cliente (ex.: chamada Anthropic-compatível) curl -s 127.0.0.1:8000/v1/messages -d '{"model":"deepseek-v4-flash","messages":[...]}'
A leitura de antirez é o ponto da lição inteira: usar um modelo local para o trabalho que você normalmente terceirizaria para o Claude ou o GPT. No eixo A→B (A = modelo local pequeno, B = fronteira), o DS4 "é muito mais B do que A". É por isso que vale aprender o engine, e não só rodar um chat de brinquedo.
O ds4-server aceita os quatro protocolos, mas tem uma propriedade que define como você o opera: ele é single-stream — uma única requisição em voo por vez. Não há paralelismo de requisições; o servidor processa um grafo de cada vez e serializa o resto. No diagrama, três clientes chegam, mas só um atravessa o worker; os outros esperam a vez.
Três requisições chegam; a fila serializa B e C; o worker de grafo único processa A e devolve tokens em stream. "Single-stream" = uma em voo — planeje seu uso (e a visão) em torno disso.
ds4-agent é alpha. Trate como ferramenta de fronteira em movimento: ótimo para trabalho sério agora, mas não como infra estável de produção ainda. E a regra que pode custar o sistema: no macOS, nunca make cpu — um bug da VM dá kernel panic. Sempre Metal (o default).