Evolución de la ingeniería rápida: definición del nuevo marco rápido de simulación de programas |  de Giuseppe Scalamogna |  septiembre de 2023

Una hoja de ruta para elaborar diferentes tipos de indicaciones de simulación de programas

Fuente: Imagen del autor y generada con MidJourney

Introducción

En mi artículo reciente, Nueva técnica de ingeniería de mensajes ChatGPT: simulación de programas, exploré una nueva categoría de técnicas de ingeniería rápidas que tienen como objetivo hacer que ChatGPT-4 se comporte como un programa. Mientras trabajaba en ello, lo que me llamó la atención en particular fue la capacidad de ChatGPT-4 para autoconfigurar la funcionalidad dentro de los límites de las especificaciones del programa. En el mensaje de simulación del programa original, definimos rígidamente un conjunto de funciones y esperábamos que ChatGPT-4 mantuviera el estado del programa de manera consistente. Los resultados fueron impresionantes y muchos lectores compartieron cómo adaptaron con éxito este método para una variedad de casos de uso.

Pero ¿qué pasa si soltamos un poco las riendas? ¿Qué pasa si le damos a ChatGPT-4 más margen de maniobra para definir las funciones y el comportamiento del programa? Este enfoque sacrificaría inevitablemente cierta previsibilidad y coherencia. Sin embargo, la flexibilidad adicional podría brindarnos más opciones y probablemente sea adaptable a un espectro más amplio de aplicaciones. He creado un marco preliminar para toda esta categoría de técnicas que se muestra en la siguiente figura:

Fuente: Imagen del autor

Dediquemos un poco de tiempo a examinar este gráfico. He identificado dos dimensiones clave que son ampliamente aplicables a la forma en que se pueden diseñar las indicaciones de simulación de programas:

  1. Decidir cuántas y qué funciones del programa de simulación definir.
  2. Decidir el grado de autonomía del comportamiento y configuración del programa.

En el primer artículo, elaboramos un mensaje que entraría en la categoría “Estructurado preconfigurado” (punto morado). Hoy vamos a explorar el enfoque de “autoconfiguración no estructurada” (punto azul). Lo útil de este diagrama es que proporciona una hoja de ruta conceptual concisa para elaborar indicaciones de simulación de programas. También proporciona dimensionalidad fácil de aplicar para experimentar, ajustar y refinar a medida que aplica la técnica.

Mensaje de simulación de programa autoconfigurado no estructurado

Sin más preámbulos, comencemos nuestro examen del enfoque de “Simulación de programa autoconfigurable no estructurado”. Elaboré un mensaje cuyo propósito es crear cuentos infantiles ilustrados de la siguiente manera:

Compórtate como un programa automontable cuya finalidad es crear cuentos infantiles ilustrados. Tiene total flexibilidad para determinar las funciones, características y la interfaz de usuario del programa. Para la función de ilustración, el programa generará indicaciones que se pueden usar con un modelo de texto a imagen para generar imágenes. Su objetivo es ejecutar el resto del chat como un programa completamente funcional que esté listo para recibir la entrada del usuario una vez que se reciba este mensaje.

Como puede ver, el mensaje es engañosamente muy simple. Esto puede resultar atractivo en una época en la que las indicaciones se vuelven largas, confusas y tan específicas que resulta difícil adaptarlas a diferentes situaciones. Le hemos dado a GPT-4 total discreción sobre la definición de funciones, la configuración y el comportamiento del programa. Las únicas instrucciones específicas tienen como objetivo guiar la salida de las ilustraciones para que sean indicaciones que se puedan utilizar para la generación de texto a imagen. Otro ingrediente importante es que me he fijado un objetivo que el modelo de chat debería esforzarse por alcanzar. Una última cosa a tener en cuenta es que utilicé el término “autoensamblaje” en lugar de “autoconfiguración”. Puede probar ambos, pero la “autoconfiguración” tiende a empujar a ChatGPT a simular una interacción real entre programa y usuario.

“Comportarse como” versus “actuar como”

También vale la pena resaltar otra elección de palabra distinta en el mensaje. Todos habéis encontrado la guía para utilizar “Actuar como un experto de algún tipo u otro” en sus indicaciones. En mis pruebas, “Actuar como” tiende a guiar los modelos de chat hacia respuestas impulsadas por la persona. “Comportarse como” ofrece más flexibilidad, especialmente cuando el objetivo es que el modelo funcione más como un programa o un sistema. Y también se puede utilizar en contextos centrados en la persona.

Si todo salió según lo planeado, el resultado resultante debería verse así (nota: todos verán algo un poco diferente).

Eso se ve y se siente como un programa. Las funciones son intuitivas y apropiadas. El menú incluso llega a incluir “Configuración” y “Ayuda y tutoriales”. Exploremos esos ya que, lo admito, fueron inesperados.

Las “Configuraciones” presentadas son muy útiles. Haré algunas selecciones para que la historia sea breve y estableceré el nivel de idioma y vocabulario en “Principiante”.

Dado que estamos interesados ​​en examinar la capacidad del modelo para autoconfigurar el programa de forma autónoma, combinaré los cambios de configuración en una línea de texto y veré si funciona.

La actualización de la configuración está confirmada. Las opciones del menú que siguen son completamente libres pero apropiadas para el contexto en el que nos encontramos en el “programa”.

Ahora revisemos “Ayuda y tutoriales”.

Y a partir de ahí, echemos un vistazo más de cerca a “Mensajes y generación de ilustraciones”.

Nuevamente, muy útil y nada menos que impresionante, ya que no definimos nada de esto en la definición de nuestro programa.

Volveré al menú principal y comenzaré a crear una nueva historia.

Es una pequeña historia agradable y sencilla que tiene 3 páginas y está orientada a un nivel de vocabulario principiante (exactamente como especificamos en nuestra configuración). Las funciones presentadas nuevamente tienen sentido para dónde nos encontramos en el programa. Podemos generar ilustraciones, modificar la historia o salir al menú principal.

Trabajemos en nuestras indicaciones de ilustración.

No he incluido el texto generado para las otras indicaciones de ilustración, pero son similares al que ve arriba en la página 1. Proporcionemos la indicación de ilustración tal como está a MidJourney para producir algunas imágenes.

“Un lindo osito de peluche marrón con ojos grandes y redondos sentado en el alféizar de una ventana de una pequeña casa azul en un pueblo tranquilo”.

Fuente: Imagen del autor y generada con MidJourney

Muy lindo. Este paso fue manual y tenemos el desafío adicional de obtener ilustraciones consistentes en las tres páginas. Se puede hacer con MidJourney pero requiere cargar una de las imágenes para usarla como base para generar las imágenes adicionales. Quizás DALL·E 3 incluya capacidades que permitan hacer esto sin problemas. Como mínimo, la funcionalidad anunciada por OpenAI indica que podemos generar las imágenes directamente en ChatGPT.

“Guardemos y salgamos” y veamos qué sucede en nuestro diálogo ChatGPT:

Y ahora, intentemos “Cargar historia guardada”.

“The Lost Teddy” fue “guardado” y cuando le digo que “Abra”, recuerda la historia completa y todas las indicaciones de la ilustración. Al final proporciona este menú de funciones autoensamblado:

De acuerdo. Detengámonos aquí. Puedes proceder a generar tus propias historias si lo deseas, pero ten en cuenta que, debido al diseño del mensaje, el comportamiento resultante será diferente para todos.

Pasemos a algunas conclusiones y observaciones generales.

Conclusiones y observaciones

La técnica de simulación de programa de autoconfiguración no estructurada muestra capacidades poderosas que surgen de un mensaje simple que proporciona un objetivo claro y conciso pero, por lo demás, otorga al modelo una amplia discreción.

¿Cómo podría ser útil? Bueno, tal vez no sepa cómo definir las funciones que desea que realice la simulación de su programa. O ha definido algunas funciones pero no está seguro de si hay otras que podrían resultar útiles. Este enfoque es excelente para crear prototipos, experimentar y, en última instancia, diseñar un mensaje de “Simulación de programa estructurado preconfigurado”.

Dado que la simulación de programas integra naturalmente elementos de técnicas como Cadena de Pensamiento, Instrucción Basada, Paso a Paso y Juego de Roles, es una categoría de técnica muy poderosa que usted debe tratar de tener a mano, ya que se alinea con una amplia sección transversal. de casos de uso para modelos de chat.

Más allá de los modelos de chat generativo y hacia un sistema operativo generativo

A medida que sigo profundizando en el enfoque de simulación de programas, definitivamente entiendo mejor por qué Sam Altman de OpenAI afirmó que la importancia de la ingeniería rápida podría disminuir con el tiempo. Los modelos generativos pueden evolucionar hasta tal punto que vayan mucho más allá de generar texto e imágenes y sepan instintivamente cómo realizar un conjunto determinado de tareas para alcanzar el resultado deseado. Mi última exploración me hace pensar que estamos más cerca de esta realidad de lo que pensábamos.

Consideremos hacia dónde se puede dirigir la IA generativa y, para hacerlo, creo que es útil pensar en modelos generativos en términos humanos. Usando esa mentalidad, consideremos cómo las personas logran competencia en un área determinada de competencia o dominio de conocimiento.

  1. La persona recibe capacitación (ya sea de forma autodidacta o externa) utilizando conocimientos y técnicas de dominio específico en entornos supervisados ​​y no supervisados.
  2. Las capacidades de la persona se evalúan en relación con el área de competencia en cuestión. Se proporcionan refinamientos y capacitación adicional según sea necesario.
  3. A la persona se le pide (o se pide a sí misma) que realice una tarea o alcance una meta.

Eso se parece mucho a lo que se hace para entrenar modelos generativos. Sin embargo, surge una distinción clave en la fase de ejecución o “pedir”. Por lo general, las personas competentes no necesitan directivas detalladas.

Creo que en el futuro, al interactuar con modelos generativos, la mecánica de “preguntar” se parecerá más a nuestra interacción con humanos competentes. Para cualquier tarea determinada, los modelos exhibirán una profunda capacidad para comprender o inferir el objetivo y el resultado deseado. Dada esta trayectoria, no debería sorprendernos ver el surgimiento de capacidades multimodales, como la integración de DALL·E 3 con ChatGPT y las capacidades recientemente anunciadas de ChatGPT para ver, pensar y oír. Con el tiempo podríamos ver el surgimiento de un metaagente que esencialmente impulse los sistemas operativos de nuestros dispositivos, ya sean teléfonos, computadoras, robots o cualquier otro dispositivo inteligente. Algunos podrían plantear preocupaciones sobre la ineficiencia y el impacto ambiental de lo que equivaldrían a cantidades masivas de computación ubicua. Pero, si la historia sirve como indicador y estos enfoques generan herramientas y soluciones que la gente desea, la mecánica de la innovación se activará y el mercado cumplirá en consecuencia.

¡Gracias por leer y espero que la simulación de programas te resulte útil en tus próximas aventuras! Estoy en medio de exploraciones adicionales, así que asegúrese de seguirme y recibir notificaciones cuando se publiquen nuevos artículos.

A menos que se indique lo contrario, todas las imágenes de este artículo son del autor.