Contexto largo

Gemini viene de forma estándar con una ventana de contexto de 1 millón de tokens. Históricamente, los modelos de lenguaje grandes (LLMs) estaban limitados de manera significativa por la cantidad de texto (o tokens) que se podían pasar al modelo a la vez. La ventana de contexto largo de Gemini, con una recuperación casi perfecta (>99%), desbloquea muchos casos de uso y paradigmas de desarrolladores nuevos.

El código que ya usas para casos como la generación de contenido o las entradas multimodales funcionará desde el primer momento con un contexto largo.

En esta guía, se explorarán brevemente los conceptos básicos de la ventana de contexto, cómo los desarrolladores deben pensar en el contexto largo, varios casos de uso reales para un contexto largo y formas de optimizar el uso del contexto largo.

¿Qué es una ventana de contexto?

La forma básica de usar los modelos de Gemini es pasar información (contexto) al modelo, que luego generará una respuesta. Una analogía para la ventana de contexto es la memoria a corto plazo. Hay una cantidad limitada de información que se puede almacenar en la memoria a corto plazo de una persona, y lo mismo sucede con los modelos generativos.

Puedes obtener más información sobre cómo funcionan los modelos en segundo plano en nuestra guía de modelos generativos.

Comienza a usar el contexto largo

La mayoría de los modelos generativos creados en los últimos años solo podían procesar 8,000 tokens a la vez. Los modelos más nuevos impulsaron esto aún más al aceptar 32,000 tokens o 128,000 tokens. Gemini es el primer modelo capaz de aceptar 1 millón de tokens y, ahora, 2 millones de tokens con Gemini 1.5 Pro.

En la práctica, 1 millón de tokens se vería de la siguiente manera:

  • 50,000 líneas de código (con los 80 caracteres estándar por línea)
  • Todos los mensajes de texto que enviaste en los últimos 5 años
  • 8 novelas en inglés de longitud promedio
  • Transcripciones de más de 200 episodios de podcasts de longitud promedio

Aunque los modelos pueden tomar cada vez más contexto, gran parte de la sabiduría convencional sobre el uso de modelos de lenguaje grandes supone esta limitación inherente en el modelo, que, a partir de 2024, ya no es el caso.

Algunas estrategias comunes para manejar la limitación de ventanas de contexto pequeñas incluyen las siguientes:

  • Quita de manera arbitraria los mensajes o textos antiguos de la ventana de contexto a medida que ingresa texto nuevo.
  • Resume el contenido anterior y reemplázalo por el resumen cuando la ventana de contexto esté a punto de estar llena
  • Usar RAG con búsqueda semántica para mover datos fuera de la ventana de contexto y pasarlos a una base de datos vectorial
  • Usa filtros deterministas o generativos para quitar ciertos textos o caracteres de las instrucciones para guardar tokens

Si bien muchos de estos siguen siendo relevantes en ciertos casos, el lugar predeterminado para comenzar ahora es simplemente colocar todos los tokens en la ventana de contexto. Debido a que los modelos de Gemini se crearon con una ventana de contexto largo, son mucho más capaces de aprender en contexto. Por ejemplo, solo con materiales instructivos (una gramática de referencia de 500 páginas, un diccionario y ≈ 400 oraciones paralelas adicionales) proporcionados en contexto, Gemini 1.5 Pro y Gemini 1.5 Flash son capaces de aprender a traducir del inglés al kalamang (un idioma papúa con menos de 200 hablantes y, por lo tanto, casi sin presencia en línea) con una calidad similar a la de una persona que aprendió de los mismos materiales.

Este ejemplo destaca cómo puedes comenzar a pensar en lo que es posible con el contexto largo y las capacidades de aprendizaje en contexto de Gemini.

Casos de uso de contexto largo

Si bien el caso de uso estándar para la mayoría de los modelos generativos sigue siendo la entrada de texto, la familia de modelos de Gemini permite un nuevo paradigma de casos de uso multimodales. Estos modelos pueden comprender texto, video, audio e imágenes de forma nativa. Se acompañan de la API de Gemini Enterprise para Gemini, que acepta tipos de archivos multimodales para mayor comodidad.

Texto de formato largo

El texto demostró ser la capa de inteligencia que sustenta gran parte del impulso en torno a los LLMs. Como se mencionó anteriormente, gran parte de la limitación práctica de los LLMs se debía a que no tenían una ventana de contexto lo suficientemente grande como para realizar ciertas tareas. Esto llevó a la adopción rápida de la generación mejorada de recuperación (RAG) y otras técnicas que proporcionan de forma dinámica al modelo información contextual relevante. Ahora, con ventanas de contexto más y más grandes (actualmente hasta 2 millones en Gemini 1.5 Pro), hay nuevas técnicas disponibles que permiten casos de uso nuevos.

Estos son algunos casos de uso emergentes y estándar para el contexto largo basado en texto:

  • Resumir grandes corpus de texto
    • Las opciones de resumen anteriores con modelos de contexto más pequeños requerirían una ventana deslizante o alguna otra técnica para mantener el estado de las secciones anteriores a medida que se pasan tokens nuevos al modelo.
  • Preguntas y respuestas
    • Históricamente, esto solo era posible con RAG, dada la cantidad limitada de contexto y el bajo recuerdo fáctico de los modelos.
  • Flujos de trabajo con agentes
    • El texto es la base de cómo los agentes mantienen el estado de lo que hicieron y lo que necesitan hacer; no tener suficiente información sobre el mundo y el objetivo del agente es una limitación en la confiabilidad de los agentes

El aprendizaje en contexto con muchas tomas es una de las capacidades más únicas que permiten los modelos de contexto largos. La investigación demostró que tomar el paradigma común de ejemplo de "una sola toma" o "varias tomas", en el que se presenta al modelo uno o algunos ejemplos de una tarea, y aumentarlo a cientos, miles o incluso cientos de miles de ejemplos, puede generar capacidades de modelo nuevas. También se demostró que este enfoque de muchas tomas funciona de manera similar a los modelos que se ajustaron para una tarea específica. Para los casos de uso en los que el rendimiento de un modelo de Gemini aún no es suficiente para una implementación de producción, puedes probar el enfoque de muchas tomas. Como verás más adelante en la sección de optimización de contexto largo, la caché de contexto hace que este tipo de carga de trabajo de token de entrada alta sea mucho más factible económicamente y, en algunos casos, incluso tenga una latencia más baja.

Video de formato largo

La utilidad del contenido de video se vio limitada durante mucho tiempo por la falta de accesibilidad del medio en sí. Era difícil hojear el contenido, las transcripciones a menudo no capturaban el matiz de un video y la mayoría de las herramientas no procesan imágenes, texto y audio juntos. Con Gemini, las capacidades de texto de contexto largo se traducen en la capacidad de razonar y responder preguntas sobre entradas multimodales con un rendimiento sostenido.

Estos son algunos casos de uso emergentes y estándar para contextos de video largos:

  • Preguntas y respuestas sobre videos
  • Memoria de video, como se muestra con Project Astra de Google
  • Subtitulado de videos
  • Sistemas de recomendación de videos, mediante el enriquecimiento de metadatos existentes con una nueva comprensión multimodal
  • Personalización de videos, mediante la observación de un corpus de datos y los metadatos de video asociados, y luego la eliminación de partes de los videos que no son relevantes para el usuario
  • Moderación de contenido de video
  • Procesamiento de video en tiempo real

Cuando trabajes con videos, es importante tener en cuenta cómo se procesan los videos en tokens, lo que afecta la facturación y los límites de uso. Puedes obtener más información sobre las instrucciones con archivos de video en la guía de instrucciones.

Audio de formato largo

Los modelos de Gemini fueron los primeros modelos de lenguaje grandes multimodales de forma nativa que podían comprender audio. Históricamente, el flujo de trabajo típico de los desarrolladores implicaba unir varios modelos específicos del dominio, como un modelo de voz a texto y un modelo de texto a texto, para procesar audio. Esto generó una latencia adicional requerida para realizar varias solicitudes de ida y vuelta, y una disminución del rendimiento que suele atribuirse a arquitecturas desconectadas de la configuración de varios modelos.

En las evaluaciones estándar de encontrar un audio en un pajar de audios, Gemini 1.5 Pro puede encontrar el audio oculto en el 100% de las pruebas, y Gemini 1.5 Flash puede encontrarlo en el 98.7% de las pruebas. Gemini 1.5 Flash acepta hasta 9.5 horas de audio en una sola solicitud y Gemini 1.5 Pro puede aceptar hasta 19 horas de audio con la ventana de contexto de 2 millones de tokens. Además, en un conjunto de prueba de clips de audio de 15 minutos, Gemini 1.5 Pro archiva una tasa de error de palabras (WER) de alrededor del 5.5%, mucho más baja que incluso los modelos especializados de voz a texto, sin la complejidad adicional de la segmentación y el procesamiento previo de entradas adicionales.

Estos son algunos casos de uso emergentes y estándar para el contexto de audio:

  • Transcripciones y traducciones en tiempo real
  • Preguntas y respuestas sobre podcasts o videos
  • Transcripción y resumen de reuniones
  • Asistentes de voz

Puedes obtener más información sobre las instrucciones con archivos de audio en la guía de instrucciones.

Optimizaciones de contexto largo

La optimización principal cuando se trabaja con contexto largo y los modelos de Gemini es usar el almacenamiento en caché de contexto. Además de la imposibilidad anterior de procesar muchos tokens en una sola solicitud, la otra restricción principal era el costo. Si tienes una app de "chat con tus datos" en la que un usuario carga 10 archivos PDF, un video y algunos documentos de trabajo, históricamente, tendrías que trabajar con una herramienta o un framework de generación mejorada de recuperación (RAG) más complejos para procesar estas solicitudes y pagar una cantidad significativa por los tokens que se mueven a la ventana de contexto. Ahora, puedes almacenar en caché los archivos que sube el usuario y pagar para almacenarlos por hora. El costo de entrada/salida por solicitud es menor que el costo estándar de entrada/salida, por lo que si el usuario chatea con sus datos lo suficiente, se generará un gran ahorro de costos para ti como desarrollador.

Limitaciones de contexto largo

En varias secciones de esta guía, hablamos sobre cómo los modelos de Gemini logran un alto rendimiento en varias evaluaciones de recuperación de aguja en un pajar. Estas pruebas consideran la configuración más básica, en la que tienes una sola aguja que buscas. En los casos en los que puedas tener varias “agujas” o información específica que buscas, el modelo no funciona con la misma exactitid. El rendimiento puede variar en gran medida según el contexto. Es importante tener en cuenta que existe una compensación inherente entre obtener la información correcta y el costo. Puedes obtener un 99% en una sola consulta, pero debes pagar el costo del token de entrada cada vez que envías esa consulta. Por lo tanto, para recuperar 100 datos, si necesitas un rendimiento del 99%, es probable que debas enviar 100 solicitudes. Este es un buen ejemplo de dónde el almacenamiento en caché de contexto puede reducir significativamente el costo asociado con el uso de modelos de Gemini y, al mismo tiempo, mantener un rendimiento alto.

¿Qué sigue?

Guía

Usa el SDK de IA generativa de Google para enumerar los tokens y sus IDs de tokens de una instrucción y obtener un recuento total de tokens de una instrucción.