11 pontos por GN⁺ 2025-09-09 | 3 comentários | Compartilhar no WhatsApp
  • Explicação de como executar LLMs locais no macOS e ferramentas recomendadas
  • Um LLM local é um modelo de linguagem de inteligência artificial que pode ser executado em um computador pessoal, permitindo explorar tecnologias experimentais mantendo a privacidade dos dados
  • Usando vários modelos de pesos abertos, ele é útil para resumo de texto e para registros pessoais, mas não possui criatividade nem capacidade de raciocínio independente
  • As duas principais ferramentas que podem ser usadas no macOS são llama.cpp e LM Studio, oferecendo respectivamente código aberto e uma interface amigável
  • Ao escolher um modelo, é preciso considerar capacidade de memória, runtime, nível de quantização e recursos de visão e raciocínio
  • Executar LLMs localmente ajuda na proteção da privacidade e satisfaz a curiosidade técnica, e modelos menores oferecem valor experimental como alternativa aos modelos grandes

Introdução: visão pessoal sobre LLMs e forma de uso

  • Este texto trata da experiência de instalar e testar diretamente LLMs locais (Local Large Language Model) no macOS
  • O autor é cético em relação a LLMs, mas gosta de experimentar novas tecnologias e por isso baixou e testou por conta própria
  • Sua visão fica entre considerar os LLMs como uma forma de autocompletar avançado e tratá-los como se fossem seres com emoções e direitos
  • Na prática, eles se baseiam em previsão da próxima palavra, mas exibem comportamentos complexos não intencionais (capacidades emergentes)
  • Eles não têm criatividade nem autoconsciência; máquinas mais avançadas podem surgir no futuro, mas a tecnologia atual ainda não chegou a esse nível

Principais exemplos de uso de LLMs

  • Têm alta utilidade em resumo de texto, fornecimento de informações da internet e explicações médicas simples
  • No caso do autor, são usados para brain dump (despejar pensamentos), sendo úteis quando é preciso um interlocutor
  • Ele não se concentra nas respostas em si, usando o sistema apenas como forma de registro
  • É importante não antropomorfizar excessivamente a inteligência artificial
  • É possível controlar o comportamento das respostas com prompts de sistema, mas ele prefere não se preocupar muito com isso

Produtividade e confiabilidade

  • O autor não concorda com a ideia de que LLMs aumentam a produtividade
  • Devido aos problemas de confiabilidade das respostas (bobagens e alucinações), é indispensável verificar os fatos
  • Evitar perguntas difíceis de validar rapidamente ajuda a prevenir contaminação de informação

Por que usar LLMs locais

  • Há o prazer da experimentação técnica e o fascínio de ver o computador responder em linguagem natural localmente
  • Quando tudo roda apenas no próprio computador, há vantagens em privacidade e proteção de informações sensíveis
    • Muitas empresas de serviços de IA armazenam dados dos usuários separadamente e os utilizam em treinamento
  • Por desconfiança em empresas comerciais de IA, questões éticas, marketing excessivo, impacto ambiental e violações de direitos autorais, o autor prefere modelos locais de código aberto

Como executar LLMs no macOS

  • As duas principais ferramentas para rodar no macOS são llama.cpp e LM Studio
  • 1. llama.cpp (código aberto)

    • Desenvolvido por Georgi Gerganov
    • Oferece opções de configuração variadas e detalhadas, suporte a várias plataformas, download de modelos e uma interface web simples
    • Exemplo:
      • Comando llama-server -hf ggml-org/gemma-3-4b-it-qat-GGUF para executar o modelo recomendado: Gemma 3 4B QAT
      • Ao acessar http://127.0.0.1:8080 no navegador, é exibida uma UI mínima parecida com o ChatGPT, adequada para experimentação
  • 2. LM Studio (código fechado, fácil de usar)

    • Oferece uma UI intuitiva e avançada, recursos para explorar/baixar modelos e gerenciar conversas, além de indicar se um modelo pode ser executado
    • Inclui guardrails para impedir que o sistema trave ao carregar modelos grandes demais
    • No macOS, oferece suporte a dois runtimes: llama.cpp e o motor MLX da Apple
      • O MLX é mais rápido, mas com menos opções de configuração detalhada
    • Principais dicas de uso:
      • É possível trocar de modelo durante a conversa
      • Dá para criar ramificações da conversa e fazer vários experimentos
      • Tanto as mensagens do usuário quanto as do assistente podem ser editadas
      • Há suporte para criar e reutilizar presets de prompt de sistema
      • É possível definir como lidar quando a janela de contexto é excedida (por exemplo, mantendo mensagens do início e do fim)

Critérios para escolher um bom modelo de LLM

  • Tamanho do modelo: a principal limitação é a memória (RAM), mais do que o espaço em disco
    • Em ambientes com 16 GB de RAM, recomenda-se modelos de até 12 GB; acima disso, o sistema pode ficar instável
    • Modelos maiores tendem a ser mais lentos e, quando falta memória, podem comprometer a estabilidade do sistema inteiro
  • Escolha do runtime:
    • O llama.cpp e o runtime padrão do LM Studio exigem modelos no formato GGUF
    • O runtime MLX do LM Studio exige modelos específicos para MLX
    • Modelos GGUF são estáveis em várias plataformas e oferecem opções ricas de configuração
    • Modelos MLX entregam desempenho um pouco melhor em Apple Silicon
  • Quantização: equilíbrio entre desempenho do modelo e eficiência de memória
    • A maioria dos LLMs é treinada com precisão de 16 bits
    • Mesmo ao quantizar para menos bits, como 4 bits, a perda de desempenho costuma ser pequena até certo ponto; em geral, Q4 é adequado
    • Existem notações complexas de quantização por kernel, como Q4_K_M, mas iniciantes devem usar o padrão
  • Modelos de visão: modelos capazes de processar imagens
    • Alguns modelos conseguem tokenizar entradas de imagem para análise (ler texto, reconhecer objetos, estimar emoção/estilo etc.)
    • OCR simples é possível, mas a confiabilidade fica abaixo de ferramentas especializadas
  • Capacidade de raciocínio: alguns modelos incluem processo de pensamento antes de gerar a resposta
    • Alguns modelos acrescentam etapas de raciocínio antes de gerar a resposta, reforçando a função de “pensar” em comparação com modelos comuns
    • Modelos pequenos especializados em raciocínio podem superar modelos gerais médios ou grandes em certos casos (refletido em benchmarks)
    • Modelos de raciocínio demoram mais para responder e preenchem a janela de contexto mais rapidamente
  • Uso de ferramentas: possibilidade de chamar ferramentas externas
    • Usando tokens de chamada de ferramenta, é possível aproveitar funções de MCP (servidor de ferramentas) definidas no prompt de sistema
    • No LM Studio, é fácil adicionar e gerenciar ferramentas, mas as chamadas podem representar riscos de segurança (possível vazamento de dados), por isso a confirmação do usuário é exigida por padrão
    • Por padrão, inclui JavaScript MCP (baseado em Deno), permitindo automação de cálculos complexos, análise de dados e geração aleatória
    • Ao adicionar um MCP de busca na web, é possível incorporar resultados em tempo real e ampliar o uso de modelos limitados pelo conhecimento do mundo
    • Para memória de longo prazo, também é possível usar servidores de extensão como MCP para Obsidian
      • Porém, como o MCP preenche o contexto rapidamente, deve ser ativado apenas quando realmente necessário
  • Agents
    • Agentes são estruturas de modelos que usam ferramentas repetidamente
    • Em geral, modelos com capacidade de raciocínio e uso de ferramentas são classificados como agentes
    • Ainda não são perfeitos, mas oferecem um conceito desafiador e interessante

Modelos recomendados e dicas de uso

  • Na UI integrada do LM Studio, é fácil comparar e explorar runtime, quantização, características dos modelos e tamanho
  • No caso do llama.cpp, é possível usar a seção de modelos GGUF no Hugging Face
  • Como há poucos modelos que atendem bem a todos os critérios, recomenda-se baixar vários e experimentar
  • Lista de modelos recomendados:
    • Gemma 3 12B QAT: ponto forte em visão, rápido e com boa geração de texto
    • Qwen3 4B 2507 Thinking: pequeno, excelente em velocidade/qualidade, com versões de raciocínio e comum
    • GPT-OSS 20B: melhor desempenho atual, suporte a raciocínio em 3 etapas, lento mas muito capaz
    • Phi-4 (14B): antes era o preferido, e ainda tem versões com raciocínio e comuns

Encerramento e dicas de uso

  • Mesmo que modelos pequenos não substituam totalmente os modelos grandes mais recentes, a utilidade da execução local é clara
  • Testes locais ajudam a entender como o algoritmo funciona e a melhorar a capacidade de compensar suas fraquezas
  • O LM Studio exibe em tempo real o uso da janela de contexto
    • Pedir um resumo da conversa pouco antes de o contexto encher ajuda a preservar informações importantes
  • Pense nos LLMs locais como uma espécie de gênio digital dentro do computador, e aproveite a experiência de experimentação

3 comentários

 
tensun 2025-09-11

É bom usar qwen3:4b no ollama

 
yolatengo 2025-09-11

Não há nenhuma menção ao Ollama.

 
GN⁺ 2025-09-09
Opiniões no Hacker News
  • Também acho incrível que, quase como mágica, basta baixar algo como 10 GB de arquivos para o notebook já conseguir resumir textos, responder perguntas e até fazer inferências simples. O ponto importante é o equilíbrio entre o tamanho do modelo e a RAM. Em máquinas com 16 GB, algo entre 12B e 20B já fica perto do limite. Mas esses modelos na prática não usam o Apple Neural Engine (ANE); eles rodam na GPU via Metal. O Core ML ainda não é muito bom para runtimes customizados, e a Apple também não oferece acesso de baixo nível ao ANE para desenvolvedores. Também existem questões relacionadas à largura de banda de memória e SRAM. Espero que um dia a Apple consiga mapear bem cargas de trabalho de transformers para o ANE com otimizações do Core ML

    • Já faz tempo que sinto que a Apple precisa de um novo CEO. Se eu comandasse a Apple, teria adotado LLMs locais de forma agressiva e criado um motor de inferência que também otimizasse modelos projetados para Nvidia. Teria vendido processadores Apple Silicon de nível servidor e aberto as especificações da GPU para que todos pudessem usá-las diretamente. A Apple parece seguir caminhos seguros demais. Tim Cook é excelente como COO, mas ainda administra a empresa dessa forma. Agora acho que precisamos não de um COO, mas de um inovador

    • Pelas informações de engenharia reversa (como os casos em que o Asahi Linux consegue acessar o ANE diretamente), o Apple Neural Engine do M1/M2 é otimizado apenas para MADD com agendamento estático usando valores INT8 ou FP16. Como os modelos locais mais recentes são quantizados de forma mais agressiva, quando os valores do modelo são preenchidos para FP16/INT8 há desperdício de largura de banda de memória. Já a GPU consegue desquantizar rapidamente as entradas, preenchê-las em registradores e alimentá-las para as unidades matriciais, então a largura de banda de memória é usada com mais eficiência. Ainda assim, NPU/ANE pode ser útil para coisas como pré-processamento de prompt. Nessa parte, a limitação está mais no processamento computacional do que na geração de tokens, então dá para reduzir o consumo de energia e evitar limites térmicos. Mais informações: Whisper.cpp Pull Request, informações antigas sobre o ANE, resumo detalhado do tinygrad. O M3/M4 ainda não tem suporte do Asahi, então ainda não se sabe como isso vai evoluir. A série M3 também não parece ter uma diferença de desempenho tão grande em relação ao M2

    • Se você quer que cargas de trabalho de transformers rodem bem no ANE, já existem ferramentas para converter modelos.<br>Como converter modelos feitos em TensorFlow, PyTorch etc. para Core ML: CoreML Tools Docs

    • Também achei interessante essa parte de o Apple Neural Engine não se integrar com LLMs locais. Apple, AMD e Intel aparentemente ainda não conseguiram oferecer suporte decente a NPU no llama.cpp. Fico curioso para saber por quê

    • Estou rodando tanto o GLM 4.5 Air quanto o gpt-oss-120b de forma bem utilizável. A latência do GPT OSS em particular está boa. Isso num MacBook M4 com 128 GB. Agora parece extremamente poderoso, mas em breve vai parecer comum. Esses modelos já estão se aproximando dos modelos de ponta

  • Até agora, os LLMs locais pareciam limitados demais, tipo o ChatGPT das primeiras versões de 2022, então eu realmente não consegui encontrar um uso que valesse a pena. Fico curioso para saber que casos de uso úteis a comunidade encontrou. Vi como exemplo esse caso em que um LLM local inventou uma entrevista com Sun Tzu, e esse tipo de limitação me incomoda. Então queria saber em que isso realmente pode ser usado

    • Já usei vários LLMs, mas em MacBooks com mais de 48 GB, o Gemma3:27b é de altíssimo nível para analisar diário pessoal ou dados sensíveis. Modelos chineses dão conselhos de vida involuntariamente cômicos. Por exemplo, pedi conselho ao Deepseek sobre uma preocupação pessoal e ele me entregou um plano de vida confucionista. O Gemma é bem mais ocidental

    • Eu uso LLM local principalmente para automações que não dependem de fatos. Por exemplo, classificação, resumo, busca, correção ortográfica etc. Ele precisa entender a linguagem ou os conceitos cotidianos que eu quero, mas não precisa dominar toda a história humana nem linguagens de programação, saúde e outras áreas enormes de conhecimento. Nem é necessário interagir diretamente com o LLM por prompt; o sistema operacional ou os apps podem acionar automaticamente o LLM sempre que precisarem

    • Eu registro tudo no Obsidian: emoções, pensamentos, o que fiz etc. Não quero subir essas notas íntimas para a nuvem, então gerencio isso com chromeDB e converso com elas via LLM. Hoje em dia também uso modelos abliterated, dos quais foi removida a recusa (remoção de recusas com transformers). Também uso no trabalho. Criei um mcp para automatizar tarefas com dados financeiros, e como rodo o modelo localmente não preciso me preocupar com vazamento de informações

    • Também dá para usar em ambientes onde a internet é ruim ou cai com frequência. Mesmo que não seja um LLM de ponta, ainda é muito melhor do que não ter nada. Por exemplo, quando a internet caiu por causa de uma tempestade, deu para obter instruções de segurança imediatamente com um LLM local

    • Eu uso modelos locais para prototipar apps ou nas fases iniciais de desenvolvimento.<br>Primeiro, o custo de desenvolvimento cai claramente. Segundo, como há limitações de desempenho, isso ajuda a montar a composição com mais cuidado. Se você desenha seu fluxo de trabalho usando um modelo local razoavelmente útil (gpt-oss, qwen3 etc.), depois pode trocar por um modelo em nuvem (gpt-5-mini etc.) e ganhar desempenho imediatamente. Claro, se você puder colocar toda a documentação na janela de contexto de um modelo em nuvem e obter bons resultados, não há por que aceitar as limitações do modelo local. Mas, no longo prazo, dividir as tarefas e rodá-las localmente pode acabar sendo mais barato e mais rápido

  • Testei o Hermes Mistral e ele teve alucinações pesadas desde o começo. Recentemente estou guardando um diário de sonhos em áudio numa pasta pessoal do Obsidian. Eu pegava arquivos .wav com Whisper para transcrever e queria usar um LLM local só para ajustar pontuação e parágrafos. Pedi para não adicionar nada e apenas melhorar a legibilidade, e o Hermes de repente começou a inventar uma entrevista com Sun Tzu sobre A Arte da Guerra. Quando interrompi o processo, ele pediu desculpas, mas nem conseguiu explicar por que começou a falar de Sun Tzu. Se eu tiver que ficar detectando esse tipo de alucinação estranha o tempo todo, é melhor editar tudo eu mesmo. Essa lógica acaba se aplicando a quase todas as áreas em que tento usar LLM local. Espero que isso melhore algum dia

    • Eu achava que precisão ou “resposta certa” seria algo fácil para computadores, já que a lógica deles é exata. Imaginava que originalidade e criatividade seriam a parte difícil, por serem ilógicas, mas fico surpreso ao ver que as IAs parecem ainda mais capazes de inventar absurdos. No fim, talvez isso seja natural, já que treinamos IA para aprender comunicação humana. Talvez usar dados do Reddit como fonte de treinamento não tenha sido a melhor ideia. Se você coloca Reddit, sai Reddit
  • Acho que ainda falta bastante para chegarmos à era em que LLMs de ponta rodam diretamente no celular ou notebook. O cenário mais realista no curto prazo parece ser ter uma caixa de servidor de IA em casa rodando LLMs. Clientes leves, como notebooks, acessariam essa caixa e, quando necessário, fariam algum processamento adequado com modelos pequenos localmente. Se a Apple seguir essa estratégia com o Mac Pro, pareceria algo natural. Uma caixa doméstica de LLM por 10 a 20 mil dólares ainda me parece plausível

    • Hoje já dá para rodar modelos open source recentes num Mac Studio com 512 GB de memória (cerca de 10 mil dólares). Exemplos: vídeo do Qwen3-Coder-480B-A35B-Instruct rodando em 4 bits a 24 tokens por segundo, Deep Seek V3 0324 em 4 bits a 20 tokens por segundo. Também dá para juntar dois Mac Studio com MLX para rodar modelos ainda maiores. Exemplo com DeepSeek R1 671B em 8 bits

    • Acho o Mac Pro pouco prático, porque fica caro demais só pelo custo do gabinete grande. O Studio é mais racional. Nvidia e AMD também devem oferecer em breve grandes quantidades de memória GPU de alta largura de banda em formato desktop. Vai ser perfeito poder acessar o servidor doméstico de LLM a partir do notebook ou de outros dispositivos e usar tudo sem preocupação com bateria no lado local

    • No meu caso, uso um AMD 395+ para rodar vários containers Docker e operar diversos apps. Uso principalmente os modelos Qwen Code e GPT OSS 120b. Quando a nova geração sair em breve, pretendo fazer upgrade mesmo que seja caro. Vale a pena

    • Esse preço de 10 a 20 mil dólares é absurdamente alto para a maioria das pessoas. Talvez dê para bancar com salário de Silicon Valley, mas até o Apple Vision Pro, que é bem mais barato, vendeu mal

    • O gpt-oss-120b não entrega desempenho melhor com muito menos memória? Com um Mac Studio de 4 mil dólares e 128 GB de memória já não seria suficiente para rodá-lo?

  • Não tem relação com o tema, mas achei marcante o texto com efeito de ondas no primeiro parágrafo de “opinions”

    • Obrigado. Aquela parte era justamente o núcleo do post inteiro
  • Acho que LLM local é o futuro. Vai continuar melhorando com o tempo. Se modelos no nível do que existia no ano passado já forem distribuídos, não há motivo para usar ChatGPT, Anthropic ou outros serviços em nuvem. Também não é necessário um único modelo gigante que resolva tudo. A ideia de chamar vários modelos pequenos conforme cada tarefa está virando realidade. Não existe mais fosso de entrada

    • O desempenho dos LLMs locais deve continuar melhorando, mas não tenho certeza de quando isso vai se tornar prático para o usuário comum. A capacidade de raciocínio e programação dos modelos locais avançou muito, mas isso veio de melhorias nos dados de treinamento (RLHF, DPO, CoT etc.) e da tecnologia. Mesmo assim, o realmente importante para minimizar alucinações é a saída estatística pura de conjuntos gigantescos de parâmetros em full precision, e existe um enorme abismo de hardware entre esses modelos e o consumidor comum. Acho que ainda vai levar pelo menos mais de 10 anos

    • Eu diria que o futuro é computação em nuvem segura e privada

  • Em posts ou blogs sobre uso de LLM local, é essencial sempre mencionar em qual hardware os testes foram feitos

    • Boa observação, vou adicionar essa nota rapidamente
  • Meu voto vai para o LM Studio. Ele oferece várias configurações prontas, então fica intuitivo entender o que meu MacBook consegue fazer, como configurar etc. É uma boa experiência de 1 a 2 horas

    • Ele também já inclui por padrão uma ferramenta de CLI e um servidor compatível com OpenAI. Você pode carregar um modelo, abrir um endpoint e usar isso também em scripts locais. Dá para explorar primeiro pela interface de chat e depois expandir programaticamente
  • Eu tenho como hobby baixar modelos aleatórios e rodá-los num Mac Mini de 16 GB, e a lista de recomendações de modelos do autor ajuda demais. Testo só 4 ou 5 por faixa de tamanho, e isso é o mais eficiente

  • Também vale dar uma olhada no Mozilla-Ocho/llamafile