Tive relacionamentos com LLMs locais. Experimentei inicialmente os modelos 8B de 1ª ou 2ª geração, mas nem sempre corresponderam às minhas expectativas. Desisti deles e voltei para os modelos de nuvem. Algumas semanas atrás, tentei novamente os LLMs locais. Até testei três LLMs nativos lado a lado no meu RTX 4070 Ti e decidi manter um deles como padrão. Não porque um modelo superasse os outros dois, mas porque não fazia sentido executar todos os três lado a lado para cada prompt. No entanto, cada modelo tinha seus pontos fortes, então mantive os outros dois e procurei-os sempre que a sugestão era realmente importante. Isso me fez pensar: e se eu pudesse usar todos os três para obter um resultado melhor? Foi quando me deparei Conselho LLM de Karpathyque foi originalmente projetado para ser executado em APIs de nuvem. Gostei da ideia e resolvi recriá-la com base em modelos locais que funcionam com meu hardware.
Testei 3 LLMs nativos em meu RTX 4070 Ti para trabalho real – apenas um conseguiu um lugar permanente
VRAM de 12 GB, um modelo que vale a pena manter.
Uma resposta não foi suficiente
A disputa não terminou com a escolha do vencedor
Vamos falar um pouco sobre uma comparação que fiz algumas semanas atrás. Minha configuração foi simples. Eu uso meu RTX 4070 Ti como base para LLMs locais. Três LLMs locais – DeepSeek-R1 8B, Qwen 3.5 9B e Gemma 4 E4B – operados usando Ollama. E para uma interface familiar, eu uso o Open WebUI. Usei conjuntos de instruções semelhantes para cada modelo e tentei encontrar o melhor dos três. Usei quatro categorias diferentes de prompts e cada modelo teve um desempenho diferente.
O DeepSeek conseguia raciocinar, mas alucinava sob pressão. Kwen se sentia mais bem informado do que os outros dois, mas costumava ser falante, escondendo boas respostas. Por fim, Gemma 4 era boa em organizar e sintetizar informações, mas nem sempre era correta. Então, no final, optei pelo Gemma 4, mas sempre que a solicitação importava, ainda usei modelos diferentes para tomar a decisão final. Não estou procurando mais respostas para a mesma pergunta; Procuro confiança no que vou conseguir. E continuei descobrindo que DeepSeek percebeu algo que Gemma não percebeu, e às vezes Quen mencionou um caso extremo que outros ignoraram. A certa altura comecei a agir como um juiz, comparando as três respostas e tomando uma decisão.
Comparar manualmente as três longas respostas sempre me levou ao quadro do LLM. Karpathy sugeriu em seu quadro LLM que, em vez de fazer a mesma pergunta a cada modelo de nuvem, você poderia agrupá-los em um quadro e deixar cada modelo defender sua resposta e criticar todos os outros antes que um modelo escrevesse a resposta final. A ideia funcionou imediatamente porque fiz a mesma coisa: fiz as mesmas perguntas aos três modelos e classifiquei manualmente cada resposta longa. Foi então que decidi pelo menos experimentar a ideia; se eu pudesse replicar isso para meus LLMs locais, seria um jackpot – privacidade, sem custos de API e meu próprio hardware. Mas executar software projetado para interfaces de nuvem em uma única GPU de 12 GB acabou sendo mais interessante e desafiador do que parecia.
Três modelos, uma GPU e não tenho ideia se funcionaria
Desenvolvido para a nuvem, executado em uma única GPU
A ideia de Karpathy era um processo simples de três etapas. O mesmo prompt foi inserido independentemente para cada modelo e gerado a partir de cada saída no primeiro estágio simultaneamente. Depois, numa segunda etapa, cada modelo analisou e classificou anonimamente as respostas dos outros. Por fim, o modelo de presidente selecionado na última etapa revisou tudo, preparou a resposta final e apresentou-a ao usuário final. À primeira vista, essa parecia ser a solução perfeita: sem tabulação entre conversas, sem leitura de três longas respostas individualmente e sem decisão manual em quais partes confiar.
Mas a implementação não foi um simples clone e execução do git – ela não funcionou imediatamente. A implementação de Karpathy previu uma API em nuvem usando endpoints OpenRouter ou compatíveis com OpenAI e, no primeiro estágio, chamou cada modelo em paralelo. Mas no meu caso, como estou trabalhando com modelos nativos, substituí essas chamadas de API pelo endpoint compatível com OpenAI do Ollama. Em vez de modelos de nuvem, apontei isso para meus três LLMs locais. Na implantação original o projeto já tinha um presidente como conselheiro, então mantive essa estrutura. Gemma 4 tornou-se membro e presidente do conselho.
A adaptação geral foi simples; o código não exigiu grandes alterações, pois Ollama expôs uma API compatível. Mas o problema apareceu pela primeira vez quando o lancei. A versão original foi projetada para ser executada simultaneamente com a inferência em nuvem, o que significa que foi projetada para provedores de nuvem com hardware dedicado. Quando enviei a primeira solicitação, ele rodava todos os três modelos ao mesmo tempo, cada um com especificações 8B-9B, no meu RTX 4070 Ti com 12 GB de VRAM. Isso nunca funcionará. Um modelo foi abandonado silenciosamente – sem erros, apenas faltando uma resposta. Em seguida, ajustei o fluxo de trabalho para processar cada modelo sequencialmente, em vez de acionar as solicitações em paralelo.
Obviamente cada etapa levou mais tempo para ser concluída, mas pelo menos agora eu poderia esperar uma resposta de cada modelo. Quando funcionava com segurança, a verdadeira questão não era se funcionava; tratava-se de saber se debater os três modelos era realmente melhor do que apenas perguntar a Gemma.
O vencedor não foi um modelo
Três votos, três vencedores, zero consenso
A escolha de Gemma como presidente não foi acidental. Escolhi porque Gemma já havia provado que era a sintetizadora mais forte. Na implementação original do Karpathy, o modelo de presidente também era um dos membros do conselho, então Gemma permaneceu como candidata plena e cumpriu dupla função como presidente. Gemma primeiro gerou sua resposta de forma independente no Estágio 1, depois comparou todas as três no Estágio 2 e finalmente deu sua resposta no Estágio 3.
Também redesenhei a interface do usuário para parecer um aplicativo de bate-papo moderno e familiar, com recursos como codificação de cores do palco, placar de classificação de rua, partição clara do palco e algumas alterações de experiência do usuário. Essas pequenas mudanças UI-UX fizeram com que parecesse um fluxo de trabalho real; em vez de ficar olhando para uma parede de resultados brutos, eu poderia acompanhar como o conselho chegou à sua conclusão. Começou a parecer mais um aplicativo de IA em nuvem sofisticado do que um projeto GitHub bifurcado no meu hardware.
Ok, de volta ao teste real. Um dos testes incluiu o prompt Cloudflare Tunnel vs. Pangolin. E a tabela de classificação de crédito de rua produziu um resultado inesperado: um empate triplo perfeito. Não foi porque eles concordaram. Cada modelo ficou em primeiro lugar, embora discordasse sobre como ordenar os outros; essa é a resposta certa.
Tecnicamente, todos falharam, mas esse fracasso não significou nada na terceira fase. O presidente simplesmente não se importava com as classificações; foi apenas ler a crítica por trás deles. DeepSeek elaborou os detalhes práticos de implantação mais detalhados, enquanto Qwen enquadrou as compensações de uma forma mais acessível. E Gemma acrescentou a clareza estrutural que unia tudo. A maior força do Conselho não foi a lista de vencedores; isso os fez ler as autoavaliações uns dos outros e criar algo melhor.
7 coisas que eu gostaria de saber quando comecei a hospedar meu LLM por conta própria
Já faço meu LLM há algum tempo e essas são todas as coisas que aprendi ao longo do tempo e que gostaria de ter sabido no início.
A síntese acabou sendo a habilidade certa
Aprendi algumas coisas com todo o experimento. A síntese é uma habilidade diferente de geração em geração e certamente diferente da autoavaliação. Não estou dizendo que o município seja mais inteligente do que qualquer modelo local individual. Mas eu ainda abriria Gemma para a maioria das missões. Para qualquer coisa complicada o suficiente para precisar de uma segunda opinião, eu recorreria ao conselho. É mais lento e mais pesado com uma única GPU de 12 GB do que o necessário para um único modelo. Porque em vez de eu mesmo comparar manualmente três respostas diferentes, a avaliação acontece antes mesmo de eu ver a resposta final.







