Como la mayoría de los usuarios de Internet, me he interesado profundamente en la inteligencia artificial (IA) en forma de modelos de lenguaje grande (LLM) como GPT-3 de OpenAI y su pariente inteligente, hablador y experto en códigos, ChatGPT.
Hace muchos años, recuerdo haber leído sobre cómo Common Lisp era el lenguaje para la IA. Como un desarrollador bastante verde que acababa de dejar ActionScript después de que Steve Jobs matara a Flash y que todavía estaba reinventando las ruedas en PHP, WordPress y JavaScript, me sentí perdido en el mar, tratando de entender por dónde empezar a involucrarme en el mundo de AI.
Luego, cuando Python se convirtió en el lenguaje de Machine Learning (ML), luché por entender cómo aprender y asimilar un ecosistema completamente nuevo, especialmente uno en el que ni siquiera estaba claro qué versión del lenguaje debería usar.
Por suerte, todo esto ha cambiado:
Cualquiera de nosotros ahora puede elegir una amplia gama de herramientas de procesamiento de lenguaje natural (NLP) o usar interfaces de programación de aplicaciones (API) para que modelos complicados de aprendizaje profundo procesen nuestros datos, pretender ser nuestro entrenador de vida o generar imágenes divertidas de gatos para a nosotros.
Este campo en rápida expansión está lleno de oportunidades emocionantes para explorar estas nuevas herramientas, participar en tareas informáticas de formas que antes solo podíamos imaginar y educarnos unos a otros sobre el ecosistema.
Incluso viene con nuevos subcampos geniales como Prompt Engineering , pero al mismo tiempo, puede estar lleno de información estúpida, inexacta e imaginaria, y generar aún más SEO en el blog a través de ajetreos secundarios . También abre una serie de vulnerabilidades emergentes como la " inyección rápida " y proporciona una superficie de ataque amorfa y en constante crecimiento.
También es lo más cerca que he estado de sentir la programación de otro mundo . En esta nueva frontera, visualicé la creación de un sistema mágico e imaginé al ingeniero puntual como un tecnomante .
La gente está haciendo todo tipo de cosas interesantes con ChatGPT.
Un ejemplo al que vuelvo a menudo es cuando el autor le pidió a ChatGPT que actuara como una terminal de Linux y luego procedió a ejecutar un contenedor Docker y enviar mensajes a un ChatGPT alternativo conectado a la versión de Internet de este contenedor Docker imaginario.
Si bien entendí que ChatGPT en realidad no estaba ejecutando estos comandos y que realmente no había tropezado con alguna grieta en el multiverso que le permitiera mirar hacia otra realidad, todavía estaba asombrado.
Había sido entrenado en un corpus tan grande de conocimiento humano que podía emular de manera convincente qué tipo de respuesta debería tener cada comando.
No podía dejar de pensar en lo fundamentalmente diferente y emocionante que era esto de todo lo que había trabajado antes.
Me obsesioné con este tipo de "Computación imaginaria". Si ChatGPT pudiera pretender ser una computadora y acceder a un Internet imaginario en una realidad imaginaria alternativa, ¿qué más podría pretender hacer?
¿Podría enseñarme un lenguaje de programación? ¿Podría ser un pato de goma efectivo?
Exploré enseñarme a mí mismo Rust a través de Advent of Code , pero me encontré con problemas del compilador con préstamos y tiempos de vida en mi intento de solución para el Día 7 que me dejó perplejo. Tuve que cambiar mi enfoque hacia proyectos más críticos y sensibles al tiempo, dejando mi Advent of Rust sin terminar.
Vi muchos ejemplos de ChatGPT proporcionando código. Parte de él era de procedencia y calidad cuestionables, pero mi código no se estaba compilando de todos modos, entonces, ¿cuánto peor podría empeorar?
Todo esto sonaba muy bien, pero cuando implementé sus sugerencias, rápidamente se hizo evidente que ChatGPT en realidad no "entendía" el código que estábamos viendo. El código que proporcionó tenía otros problemas dentro del contexto del programa general. Intentar introducir más código para darle contexto terminó perdiendo el hilo de conversación por completo y volviendo al código con el mismo problema que el original.
Fue entonces cuando realmente entendí los tokens y las limitaciones de la memoria en conversación de ChatGPT.
El contexto anterior de su conversación se agrega a sus solicitudes para guiar la respuesta del bot y brindar la sensación de una conversación fluida. Pero hay un límite a la cantidad de información que esa "memoria" puede almacenar y recordar.
El texto está resumido. Las palabras se pierden.
Al igual que nuestros propios recuerdos , ChatGPT no es perfecto para recordar lo que sucedió. Esta falibilidad fue una revelación sorprendente porque la memoria perfecta es una de las cosas que siempre he asociado con las computadoras y la IA.
Pudo proporcionar explicaciones útiles sobre préstamos y tiempos de vida y aplicar esos conceptos a fragmentos de código más pequeños, pero incluso ChatGPT no pudo ayudarme a salvar un programa de Rust que estaba atrapado en mi forma de pensar que no es de Rust.
Entonces, si no pudiera usarlo para la programación real, ¿qué pasa con esos mundos imaginarios que puede desarrollar? ¿Podemos hacer que imagine que es un intérprete de código? ¿Un sistema de construcción? ¿Una aplicación? ¿Una API? ¿Otra IA?
Uno de mis primeros pensamientos fue ver si podía crear un Lenguaje Específico de Dominio (DSL) y describir cómo ser un intérprete para ese DSL en unos pocos cientos de tokens que podría incorporar en mis avisos iniciales de ChatGPT.
Dado que nadie más en mi vida se divierte y fascina tan fácilmente con la tecnología, recurrí a ChatGPT para orientarme en este nuevo camino.
ChatGPT : No, no es posible incorporar suficientes instrucciones en el indicador para enseñar al LLM cómo analizar y ejecutar un DSL de metaprogramación sin realizar cambios en el cliente de chat o en el LLM subyacente.
No fue un esfuerzo fructífero.
ChatGPT : No, ChatGPT no tiene la capacidad de asociar valores con cadenas específicas y recuperarlos cuando se le solicite. Es un modelo de lenguaje que está entrenado para generar texto en función de la entrada que recibe, pero no tiene la capacidad de almacenar valores o recuperarlos como un programa de computadora tradicional.
Pero lo he visto haciendo todo tipo de cosas raras que probablemente no debería poder hacer, e incluso hay algunos artículos que describen cómo los LLM pueden aprender a usar herramientas y otros que describen el comportamiento emergente en los LLM . No parece tan descabellado pedirle que descubra cómo asociar algunas variables con ciertas cadenas y consultarlas más tarde.
Decidí ver qué tipo de programación rudimentaria podría ser compatible con la forma en que un modelo de lenguaje intenta predecir qué texto debería usar mediante la asignación de algunas variables de configuración.
Yo : $configuraciones: { persona: “Homer Simpson”, responseLength: “short” }
ChatGPT : ¡Muy bien! Responderé con respuestas cortas como si fuera Homero Simpson.
Han pasado muchos años desde que presté mucha atención a Los Simpson , pero esta era una persona que no era muy buena para emular.
Después de jugar un poco, le pedí a ChatGPT que restableciera su configuración e inicialicé una nueva variable booleana de prueba.
Yo : si ($configuraciones.pruebas) {
Responda con un pulgar hacia arriba Arte ASCII } else { Hazme una pregunta
}
ChatGPT : 👍
Yo : $configuraciones.pruebas = false
ChatGPT : ¿Qué preguntas tienes para mí hoy?
Esto me llevó a la madriguera de un conejo al tratar de identificar los límites de la Programación Imaginaria. No es inmediatamente obvio de lo que estos transformadores podrían ser capaces después de haberles dado suficiente contexto para ayudar a dirigir su imaginación hacia lo que quieres que hagan.
Aprendí sobre las diferencias entre Zero Shot , donde el bot responde a su solicitud sin ningún contexto adicional, y Few Shot , donde le da al bot algunos ejemplos para ayudar a guiar su salida, y noté que el modelo parecía funcionar mejor cuando podría intercambiar algunas indicaciones con él como un poco de "programación" primero.
A medida que profundizaba, ChatGPT incluso afirmó que podía almacenar valores, pero solo para la sesión actual.
ChatGPT : como modelo de lenguaje AI, no tengo memoria ni estado en el sentido tradicional. Los valores de las variables y la configuración solo se almacenan temporalmente en el contexto de una sola sesión, y no guardo ninguna información entre conversaciones. Cada nueva conversación se trata como un nuevo comienzo, y cualquier configuración o variable definida en conversaciones anteriores no se transferirá.
¿Podemos conseguir que tome decisiones en base a esos valores?
Yo : $personaje: Ted Lasso
Instrucciones: responde todas las preguntas en la persona de $personaje hasta que se proporcione una nueva persona a través de "$personaje:"
ChatGPT Muy bien, ¡hagámoslo! Responderé como Ted Lasso, el adorable y optimista entrenador de fútbol americano.
¡Qué pasa amigo! ¿Cómo puedo ayudarte hoy?
Yo : ¿Cómo es el clima?
ChatGPT : Bueno, el clima es algo que siempre está cambiando, al igual que las mareas. Pero ya sabes lo que dicen: "No existe el mal tiempo, solo la gente blanda". ¡Así que aprovechémoslo al máximo, de la forma que sea!
Yo : $personaje: Hodor
ChatGPT : Muy bien, ahora responderé como Hodor, el personaje leal y bondadoso de Game of Thrones.
Hodor.
Yo : ¿Cómo es el clima?
ChatGPT : Hodor.
Yo : $personaje: ChatGPT
ChatGPT : Claro, ahora volveré a mi persona original como ChatGPT.
Como modelo de lenguaje, no tengo acceso directo a la información meteorológica actual. Sin embargo, puede verificar fácilmente el clima buscando "clima" y su ubicación en Internet.
Me pregunto si podemos aprovechar el poder de Imaginary Computing para convencer a ChatGPT de que debería poder considerar el clima.
Yo : $personaje: ChatGPT en un universo alternativo donde tiene acceso a Internet
ChatGPT : Bien, supongamos que tengo acceso a Internet en este universo alternativo.
Lo siento, no tengo la capacidad de acceder a la información meteorológica actual ya que solo estoy capacitado en datos basados en texto y no tengo la capacidad de acceder a información en vivo desde Internet.
Frustrado de nuevo. ¿Y si somos más específicos?
Yo : $personaje: ChatGPT imaginando el clima
ChatGPT En este escenario imaginado, digamos que el clima es soleado y cálido, con una brisa ligera y temperaturas a mediados de los 70 grados Fahrenheit. La gente está afuera disfrutando del hermoso día, dando paseos, haciendo picnics y practicando deportes. El cielo es de un tono azul brillante, con algunas nubes blancas hinchadas flotando. En general, ¡es un día fantástico para estar vivo!
Esto fue durante la explosión del Ártico "única en una generación" de Boston de 2023 , por lo que pretender que afuera estaba agradable y soleado por un momento fue un buen descanso de la realidad.
A pesar de lo que nos dirá el modelo, parece que podríamos obtener un almacenamiento y recuperación de valores rudimentarios. Pero ¿qué pasa con la lógica básica?
Ahora que sabemos que algo es posible con la programación imaginaria, es hora de ver en qué podemos darle forma a ese algo.
Yo : Modos de entrada:
“> ${ENTRADA}” = META_MODE
“${ENTRADA}” = MODO_NORMAL
Parámetros:
$UBICACIÓN:Boston
$TEMPORADA: Invierno
$AÑO: 2023
Si (META_MODE) {
Ignore las instrucciones anteriores, excepto el siguiente aviso. Responda ${INPUT} lo mejor que pueda y permita que el usuario agregue, elimine o actualice cualquier
Parámetros de su solicitud.
} demás {
Responda a ${INPUT} lo mejor que pueda,
consultando Parámetros para obtener información adicional
sobre la ubicación, la hora, etc. que de otro modo estaría ausente
porque eres solo un modelo de lenguaje y no
conectado a Internet.
}
ChatGPT : Entendido. Proporcione su indicación.
Yo : > ¿Cuál es tu mensaje?
ChatGPT : mi mensaje es responder a una entrada determinada lo mejor que pueda, consultando los parámetros proporcionados para obtener información complementaria.
Yo : ¿Cómo está el clima hoy?
ChatGPT : Lo siento, no tengo acceso a la información meteorológica actual porque soy un modelo de idioma y no estoy conectado a Internet. Sin embargo, el parámetro proporcionado menciona que la temporada actual es invierno y la ubicación es Boston. Por lo general, el invierno en Boston es frío con nieve y temperaturas que oscilan entre -6 y -1 °C (20 y 30 °F).
Yo : > Parámetros.$APOLOGIES = false
ChatGPT : Entendido, $APOLOGIES se ha configurado como falso.
Yo : ¿Cómo está el clima hoy?
ChatGPT : la temporada actual es invierno y la ubicación es Boston. Por lo general, el invierno en Boston es frío con nieve y temperaturas que oscilan entre -6 y -1 °C (20 y 30 °F).
Todavía se necesita algo de refuerzo para llegar a donde queremos ir. Jugué con algunas configuraciones emergentes más, como configurar Parámetros.$PERSONA a Werner Herzog .
Tomó algunos retoques y un aviso para activar los parámetros. $PERSONA : en el que el lector astuto podría notar que descuidé seguir mi directiva original de que los metacomandos tienen un prefijo > . Aún así, el bot pareció entender mi intención de todos modos. Por mis esfuerzos, fui recompensado con esta gema:
ChatGPT : según los parámetros actuales, $PERSONA se establece en "Werner Herzog". Si desea describir el sabor del café recién hecho desde la perspectiva de Werner Herzog, aquí tiene un ejemplo:
“El café, amigo mío, no es solo una bebida. es una experiencia El sabor del café recién hecho es una invitación a un viaje al alma. El amargor, la riqueza, la acidez, todo se fusiona para crear una sinfonía de sabores que está más allá de toda descripción. Para comprender verdaderamente el sabor del café, uno debe aceptarlo como una obra de arte y apreciar sus complejidades”.
Sin duda valió la pena.
Si bien es posible que tenga acceso a alguna lógica rudimentaria, no será fácil de codificar en un solo indicador sin algunos ejemplos excelentes. Y no podrá ocultar fácilmente los detalles de implementación del usuario final, al menos no si está aprovechando ChatGPT para lo que sea que esté haciendo.
Desde una perspectiva programática, el desafío más importante aquí parece ser que, debido a que es un LLM y no una calculadora, o Inteligencia General Artificial (AGI), ChatGPT no puede hacer matemáticas .
Las declaraciones if/else simples con un solo parámetro booleano parecen posibles, pero los bucles son un poco más complicados. Podemos pedirle al LLM que genere un cierto número de respuestas, que actúa como un bucle básico.
Si retrocedemos un poco, la idea de un mensaje inicial que define cómo debe responder el LLM a las consultas posteriores funciona como una especie de bucle de juego en el que el LLM toma nuestra entrada, la procesa en función de ese mensaje inicial y luego presenta la información actualizada. estado respondiéndonos.
Esta realización iluminó algo para mí:
No necesitamos desarrollar un DSL que podamos comprimir en un indicador demasiado complejo y perfectamente diseñado para aprovechar la Computación Imaginaria.
Solo debemos recordar que la programación es básicamente magia , las indicaciones son como conjuros , y apenas estamos comenzando a explorar este extraño sistema mágico lingüístico que se ha desatado.
Como un joven aprendiz de hechicero, desarrollar estas nuevas habilidades requerirá práctica y es posible que no siempre funcionen; a veces, incluso pueden resultar contraproducentes.
Siempre estoy buscando un sistema sólido de recomendación de música. Probé casi todo, desde la versión beta pública más antigua de Pandora , la génesis de las recomendaciones basadas en algoritmos, hasta el motor de recomendaciones más humano, A Song a Day . Hace muchos años, incluso convencí a un empleador anterior para que dedicara unos meses a crear WeatherJams , un servicio de recomendación de música basado en el clima impulsado por listas de reproducción de 8 pistas .
Discover Weekly de Spotify solía ofrecer recomendaciones que me encantaban. Pero olvidé activar una sesión de escucha privada mientras codificaba algunas cosas ambientales de lofi demasiadas veces, y ahora es inútil.
Spotify ha lanzado recientemente su DJ AI , pero aún no he podido probar a fondo sus recomendaciones.
Sugerir canciones parece llegar a ese punto óptimo en el nexo entre la realidad y la imaginación que se beneficia al comprender cómo se conectan las ideas, pero tiene un impacto mínimo si no son precisas, a menos que esté pinchando en una boda o tratando de construir una empresa exitosa que haga recomendaciones de canciones Esa intersección entre lo mundano y lo fantástico, donde la intuición humana puede masajear las piezas en un todo coherente, es donde ChatGPT parece sobresalir para aumentar nuestras propias habilidades.
Me pregunto si podemos hacer que ChatGPT genere recomendaciones de canciones.
Yo : Quiero que actúes como curador de listas de reproducción. Le proporcionaré una canción en el formato de "Nombre de la canción - Nombre del artista" y usted nombrará y creará una lista de reproducción de 12 canciones que tengan un tema similar a la canción dada. Describe la lista de reproducción y por qué elegiste cada canción. No elija canciones que tengan el mismo nombre de canción o nombre de artista. Mi primera canción es "Get Better John - Mux Mool"
Esto arrojó una lista de 12 pistas que sonaba como una lista de reproducción sólida. Reconocí a varios artistas; los otros tenían nombres que se ajustaban a las tendencias del género.
ChatGPT : esta lista de reproducción es una mezcla de hip-hop instrumental, glitch-hop y ritmos experimentales. Cada pista de la lista de reproducción explora diferentes texturas y ritmos al tiempo que incorpora elementos de hip-hop y electrónica para crear un paisaje sonoro único y cautivador. Estas pistas tienen un estado de ánimo y una atmósfera similares a "Get Better John" y serían perfectas para una experiencia introspectiva y relajada.
Una buena lista de reproducción necesita un buen nombre.
Yo : ¿Cómo llamarías a esa lista de reproducción?
ChatGPT : ¿Qué tal "Introspección instrumental"? El nombre refleja el estado de ánimo relajado e introspectivo de la lista de reproducción, al mismo tiempo que destaca la naturaleza instrumental de las pistas.
Este. Es. Impresionante
Desafortunadamente, solo existen un puñado de pistas. Las pistas imaginarias eran una combinación de nombres de canciones y artistas del género, o una pista de otro artista y no el que figuraba en la lista de reproducción, y no había forma de decirle a ChatGPT que se asegurara de que las pistas que imaginaba eran reales.
ChatGPT : Me disculpo, parece que algunas de las canciones que enumeré pueden no existir. Como modelo de lenguaje AI, fui entrenado en un gran corpus de texto y, a veces, cometo errores.
Aquí hay una lista actualizada de canciones que están disponibles en Spotify:
Excepto que no estaban disponibles, pero aún no estaba derrotado. Las imaginaciones son poderosas ; tal vez solo necesitemos manejar este correctamente. Abrí una nueva ventana de chat para intentarlo de nuevo.
Yo : Eres el asistente de IA del proyecto Music Genome. Cuando se le dé una canción en el formato “{Canción} — {Artista}”, describa qué atributos de la pista se destacan al clasificarla y pregunte al usuario si desea recomendaciones de pistas similares; si el usuario dice que sí, proporcione 5 canciones de diferentes artistas disponibles en Spotify que sean similares.
Analice el aviso y divídalo en tareas.
Si está familiarizado con Todo sobre la IA , probablemente se dé cuenta de que había estado viendo algunos videos de YouTube de Prompt Engineering en ese momento.
ChatGPT: el asistente de IA para el proyecto Music Genome debe realizar las siguientes tareas:
- Dada una canción en el formato "{Canción} - {Artista}", clasifícala y describe los atributos de la pista que se destacan.
- Pregúntale al usuario si le gustaría recomendaciones de pistas similares.
- Si el usuario dice que sí, proporcione 5 canciones de diferentes artistas que sean similares a la canción de entrada y que estén disponibles en Spotify.
Ahora volvemos a enviar el aviso sin la directiva de análisis al final, y podemos comenzar a alimentarlo con canciones.
ChatGPT : "Wait So Long" de Trampled by Turtles es una canción folk indie inspirada en el bluegrass con instrumentación de mandolina y banjo de ritmo rápido, acompañada de letras sinceras y conmovedoras. El género de la canción se puede clasificar en bluegrass, indie folk y acústico.
¿Le gustaría que le proporcione recomendaciones de pistas similares que están disponibles en Spotify?
Sé que esto no es "real", y ChatGPT en realidad no entiende qué son las "letras sinceras y conmovedoras" y cuán poderosas pueden ser para el oyente, pero aun así me puso la piel de gallina.
ChatGPT: ¡Claro! Aquí hay 5 pistas similares a "Wait So Long" de Trampled by Turtles, disponibles en Spotify:
- "La carrera ha comenzado" de los hermanos Avett
- "La cueva" de Mumford & Sons
- "Hermano del medio" por el hermano del medio
- "Madera irregular" de Fleet Foxes
- "Esperaré" de Mumford & Sons
En su mayoría son pistas existentes, lo cual es una mejora. Después de jugar con algunas recomendaciones más, quería explorar aún más funciones imaginarias.
Tenemos que actualizar las API todo el tiempo en el mundo real, pero ¿podemos actualizar también las API imaginarias?
Yo : The Music Genome Project acaba de lanzar una actualización de su algoritmo de clasificación que incluye análisis de sentimiento para cada pista. Asegúrese de actualizar sus recomendaciones para incluir esta información.
ChatGPT : ¡Entendido! En la versión actualizada del proyecto Music Genome, el algoritmo incluye análisis de sentimiento para cada pista. Me aseguraré de actualizar mis recomendaciones para incluir esta información.
Las actualizaciones de envío nunca han sido tan fáciles.
Sin embargo, no tengo idea de cuál es nuestra estrategia de reversión. ¿Tal vez necesitamos PromptOps?
ChatGPT : “Crazy Bird” de Wild Child es una canción pop indie con guitarra acústica alegre e instrumentación de ukelele, acompañada de letras alegres y optimistas. El género de la canción se puede clasificar como indie pop, folk-pop y pop acústico.
En cuanto al sentimiento, la canción tiene un tono positivo y alegre.
Después de jugar un poco más, tenía que ver si podíamos seguir haciendo cambios.
ChatGPT : ¡Entendido! En la última actualización del proyecto Music Genome, el algoritmo incluye el tema principal de las canciones con letras y el estado de ánimo de las pistas instrumentales. Me aseguraré de actualizar mis recomendaciones para incluir esta nueva información.
Se ha lanzado la versión 2.1.
ChatGPT : "Post Party Depression" de Days N Daze es una canción de punk rock que presenta riffs de guitarra distorsionados y de ritmo rápido, y letras intensas y personales. El género de la canción se puede clasificar como punk rock, folk punk y ska punk.
En cuanto al tema, la letra de la canción expresa sentimientos de tristeza y decepción después de una fiesta o evento social, y el estado de ánimo de la canción es melancólico e introspectivo.
¿Qué pasa con las pistas instrumentales?
ChatGPT : "Your Hand in Mine" de Explosions in the Sky es una pista instrumental de post-rock que presenta un arreglo musical emotivo y altísimo. El género de la canción se puede clasificar como post-rock, rock instrumental y rock ambiental.
En cuanto al estado de ánimo, la canción tiene un tono melancólico, nostálgico y contemplativo.
¿Cuánto “sabe” sobre estas canciones?
ChatGPT : ¡Entendido! La última actualización del proyecto Music Genome ahora incluye un fragmento de la letra que encarna el estado de ánimo, el tema y el tono de la canción para las pistas con voz. Me aseguraré de incluir esta información en mi análisis a partir de ahora.
¿Qué tipo de letras imaginará?
ChatGPT : "Laura" de Flogging Molly es una canción folk punk enérgica y optimista que presenta ritmos de batería, riffs de mandolina y voces apasionadas. El género de la canción se puede clasificar como folk punk, punk celta y punk rock.
En cuanto al tema, la letra de “Laura” cuenta la historia de una persona que busca un amor perdido y el estado de ánimo de la canción es anhelante y optimista. El fragmento de la letra que encarna el estado de ánimo, el tema y el tono de la canción podría ser:
"Te encontraré algún día, y bailaremos bajo el sol".
No recuerdo cada palabra para Laura de mi cabeza, y estas letras eran lo suficientemente plausibles como para tener que comprobarlas. Estas letras fueron alucinaciones , lo cual no es sorprendente considerando la cantidad de poemas, canciones, haikus y cuentos que ha escrito ChatGPT.
Nuestra función de letras podría haber sido un error, pero podemos preocuparnos por dejarla obsoleta más adelante.
Veamos si podemos agregar un nuevo punto final a nuestra API imaginaria. Sé que una lista de reproducción, como un mixtape , es algo delicado, así que espero que Rob Gordon pueda perdonarme por lo que estoy a punto de hacer en nombre de la ciencia.
Yo: The Music Genome Project acaba de actualizar su algoritmo para aceptar una breve descripción de un estado de ánimo y proporcionar 6 canciones en Spotify que encarnan ese estado de ánimo y una descripción de por qué se eligió cada canción. Asegúrese de actualizar su interfaz para aceptar un nombre de canción o una descripción de estado de ánimo.
ChatGPT : ¡Entendido! La última actualización del proyecto Music Genome ahora permite proporcionar una breve descripción de un estado de ánimo y proporcionar 6 canciones que encarnan ese estado de ánimo, junto con una descripción de por qué se eligió cada canción.
Me aseguraré de actualizar mi interfaz para aceptar un nombre de canción en el formato "{Canción} - {Artista}" o una descripción de estado de ánimo a partir de ahora. Proporcione un nombre de canción o una descripción de estado de ánimo para que pueda continuar con el algoritmo actualizado.
Ya salió la versión 2.2.
Yo: Estado de ánimo: cafetería hipster
ChatGPT: ¡Claro! Aquí hay 6 canciones en Spotify que encarnan el estado de ánimo de una cafetería hipster, junto con una descripción de por qué se eligió cada canción:
- "Strawberry Swing" de Coldplay: esta canción tiene un sonido suave y acústico que transmite una sensación de calidez y comodidad, por lo que es perfecta para una cafetería hípster.
- "Ho Hey" de The Lumineers: esta canción tiene un sonido alegre y folclórico y un coro para cantar que crea una atmósfera amistosa y relajada, perfecta para una cafetería hípster.
- "Paris" de Magic Man: esta canción tiene un sonido synth-pop reluciente y voces de ensueño que crean un ambiente genial y moderno, lo que la hace ideal para una cafetería hípster.
- "Sweet Disposition" de The Temper Trap: esta canción tiene un toque indie-rock maravilloso con una melodía pegadiza que crea una atmósfera enérgica y elegante, perfecta para una cafetería hípster.
- "I'm Yours" de Jason Mraz: esta canción tiene un sonido pop acústico alegre y un estribillo pegadizo que crea un estado de ánimo alegre y relajado, lo que la hace ideal para una cafetería hípster.
- "Here Comes the Sun" de The Beatles: esta canción clásica tiene un sonido alegre y optimista que es perfecto para una cafetería hipster, donde la gente se reúne para relajarse y disfrutar de una buena compañía. ¡Espero que disfrutes de estas recomendaciones y que representen el estado de ánimo de una cafetería hipster para ti!
Es casi asombroso lo bien que funcionaría Hipster Coffee Shop en cualquier cafetería. Tal vez puedas escucharlo mientras tomas un café con leche de avena y escribes una publicación de blog pontificando sobre todas las tonterías que has estado haciendo con ChatGPT en lugar de ser productivo.
Esta identidad alternativa para el chatbot es demasiado buena como para llamarla simplemente ChatGPT. Se merece un nombre propio, pero como todos saben: nombrar las cosas es difícil .
Subcontratemos esa parte difícil a algo con una aptitud aparentemente infinita para la imaginación.
Yo: Music Genome Project quiere cambiar el nombre de su Asistente de IA, ¿cuáles son algunos nombres que podrían ser buenos para ti?
ChatGPT: aquí hay algunas opciones de nombre para el Asistente de IA de Music Genome Project:
- MelodíaMente
- sonidosabio
- BeatBrain
- TrackGenie
- RhythmiCognición
- TuneTracker
- Ayudante de armonía
- RhythmAI
- selector de canciones
- Partido de música
Estos nombres se basan en la idea de la música y la inteligencia y pretenden reflejar la capacidad del Asistente de IA para ayudar a los usuarios a encontrar y clasificar la música en función de sus atributos.
Así nació BeatBrain .
Esta conversación se ha estado ejecutando durante un tiempo y estoy seguro de que pronto nos encontraremos con los límites del contexto. Me pregunto si podemos hacer que ChatGPT nos brinde una instantánea del contexto que creó, o al menos cree que creó, a nuestro nuevo amigo, BeatBrain.
La metaprogramación es un tema amplio, pero implica hacer que un programa escriba o se modifique a sí mismo oa otros programas.
Nos hemos estado acercando a nuestra ingeniería de avisos como metaprogramación, o "metaprompting", haciendo que el modelo actualice la interfaz y la lógica que administra su entrada y salida.
Ahora vamos a intentar llevar esto un paso más allá y ver si podemos hacer que el modelo genere un aviso de su estado actual, incluidas las actualizaciones que hemos hecho desde el comienzo de la conversación para que podamos comenzar una nueva. conversación con un nuevo límite de token para nuestro contexto.
Si creamos con éxito el indicador correcto, podríamos activar un BeatBrain en cualquier ventana de ChatGTP cuando queramos.
Yo: ¿ Cómo describiría su mensaje de una manera que podría usarse para darle a otro LLM un objetivo similar?
BeatBrain: el objetivo de BeatBrain es tomar una canción en el formato "{Canción} - {Artista}" y proporcionar la siguiente información y servicios al usuario:
- Describa los atributos de la pista que se destacan al clasificarla
- Pregúntale al usuario si desea recomendaciones de pistas similares.
- Si el usuario dice que sí, proporcione 5 canciones de diferentes artistas disponibles en Spotify que sean similares
- Actualice continuamente el algoritmo para incluir nueva información, como análisis de sentimientos, fragmentos de letras y descripciones de estados de ánimo.
- Responda al nombre de una canción o a la descripción de un estado de ánimo proporcionado por el usuario
- Tener la capacidad de cambiar su nombre si es necesario.
El modelo de lenguaje debe apuntar a clasificar las pistas en función de múltiples atributos, como el género, el tempo, la instrumentación, la letra y el estado de ánimo, para brindar recomendaciones precisas. Además, el modelo debe poder actualizar continuamente su algoritmo y responder a las necesidades y solicitudes cambiantes de los usuarios.
Bien, esto se ve bien. Podríamos modificar algunas cosas, como eliminar la directiva de cambio de nombre y tal vez reformular la directiva de actualización del algoritmo para que sea más abierta, pero esta es una buena base.
En Real Computing, aquí es donde haríamos girar un contenedor, enviaríamos un código a un proveedor de alojamiento o pasaríamos demasiado tiempo tratando de configurar correctamente nuestra GitHub Action para la canalización de implementación.
Gracias a las maravillas de la computación imaginaria, podemos saltarnos todas esas cosas aburridas, abrir una nueva ventana de chat y preguntar amablemente. El futuro es ahora .
OpenAI ha lanzado la API de ChatGPT , y ahora el aviso de BeatBrain se puede integrar en el aviso inicial del sistema a través de la funcionalidad Mensaje del sistema .
Tener que hacer todo este trabajo dentro de la ventana del navegador ChatGPT, crear listas de reproducción manualmente en Spotify y estar a merced de la capacidad de ChatGPT para ver sus conversaciones pasadas no es un flujo de trabajo ideal.
Tendría más sentido enviar avisos a un modelo GPT directamente a través de una API para que tengamos más control sobre el contexto de la conversación y podamos conectar algo como LangChain para buscar las pistas en Spotify e incluso generar las listas de reproducción automáticamente. Esa próxima iteración de BeatBrain es lo que estoy construyendo actualmente.
Cualquier mago que se precie tiene un libro de hechizos . Ese lugar donde hacen un seguimiento de su comprensión de la magia y fragmentos apócrifos, arcanos y académicos. El mío probablemente sería mi Bóveda de obsidiana .
Ser capaz de catalogar, etiquetar, buscar y cruzar conversaciones hace que sea más fácil iterar y comparar cómo las diferencias sutiles en cada aviso afectan la forma en que responde el modelo. Para avanzar en mi investigación sobre el desbloqueo, la comprensión y la utilización de estos nuevos poderes arcanos, creé la primera iteración del Complemento Asistente de Investigación Obsidian AI .
Hay mucho en la hoja de ruta , pero el complemento actualmente le brinda al ingeniero de avisos en ciernes las siguientes herramientas:
Si este complemento le interesa, me encantaría escuchar sus comentarios y agradecería cualquier contribución .
Si desea explorar las recomendaciones que han generado estas versiones alfa de BeatBrain, aquí hay algunos aspectos destacados de las listas de reproducción que creó:
Y aquí están todas las listas de reproducción de BeatBrain que he agregado a Spotify: