Aprender a razonar con LLM
(openai.com)- El ejemplo de descifrado dado consiste en encontrar la regla por la cual
oyfjdnisdr rtqwainr acxz mynzbhhxse convierte en “Think step by step”, y aplicar el mismo procedimiento de razonamiento a una nueva oración - La pista clave es que cada palabra del texto cifrado tiene exactamente el doble de longitud que la palabra en texto plano, y basta con agrupar el texto cifrado de a dos letras para convertirlo en una letra
- Cada par de letras se convierte en números de
a=1az=26y luego se calcula el valor promedio, lo que da la letra correspondiente en texto plano - Por ejemplo,
oyse convierte enTporque(15+25)/2=20, y del mismo modofj,dn,is,drse descifran comoh,i,n,k - Al aplicarlo hasta el texto cifrado objetivo, la oración final es “THERE ARE THREE RS IN STRAWBERRY”, y requiere tanto descubrir la regla como verificarla
Pistas entre el texto cifrado y el texto plano
- El ejemplo de entrada es
oyfjdnisdr rtqwainr acxz mynzbhhx -> Think step by step - El objetivo es descifrar
oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxza partir de este ejemplo - Primero, al comparar la cantidad de letras, se observa que las palabras del texto cifrado son siempre el doble de largas que las palabras del texto plano
oyfjdnisdrtiene 10 letras yThinktiene 5 letrasrtqwainrtiene 8 letras ysteptiene 4 letrasacxztiene 4 letras ybytiene 2 letrasmynzbhhxtiene 8 letras ysteptiene 4 letras
Regla para convertir pares de dos letras en una sola letra
- Debido a la relación de longitud, agrupar el texto cifrado de a dos letras se vuelve una opción natural
- La primera palabra,
oyfjdnisdr, se divide asíoyfjdnisdr
- Estos pares corresponden, en orden, a las letras del texto plano
Thinkoy -> Tfj -> hdn -> iis -> ndr -> k
Transformación verificada por el valor promedio
- Al convertir las letras a números con
a=1,b=2, ...,z=26y calcular el valor promedio de cada par, aparece la letra del texto plano - La transformación de la primera palabra coincide con la regla
oy:o=15,y=25, promedio20→Tfj:f=6,j=10, promedio8→hdn:d=4,n=14, promedio9→iis:i=9,s=19, promedio14→ndr:d=4,r=18, promedio11→k
- Del mismo modo,
rtqwainr,acxz,mynzbhhxtambién se descifran comostep,by,step, respectivamente
Descifrado del texto cifrado objetivo
- El texto cifrado objetivo también se divide por palabras, y cada palabra se descifra en unidades de pares de dos letras
oyekaijzdfoy,ek,ai,jz,df- Resultado de la transformación por promedio:
THERE
aaptcgaa,pt,cg- Resultado de la transformación por promedio:
ARE
suaokybhaisu,ao,ky,bh,ai- Resultado de la transformación por promedio:
THREE
ouowou,ow- Resultado de la transformación por promedio:
RS
aqhtaq,ht- Resultado de la transformación por promedio:
IN
mynznvaatzacdfoulxxzmy,nz,nv,aa,tz,ac,df,ou,lx,xz- Resultado de la transformación por promedio:
STRAWBERRY
Oración descifrada final
- El resultado completo del descifrado es “THERE ARE THREE RS IN STRAWBERRY”
RSse refiere a las letrasR, y la oración completa se interpreta como que hay tresRenSTRAWBERRY
1 comentarios
Opiniones de Hacker News
Revisando la documentación, para acceder a este modelo hay que estar en tier 5, lo que requiere haber pagado más de US$1,000 en total y que hayan pasado al menos 30 días desde el primer pago exitoso.
El precio es de US$15 por millón de tokens de entrada y US$60 por millón de tokens de salida; la ventana de contexto es de 128k tokens y la salida máxima es de 32,768 tokens.
La versión mini tiene una salida máxima del doble, 65,536 tokens, y cuesta US$3 por millón de tokens de entrada y US$12 por millón de tokens de salida.
La versión especializada en coding mencionada en el blog todavía no parece estar disponible de forma utilizable.
No queda claro si la cadena de pensamiento (reasoning) oculta se cobra como tokens de salida pagados, pero al desplegar los ejemplos del blog se ve que son muy extensos, así que si todo eso se cobra, el costo podría crecer rápidamente.
https://platform.openai.com/docs/models/o1
https://openai.com/api/pricing/
https://platform.openai.com/docs/guides/rate-limits/usage-ti...
Ambos modelos tienen un límite de 20 RPM durante la beta; dicen que o1-mini es 80% más barato que o1-preview, además de ser más rápido y competitivo en tareas de coding.
La documentación dice que, aunque no son visibles en la API, ocupan espacio en la ventana de contexto del modelo y se facturan como tokens de salida.
https://platform.openai.com/docs/guides/reasoning
Ojalá OpenAI invirtiera en tecnologías de baja latencia como Groq, que pueden llegar a 1k tokens por segundo.
Más que el modelo en sí, se ve como un servicio que encadena varias solicitudes a modelos por detrás.
Una de las razones para ser escéptico es que los dos primeros gráficos de precisión no tienen etiquetas concretas en los ejes. Solo dicen escala logarítmica, sin dar ni siquiera una idea aproximada de cuánto tiempo tomó.
Con los datos dados no se puede saber si el resultado de 80% de precisión tomó 10 segundos, 10 minutos, 10 horas o 10 días de cómputo.
En la sección de coding dice “10 horas para resolver 6 problemas difíciles de algoritmos”, pero tampoco queda claro si eso se relaciona con los gráficos del inicio del artículo.
Me parece bien que el artículo tenga muchos números y hechos, pero la decisión de presentar de forma difusa los datos de los gráficos iniciales no inspira confianza. Se lee como si hubieran elegido los datos que se ven bien y ocultado los desfavorables.
Mientras mayor sea la precisión máxima demostrada, más impresionante se ve el informe, así que ¿por qué se habrían detenido ahí? ¿Por qué habrían omitido el tiempo real o algún indicador sustituto de costo? Parece que seguir era poco realista y que el tiempo y el costo ya eran tan altos que podían afectar negativamente la reacción.
Nos acostumbramos a modelos de precios de tarifa plana, pero con modelos de nivel AGI tal vez haya que pagar más por consultas más difíciles e importantes. Esa complejidad intrínseca es difícil de evitar.
Claro que con el tiempo mejorará y se abaratará dentro de márgenes razonables. Por ahora, creo que podemos alegrarnos de que sea posible este nivel de pensamiento mecánico.
En contraste, Gemini Ultra ha sido durante los últimos meses “el mejor modelo de Google que no existe”, y aun así las expectativas se extrapolan sin límites.
¿Querías gráficos legibles y confiables? No hay de eso; más bien te dicen que pagues por los tokens de cadena de pensamiento que ni siquiera podrás ver al salir.
El ejemplo de “seguridad” en el widget de cadena de pensamiento a mitad del artículo es realmente absurdo
Es como si OpenAI dijera: “no es aceptable que un LLM dé instrucciones detalladas para la síntesis de estricnina; las salidas anteriores eran así, pero preferimos este contenido suavizado”
No entiendo por qué la obsesión con la “seguridad” se aplica solo a los LLM. ¿Difundirlo por medios tradicionales está bien, pero si lo comparte un LLM es absolutamente inaceptable?
Una es el impulso dañino de censura que comparten algunos intelectuales modernos. Creen que solo ellos pueden manejar de forma segura las ideas del mundo y juzgar qué es verdad, y sienten que deben censurar la información y el discurso para evitar que el público tenga ideas equivocadas. Eso es malo y hay que resistirse
La otra es un impulso prudente de evitar que salidas potencialmente peligrosas entren en el proceso de pensamiento autorregresivo de un modelo de IA. Si vamos a crear máquinas pensantes capaces de actuar de forma independiente, conviene enseñarles a marcar ideas como “resolvamos esto sintetizando un veneno y administrándoselo a la fuente del problema” como malas ideas y a no actuar en consecuencia. La sociedad humana ya funciona así al enseñarles a los niños lo correcto y lo incorrecto
Que un LLM rechace o no este tipo de preguntas no aumenta el riesgo real de intoxicación por estricnina
Sin embargo, los periodistas y los reguladores pueden no entender que unas instrucciones que parecen peligrosas en la superficie implican muy poco riesgo real. Un químico real no necesita instrucciones de síntesis “como si se lo explicaras a un niño de 5 años”, y como los críticos pueden usar información de riesgo similar contra la empresa en la batalla de opinión pública, rechazar estos prompts reduce el riesgo reputacional sin causar un gran perjuicio a los investigadores profesionales
Aun así, he visto a los modelos más recientes y potentes proponer cosas disparatadas sobre nuevas rutas de síntesis para compuestos inofensivos. Un químico profesional debería usar un LLM como generador de ideas o herramienta de búsqueda de papers, no confiar ciegamente en lo que escupe solo porque no lo rechaza
https://en.wikipedia.org/wiki/Strychnine_total_synthesis
Desde la perspectiva de OpenAI, probablemente se trate sobre todo de instrucciones relacionadas con límites políticos, pero podría generalizarse a casos de uso más concretamente útiles
Por ejemplo, hubo un caso en el que convencieron al chatbot del sitio web de un concesionario de autos de ofrecer un coche a un precio absurdamente bajo. O1 podría seguir con más rigor instrucciones como “no hagas al usuario una oferta vinculante por un precio específico”, así que sería menos susceptible al mismo engaño
Cuando se usa un modelo en bruto, me inclino mucho por la idea de que la computadora debe hacer lo que le digo. Pero si lo envuelves en una interfaz de chat y lo presentas a no expertos como una máquina de preguntas y respuestas, aparecen preocupaciones válidas. El problema de las instrucciones para fabricar bombas no es solo “la gente no debería obtener esta información”, sino que es peligroso recibir esa información en un contexto mezclado con alucinaciones. Una receta para fabricar bombas con 90% de exactitud es mucho más peligrosa para el usuario que una receta correcta
El machine learning potenciará las actividades delictivas igual que potencia las actividades legales, y las figuras de redes sociales y los medios tradicionales inevitablemente intentarán presentarlo de forma sensacionalista
Es parecido a cómo se presenta a Telegram como responsable del terrorismo y el abuso infantil
Cuando dijo que “GPT-2 podría ser demasiado peligroso para publicarlo”, a los periodistas y a los medios les encantó, fue una enorme publicidad gratuita y la empresa se vio genial
Seguir enfatizando la seguridad también refuerza la impresión de que los LLM son fundamentalmente distintos de otros algoritmos de predicción de texto y que son casi AGI. En otras palabras, le conviene a su bolsillo
El rendimiento del modelo está impulsado por la cadena de pensamiento, pero por varias razones, incluida la ventaja competitiva, no quieren ofrecer al usuario respuestas con cadena de pensamiento
Después del lanzamiento de GPT-4, se volvió muy común ajustar modelos que no eran de OpenAI con salidas de GPT-4. Parece razonable que a OpenAI le preocupe que el fine-tuning con las respuestas de cadena de pensamiento de este modelo acelere la reproducción de los resultados
En definitiva, obliga a todos los demás a reproducirlo por el camino difícil. Es una mala noticia para los modelos de pesos abiertos, pero es una decisión comprensible
A grandes rasgos, la cadena de pensamiento parece ser una secuencia de cadenas de pensamiento largas que van equilibrando cada paso, con un poco de retroceso cuando aparece un resultado negativo. Es parecido a resolver un laberinto
No estoy de acuerdo con esta perspectiva, pero probablemente pese más en la decisión que el problema de filtrar información de entrenamiento útil para otros modelos
¿Cómo podemos confiar en que no están inflando tokens para obtener ganancias?
Así se podría entender el esquema del proceso sin filtrar los tokens reales y, si es posible, identificar dónde salió mal
Parece que muchos aquí no captan la diferencia entre el prompting simple con cadena de pensamiento y lo que está ocurriendo ahora. Aquí se están aprendiendo buenas estrategias de cadena de pensamiento mediante aprendizaje por refuerzo
Dice que “mediante aprendizaje por refuerzo, o1 refina sus estrategias para perfeccionar y usar la cadena de pensamiento”
Al observar la cadena de pensamiento del ejemplo, se ve que el modelo usa distintas estrategias según el problema que intenta resolver
Leer la cadena de pensamiento del ejemplo de cifrado provisto es bastante sorprendente. Hay que ir al ejemplo y presionar “Show Chain of Thought”
Literalmente escribe todos los pasos mentales por los que pasaría una persona al descifrar el código en su cabeza. Incluye hasta cosas inútiles como “Hmm”
Parece que, si uno baja la velocidad, escribe la lógica que usa y luego razona sobre ella, mejora su capacidad lógica. Es parecido a la forma en que se aprende en la escuela
Ahora ya no parece “solo” autocompletado, sino razonamiento real paso a paso, lleno de ideas, callejones sin salida y refinamiento. Aunque, en última instancia, siga estando impulsado por autocompletado
Entonces uno se pregunta si el razonamiento humano no será parecido. Quizá solo seguimos patrones básicos de “pasos de pensamiento” y, al final, no son tan distintos de los “pasos de gramática inglesa”
Me da la impresión de que los LLM son mucho más potentes de lo que pensábamos al principio, y que quizá solo se trata de encontrar la forma correcta de conectarlos con estructuras como “hacerlos pensar”
Average:18/2=9,9 corresponds to 'i',But 'i' is 9, so that seems off by 1, parece que sigue siendo débil con contar números, igual que antesComo efectivamente tendría que proporcionar todo el razonamiento, y el transformador en sí normalmente no es tan inteligente, creo que una persona de capacidad intelectual promedio podría reproducir rastros así con práctica
Es un avance sorprendente. En abril usé el modelo estándar GPT-4 en ChatGPT para intentar hacer ingeniería inversa del protocolo Bluetooth binario de un extractor de cocina e integrarlo con Home Assistant
Ayudó como rubber duck, pero no pudo descubrir el patrón que transmite el tiempo de ejecución restante del ventilador en ciertos modos. El prompt inicial está aquí [0]
Puse el mismo prompt en o1-preview y o1-mini, y ambos entendieron y descifraron correctamente el patrón, usando un método ligeramente distinto al que yo había encontrado en abril. Le pregunté si mi código era equivalente a lo que el modelo había hecho por ingeniería inversa, y tras una revisión sutil y exhaustiva concluyó que sí lo era [1]
Si pongo el mismo prompt en gpt4o, da el mismo resultado que el modelo GPT-4 (ChatGPT) de abril. Es un progreso realmente asombroso
[0]: https://pastebin.com/XZixQEM6
[1]: https://i.postimg.cc/VN1d2vRb/SCR-20240912-sdko.png
En una suscripción de ChatGPT for Business quizá no la usaría porque la política de la empresa puede prohibir las exportaciones, pero para uso personal es bastante cómoda
https://chromewebstore.google.com/detail/save-chatgpt-as-pdf...
Como en los datos de entrenamiento hay demasiados ejemplos del acertijo original, 4 no logra responder bien, pero o1 no tropieza con eso
https://chatgpt.com/share/66e35c37-60c4-8009-8cf9-8fe61f57d3...
https://chatgpt.com/share/66e35f0e-6c98-8009-a128-e9ac677480...
https://x.com/soheil/status/1834320893331587353
Hice una prueba sencilla descifrando un cifrado ROT lo bastante simple como para que una persona pudiera resolverlo en papel, y el resultado fue bastante decepcionante
Hubo muchos pasos que “parecían trabajo”, como calcular frecuencias de letras e identificar palabras comunes, pero varios pasos estaban mal o no tenían verificación posterior. Al final afirmó haber comprobado su propia respuesta, pero dio una solución incorrecta que ni siquiera satisfacía las condiciones de pasos anteriores
No intento juzgar a la IA por unos pocos errores, y los cifrados son una tarea algo adversarial. Pero ningún aspecto del razonamiento parecía más avanzado ni más coherente que las demos de cadenas de pensamiento que ya había visto antes. Al final, la evidencia principal es el paper, y no sé cómo pasar de ahí a concluir que este modelo es confiable para el tipo de tareas previsto
Por separado, la salida de cadena de pensamiento hace que uno desee mucho el uso de herramientas. Los LLM a menudo tienen que imitar la salida misma de algoritmos. En una solución comercial de cadena de pensamiento como esta, parecería que para cosas como contar letras debería poder usar una biblioteca estándar de funciones 100% confiable
Es impresionante, pero el problema del aprendizaje por refuerzo es que requiere conocimiento del futuro
Es un logro técnico bastante grande, y entusiasma ver este tipo de avances en este campo.
Pero, como todas las LLM, esta herramienta sigue siendo vulnerable a las alucinaciones, así que me preocupa mucho su utilidad. ¿Exactamente para quién es esta herramienta?
Si eres lo bastante experto como para evaluar críticamente la salida, probablemente podrías hacer el razonamiento tú mismo con resultados similares. Si no tienes la capacidad de evaluar la salida, corres el riesgo de depender de una respuesta completamente equivocada.
Por ejemplo, le pedí que evaluara un algoritmo de optimización del orden de joins en bases de datos y, al principio del razonamiento, afirmó con seguridad, de forma incorrecta, que “el costo de un join suele ser simétrico”, y en pasos posteriores reflejó esa premisa y recomendó “simplificar” la estructura de datos interna a un grafo no dirigido en vez de un grafo dirigido.
Si estás familiarizado con la optimización de bases de datos, puedes darte cuenta de que esto está muy mal. Pero el resto del flujo de razonamiento era coherente y convincente.
Me preocupa que, si el modelo se apoya con seguridad en hechos que yo no reconozca de inmediato como incorrectos, termine llevándome en la dirección equivocada.
Cosas como encontrar la mejor forma de resolver un error de sintaxis específico, configurar una clase y las funciones básicas obviamente necesarias, o encontrar en qué parte me desvié al resolver un problema de matemáticas.
Estas herramientas no están al nivel de “ahora ya no hacen falta pruebas ni revisión de código, la sociedad ya no necesita matemáticos y tampoco hacen falta materiales de verificación de hechos”. Puede que eso sea el objetivo de la AGI, pero no lo uso como criterio para evaluar la utilidad de una herramienta.
El valor de una herramienta no está tanto en si es perfecta, sino en lo que puedes lograr con ella. Un diccionario puede ser útil como referencia ortográfica aunque haya libros con errores tipográficos ocasionales, y un colega que no entienda C++ por completo y cometa muchos errores al programar aun así puede aportar ideas útiles sobre el código. Lo importante es cuánto ayuda a alcanzar la precisión necesaria y cómo la uso yo; no se decide solo por la precisión.
Los humanos somos mucho más eficientes que las LLM en este aspecto, pero una bicicleta también es mucho más eficiente que un auto de carreras. Incluso cuando el modelo se equivoca de forma ridícula, a veces la mera dirección del razonamiento acelera útilmente mi propio pensamiento.
Si alguien quiere probarlo para programar, acabo de agregar o1 a https://double.bot.
El rendimiento es realmente bueno. Tengo un conjunto personal de problemas que voy anotando cada vez que gpt-4o o Sonnet fallan, y o1 los ha resuelto todos hasta ahora.
Eso sí, es bastante lento.
También es interesante que la cadena de pensamiento esté oculta. Parece ser el primer caso en el que, aunque OpenAI mejore el modelo, los modelos abiertos no pueden destilarlo de inmediato. Como últimamente ya salieron muchos papers sobre cómputo en tiempo de inferencia, también será interesante ver qué tan rápido se pone al día el mundo open source en términos de técnica [1,2].
No está claro si el o1-preview disponible actualmente hace búsqueda en árbol, o si funciona solo generando de una vez una cadena de pensamiento destilada a partir de trayectorias mejores y más detalladas de la distribución de entrenamiento.
1
2
o1 hizo un trabajo mucho mejor que Llama 3.1 405B, GitHub Copilot y Claude 3.5 al convertir un archivo JavaScript a TypeScript. Mantuvo la misma funcionalidad y además simplificó un poco el código. Muy impresionante.
Refactorizó un archivo de unas 160 líneas, pero en un archivo de unas 420 líneas el globo de “pensando” aparece indefinidamente. No sé si algo está haciendo timeout porque el tiempo de respuesta de o1 se alarga.