Contemos erres.
Si le dices a GPT-4o que te diga cuántas erres hay en la palabra "Strawberry", se equivocará y te dirá que hay dos. ¿Cómo puede cometer un fallo tan grande en una pregunta así? La razón es sencilla: este modelo no procesa el texto como nosotros, sino que lo divide en tokens, lo que provoca ese fallo.
Es un error sorprendente en el que también caen otros modelos. Lo hace Claude, de Anthropic, considerado uno de los más potentes de la actualidad. Podríamos burlarnos de estos modelos, que teóricamente son espectaculares en otras áreas, pero que no son capaces de resolver este simple problema, pero no deberíamos. Y la razón es que no están pensados para solucionar ese tipo de problemas.
De hecho, al probar con la versión básica y gratuita de ChatGPT, la respuesta es correcta, pero lo es porque el chatbot hace trampa: en lugar de contarlas tal y como ha sido diseñado, crea un pequeño programa que cuenta las erres y lo aplica a la palabra que hemos pedido. Eso no lo hacía originalmente, creedme: es probable que el comportamiento haya cambiado tras la acción de varios usuarios de votar negativa la solución errónea.
Y ahí es donde entra la "magia" del nuevo modelo de OpenAI, bautizado como o1. Por el momento solo se ofrecen versiones preliminares del modelo, pero incluso estas versiones son un avance importante respecto a otros chatbots y modelos como GPT-4o porque, sencillamente, se equivocan menos.
En uno de los vídeos de demostración de o1, uno de los responsables de su desarrollo precisamente ponía el ejemplo de las erres en la palabra 'Strawberry'. El modelo o1 era capaz de dar la respuesta correcta rápidamente, y según dicho responsable,
"Tener [la capacidad] de razonamiento integrada puede ayudar a evitar los errores porque puede observar su propia salida y revisarla y ser más cuidadoso".
Esa declaración es importante, pero engañosa. El modelo o1 "no razona", al menos en el sentido "humano" de la palabra, porque el modelo sigue sin saber lo que está diciendo. Lo que hace, como bien apunta al final este ingeniero, es algo importante.
Revisar.
Esa es la verdadera clave de o1, un modelo que tarda más en responder porque probablemente funciona tan rápido como GPT-4o (o quizás más) a la hora de dar una solución, pero no la ofrece al usuario directamente. En lugar de eso, la revisa, y si encuentra algún fallo, vuelve a iterar sobre sí mismo, corrigiendo el error y volviendo a plantear una solución y a revisarla. Y así hasta que detecta que no hay fallo (o que cree que no lo hay).
Ese proceso iterativo de prueba y error parece ser la base de o1, como puede verse en ese segundo vídeo de demostración. El problema-puzzle planteado con la edad de la princesa y el príncipe muestra cómo primero o1 va mostrando mensajes en los que informa de que está detectando las variables y las ecuaciones para luego revisarlas, resolver el problema y validar la solución.
La respuesta final precisamente demuestra esa forma de procesar la información e ir resolviendo el problema, pero solo la da después de comprobar que todo ha ido bien. No responde a la primera y "a lo loco" como podían hacer sus antecesores.
Todos ellos pecan de exceso de confianza, y su tono claro y contundente nos hace ver que lo que nos dicen siempre va a ser la respuesta correcta, cuando no es así. Con o1 el tono claro y contundente sigue siendo similar, pero aquí al menos tenemos la garantía de que el modelo ha revisado lo que dice antes de mostrárnoslo.
¿Es esto una revolución? No diría yo tanto, y como el experto Gary Marcus explicaba con igual claridad y contundencia, "esto no es AGI, ni se acerca". Es un salto interesante a la hora de mitigar los errores y las alucinaciones, sin duda, y es posible que sea especialmente útil en escenarios en los que no importe esperar un poco más para evitar errores y mecanismos para solucionarlos.
Tenemos un buen ejemplo en el mundo de la programación, donde la IA generativa ha arrasado y es usada por la amplia mayoría de los desarrolladores. El problema es que por ejemplo ChatGPT falla mucho más de lo que debería en ese ámbito, y precisamente hacerlo menos simplificará aún más la vida de los programadores.
Lo comentaban tanto los responsables de GitHub como los de Devin, que en un interesante post explicaban que o1 sí representa un salto cualitativo importante. Ponían de ejemplo una tarea en la que pidieron a Devin analizar publicaciones de X usando las librerías de aprendizaje automático textblob y text2emotion.
Al intentar resolver el problema, Devin lanzó el siguiente mensaje: "AttributeError: module 'emoji' has no attribute 'UNICODE_EMOJI'". Mientras que GPT-4o intentó resolver esa excepción, pero se metió en un lío porque el problema no estaba ahí, sino en la versión de la librería emoji. El modelo o1-preview que usaron "llegó a la conclusión correcta investigando online como lo hubiera hecho un ingeniero humano", destacaban.
¿Significa eso que o1 no se equivocará? En absoluto. El modelo sigue equivocándose —aquí un usuario de X mostraba un ejemplo con el juego de las tres en raya—, pero aún así lo hará probablemente mucho menos. El propio Sam Altman lo advertía al anunciarlo en Twitter: "o1 sigue siendo defectuoso, sigue siendo limitado, y sigue pareciendo más impresionante en el primer uso que después de pasar más tiempo con él".
Y aun así, es un avance singular en los escenarios en los que importa mucho más que la respuesta sea correcta (con bastante probabilidad) que sea rápida. Es probable que en el futuro ambas cosas converjan y tengamos modelos que sean capaces de revisar ("razonar") y contestar casi instantáneamente, y será entonces cuando por ejemplo la capacidad de hablar de GPT-4o sea aún más llamativa.
Por cierto: las nuevas opciones de síntesis de voz siguen sin estar disponibles ni siquiera para los usuarios de pago, y al ser preguntado por ello Altman contestó con cierta soberbia con ese "¿qué tal si dais las gracias durante un par de semanas por esa inteligencia mágica caída del cielo, y luego ya llegarán más juguetes?".
Ver 4 comentarios