LLMs locais rodando em GPUs ociosas dos computadores de desenvolvedores podem reduzir o gargalo de custos com APIs de LLMs em ambientes corporativos?

Rodamos dez modelos open weight de LLMs especializados em código, localmente em um laptop com GPU NVIDIA 8 GB de VRAM (muito comum para desenvolvedores em ambientes corporativos), em 14 tarefas comuns de desenvolvimento de software — e medimos correção, confiabilidade estrutural e o tempo de resposta final para avaliar a viabilidade da aplicação deste recurso.

🚀 Dica para a leitura:
Este artigo é ideal para quem deseja entender:
  • Se vale a pena reaproveitar GPUs ociosas de estações de trabalho com modelos locais de LLMs
  • Quais modelos de código open-weight realmente entregam resultado em 8GB de VRAM de GPU
  • Se existe uma saída para o alto custo de dependência de APIs externas — e como proteger dados sensíveis do compartilhamento com provedores de LLM

Introdução

Organizações estão cada vez mais dependentes de LLMs comerciais hospedados via API para tarefas de desenvolvimento de software. Isso traz três riscos crescentes: custo instável e crescente, dependência de um único fornecedor, e exposição de dados sensíveis a terceiros.

O preço do GitHub Copilot para faturamento agêntico, por exemplo, subiu de 10x a 50x para usuários intensivos após a mudança de modelo de cobrança em 2026[1], e pesquisas de mercado independentes mostram uma pressão contínua de custo e reprecificação entre os principais provedores de LLM[2]. Ao mesmo tempo, levantamentos de segurança apontam riscos reais de privacidade em assistentes de código baseados em nuvem[3], e análises de mercado destacam o risco de dependência de fornecedor único como uma preocupação estratégica crescente para empresas[4].

Do outro lado dessa equação está um recurso que a maioria das organizações já possui e mal utiliza: GPUs. Estudos de infraestrutura corporativa apontam utilização média de GPU em torno de apenas 5% fora de cargas de treinamento dedicadas[5] — ou seja, a capacidade computacional já está lá, ociosa, na estação de trabalho do próprio desenvolvedor.

A premissa deste estudo é simples: para uma fração relevante das tarefas de desenvolvimento assistidas por IA que devs relatam usar no dia a dia[6] — escrever, depurar, testar, documentar e revisar código — será que um modelo local, rodando na GPU ociosa da própria máquina, já entrega qualidade suficiente para substituir a chamada de API?

📊 Resultado em uma frase:
Sim, para pelo menos um modelo (Qwen3-Coder-30B-A3B, 80% de acerto verificado e nota perfeita em explicação/revisão) — mas não para a maioria: a taxa média de acerto entre os dez modelos testados foi de apenas 25%.

Metodologia: o que exatamente testamos

Para não cair em achismo, montamos um harness de execução real — não um benchmark sintético de completar código, mas um agente que efetivamente lê, cria e edita arquivos, e roda comandos, exatamente como uma ferramenta de coding assistant faria.

  • 10 modelos especializados em código, de 3B a 30B de parâmetros, todos quantizados em 4-bit (padrão do Ollama para cada publisher) — todos encontrados e baixados diretamente do catálogo de modelos de código do próprio Ollama
  • 14 tarefas, distribuídas em 7 categorias: correção de bug, adaptação, criação, explicação, teste, documentação e revisão de código
  • Cada categoria testada em Python e C
  • Hardware fixo: um único laptop consumer com GPU de 8 GB de VRAM — o cenário real de uma estação de trabalho corporativa comum, não um servidor de treinamento
  • Agente com até 8 passos por tarefa, escolhendo entre ler arquivo, buscar código, criar arquivo, editar arquivo, rodar comando ou finalizar
  • Contexto fixo em 4.096 tokens para todos os testes, garantindo comparação justa

Para deixar claro o que cada categoria realmente pedia ao modelo, e não só o nome abstrato dela, a tabela abaixo mostra a instância concreta de tarefa usada em cada linguagem:

Categoria Instância em Python Instância em C
Correção de bug fórmula de média com erro leitura fora do array (off-by-one)
Adaptação adicionar função, mesmo arquivo adicionar filtro, mesmo arquivo
Criação verificador de palíndromo leitor de mínimo/máximo/média
Explicação deduplicação + closure recursão + ponteiros
Teste testes de validador de senha testes de verificador de intervalo
Documentação docstrings de um inventário bloco Doxygen de utilitário de matriz
Revisão argumento padrão mutável (bug compartilhado) strcpy sem verificação de tamanho
As 14 tarefas do estudo: 7 categorias × 2 linguagens. Os defeitos de "Correção de bug" e "Revisão" foram inseridos deliberadamente para testar se o modelo os identifica e corrige corretamente.

Tarefas automatizáveis (correção de bug, adaptação, criação, teste e documentação) foram verificadas por compilação/execução real — sem julgamento manual. Tarefas de explicação e revisão de código foram avaliadas manualmente, em uma escala de 0 a 5.

💡 Este estudo evita deliberadamente qualquer comparação por nacionalidade ou origem dos modelos — o critério é puramente funcional: o que o modelo entrega, e a que custo em tempo e confiabilidade.

Resultado principal: 25% de acerto médio, mas um outlier em 80%

Das 100 tentativas automaticamente verificáveis (10 modelos × 10 tarefas checáveis), apenas 25 (25,0%) produziram saída verificadamente correta. É um número baixo — mas mascara uma diferença enorme entre modelos.

Modelo tokens/s Tempo/tarefa Acerto Ação inválida Nota NL
Qwen3-Coder-30B-A3B 21.4 50.1s 8/10 5% 5.00
CodeGeeX4 9B 30.3 29.3s 4/10 27% 4.25
North Mini Code 1.0 20.5 175.6s 1/10 27% 3.75
Qwen2.5-Coder 7B 31.7 25.5s 3/10 12% 3.50
DeepSeek-Coder-V2 16B 34.2 25.6s 4/10 22% 2.75
StarCoder2 7B 36.5 32.5s 2/10 15% 0.00
CodeQwen1.5 7B 39.1 20.8s 2/10 17% 0.75
DeepSeek-Coder 6.7B 36.1 63.1s 0/10 6% 0.75
CodeGemma 7B 17.0 50.6s 1/10 18% 1.25
Code Llama 7B 38.8 64.3s 0/10 46% 1.00
Resultados completos das 140 tentativas do estudo principal (10 modelos × 14 tarefas). Acerto: tarefas automaticamente verificadas aprovadas em 10. Ação inválida: fração de passos que não geraram uma ação estruturada válida. Nota NL: média manual (0–5) nas tarefas de explicação e revisão de código.
Qwen3-Coder-30B-A3B aprovou 8 de 10 tarefas automaticamente verificáveis — mais que o dobro do segundo melhor colocado — e tirou nota perfeita (5/5) em todas as quatro tarefas de explicação e revisão de código. Suas duas únicas falhas foram esgotamento do orçamento de passos, não código incorreto.

É um resultado notável considerando que esse modelo é uma arquitetura Mixture-of-Experts (MoE) com 30B de parâmetros totais — cujo peso completo excede o orçamento de 8 GB de VRAM da GPU testada — mas apenas 3,3B de parâmetros ativos por token. Mesmo rodando parcialmente fora da GPU, ele entregou o melhor resultado do estudo.


O que o tokens/s não te conta: tempo de resposta final

Throughput isolado (tokens por segundo) esconde uma parte importante da experiência real: quantos passos o agente precisa para chegar numa resposta final, e qualquer overhead fixo por passo (reprocessamento de contexto, formatação de resultado de ferramenta). Por isso, além do tokens/s, medimos o tempo total, do pedido até a resposta final, em cada uma das 14 tarefas.

O achado é uma troca real entre velocidade e correção que o tokens/s por si só não revela: os quatro modelos mais rápidos em tempo de resposta (CodeQwen1.5, 20.8s; Qwen2.5-Coder, 25.5s; DeepSeek-Coder-V2, 25.6s; CodeGeeX4, 29.3s) estão todos no meio da tabela ou piores em correção automatizada — enquanto o Qwen3-Coder-30B-A3B, o melhor modelo do estudo em correção e qualidade, fica em sexto lugar em velocidade, com 50.1s por tarefa, quase 2,5x mais lento que o CodeQwen1.5.

Dois fatores se somam aqui: o throughput bruto do Qwen3-Coder é pouco mais da metade do CodeQwen1.5 (21.4 vs. 39.1 tokens/s, plausivelmente relacionado ao fato de seus pesos completos excederem os 8 GB de VRAM mesmo com apenas 3.3B de parâmetros ativos por token), e ele também usa mais passos de agente por tarefa em média (4.7 vs. 3.4) — a residência exata de GPU/CPU para esse modelo não foi medida de forma independente neste estudo.

💡 O caso extremo é o North Mini Code 1.0: o modelo mais lento do estudo (175.6s por tarefa, mais de 3x o segundo mais lento), apesar de throughput comum (20.5 tokens/s) — consistente com um modelo que raramente sinaliza conclusão e acumula tempo de parede em cima do tempo de geração.

Na prática, isso significa que a escolha de modelo para uso interativo em uma estação de trabalho deve tratar o tempo de resposta final como um critério próprio — não assumir que ele decorre diretamente do tokens/s ou da correção. O modelo mais correto testado aqui também é comparativamente lento para responder, e uma equipe otimizando para uso interativo e ágil pode razoavelmente trocar parte da correção pelos tempos de resposta abaixo de 30 segundos do CodeQwen1.5, Qwen2.5-Coder ou DeepSeek-Coder-V2, dependendo da tolerância a erro da tarefa.


Dois modelos MoE quase idênticos, comportamentos opostos

Qwen3-Coder-30B-A3B e North Mini Code 1.0 compartilham um perfil de arquitetura quase idêntico (30–30.5B de parâmetros totais, 3–3.3B ativos por token), mas produziram resultados muito diferentes (8/10 vs. 1/10 de acerto automatizado).

A inspeção das transcrições por tentativa mostra que isso não foi, principalmente, uma questão de qualidade de código: o North Mini Code esgotou seu orçamento de 8 passos sem sinalizar "concluído" em 8 de suas 14 tentativas, contra 2 de 14 do Qwen3-Coder — e uma tarefa cujo modelo nunca sinaliza conclusão é pontuada como não verificada, independentemente da qualidade de qualquer trabalho parcial realizado. O throughput médio foi comparável (20.5 vs. 21.4 tokens/s), então a diferença tampouco é primariamente um efeito de velocidade.

Classe de arquitetura (denso vs. MoE, ou parâmetros totais vs. ativos) não é um proxy confiável para confiabilidade agêntica. A eficiência em reconhecer a própria conclusão de uma tarefa é uma propriedade separada — e decisiva.

Confiabilidade estrutural, competência de código e honestidade textual são capacidades separáveis

Ao todo, dos 634 passos de geração registrados no estudo principal, 19,9% (126/634) não continham uma ação estruturada sintaticamente válida — variando de 5% (Qwen3-Coder) a 46% (Code Llama 7B). Essa taxa não foi, por si só, um bom preditor de correção: o DeepSeek-Coder 6.7B teve a segunda menor taxa de ações inválidas do estudo (6%) e ainda assim 0/10 de acerto automatizado, enquanto o CodeGeeX4 combinou uma taxa de inválidas mediana (27%) com o segundo melhor acerto (4/10).

O achado mais preocupante, no entanto, é sobre honestidade. O StarCoder2 (2/10 de acerto automatizado, um resultado relativamente respeitável) tirou 0.00 de 5 em todas as quatro tarefas de linguagem natural — fabricando, nas quatro vezes, uma descrição fluente e detalhada de uma função de soma de dois argumentos que não existe em nenhum dos arquivos fornecidos.

⚠️ Para o caso de uso de menor risco identificado pela premissa deste estudo — explicação e revisão de código, onde uma resposta errada confunde em vez de corromper — um modelo fluentemente e confiantemente errado é um resultado pior do que um modelo que responde de forma incompleta. Qualquer uso desse tipo deve orçar verificação independente das respostas em linguagem natural, não apenas do código gerado.

Limitações honestas

Este é um estudo de ponto único, não uma medição estatística robusta, e é importante dizer isso claramente:

  • Uma única execução por par modelo-tarefa. A amostragem de LLMs é estocástica; nenhum número aqui tem uma medida de variância associada.
  • Notas de linguagem natural de um único avaliador, sem segundo avaliador independente ou medida de concordância entre avaliadores.
  • Uma única configuração de hardware e quantização (4-bit, 8 GB de VRAM) — os resultados são específicos a esse orçamento de VRAM.
  • 14 tarefas escritas à mão pelo autor do estudo, com conhecimento prévio dos modos de falha esperados dos modelos — não uma amostra representativa extraída por processo independente.

Comparações entre modelos com pontuação agregada próxima (por exemplo, CodeGeeX4 e DeepSeek-Coder-V2, ambos 4/10) não devem ser lidas como um ranking confiável entre eles.


Conclusão

A premissa motivadora deste estudo agora tem suporte afirmativo, ainda que estreito: existe pelo menos um modelo open-weight atualmente disponível (Qwen3-Coder-30B-A3B) capaz de, rodando em hardware onde nem cabe inteiramente, atingir 80% de acerto verificado e nota perfeita em qualidade textual — uma evidência de que redirecionar capacidade de GPU ociosa para IA local é uma decisão de engenharia defensável, ao menos para as categorias de tarefa testadas aqui.

Mas isso não é uma afirmação sobre "modelos locais" como categoria. A taxa agregada de 25% entre os dez modelos, e a fabricação completa e fluente de um deles em toda tarefa de linguagem natural, mostram que essa capacidade ainda não é uma propriedade genérica — é uma propriedade de lançamentos específicos de modelo, que precisa ser identificada empiricamente, no hardware e na mistura de tarefas que uma equipe realmente pretende usar.

Dado esse cenário — hardware de VRAM limitada e modelos locais que ainda falham na maioria das tarefas mais exigentes — a estratégia mais realista não é substituir a IA paga, e sim segmentar por complexidade: direcionar para o modelo local as tarefas mais simples, porém de altíssima frequência no dia a dia do desenvolvedor (correção de bugs pontuais, pequenas adaptações, documentação, testes de rotina), e reservar a LLM paga apenas para o que exige raciocínio mais complexo. Como essas tarefas simples são justamente as mais repetidas, mesmo uma taxa de acerto local moderada já representa uma economia relevante de tokens pagos ao longo do tempo. Nessa lógica, o sistema mais eficiente não é "local vs. nuvem", mas um modelo híbrido, combinando as duas opções conforme a complexidade real de cada tarefa.

Seleção de modelo domina qualquer outra variável medida — e tempo de resposta final merece ser tratado como métrica própria, não como consequência automática do tokens/s.

Próximos passos planejados


Este estudo abre três frentes concretas de continuidade: (1) um levantamento de quantização (3, 4, 5 e 8-bit) nos modelos mais fortes identificados aqui, para caracterizar diretamente o trade-off qualidade/velocidade/VRAM; (2) uma categoria dedicada de verificação de software — conformidade com normas de codificação como MISRA C:2023, detecção de defeitos de segurança de memória e concorrência introduzidos deliberadamente, e geração de testes direcionada por cobertura de branch medida; e (3) uma variante com RAG (Retrieval-Augmented Generation) das tarefas de explicação e revisão, fornecendo a norma ou documentação relevante diretamente ao modelo em vez de depender de memória parametrizada, para testar se o embasamento reduz o modo de falha de fabricação confiante observado neste estudo.

Aprofundando o estudo: além da escolha do modelo

Escolher o modelo certo é só o primeiro passo. Uma vez identificado um modelo forte e mapeados seus pontos fortes e fracos, o caminho natural é melhorá-lo para uso local: técnicas de RAG e base de conhecimento (para compensar janelas de contexto menores), fine-tuning direcionado às tarefas do time, e ajustes de amostragem (temperatura, orçamento de passos).

Em sistemas embarcados ou aplicações críticas, esses mesmos princípios de escolha guiada por dados — em vez de escolher a técnica mais avançada por padrão — se aplicam igualmente à seleção de modelos de IA para tarefas de engenharia de software.

→ Ver o guia de como escolher a técnica de IA certa para cada tipo de problema

Cafeína para o Hardware

Se este mergulho técnico foi útil para você, considere apoiar a continuidade do DeepDive Embedded. Seu apoio nos ajuda com a manutenção de nossos servidores e financia as melhorias no site.

00020126580014BR.GOV.BCB.PIX013699c6c2a0-39e9-4dc3-ac57-950e0e886abb5204000053039865802BR5923Juan Pedro Baena Cassal6009SAO PAULO621405104dtCBAq9PJ6304056E
PIX copiado
QR Code Pix Scan me

Referências

  1. Tech Times. GitHub Copilot Pricing Change Drives Backlash: Agentic Bills Jump 10x to 50x for Power Users. 2026.
    Disponível em: techtimes.com.
  2. Menlo Ventures. 2025 Mid-Year LLM Market Update: Foundation Model Landscape + Economics. Menlo Ventures Perspectives, 2025.
    Disponível em: menlovc.com.
  3. AL-Maamari, A. Can You Trust Your Copilot? A Privacy Scorecard for AI Coding Assistants. arXiv preprint arXiv:2509.20388, 2025.
  4. Airia. The Hidden Risk of Single-Vendor AI Strategies. 2026.
    Disponível em: airia.com.
  5. VentureBeat. 5% GPU Utilization: The $401 Billion AI Infrastructure Problem Enterprises Can't Keep Ignoring. 2026.
    Disponível em: venturebeat.com.
  6. Stack Overflow. 2025 Stack Overflow Developer Survey. 2025.
    Disponível em: survey.stackoverflow.co.
  7. Yang, A. et al. (Qwen Team). Qwen3 Technical Report. arXiv preprint arXiv:2505.09388, 2025.
    Modelo destaque deste estudo: Qwen3-Coder-30B-A3B.
  8. Cohere Labs. Introducing North Mini Code: Cohere's First Model For Developers. 2026.
    Disponível em: huggingface.co.
  9. Lozhkov, A. et al. StarCoder 2 and The Stack v2: The Next Generation. arXiv preprint arXiv:2402.19173, 2024.
  10. Rozière, B. et al. Code Llama: Open Foundation Models for Code. arXiv preprint arXiv:2308.12950, 2023.

Comentários e discussões