# Qwen3 4B vs. 0.6B em uma GPU de 6 GB: velocidade, memória e qualidade das respostas https://rafaself.pages.dev/pt/posts/qwen3-4b-vs-06b-on-a-6-gb-gpu-speed-memory-and-answer-quality-4pik/ Para meu estudo pessoal de geração aumentada por recuperação (RAG), eu precisava de um modelo local para responder a perguntas sobre documentos. Meu notebook tem uma RTX 3060 Laptop GPU com 6 GiB de VRAM, então o uso de memória importava tanto quanto a velocidade. Comparei `qwen3:4b` e `qwen3:0.6b` usando Ollama. O modelo menor gerou tokens cerca de três vezes mais rápido. O maior passou nas seis verificações de documentos, enquanto o menor passou em quatro. Isso me deu um ponto de partida prático para o laboratório. Veja o que medi e o que as falhas mostraram. ### A configuração O experimento foi executado em 20 de outubro de 2026, com um Ryzen 7 6800H, aproximadamente 15 GiB de RAM utilizável e Ollama 0.40.6. Os dois modelos usaram quantização Q4_K_M, contexto de 4.096 tokens, temperatura 0, seed 42 e raciocínio habilitado. Carreguei um modelo por vez e fiz um aquecimento antes de medir três prompts curtos e três prompts com muitos documentos. A carga curta pedia uma lista longa de dicas de organização de documentos. A carga de documentos fornecia 60 registros sintéticos de espaços de trabalho. Ambas atingiram um limite de saída de 256 tokens, portanto mediram a taxa de geração, e não respostas completas. Separadamente, seis perguntas sobre documentos sintéticos testaram busca de informações, exceções, atualizações de políticas, múltiplas condições, aritmética e informações ausentes. Cada pergunta foi executada uma vez por modelo, com um orçamento de saída de 2.048 tokens, incluindo raciocínio. A pontuação comparou o JSON interpretado com a resposta esperada; blocos de código Markdown foram aceitos. Não foi usada decodificação restrita por esquema. ### A relação entre velocidade e qualidade ![Gráficos de barras comparando Qwen3 4B e 0.6B em uma RTX 3060 Laptop GPU. As velocidades são 93,4 contra 302,1 tokens/s em prompts curtos e 83,9 contra 234,8 tokens/s em prompts de documentos. O pico amostrado de memória da GPU é 3,12 contra 1,04 GiB.](image-fede0f8e91469897.png) | Medição | Qwen3 4B | Qwen3 0.6B | | --- | ---: | ---: | | Geração com prompts curtos | 93,4 tokens/s | 302,1 tokens/s | | Geração com prompts de documentos | 83,9 tokens/s | 234,8 tokens/s | | Pico amostrado de memória de toda a GPU | 3,12 GiB | 1,04 GiB | | Verificações de documentos aprovadas | 6/6 | 4/6 | As taxas de geração são medianas de três requisições após aquecimento por carga e incluem tokens de raciocínio e da resposta final. Elas não descrevem a rapidez com que uma resposta completa aparece. Os dois modelos informaram alocação integral em VRAM no contexto testado. Os valores de memória acima são picos amostrados de toda a GPU, incluindo outras atividades; não são os tamanhos dos arquivos dos modelos. O [relatório completo](https://github.com/rafaself/lab-ollama-local-benchmarks/blob/main/runs/2026-10-20-qwen3-4b-vs-0.6b/report.md) contém cada requisição medida e cada resposta sobre documentos. ### Onde o modelo menor errou A primeira falha envolveu combinar requisitos. Um piloto exigia região na UE, backups habilitados e pelo menos 100 usuários ativos. Apenas Aster atendia às três condições. Resposta esperada, também retornada pelo 4B: ```json {"workspaces": ["Aster"]} ``` O modelo 0.6B retornou: ```json {"workspaces": ["Aster", "Cedar", "Dune"]} ``` Cedar estava com os backups desabilitados. Dune tinha apenas 60 usuários ativos. Os dois nomes estavam nos documentos fornecidos, mas nenhum atendia a todos os requisitos. Foi uma falha de correção da resposta. A segunda falha envolveu informações ausentes. Os documentos mencionavam suporte por telefone, mas não especificavam um tempo de resposta garantido. A resposta solicitada era: ```json {"hours": null, "sources": []} ``` O modelo 4B retornou essa estrutura. O 0.6B retornou: ```json {"hours": [null, null], "sources": [null, null]} ``` Foi uma falha de formato de saída: apareceram arrays onde eram exigidos um valor escalar nulo e um array de fontes vazio. O modelo não inventou uma garantia de tempo de resposta. Essa distinção importa ao diagnosticar o que uma aplicação precisa validar. ### Uma diferença no modo de raciocínio mudou o protocolo As tentativas preliminares buscavam estabelecer uma base comum sem raciocínio. A tag 4B instalada continuou emitindo raciocínio, esgotando o orçamento curto de saída antes de concluir algumas respostas. Seus metadados anunciavam apenas raciocínio habilitado, enquanto a tag 0.6B instalada anunciava as duas opções. Excluí essas tentativas da comparação final. A execução registrada habilitou explicitamente o raciocínio nos dois modelos e aumentou o orçamento das verificações de documentos. Os dois concluíram as seis respostas sem truncamento. Essa observação se aplica às tags instaladas e ao ambiente de execução usado aqui. Ela não demonstra que toda versão do Qwen3 4B se comporta da mesma forma. O repositório preserva os resultados excluídos e suas explicações. ### Execute a comparação O [repositório](https://github.com/rafaself/lab-ollama-local-benchmarks) inclui um executor reutilizável feito com a biblioteca padrão do Python. Ele requer Linux, Python 3.10 ou mais recente, Ollama local e `nvidia-smi` para telemetria da GPU. Clone o repositório e baixe os modelos: ```bash git clone https://github.com/rafaself/lab-ollama-local-benchmarks.git cd lab-ollama-local-benchmarks ollama pull qwen3:4b ollama pull qwen3:0.6b ollama ps ``` Com o Ollama servindo localmente e nenhum modelo carregado, escolha um diretório de resultados ainda não utilizado: ```bash python3 benchmarks/compare_models.py \ --output runs/local-qwen3-comparison-001/results.json ``` O executor testa os modelos em sequência e os descarrega depois. Para conferir as evidências publicadas sem executar inferência: ```bash python3 benchmarks/validate_run.py runs/2026-10-20-qwen3-4b-vs-0.6b ``` As tags dos modelos podem mudar. Compare os digests instalados com a [configuração registrada](https://github.com/rafaself/lab-ollama-local-benchmarks/blob/main/runs/2026-10-20-qwen3-4b-vs-0.6b/configuration.json) ao tentar reproduzir esta base de comparação. ### O que eu usaria a seguir Este foi um experimento exploratório em um único notebook. Seis perguntas não estabelecem uma precisão geral. A ordem dos modelos foi fixa, o cache normal de prompts permaneceu habilitado, e temperatura, política de energia e atividade do desktop não foram controladas. Embeddings e recuperação não foram avaliados: cada pergunta incluía seus trechos diretamente. A [metodologia](https://github.com/rafaself/lab-ollama-local-benchmarks/blob/main/docs/methodology.md) documenta essas limitações. Para este laboratório, o 4B é minha principal escolha para gerar respostas: coube inteiramente na memória da GPU e passou nessas verificações. Eu usaria o 0.6B para iterações rápidas em que fosse fácil inspecionar as saídas. Um próximo experimento útil ampliaria as perguntas sobre documentos e alternaria a ordem dos modelos entre sessões independentes antes de fazer afirmações mais amplas.