El último modelo de Alibaba, QwQ-32B-Vista previaha obtenido críticas impresionantes por su capacidad de razonamiento. Como el GPT-4 o1 de OpenAI,1 su formación ha enfatizado el razonamiento en lugar de simplemente reproducir el lenguaje. Parecía algo que valía la pena probar, o al menos probar, así que cuando escuché que rápidamente estuvo disponible en Ollama y no period demasiado grande para ejecutarlo en una computadora portátil moderadamente bien equipada, descargué QwQ y lo probé. También probé algunos modelos de la competencia: GPT-4 o1 y Gemma-2-27B. GPT-4 o1 fue el primer modelo que afirmó que había sido entrenado específicamente para razonar. Gemma, hasta donde yo sé, no hace tal afirmación.
¿Cómo se prueba un modelo de razonamiento? No es tan fácil como simplemente comprobar los hechos. Pensé: “Tal vez podría pedirle que demuestre El último teorema de Fermat”, pero rápidamente me di cuenta de que la única respuesta que podría evaluar period “No puedo probar esto”. (Que fue, de hecho, la respuesta que recibí de los tres modelos). Tampoco puedo probar el último teorema de Fermat, ni pretendo comprender ninguna de las pruebas masivas que los matemáticos han aceptado. Si QwQ arrojara unos cuantos miles de muestras de “pruebas”, podría decir con bastante confianza que su razonamiento period erróneo, sólo porque sé que la prueba actual es mucho más larga, cien páginas de denso razonamiento matemático. Pero esa no es una prueba válida.
¿Qué pasa con El pequeño teorema de Fermat? Eso es mucho más fácil, pero es un ejemplo de libro de texto, así que sea cual sea el resultado, nunca sabría si QwQ razonó correctamente o si simplemente logró repetir algo de su conjunto de entrenamiento. Hay más de unos pocos libros de texto de matemáticas en línea y es justo suponer que todos ellos están en los datos de entrenamiento.
Así que probé un ejemplo un poco más oscuro: demostrar que si un número consta sólo de unos (como 11,111,111) y es primo, el número de dígitos (todos unos) también debe ser primo. He logrado demostrarlo, pero no es un problema lo suficientemente famoso como para atraer la atención de los libros de texto. ¡Así que vámonos! Aquí está la prueba de QwQ:
>>> Are you able to show that if all of the digits of a primary quantity are 1,
then the variety of digits should be prime?
Abordemos este problema paso a paso. Entonces, la afirmación es: si todos los dígitos de un número primo son 1, entonces el número de dígitos debe ser primo. Mmmm, interesante. Analicemos esto.
Primero, comprendamos a qué nos enfrentamos. Tenemos un número primo donde todos sus dígitos son 1. Por ejemplo, números como 11, 111, 1111, and so on., pero considerando solo aquellos que son primos. Necesitamos demostrar que el número de dígitos de dicho número primo debe ser en sí mismo un número primo.
Déjame pensar en esto. Denotemos el número de dígitos por
( n )
. Entonces el número se compone de( n )
unos. Estos números se conocen como números repunit. Una repunit es un número que consta únicamente de unos en su representación decimal. Por ejemplo,( R_2 = 11 )
,( R_3 = 111 )
,( R_4 = 1111 )
y así sucesivamente, donde( R_n )
denota una repunidad de longitud( n )
.Nuestro objetivo es demostrar que si
( R_n )
es primo, entonces( n )
debe ser primo.Consideremos la contrapositiva de esta afirmación. El contrapositivo de “Si
( R_n )
es primo, entonces( n )
es primo” es “Si( n )
no es primo, entonces( R_n )
no es primo”. Si podemos probar lo contrapositivo, eso establecerá la afirmación authentic.
…y así sucesivamente, hasta…
**Respuesta closing**
[ boxed{text{If } R_n text{ is prime,
then } n text{ is prime.}} ]
Te he ahorrado la prueba (muy) locuaz: si quieres verla, escribe tú mismo QwQ en el texto. Baste decir que period correcto. Tanto GPT-4 o1 como Gemma-2-27B me dieron la misma prueba pero con menos charla. Gemma se saltó algunos pasos que un humano podría considerar obvios.
A continuación, ¿podemos ir un paso más allá y generalizar?
>>> does this proof maintain for
bases aside from base 10?
¡Esa es una pregunta interesante! Exploremos si esta prueba se puede extender a bases distintas a la base 10.
en la base
( b )
una reunión de longitud( n )
se outline como:[ R_n^{(b)} = frac{b^n - 1}{b - 1} ]
…etcétera…
Pruébelo usted mismo de nuevo y, una vez más, QwQ lo demostró correctamente. Es poco possible que esta segunda proposición aparezca en los libros de texto u otros recursos; es menos una prueba que una observación de que la prueba authentic no hizo ninguna suposición sobre la base.
Cuando le pedí a GPT que demostrara el mismo teorema, obtuve una demostración muy comparable (y correcta), expresada de manera más formal y con menos comentarios coloridos. Esto no es particularmente sorprendente, ya que GPT también ha sido entrenado para razonar. Me sorprendió aún más ver que Gemma-2-27B también me dio una prueba correcta. Gemma ha recibido formación en textos matemáticos, pero no específicamente en “razonamiento”. (Quizás el departamento de advertising de Google nunca pensó en llamar a esta capacitación “razonamiento”). Gemma omitió algunos de los pasos, pasos que un ser humano regular probablemente omitiría por ser obvios, pero que un matemático escribiría para que estuvieran completos. (Solo para asegurarme, le pedí a GPT que confirmara que la prueba de Gemma period correcta. Estuvo de acuerdo).
¿Hemos demostrado que entrenar modelos para razonar “funciona”? Bueno, no podemos afirmar que hemos demostrado nada sobre la base de un ensayo exitoso o, en realidad, sobre la base de un número extremadamente grande de ensayos. (En caso de que se lo pregunte, Gemma-2-7B, un modelo aún más pequeño, falló). Pero hemos aprendido algo muy importante. Pensemos en el tamaño de los modelos: OpenAI no ha dicho nada sobre el tamaño del GPT-4 o1, pero se rumorea que tiene más de un billón de parámetros. QwQ pesa 32 mil millones de parámetros y Gemma-2-27B 27 mil millones. Entonces, QwQ y Gemma2 son casi dos órdenes de magnitud más pequeños que GPT. Además, GPT se ejecuta en lo que debe considerarse uno de los superordenadores más grandes del mundo. No sabemos el tamaño, pero sí sabemos que la infraestructura de OpenAI es enorme e incluye un gran porcentaje de las GPU de alta gama del mundo. QwQ y Gemma corrieron felices en mi MacBook Professional. Hicieron girar el ventilador y chuparon la batería pero nada extraordinario. Por supuesto, GPT presta servicios a much de usuarios simultáneamente, por lo que en realidad no es una comparación justa. Pero es importante darse cuenta de que GPT no es el único juego disponible y que los modelos que se ejecutan localmente pueden igualar a GPT en tareas no triviales. La mayoría de las personas que han experimentado con la ejecución de modelos localmente han llegado a conclusiones similares, pero piense en lo que esto significa. Si está creando una aplicación de IA, no es necesario que se vincule a OpenAI. Los modelos abiertos más pequeños pueden hacer el trabajo y lo protegerán de las facturas de OpenAI (y de los inevitables aumentos de precios), le permitirán mantener sus datos locales y le dejarán en management de su destino.
¿Qué más podemos aprender? Me he preguntado cómo se puede entrenar un modelo de lenguaje para la lógica; Mi intuición decía que ese sería un problema más difícil y complejo que entrenarlo para el lenguaje. Mi intuición estaba equivocada. No sé cómo se entrenaron estos modelos, pero ahora creo que producir lógica con éxito es, en muchos sentidos, más sencillo que generar lenguaje. ¿Por qué? La verbosidad de QwQ nos da una gran pista: “Consideremos la contrapositiva de esta afirmación”. Un contrapositivo es simplemente un patrón lógico: si A implica B, entonces no B implica no A. ¿Qué otros patrones lógicos podemos pensar? Silogismos: Si A implica B y B implica C, entonces A implica C. Prueba por contradicción: Para demostrar que A implica B, suponga que A no implica B y demuestre que la suposición es falsa. Inducción: Demuestre que si A(n)
implica B(n)
entonces A(n+1)
implica B(n+1)
; entonces muestra que A(0)
implica B(0)
.
Sería fácil crear una lista mucho más larga de patrones. Hay mejores notaciones para representar estos patrones, pero una lista más larga y mejores representaciones no son importantes aquí. Lo importante es darse cuenta de que se trata de patrones y que componer patrones lógicos en enunciados o pruebas lógicas no es fundamentalmente diferente de componer palabras (o símbolos) en oraciones. ¿Impulsar patrones en torno a la esencia de la lógica? Ésa no es una pregunta justa: es lógica si lo haces correctamente, ilógica si no lo haces. La lógica no está en los patrones sino en saber cómo ensamblar los patrones para resolver problemas, y el proceso de ensamblar patrones tiene que ser el foco del entrenamiento, observando millones de ejemplos de razonamiento lógico para modelar la forma en que se ensamblan los patrones. totalidades. Cualquiera de estos patrones lógicos puede llevarte por mal camino si no tienes cuidado; es fácil construir silogismos falsos partiendo de premisas incorrectas. No espero que la lógica remedy el problema de las alucinaciones. Pero sospecho que entrenar un modelo en patrones lógicos es una mejor manera de que el modelo “aprenda” lógica que simplemente entrenarlo con palabras (expresiones humanas). Esa es la apuesta que están haciendo OpenAI, Alibaba y posiblemente Google, y parecen estar ganando.
¿Podemos ir más lejos? ¿Existen otros tipos de patrones en los que se podrían entrenar los modelos de lenguaje? Sí. La IA generativa ha demostrado ser útil para generar código, pero (todavía) no ha logrado avances significativos en el diseño de software program. ¿Podría ser un gran avance entrenar modelos específicamente en patrones de diseño?2 No lo sé, pero me gustaría ver a alguien intentarlo. Valdría la pena tener un modelo especializado para el diseño de software program.
¿Podríamos hacerlo mejor con la música generativa si entrenáramos modelos con los patrones analizados en teoría musical, además del audio? Aplicaciones como Suno son muy divertidos, pero cuando lo analizas, simplemente repiten los clichés de estilos musicales comunes. ¿Ayudaría darle a Suno algún conocimiento de teoría musical, conocimiento de los patrones detrás de la música además de la música misma? ¿Los modelos de lenguaje escribirían mejor poesía si fueran entrenados en los patrones que se encuentran en el lenguaje poético (recursos retóricos, discurso figurativo) en lugar de solo palabras? Uno de mis primeros experimentos con IA generativa fue pedirle a GPT-3 que escribiera un soneto petrarquista, que tiene una estructura diferente al soneto shakesperiano más común. GPT-3 y sus contemporáneos fracasaron. Pasó mucho tiempo antes de que encontrara un modelo que pudiera hacerlo con éxito; aunque la mayoría de los modelos podían definir un soneto petrarquista, sólo podían generar sonetos de Shakespeare. Esa generación de modelos se entrenó sólo con las palabras, no con los patrones más amplios.
¿Es este un camino a seguir para la IA? No lo sé, pero me gustaría que los investigadores de IA lo intentaran. Mientras tanto, sin embargo, basta con darse cuenta de que, por muy potentes que sean los modelos GPT, puedes ejecutar pequeños modelos abiertos en una computadora portátil o en un teléfono que funcionan igualmente bien.
Notas a pie de página
- Probé en la Vista previa, que ahora se promovió a GPT-4 o1. No volví a probar con el o1 closing, que presumiblemente ha tenido mayor entrenamiento y optimización.
- Los patrones de diseño generalmente se asocian con el diseño orientado a objetos, pero el concepto es en realidad más basic. Los patrones de diseño intentan buscar soluciones a los problemas que vemos todos los días; nombrar la solución le permite hablar sobre ella. Esa definición es aplicable a cualquier disciplina, incluida la programación funcional y (por supuesto) la arquitectura.