Show HN: mecanismo de código aberto executando Gemma 4 26B em 2 GB de RAM em qualquer Mac com série M

Um mecanismo de código aberto demonstra como o modelo Gemma 4 26B MoE do Google pode rodar em Macs com série M usando apenas 2 GB de RAM, ao transmitir os pesos dos “experts” a partir do SSD, trocando velocidade bruta por um uso de memória drasticamente menor. Os comentaristas analisam como essa abordagem se compara ao MLX, ao llama.cpp e a projetos como Colibri e DwarfStar, observando que a largura de banda do SSD, o cache de páginas do SO e a memória unificada da Apple agora são tão críticos quanto os FLOPs da GPU para inferência local. A discussão também levanta perguntas mais amplas sobre até onde essas técnicas podem escalar para modelos MoE maiores, se são práticas para trabalho real de programação e o que implicam para o futuro do hardware de consumo e da IA no dispositivo.

Visão geral e objetivos

  • O mecanismo executa o Gemma 4 26B MoE localmente em Macs com série M usando ~2 GB de RAM ao fazer streaming dos experts a partir do SSD, em vez de carregar os 14 GB completos de pesos.
  • Objetivo: uso em tarefas do dia a dia com pouca RAM, em laptops/desktops da Apple, trocando velocidade por menor uso de memória e privacidade offline.

Desempenho e dependência de hardware

  • Velocidades relatadas:
    • ~4–6 tok/s em M1/M2 Air/Neo com 8 GB de RAM.
    • ~5 tok/s em M4 mini com SSD base; ~12 tok/s em M1 Max Studio.
    • ~31–35 tok/s em MacBook Pro M5; ~48 tok/s em M4 Max com 64 GB.
  • Grande variação atribuída a:
    • Velocidade do SSD (SSDs de M5/M4 Max podem ser de 3–7 GB/s vs ~2 GB/s).
    • Largura de banda da memória e cache em nível de sistema.
    • Cache de páginas do SO: mais RAM permite que a maior parte dos pesos dos experts permaneça em cache, reduzindo fortemente as leituras reais em disco.
  • Sob forte pressão de memória, as velocidades caem, mas degradam de forma gradual em vez de despencar.

Abordagem técnica (MoE + streaming por SSD)

  • Usa a esparsidade do MoE: apenas um pequeno subconjunto de experts fica ativo por token.
  • Implementa um cache explícito de experts (~16 slots por padrão; mais slots usam mais RAM, mas melhoram a velocidade).
    • Taxas de acerto do cache em torno de 60–70%; reutilização parcial por 1–2 tokens.
  • Mudança crítica: migração de mmap para pread paralelo para os experts:
    • Benchmarks mostram ~10 ms vs ~2,8–3 ms por expert de 3,36 MB, e ~0,5 → ~4 tok/s em um M2 com 8 GB.
  • Sobrepõe leituras do SSD com computação na GPU para ocultar a latência quando possível.
  • 250–320 MB do SSD por token em M2 (3 GB/s durante a fase de E/S).

Comparações com outros mecanismos/modelos

  • MLX com Gemma 4 completo em RAM no M5: ~75 tok/s, mas usando ~14 GB de RAM.
  • Este mecanismo: ~31–35 tok/s na mesma classe de máquina usando ~2 GB de RAM.
  • A discussão sugere que o llama.cpp com offload baseado em mmap pode caber em 2 GB, mas seria mais lento.
  • Outros mecanismos MoE com streaming por SSD (Colibri, Flash-MoE, DwarfStar, MoEspresso) foram citados, em geral visando modelos maiores e Macs de ponta com mais RAM.

Escopo da plataforma e limitações

  • Apenas para Mac: depende de Metal e de memória unificada; portar para Windows/Linux ou GPUs discretas exigiria um redesenho (CUDA/Vulkan).
  • Atualmente focado em Gemma 4 MoE; Qwen 3.6 MoE poderia funcionar, mas a arquitetura é mais complexa.
  • Não é مناسبado para modelos densos ou modelos de difusão nesta implementação.
  • MoEs muito grandes (por exemplo, Kimi K3) poderiam, em teoria, ser executados com ideias semelhantes, mas seriam praticamente inutilizáveis em máquinas de 16–64 GB devido à E/S extrema por token.

Utilidade, ceticismo e UX

  • Entusiasmo: muitos veem isso como um grande avanço para inferência local em Macs de consumo; engenharia impressionante de “26B em 2 GB”; atraente para uso offline e com preservação de privacidade.
  • Ceticismo:
    • Alguns argumentam que 5–30 tok/s ainda é lento demais em comparação com modelos na nuvem para codificação séria ou trabalho interativo.
    • Outros observam que assistentes locais de codificação de alta qualidade ainda exigem GPUs grandes ou modelos de classe de fronteira.
  • O Gemma é visto como forte para tarefas gerais e noções multilíngues básicas, mas mais fraco em codificação do que o Qwen; ainda assim, “bom o suficiente” para algum uso em produção.

Direções futuras e ideias de pesquisa

  • Ideias sugeridas:
    • Caches de experts maiores quando houver mais RAM disponível.
    • Aplicar a mesma abordagem de streaming a modelos MoE maiores à medida que SSDs e RAM crescem.
    • Pré-busca especulativa de experts usando heads no estilo MTP; a objeção ressalta que isso é difícil porque o roteamento dos experts é por camada e depende das saídas das camadas anteriores.
  • Os novos foundation models da Apple são citados como usando carregamento de experts no nível do prompt como uma abordagem relacionada, mas distinta.

Meta: segurança e “LLM-ese”

  • Um comentarista usou um LLM para fazer uma revisão rápida de segurança do repositório; outros debatem o valor e o risco de afirmações do tipo “a IA diz que é seguro”.
  • Longa subthread sobre o estilo de escrita polido por LLM no README:
    • Alguns não gostam de frases reconhecíveis de “LLM-ese”; outros defendem autores não nativos usando ferramentas para limpar a linguagem.
    • O consenso de vários participantes: código e experimentos importam mais do que prosa perfeita.