← Resources
By Ren Sugaya
— Performance Engineer, GPU & Inference
·
· TUTORIAL
Executando LLMs no Apple Silicon: Memória Unificada e o Que Cabe
Apple Silicon é excepcionalmente bom para executar LLMs porque sua memória unificada é compartilhada, de alta largura de banda e grande — um Mac de 64 GB pode executar um modelo de 70B. Este guia aborda o que cabe em cada nível de RAM, MLX versus llama.cpp, a única fraqueza real (processamento de prompts) e as ferramentas disponíveis.
Por que a memória unificada é a vantagem
O Apple Silicon compartilha um único pool de memória de alta largura de banda entre o CPU, a GPU e o Neural Engine — não há VRAM separada nem cópia lenta através de um barramento PCIe. É por isso que um Mac de 64 GB pode carregar um modelo que não cabe em uma GPU discreta de 24 GB: todo o pool fica disponível para a GPU.
Isso importa porque a geração de tokens em LLMs é [limitada pela largura de banda de memória](/articles/running-llms-on-cpu) — cada token requer a leitura do modelo da memória — e a largura de banda unificada da Apple é alta o suficiente para ser genuinamente competitiva no decode. A largura de banda, e não o poder de computação bruto, é a especificação que determina a velocidade de geração aqui.
O que cabe, por nível de memória
A memória unificada é a restrição determinante, então dimensione o modelo para o seu Mac (valores com quantização de 4 bits):
- 16 GB: modelos de 7B–8B com conforto.
- 32 GB: até aproximadamente 30B.
- 64 GB: um modelo de 70B torna-se viável (um 70B no Q4 ocupa cerca de 40 GB), embora a margem para contexto seja apertada — este é o ponto de entrada prático para 70B.
- 128 GB: um 70B em maior precisão (Q5/Q8) com espaço para contextos grandes.
- Nível Ultra (192 GB+): 70B em alta precisão, modelos muito grandes ou vários modelos residentes ao mesmo tempo.
Regra geral: calcule cerca de 0,5–0,6 GB por bilhão de parâmetros para os pesos no Q4, e reserve espaço para o cache KV, que cresce com o comprimento do contexto e frequentemente é o que decide se você cabe em 16K ou 32K de contexto.
MLX vs llama.cpp
Dois runtimes dominam no Mac. O backend Metal do llama.cpp traduz o processamento GPU em shaders Metal e usa o formato multiplataforma GGUF com a maior biblioteca de modelos. MLX é o próprio framework da Apple, construído do zero para memória unificada — geralmente mais rápido em modelos menores (muitas vezes de forma significativa abaixo de ~14B), com a diferença diminuindo acima de ~27B, onde ambos atingem o teto de largura de banda.
O MLX tem momentum: a Apple o posicionou como o framework preferido para Apple Silicon, runtimes populares adicionaram backends MLX e ele brilha em modelos de mistura de especialistas. A conclusão pragmática: MLX para velocidade máxima em modelos menores e MoE, llama.cpp/GGUF para a maior seleção de modelos e consistência multiplataforma.
A fraqueza real: processamento de prompts
A limitação honesta do Apple Silicon não está na geração — está no processamento de prompts (tempo até o primeiro token). O prefill é limitado por computação, envolve grandes multiplicações de matrizes, e as GPUs da Apple não têm os tensor cores dedicados que tornam a NVIDIA rápida aqui. Então, mesmo quando a geração de tokens é competitiva, o modelo pode ser notavelmente lento para começar a responder a um prompt longo, o que domina a sensação real do trabalho com contextos longos.
A outra limitação é o ecossistema: a maioria das ferramentas tem como alvo CUDA, há menos modelos MLX pré-quantizados do que GGUF, e uma GPU NVIDIA de alto desempenho ainda tem várias vezes mais largura de banda bruta. Para uso local interativo de usuário único, o Apple Silicon é excelente; para contextos longos ou serviço de alto desempenho, essas lacunas importam.
Ferramentas e quantização
O ecossistema de ferramentas para Mac é maduro: Ollama (CLI mais uma API compatível com OpenAI, o início mais fácil), LM Studio (a melhor GUI), MLX-LM (desempenho máximo e fine-tuning, via Python) e aplicativos offline focados em privacidade. GGUF é o formato de quantização dominante entre ferramentas; o formato MLX é nativo da Apple e mais rápido, mas tem uma biblioteca menor.
Como em todo lugar, a [quantização](/articles/llm-quantization-explained-gguf) é o que faz funcionar — reduzir para 4 bits encolhe um modelo em cerca de quatro vezes (um 70B de ~140 GB para ~40 GB) com perda de qualidade modesta, e Q4_K_M é geralmente o ponto ideal. Suba para Q5 ou Q8 se sua memória unificada permitir.
Apple Silicon no osFoundry
O osFoundry executa inferência local no Apple Silicon por meio dos caminhos Metal e MLX, de modo que o modelo é executado inteiramente na GPU do seu Mac usando sua memória unificada — nenhum dado sai do dispositivo e não há penalidade de cópia PCIe. Como a restrição é simplesmente quanta memória unificada você tem, o osFoundry ajuda você a escolher um modelo dimensionado para o seu Mac — um modelo de 7B–8B em uma máquina de 16 GB, até um 70B em uma de 64 GB ou mais — e seleciona a quantização para ajustar o modelo à memória disponível preservando o máximo de qualidade possível, para que você não precise raciocinar manualmente sobre formatos GGUF ou os trade-offs Q4/Q5/Q8. O resultado é inferência local completamente privada e com capacidade offline, ajustada ao nível de memória de cada Mac — e o mesmo modelo pode escalar para um endpoint GPU dedicado quando você precisar de processamento de prompts mais rápido ou maior throughput. (Para a história subjacente de largura de banda, veja nosso [guia de inferência em CPU](/articles/running-llms-on-cpu).)
Frequently asked questions
- Um Mac pode executar grandes modelos de linguagem localmente sem uma GPU dedicada?
- Sim — essa é a força do Apple Silicon. Sua memória unificada é compartilhada entre CPU e GPU com alta largura de banda, então a GPU pode usar todo o pool de memória. Um Mac de 64 GB pode executar um modelo de 70B a 4 bits, algo que uma GPU discreta de 24 GB não consegue acomodar, e modelos menores rodam rápido. Nenhuma GPU separada é necessária.
- Quanta memória unificada preciso para executar um modelo de 7B, 30B ou 70B?
- Com quantização de 4 bits: cerca de 16 GB para um modelo de 7B–8B, 32 GB para até aproximadamente 30B, e 64 GB para um 70B (que ocupa cerca de 40 GB de pesos, deixando pouca margem para contexto). Com 128 GB você pode executar um 70B em maior precisão com espaço para contextos grandes. Sempre deixe margem para o cache KV, que cresce com o comprimento do contexto.
- MLX é mais rápido que llama.cpp no Apple Silicon?
- Frequentemente, em modelos menores — MLX é o framework da Apple construído para memória unificada e é significativamente mais rápido abaixo de cerca de 14B, e brilha em modelos de mistura de especialistas. Acima de cerca de 27B, os dois convergem porque ambos ficam limitados pela largura de banda. A vantagem do llama.cpp é a maior biblioteca de modelos GGUF e a consistência multiplataforma. Use MLX para velocidade máxima em modelos menores e MoE.
- Por que meu Mac demora para começar a responder em prompts longos?
- Porque o processamento de prompts (tempo até o primeiro token) é o ponto fraco do Apple Silicon. O prefill é limitado por computação e as GPUs da Apple não têm os tensor cores dedicados que a NVIDIA usa para isso, então um prompt longo demora antes que o primeiro token apareça — mesmo quando a geração de tokens posterior é rápida. É a principal limitação específica da Apple para trabalho com contextos longos.
- Qual é a ferramenta mais rápida para executar LLMs em um Mac?
- Para desempenho máximo, MLX-LM (o framework da Apple), especialmente em modelos menores e MoE. Para facilidade de uso, Ollama (CLI mais uma API compatível com OpenAI) ou LM Studio (a melhor GUI) são as escolhas populares, e vários agora usam backends MLX no Apple Silicon. A escolha certa depende de se você quer velocidade máxima ou conveniência máxima.
- Posso executar um modelo de 70B em um MacBook Pro de 64 GB?
- Sim, a 4 bits — um 70B no Q4 ocupa cerca de 40 GB, que cabe em 64 GB com espaço para o runtime e uma janela de contexto modesta. É o ponto de entrada prático para 70B em um Mac; a margem de contexto é limitada, então para contextos grandes ou maior precisão você precisaria de 128 GB. Espere boa velocidade de geração, mas tempo até o primeiro token mais lento em prompts longos.
- Apple Silicon ou NVIDIA para LLMs locais?
- Apple Silicon é excelente para inferência local privada de usuário único — a grande memória unificada permite que um Mac execute modelos que precisariam de várias GPUs discretas, com menor consumo de energia. NVIDIA vence em largura de banda bruta (várias vezes maior), velocidade de processamento de prompts, serviço de alta concorrência e ecossistema (CUDA). Escolha Apple para uso local pessoal e modelos grandes em uma única máquina; NVIDIA para throughput e serviço com contextos longos.
Sources