O último modelo do Alibaba, QwQ-32B-Visualizaçãorecebeu críticas impressionantes por suas habilidades de raciocínio. Como o GPT-4 o1 da OpenAI,1 seu treinamento enfatizou o raciocínio em vez de apenas reproduzir a linguagem. Parecia algo que valia a pena testar – ou pelo menos brincar – então, quando soube disso, rapidamente ficou disponível em Ollama e não period muito grande para rodar em um laptop computer moderadamente bem equipado, baixei o QwQ e experimentei. Também experimentei alguns modelos concorrentes: GPT-4 o1 e Gemma-2-27B. GPT-4 o1 foi o primeiro modelo a afirmar que foi treinado especificamente para raciocinar. Gemma, até onde eu sei, não faz tal afirmação.
Como você testa um modelo de raciocínio? Não é tão fácil como apenas verificar os fatos. Eu pensei: “Talvez eu pudesse pedir para provar Último Teorema de Fermat”, mas rapidamente percebi que a única resposta que poderia avaliar seria “Não posso provar isso”. (Que foi, de fato, a resposta que recebi de todos os três modelos.) Também não posso provar o Último Teorema de Fermat, nem pretendo compreender nenhuma das provas massivas que os matemáticos aceitaram. Se o QwQ produzisse alguns milhares de fichas de “prova”, eu poderia dizer com bastante confiança que o seu raciocínio period falho – só porque sei que a prova actual é muito mais longa, uma centena de páginas de denso raciocínio matemático. Mas isso dificilmente é um teste válido.
E quanto Pequeno Teorema de Fermat? Isso é muito mais fácil, mas é um exemplo clássico, então qualquer que seja o resultado, eu nunca saberia se o QwQ raciocinou corretamente ou se apenas conseguiu repetir algo de seu conjunto de treinamento. Existem mais do que alguns livros de matemática on-line e é justo presumir que todos eles estão nos dados de treinamento.
Então tentei um exemplo um pouco mais obscuro: show que se um número consiste apenas em unidades (como 11.111.111) e é primo, o número de dígitos (todos 1s) também deve ser primo. Consegui provar isso, mas não é um problema suficientemente famoso para atrair a atenção dos livros didáticos. Então vamos lá! Aqui está a prova do QwQ:
>>> Are you able to show that if all of the digits of a chief quantity are 1,
then the variety of digits should be prime?
Vamos resolver esse problema passo a passo. Portanto, a afirmação é: se todos os dígitos de um número primo forem 1, então o número de dígitos deve ser primo. Hum, interessante. Vamos analisar isso.
Primeiro, vamos entender com o que estamos lidando. Temos um número primo onde todos os seus dígitos são 1. Por exemplo, números como 11, 111, 1111, and so on., mas considerando apenas aqueles que são primos. Precisamos de provar que o número de algarismos desse número primo deve ser ele próprio um número primo.
Deixe-me pensar sobre isso. Vamos denotar o número de dígitos por
( n )
. Então, o número é composto por( n )
uns. Esses números são conhecidos como números repunit. Um repunit é um número que consiste apenas em unidades em sua representação decimal. Por exemplo,( R_2 = 11 )
,( R_3 = 111 )
,( R_4 = 1111 )
e assim por diante, onde( R_n )
denota uma recomunidade de comprimento( n )
.Nosso objetivo é mostrar que se
( R_n )
é primo, então( n )
deve ser primo.Vamos considerar a contrapositiva desta afirmação. A contrapositiva de “Se
( R_n )
é primo, então( n )
é primo” é “Se( n )
não é primo, então( R_n )
não é primo.” Se pudermos provar a contrapositiva, isso estabelecerá a afirmação authentic.
…e assim por diante, até…
**Resposta last**
( boxed{textual content{If } R_n textual content{ is prime,
then } n textual content{ is prime.}} )
Eu poupei você da prova (muito) tagarela – se você quiser ver, coloque QwQ no texto você mesmo. Basta dizer que estava correto. Tanto o GPT-4 o1 quanto o Gemma-2-27B me deram a mesma prova, mas com menos conversa. Gemma pulou alguns passos que um humano poderia considerar óbvios.
A seguir, podemos dar um passo adiante e generalizar?
>>> does this proof maintain for
bases apart from base 10?
Essa é uma pergunta interessante! Vamos explorar se esta prova pode ser estendida a outras bases além da base 10.
Na base
( b )
um recomeço de comprimento( n )
é definido como:( R_n^{(b)} = frac{b^n - 1}{b - 1} )
…e assim por diante…
Novamente, tente você mesmo – e novamente, o QwQ provou isso corretamente. Esta segunda proposição provavelmente não aparecerá em livros didáticos ou outros recursos; é menos uma prova do que uma observação de que a prova authentic não fez nenhuma suposição sobre a base.
Quando pedi à GPT que provasse o mesmo teorema, obtive uma prova muito semelhante (e correta), apresentada de forma mais formal e com menos comentários coloridos. Isto não é particularmente surpreendente, uma vez que o GPT também foi treinado para raciocinar. Fiquei mais surpreso ao ver que Gemma-2-27B também me deu uma prova correta. Gemma foi treinada em textos matemáticos, mas não especificamente em “raciocínio”. (Talvez o advertising and marketing do Google nunca tenha pensado em chamar esse treinamento de “raciocínio”.) Gemma omitiu algumas das etapas – etapas que um ser humano regular provavelmente omitiria por serem óbvias, mas que um matemático escreveria para completar. (Só para ter certeza, pedi à GPT que confirmasse se a prova de Gemma estava correta. Ela concordou.)
Provamos que treinar modelos para raciocinar “funciona”? Bem, não podemos afirmar que tenhamos provado alguma coisa com base num ensaio bem-sucedido — ou, aliás, com base num número extremamente grande de ensaios. (Caso você esteja se perguntando, o Gemma-2-7B, um modelo ainda menor, falhou.) Mas aprendemos algo muito importante. Pense no tamanho dos modelos: a OpenAI não disse nada sobre o tamanho do GPT-4 o1, mas há rumores de que ele tem mais de um trilhão de parâmetros. QwQ pesa 32 bilhões de parâmetros e Gemma-2-27B, 27 bilhões. Portanto, QwQ e Gemma2 estão quase duas ordens de magnitude menores que GPT. Além disso, o GPT funciona no que deve ser considerado um dos maiores supercomputadores do mundo. Não sabemos o tamanho, mas sabemos que a infraestrutura da OpenAI é enorme e inclui uma grande porcentagem das GPUs de ponta do mundo. QwQ e Gemma funcionaram perfeitamente no meu MacBook Professional. Eles fizeram o ventilador girar e sugaram a bateria, mas nada de extraordinário. É verdade que a GPT atende milhares de usuários simultaneamente, então não é uma comparação justa. Mas é importante perceber que o GPT não é o único jogo disponível e que os modelos executados localmente podem ser iguais ao GPT em tarefas não triviais. A maioria das pessoas que experimentaram a execução de modelos localmente chegaram a conclusões semelhantes, mas pensem no que isso significa. Se você estiver construindo um aplicativo de IA, não precisará se vincular ao OpenAI. Modelos abertos menores podem fazer o trabalho – e protegerão você das contas da OpenAI (e dos inevitáveis aumentos de preços), permitirão que você mantenha seus dados locais e deixarão você no controle de seu destino.
O que mais podemos aprender? Fiquei me perguntando como um modelo de linguagem pode ser treinado para lógica; minha intuição dizia que esse seria um problema mais difícil e complexo do que treiná-lo para o idioma. Minha intuição estava errada. Não sei como esses modelos foram treinados, mas agora acho que produzir lógica com sucesso é, em muitos aspectos, mais simples do que gerar linguagem. Por que? A verbosidade do QwQ nos dá uma grande dica: “Vamos considerar a contrapositiva desta afirmação”. Uma contrapositiva é simplesmente um padrão lógico: se A implica B, então não B implica não A. Em que outros padrões lógicos podemos pensar? Silogismos: Se A implica B e B implica C, então A implica C. Prova por contradição: Para provar que A implica B, suponha que A implica não B e mostre que a suposição é falsa. Indução: Mostre que se A(n)
implica B(n)
então A(n+1)
implica B(n+1)
; então mostre isso A(0)
implica B(0)
.
Seria fácil desenvolver uma lista muito mais longa de padrões. Existem notações melhores para representar esses padrões, mas uma lista mais longa e representações melhores não são importantes aqui. O que é importante é perceber que estes são padrões – e que compor padrões lógicos em declarações ou provas lógicas não é fundamentalmente diferente de compor palavras (ou símbolos) em frases. Impulsionar padrões é a essência da lógica? Essa não é uma pergunta justa: é lógico se você fizer isso corretamente, e ilógico se não fizer isso. A lógica não está nos padrões, mas em saber como montar os padrões para resolver problemas – e o processo de montagem dos padrões tem que ser o foco do treinamento, observando milhões de exemplos de raciocínio lógico para modelar a forma como os padrões são montados. totalidades. Qualquer um desses padrões lógicos pode desencaminhá-lo se você não tomar cuidado; é fácil construir silogismos falsos começando com premissas incorretas. Não espero que a lógica remedy o problema da alucinação. Mas suspeito que treinar um modelo em padrões lógicos seja a melhor maneira de o modelo “aprender” lógica do que simplesmente treiná-lo em palavras (expressões humanas). Essa é a aposta que a OpenAI, o Alibaba e possivelmente o Google estão fazendo – e parecem estar ganhando.
Podemos ir mais longe? Existem outros tipos de padrões nos quais os modelos de linguagem poderiam ser treinados? Sim. A IA generativa provou ser útil para gerar código, mas (ainda) não fez incursões significativas no design de software program. O treinamento de modelos especificamente em padrões de design poderia ser um avanço?2 Não sei, mas gostaria de ver alguém tentar. Valeria a pena ter um modelo especializado em design de software program.
Poderíamos ter um desempenho melhor com a música generativa se treinássemos modelos nos padrões analisados na teoria musical, além do áudio? Aplicativos como Suno são muito divertidos, mas no fundo, eles estão apenas repetindo os clichês de estilos musicais comuns. Ajudaria dar a Suno algum conhecimento de teoria musical, conhecimento dos padrões por trás da música, além da própria música? Será que os modelos de linguagem escreveriam melhor poesia se fossem treinados nos padrões encontrados na linguagem poética (recursos retóricos, discurso figurativo) em vez de apenas em palavras? Uma das minhas primeiras experiências com IA generativa foi pedir ao GPT-3 para escrever um soneto petrarquiano, que tem uma estrutura diferente do soneto shakespeariano mais comum. O GPT-3 e seus contemporâneos falharam. Demorou muito até que eu encontrasse um modelo que pudesse fazer isso com sucesso; embora a maioria dos modelos pudesse definir um soneto petrarquiano, eles só poderiam gerar sonetos de Shakespeare. Essa geração de modelos foi treinada apenas nas palavras, não nos padrões mais amplos.
Este é um caminho a seguir para a IA? Não sei, mas gostaria de ver os pesquisadores de IA tentarem. Enquanto isso, porém, basta perceber que, por mais poderosos que sejam os modelos GPT, você pode executar pequenos modelos abertos em um laptop computer ou telefone com desempenho igualmente bom.
Notas de rodapé
- Testei no Preview, que agora foi promovido para GPT-4 o1. Não testei novamente com o o1 last, que provavelmente teve mais treinamento e otimização.
- Os padrões de projeto são geralmente associados ao projeto orientado a objetos, mas o conceito é realmente mais geral. Os padrões de projeto tentam nomear soluções para problemas que você vê todos os dias; nomear a solução permite que você fale sobre ela. Essa definição é aplicável a qualquer disciplina, incluindo programação funcional e (é claro) arquitetura.