o1 no es un modelo de chat (y esa es la clave)
Cómo pasar de ser un escéptico profesional a un fan incondicional tras superar sus problemas técnicos.
Por: Ben Hilak
Desde el lanzamiento de o1 en octubre de 2024 y el anuncio de o1 pro/o3 en diciembre de 2024, muchos han tenido dificultades para formarse una opinión, tanto positiva como negativa.
¿Cómo pasé de odiar o1 a utilizarlo todos los días para mis preguntas más importantes?
Aprendí a utilizarlo.
Cuando se anunció o1 pro, me suscribí sin dudarlo. Para justificar el precio de 200 dólares al mes, solo tiene que proporcionar 1-2 horas de ingeniería al mes (¡cuanto menos tengamos que contratar a dawn, mejor!).
Pero al final de un día lleno de intentos sinceros por hacer funcionar el modelo, llegué a la conclusión de que era una basura.
Cada vez que hacía una pregunta, tenía que esperar cinco minutos para recibir una respuesta con un montón de palabrería contradictoria, acompañada de diagramas de arquitectura que no había pedido y listas de pros y contras.
Lo tuiteé y mucha gente estuvo de acuerdo, pero lo más interesante para mí fue que algunos discreparon vehementemente. De hecho, les sorprendió lo bueno que era.
Claro, la gente suele entusiasmarse mucho con OpenAI después de los lanzamientos (es la segunda mejor estrategia para hacerse viral, justo después de ser negativo).
Pero esto era diferente: estas opiniones provenían de personas que estaban en primera línea.
Cuanto más hablaba con personas que no estaban de acuerdo conmigo, más me daba cuenta de que estaba completamente equivocado:
estaba utilizando o1 como un modelo de chat, pero o1 no es un modelo de chat.
Cómo utilizar o1 en situaciones de enfado
Si o1 no es un modelo de chat, ¿qué es?
Yo lo veo como un «generador de informes». Si le das suficiente contexto y le dices lo que quieres que te dé como resultado, a menudo dará con la solución a la primera.
OpenAI publica consejos sobre cómo utilizar o1, pero nos parecen incompletos, por lo que, en cierto sentido, podéis considerar este artículo como un «manual perdido» con experiencias reales sobre el uso de o1 y o1 pro en la práctica.
1. No escribas indicaciones; escribe resúmenes
Da mucho contexto. Lo que sea que pienses que quiero decir con «mucho», multiplícalo por diez.
Cuando utilizas un modelo de chat como Claude 3.5 Sonnet o 4o, a menudo empiezas con una pregunta sencilla y algo de contexto. Si el modelo tiene que más contexto, a menudo te lo pedirá (o será obvio por el resultado).
(Poner el contexto al final es mejor para los modelos OpenAI, según la propia documentación de OpenAI)
Repetís el proceso con el modelo, corrigiéndolo y ampliando los requisitos, hasta que se consigue el resultado deseado. Es casi como la alfarería. Los modelos de chat básicamente extraen el contexto de vosotros a través de este proceso de ida y vuelta. Con el tiempo, nuestras preguntas se vuelven más rápidas y más perezosas, tan perezosas como sea posible sin dejar de obtener un buen resultado.
o1 se limitará a tomar las preguntas perezosas al pie de la letra y no intentará extraer el contexto de ti. En su lugar, tienes que introducir todo el contexto que puedas en o1.
Incluso si solo estás haciendo una simple pregunta de ingeniería:
Explica todo lo que has intentado y no ha funcionado.
Añade un volcado completo de todos tus esquemas de base de datos.
Explica a qué se dedica tu empresa, qué tamaño tiene (y define la jerga específica de la empresa).
En resumen, trata a o1 como si fuera un nuevo empleado. Ten en cuenta que los errores de o1 incluyen razonamientos sobre cuánto debe razonar. A veces, la varianza no se corresponde con la dificultad de la tarea. Por ejemplo, si la tarea es muy sencilla, a menudo se enreda en razonamientos sin sentido. Nota: la API de o1 te permite especificar un esfuerzo de razonamiento bajo/medio/alto, pero eso no se muestra a los usuarios de ChatGPT.
Consejos para facilitar el contexto de o1
Te sugiero que utilices la aplicación Voice Memos de tu Mac o teléfono. Yo simplemente describo todo el problema durante 1-2 minutos y luego pego la transcripción.
De hecho, tengo una nota donde guardo segmentos largos de contexto para reutilizarlos.
Los asistentes de IA que están apareciendo dentro de los productos a menudo pueden facilitar esta extracción. Por ejemplo, si usas Supabase, prueba a pedirle al asistente de Supabase que te muestre/describa todas las tablas/RPC/etc. relevantes.
También se podría modificar el inicio por «dedica 10 veces más tiempo a dar indicaciones».
2. Céntrate en los objetivos: describe exactamente QUÉ quieres desde el principio y menos CÓMO lo quieres.
Una vez que hayas llenado el modelo con todo el contexto posible, céntrate en explicar qué resultado quieres obtener.
Con la mayoría de los modelos, nos han enseñado a decirle al modelo cómo queremos que nos responda. Por ejemplo: «Eres un ingeniero de software experto. Piensa despacio y con cuidado».
Esto es lo contrario de lo que me ha dado buenos resultados con o1. No le doy instrucciones sobre el cómo, solo sobre el qué. Luego dejo que o1 se encargue de planificar y resolver sus propios pasos. Para eso sirve el razonamiento autónomo, y en realidad puede ser mucho más rápido que si tuvieras que revisar y chatear manualmente como «humano en el bucle».
Consejo profesional: desarrollar criterios realmente buenos para lo que consideras «bueno» frente a «malo» te ayuda a dar al modelo una forma de evaluar su propio resultado y mejorar/corregir sus propios errores. Básicamente, estás trasladando el LLM como juez al prompt y dejando que o1 lo ejecute cuando sea necesario.
Como ventaja adicional, esto te proporciona evaluadores LLM como jueces que puedes utilizar para el ajuste por refuerzo cuando se trata de GA.
Para ello, es necesario que sepas exactamente lo que quieres (y debes pedir un resultado específico por cada prompt, ya que solo puede razonar al principio).
Suena más fácil de lo que es. ¿Quería que o1 implementara una arquitectura específica en producción, creara una aplicación de prueba mínima o simplemente explorara opciones y enumerara pros y contras? Todas estas son peticiones completamente diferentes.
o1 suele explicar los conceptos con una sintaxis de estilo informe, con encabezados y subencabezados numerados. Si quieres omitir las explicaciones y generar archivos completos, solo tienes que indicarlo explícitamente.
Desde que aprendí a usar o1, me ha impresionado mucho su capacidad para generar la respuesta correcta a la primera. Es realmente mucho mejor en todos los aspectos (aparte del coste y la latencia). Aquí tienes algunos ejemplos en los que esto ha destacado especialmente:
3. Saber lo que o1 hace bien y lo que no
Lo que o1 hace bien:
Genera archivos completos o múltiples de una sola vez: Esta es, con diferencia, la capacidad más impresionante de o1. Copio y pego un montón de código, un montón de contexto sobre lo que estoy construyendo, y genera todo el archivo (¡o archivos!) de una sola vez, normalmente sin errores, siguiendo los patrones existentes en mi base de código.
Menos alucinaciones: En general, parece que confunde menos las cosas. Por ejemplo, o1 realmente domina los lenguajes de consulta personalizados (como ClickHouse y New Relic), donde Claude a menudo confunde la sintaxis de Postgres.
Diagnósticos médicos: Mi novia es dermatóloga, así que cada vez que algún amigo o familiar tiene algún problema en la piel, ¡le envían una foto! Solo por diversión, empecé a pedirle a o1 al mismo tiempo. Normalmente se acerca mucho a la respuesta correcta, quizá 3 de cada 5 veces. Es más útil para profesionales médicos, ya que casi siempre proporciona un diagnóstico diferencial extremadamente preciso.
Explicación de conceptos: He descubierto que es muy bueno para explicar conceptos de ingeniería muy difíciles, con ejemplos. Es casi como si generara un artículo completo.
Cuando trabajo en decisiones arquitectónicas difíciles, a menudo pido a o1 que genere varios planes, con los pros y los contras de cada uno, e incluso que compare esos planes. Copio y pego las respuestas en un PDF y las comparo, casi como si estuviera considerando propuestas.
Bonus: evaluaciones. Siempre he sido muy escéptico con respecto al uso de LLM como juez para las evaluaciones, porque, fundamentalmente, el modelo de juez suele adolecer de los mismos modos de fallo que generaron los resultados en primer lugar. Sin embargo, o1 es muy prometedor: a menudo es capaz de determinar si una generación es correcta o no con muy poco contexto.
Lo que o1 no hace bien (todavía):
Escribir con voces o estilos específicos: No, no he utilizado o1 para escribir esta entrada. He descubierto que es bastante malo escribiendo cualquier cosa, especialmente con voces o estilos específicos. Tiene un estilo muy académico/corporativo que quiere seguir. Creo que hay tantos tokens de razonamiento que sesgan el tono en esa dirección que es muy difícil liberarse de ello. Aquí tienes un ejemplo de mi intento de escribir esta publicación, después de mucho ir y venir: solo quiere producir un informe escolar insípido.
Creación de una aplicación completa: o1 es increíblemente bueno para crear archivos completos de una sola vez. Dicho esto, a pesar de algunas de las demostraciones más... optimistas... que podéis ver en Twitter, o1 no va a crear un SaaS completo para vosotros, al menos no sin muchas iteraciones. Pero puede crear funciones completas de una sola vez, especialmente si son funciones front-end o back-end sencillas.
Aparte: Diseño de interfaces para generadores de informes
La latencia cambia fundamentalmente nuestra experiencia con un producto.
Puesto que 6 grados de latencia de IA son habituales en la actualidad.
Considera las diferencias entre el correo postal, el correo electrónico y los mensajes de texto: se trata principalmente de la latencia. Un mensaje de voz frente a una llamada telefónica: latencia. Un vídeo frente a Zoom: latencia. Y así sucesivamente.
Yo llamo a o1 un «generador de informes» porque claramente no es un modelo de chat, se parece mucho más al correo electrónico.
Esto aún no se ha manifestado en el diseño del producto de o1. Me encantaría ver el diseño reflejado de forma más honesta en la interfaz.
Aquí tienes algunos consejos específicos de IA UX para cualquiera que esté creando productos basados en o1:
Facilita la visualización de la jerarquía de la respuesta (piensa en una mini tabla de contenido).
Del mismo modo, haz que la jerarquía sea más fácil de navegar. Dado que cada solicitud suele ser más grande que la altura de la ventana, yo adoptaría un enfoque similar al de Perplexity, en el que cada página de preguntas y respuestas tiene una sección en lugar de un desplazamiento libre. Dentro de una respuesta, cosas como encabezados fijos, encabezados plegables, etc. podrían ser de gran ayuda).
Facilita la gestión y la visualización del contexto que proporcionas al modelo. (Irónicamente, la interfaz de usuario de Claude lo hace mucho mejor: cuando pegas un texto largo, se muestra como un pequeño archivo adjunto). También me parece que los proyectos de ChatGPT no funcionan tan bien como los de Claude, así que copio y pego cosas mucho.
Nota al margen:
Por otra parte, ChatGPT tiene MUCHOS errores cuando se trata de o1. Las descripciones del razonamiento son cómicas, a menudo no se generan en absoluto y, en la mayoría de los casos, no funcionan en la aplicación móvil.
¿Qué será lo próximo?
Estoy muy emocionado por ver cómo se utilizan realmente estos modelos.
Creo que o1 hará posibles ciertos productos por primera vez, por ejemplo, productos que pueden beneficiarse de una inteligencia en segundo plano de alta latencia y larga duración.
¿Para qué tipo de tareas está dispuesto un usuario a esperar 5 minutos? ¿Una hora? ¿Un día? ¿Entre 3 y 5 días laborables?
Muchas, creo, si están diseñadas correctamente.
A medida que los modelos se encarecen, la experimentación se vuelve más difícil de justificar. Es más fácil que nunca desperdiciar miles de dólares en cuestión de minutos.
o1-preview y o1-mini admiten streaming, pero no admiten la generación estructurada ni las indicaciones del sistema. o1 admite la generación estructurada y las indicaciones del sistema, pero aún no admite streaming.
Dado el tiempo que tarda una respuesta, la transmisión parece un requisito.
Será muy interesante ver lo que hacen realmente los desarrolladores con el modelo cuando empiecen a trabajar en 2025.
Nota: Agradecemos a Ben Hilak su colaboración en este artículo.