Desafiando os Gigantes: Um Concorrente Compacto
A equipa Qwen da Alibaba entrou na arena com a sua mais recente criação, QwQ, um modelo que pretende desafiar o desempenho de modelos maiores, mantendo uma pegada surpreendentemente compacta.
QwQ, apesar de ostentar apenas 32 mil milhões de parâmetros em comparação com os alegados 671 mil milhões do DeepSeek R1, é posicionado como um modelo de “raciocínio”. A Alibaba afirma que este modelo relativamente pequeno pode ultrapassar o R1 em benchmarks específicos, particularmente em áreas como matemática, codificação e function-calling. Esta afirmação ambiciosa justifica uma análise mais detalhada do funcionamento interno e do desempenho no mundo real do QwQ.
Aprendizagem por Reforço: A Chave para a Proeza do QwQ
Tal como o DeepSeek R1, a equipa Qwen empregou aprendizagem por reforço (RL) para refinar as capacidades de raciocínio chain-of-thought do QwQ. Este método melhora a capacidade do modelo de analisar e decompor problemas complexos passo a passo. A abordagem tradicional em RL envolve recompensar o modelo por respostas corretas, reforçando assim as respostas precisas.
No entanto, a equipa Qwen adotou uma abordagem mais diferenciada com o QwQ. Integraram um verificador de precisão e um servidor de execução de código. Esta adição crucial garante que as recompensas só são concedidas para soluções matematicamente sólidas e código funcional. Ao implementar este rigoroso processo de verificação, a equipa pretende cultivar um modelo que exiba um maior grau de precisão e fiabilidade.
Alegações de Desempenho: Um Teste de Realidade
Os esforços da equipa Qwen, afirmam eles, produziram um modelo que supera significativamente a sua classe de peso. Afirmam que o QwQ atinge níveis de desempenho equivalentes e, em alguns casos, até superiores, a modelos muito maiores.
No entanto, o mundo dos benchmarks de IA pode ser complexo. É crucial ir além dos números relatados e examinar como essas alegações se traduzem em cenários práticos e do mundo real.
Testes Práticos: Colocando o QwQ à Prova
Para avaliar as capacidades do QwQ, foi concebida uma série de prompts de teste, abrangendo uma variedade de domínios. Estes incluíram conhecimento geral, raciocínio espacial, resolução de problemas, matemática e outros desafios conhecidos por colocarem dificuldades até mesmo aos modelos de linguagem grandes (LLMs) mais avançados.
Devido aos requisitos substanciais de memória do modelo completo, os testes foram executados em duas configurações. Primeiro, o modelo completo foi avaliado usando a demo do QwQ no Hugging Face. Isso permitiu uma avaliação do seu potencial máximo. Em segundo lugar, uma versão quantizada de 4 bits foi testada numa GPU de 24 GB (especificamente, uma Nvidia 3090 ou uma AMD Radeon RX 7900XTX). Esta configuração visava avaliar o impactoda quantização na precisão do modelo, tornando-o mais acessível a utilizadores com hardware menos potente.
Conhecimento Geral: Mantendo a Sua Posição
Em resposta à maioria das perguntas de conhecimento geral, o QwQ demonstrou um desempenho comparável ao R1 de 671 mil milhões de parâmetros da DeepSeek e a outros modelos de raciocínio como o o3-mini da OpenAI. O modelo normalmente levava alguns segundos para formular os seus pensamentos antes de fornecer uma resposta à consulta. Este comportamento é característico dos modelos de raciocínio, que priorizam a deliberação cuidadosa em detrimento das respostas imediatas.
Excelência na Complexidade: Lógica, Codificação e Matemática
Onde o QwQ realmente começa a distinguir-se é na abordagem de desafios mais complexos que envolvem lógica, codificação ou matemática. Vamos aprofundar estas áreas, destacando os seus pontos fortes e abordando algumas áreas onde fica aquém.
Raciocínio Espacial: Navegando no Labirinto
Um teste de raciocínio espacial relativamente novo, desenvolvido pela Homebrew Research como parte do seu projeto AlphaMaze, foi usado para avaliar o QwQ.
Tanto a instância QwQ hospedada localmente quanto o modelo de tamanho completo resolveram consistentemente esses quebra-cabeças com sucesso. No entanto, cada execução exigiu alguns minutos para ser concluída. Isso indica que, embora o QwQ possa lidar com o raciocínio espacial de forma eficaz, não é necessariamente o mais rápido.
Em contraste, o R1 da DeepSeek e o seu distill de 32B exibiram comportamentos diferentes. Ambos os modelos resolveram com sucesso o primeiro labirinto. No entanto, o R1 teve dificuldades com o segundo, enquanto o distill de 32B atingiu uma taxa de sucesso de 90% no segundo labirinto. Essa variabilidade não é totalmente inesperada, dado que o R1 e o distill utilizam modelos base distintos.
Embora o QwQ tenha demonstrado um desempenho superior em comparação com o DeepSeek neste teste específico, foi observado um comportamento incomum com o modelo de 4 bits. Inicialmente, exigiu quase o dobro de tokens de “pensamento” para concluir o teste. Isso sugeriu inicialmente perdas potenciais devido à quantização. No entanto, uma investigação mais aprofundada revelou que o modelo quantizado estava, no seu estado inicial, a exibir um desempenho abaixo do ideal. Ajustar os hiperparâmetros e executar novamente os testes resolveu esse problema, demonstrando a importância da configuração adequada.
Codificação One-Shot: Um Potencial Ponto Forte
O QwQ atraiu considerável atenção pelo seu potencial na geração de código ‘one-shot’ – a capacidade de produzir código utilizável na primeira tentativa. Esta área específica parece ser um ponto forte significativo para o modelo.
O modelo foi encarregado de recriar vários jogos relativamente simples em Python usando a biblioteca pygame. Os jogos escolhidos foram Pong, Breakout, Asteroids e Flappy Bird.
O QwQ lidou com Pong e Breakout com relativa facilidade. Após alguns minutos de processamento, o modelo gerou versões funcionais de ambos os jogos.
No entanto, quando encarregado de recriar Asteroids, o QwQ encontrou dificuldades. Embora o código gerado fosse executado, os gráficos e a mecânica do jogo eram frequentemente distorcidos e com bugs. Em contraste, o R1, na sua primeira tentativa, recriou fielmente o clássico jogo de tiro de arcade.
É importante considerar os dados de treino para esses modelos. Eles foram expostos a uma vasta quantidade de código-fonte abertamente disponível, provavelmente incluindo reproduções de jogos clássicos. Isso levanta a questão de saber se os modelos estão simplesmente a recordar informações aprendidas em vez de derivar independentemente a mecânica do jogo do zero. Isso ressalta a natureza fundamental dessas redes neurais massivas, onde a inteligência aparente muitas vezes decorre do extenso reconhecimento de padrões.
Mesmo com essas limitações, o desempenho do QwQ na recriação de jogos clássicos de arcade é impressionante, especialmente considerando a sua contagem de parâmetros. Pode não corresponder ao R1 em todos os testes, mas demonstra um nível notável de capacidade. A frase ‘there’s no replacement for displacement’, frequentemente usada no mundo automotivo, pode ser relevante aqui. Isso pode explicar por que a Alibaba está a desenvolver uma versão “Max” do QwQ, embora seja improvável que seja executável em hardware de consumo em breve.
Em comparação com o R1 Qwen 2.5 32B distill de tamanho semelhante da DeepSeek, a decisão da Alibaba de integrar um servidor de execução de código no seu pipeline de aprendizagem por reforço pode ter conferido uma vantagem em desafios relacionados com a programação.
Matemática: Capacidade com uma Ressalva
Historicamente, os LLMs têm lutado com a matemática, uma consequência do seu treino focado na linguagem. Embora os modelos mais recentes tenham mostrado melhorias, o QwQ ainda enfrenta desafios, embora não necessariamente pelas razões que se poderiam esperar.
O QwQ resolveu com sucesso todos os problemas de matemática anteriormente colocados ao R1. Isso indica que o QwQ pode lidar com aritmética básica e até mesmo alguma álgebra. No entanto, o problema reside na sua eficiência. Envolver um LLM para cálculos matemáticos parece contra-intuitivo quando calculadoras e computação direta permanecem prontamente disponíveis e significativamente mais rápidas.
Por exemplo, resolver uma equação simples como 7*43
exigiu que o QwQ gerasse mais de 1.000 tokens, levando aproximadamente 23 segundos numa RTX 3090 Ti. Esta é uma tarefa que poderia ser concluída numa calculadora de bolso numa fração do tempo.
A ineficiência torna-se ainda mais pronunciada com cálculos maiores. Resolver 3394*35979
, um problema de multiplicação além das capacidades da maioria dos modelos que não são de raciocínio, levou a instância local do QwQ três minutos e mais de 5.000 tokens para calcular.
Antes da correção do hiperparâmetro, a mesma equação exigia impressionantes nove minutos e quase 12.000 tokens.
A principal conclusão aqui é que, embora um modelo possa ser capaz de forçar o seu caminho para a resposta correta, isso não significa necessariamente que seja a ferramenta ideal para o trabalho. Uma abordagem mais prática seria fornecer ao QwQ acesso a uma calculadora Python. Isso aproveita os pontos fortes do modelo enquanto descarrega tarefas computacionalmente intensivas para uma ferramenta mais adequada.
Quando encarregado de resolver a mesma equação 3394*35979
usando ferramentas, o tempo de resposta do QwQ caiu para oito segundos, pois a calculadora cuidou do trabalho pesado.
A Prevalência de “Wait”: Um Vislumbre do Processo de Pensamento
Examinar os “pensamentos” do QwQ revela uma ocorrência frequente da palavra “wait”, particularmente durante tarefas complexas ou problemas de palavras. Isso reflete o processo interno do modelo de verificar o seu trabalho em relação a resultados alternativos.
Embora esse comportamento seja comum em modelos de raciocínio, pode ser particularmente frustrante quando o QwQ gera uma resposta incorreta, mesmo depois de demonstrar uma compreensão da resposta correta durante o seu processo de “pensamento”.
Este problema foi encontrado com frequência durante os testes. Um dos exemplos mais ilustrativos foi a adaptação da AutoGen AI do clássico problema do lobo, da cabra e do repolho. Este quebra-cabeça apresenta um desafio de otimização de transporte com uma reviravolta:
A solução está embutida no prompt: com três compartimentos seguros, o agricultor pode transportar todos os itens numa única viagem. No entanto, devido à semelhança do quebra-cabeça com a versão clássica, os modelos frequentemente ignoram os compartimentos.
Nos testes, o QwQ falhou consistentemente em resolver este quebra-cabeça corretamente. Examinar o seu processo de pensamento revelou que ele não ignorou os três compartimentos. Na verdade, ele reconheceu-os, mas descartou-os como sendo muito simples:
“Wait, if the farmer can take all three in one trip, then he can just do that and be done. But that would make the problem trivial, which is unlikely. So perhaps the compartments are separate but the boat can only carry two items plus the farmer?”
Independentemente de o teste ter sido executado no modelo completo na nuvem ou localmente, o QwQ teve dificuldades em resolver isso de forma consistente. Isso destaca uma limitação potencial nas suas capacidades de raciocínio, onde pode pensar demais ou interpretar mal as restrições do problema.
Sensibilidade aos Hiperparâmetros: Um Equilíbrio Delicado
Em comparação com outros modelos, o QwQ exibiu uma sensibilidade aumentada à sua configuração. Inicialmente, a Alibaba recomendou parâmetros de amostragem específicos:
- Temperatura: 0.6
- TopP: 0.95
- TopK: entre 20 e 40
Posteriormente, essas recomendações foram atualizadas para incluir:
- MinP: 0
- Penalidade de Presença: entre 0 e 2
Devido a um bug aparente no tratamento de parâmetros de amostragem do Llama.cpp (Llama.cpp é usado para executar inferência em modelos), também foi necessário desativar a penalidade de repetição definindo-a como 1.
Como mencionado anteriormente, resolver esses problemas de configuração resultou numa melhoria significativa, mais do que reduzindo para metade o número de tokens de “pensamento” necessários para chegar a uma resposta. No entanto, este bug parece ser específico para versões quantizadas GGUF do modelo quando executado no mecanismo de inferência Llama.cpp, que é usado por aplicações populares como Ollama e LM Studio.
Para utilizadores que planeiam utilizar o Llama.cpp, consultar o guia da Unsloth para corrigir a ordem de amostragem é altamente recomendado.
Começando com o QwQ: Um Guia Prático
Para aqueles interessados em experimentar o QwQ, configurá-lo no Ollama é relativamente simples. No entanto, é importante notar que ele requer uma GPU com uma quantidade substancial de vRAM. O modelo foi executado com sucesso numa 3090 Ti de 24 GB com uma janela de contexto grande o suficiente para uso prático.
Embora seja tecnicamente possível executar o modelo numa CPU e memória do sistema, isso provavelmente resultará em tempos de resposta extremamente lentos, a menos que se use uma estação de trabalho ou servidor de ponta.
Pré-requisitos:
- Uma máquina capaz de executar LLMs de tamanho médio com quantização de 4 bits. Uma GPU compatível com pelo menos 24 GB de vRAM é recomendada. Uma lista de placas suportadas pode ser encontrada aqui.
- Para Macs Apple Silicon, um mínimo de 32 GB de memória é recomendado.
Este guia pressupõe familiaridade básica com uma interface de linha de comando do mundo Linux e Ollama.
Instalando o Ollama
Ollama é um model runner popular que simplifica o processo de download e serving de LLMs em hardware de consumo. Para utilizadores de Windows ou macOS, faça o download e instale-o como qualquer outra aplicação em ollama.com.
Para utilizadores de Linux, o Ollama fornece um one-liner conveniente para instalação: