Ingeniería de prompts: Como lograr prompts largos y efectivos

Muy buenos días y bienvenidos a inteligencia artificial, el podcast donde hablamos del presente y el futuro de la inteligencia artificial, analizamos casos donde ya se están utilizando esas tecnologías y vemos cómo podemos aplicarlo en el día a día de nuestros trabajos, proyectos y empresas. Yo soy Pocho Costa, ingeniero en sistemas, programador y amante de la tecnología y me puedes encontrar en pochocosta.com donde ahí también vas a encontrar las notas del programa y otros medios para ponerte en contacto conmigo. 

Empezamos.

Buenas buenas! ¿cómo andan? ¡Espero que muy bien! Acá estamos con otro episodio del podcast para hablar de un tema muy interesante que es la compresión de prompts.

Contexto y Problema común:

Resulta que cuando uno empieza a hacer un uso intensivo de los grandes modelos de lenguaje en usos empresariales se encuentra con problemas de costos y de performance.

Si se acuerdan en el episodio donde hablamos de como hacer un bot que trabaje con nuestros documentos ahí les comenté las diferentes estrategias para darle memoria a los chatbots y eso llevado a trabajar con documentos se podría resumir en dos principales estrategias. Una que sería darle el documento como contexto y la otra que consistía en guardar en una base de datos el documento en fragmentos codificados en forma de embeddings para que podamos hacer búsquedas de información y usar ese fragmento específico como contexto para que el modelo de lenguaje arme la respuesta que le estamos pidiendo.

Este segundo camino puede estar bien para algunos casos como cuando queremos hacer un asistente que pueda responder preguntas a nuestros clientes o a los colaboradores de nuestra empresa sobre información que tenemos documentada.

Entonces hacemos ese procesamiento y tenemos toda esa información en una base de datos que podemos usar para el modelo de lenguaje.

Pero hay otros casos donde tenemos que analizar un documento una sola vez y no queremos tener que hacer todo el proceso y guardarlo en una base de datos, sino que simplemente queremos dárselo como contexto al modelo de lenguaje para que nos responda y listo.

Entonces en el prompt nosotros le diríamos tomá este documento y decime tal tal y tal cosa. Referido a la información que queremos preguntar sin que tengamos que leer el documento entero. Pensemos que el documento puede tener muchísimas paginas y esas cosas que le pedimos que busque pueden estar en cualquier parte del documento mezcladas con un montón de otros datos que no nos interesan. O sea que en este caso lo único que hace es meterle ruido al modelo.

Y ahí es donde surge el problema. Lo primero es que los modelos de lenguaje tienen un límite máximo de token que pueden manejar, o sea que ahí ya tenemos una limitación.

Aunque ahora el nuevo GPT-4 Turbo tenga un contexto más grande el límite sigue estando, pero no solo esto sino que también hay más problemas.

Otro de los inconvenientes es que cuando usamos los modelos de lenguaje como servicio estamos pagando por la cantidad de tokens que procesa por lo que cuanto más largo sea el mensaje más estamos pagando pero lo que pasa es que en un documento grande el modelo empieza a fallar y a perder información importante por el camino. Entonces la efectividad no es tan buena. A mayor tamaño de documento la efectividad tiende a ser menor.

O sea que por más que estemos pagando por un montón de tokens, la respuesta no va a estar tan completa como esperamos.

Solución Innovadora – Compresión de Prompts

Entonces acá es donde entra en juego un paper que estuve estudiando sobre la compresión de prompts. Este paper habla sobre un Framework llamado LLMLongLingua y que incluye un pequeño modelo de lenguaje que está entrenado en comprimir prompts. Este es un paper que está todavía en etapa de revisión pero que muestra tener muy buenos resultados.

Y lo que hace principalmente este framework es comprimir ese prompt para que pueda ser manejado de una mejor manera por los modelos de lenguaje y las respuestas sean muy superiores a las que se obtienen con los prompts sin comprimir. Esto siempre cuando estamos hablando de prompts con contextos muy grandes.

Lo que hace básicamente en la compresión es analizar el documento y quedarse con lo más relevante tratando de eliminar el ruido o las cosas que no ayudan al resultado final. Y también reordenar la información para llevar lo más importante al principio ya que se conoce que los modelos de lenguaje tienden a resolver mejor lo que está al principio.

Descubre cómo la compresión de prompts optimiza la forma en que utilizamos los modelos de lenguaje en empresas, con insights clave de un nuevo estudio.

Beneficios y Resultados del Estudio:

Y bueno en el paper muestran cómo aplicando este framework se logra mejorar la precisión de las respuestas, reducir el tiempo de procesamiento, que ese es otro de los problemas que antes no lo mencioné pero cuanto más texto le enviamos a un modelo de lenguaje más va a tardar en procesarlo.

Y por ejemplo los resultados que se ven en el paper es que en tareas de preguntas y respuestas se mejora la efectividad un 17% con 4 veces menos de tokens usando GPT-3.5 Turbo como modelo de lenguaje.

Así que me pareció un tema interesante para traerles ya que a medida que vamos haciendo uso más intensivo de los modelos de lenguaje en el uso empresarial nos vamos encontrando con nuevas fronteras y nuevos desafíos a resolver y este particularmente es un tema que me topé en un proyecto en el que estoy trabajando actualmente y me pareció que estaba bueno compartirlo acá en el podcast.

Y hasta acá llegamos, si les gustó el episodio no se olviden de compartirlo y si no lo hicieron aun regalenme 5 estrellitas en Spotify o en la plataforma de podcast que usen para ayudar a que este contenido pueda ser descubierto por más personas.

Y ahora si, nos seguimos escuchando en el próximo episodio donde seguiremos hablando de este hermoso mundo de la inteligencia artificial

Dejar recomendación en iTunes

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *