Contexto largo

Gemini 1.5 Flash viene de forma estándar con una ventana de contexto de 1 millón de tokens y Gemini 1.5 Pro con una ventana de contexto de 2 millones 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 1.5, 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 1.5 es pasar información (contexto) al modelo, que posteriormente generará una respuesta. Una analogía de 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 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 pudieron procesar 8,000 tokens a la vez. Los modelos más nuevos fueron más allá y aceptaron 32,000 o 128,000 tokens. Gemini 1.5 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 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 duración promedio
  • Transcripciones de más de 200 episodios de podcasts de duración promedio

Aunque los modelos pueden adoptar 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.

Estas son algunas estrategias comunes para manejar la limitación de las ventanas de contexto pequeñas:

  • 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 aún son relevantes en algunos casos, el punto de partida predeterminado ahora es colocar todos los tokens en la ventana de contexto. Debido a que los modelos de Gemini 1.5 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 1.5.

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 Gemini 1.5 permite un nuevo paradigma de casos de uso multimodales. Estos modelos pueden comprender de forma nativa texto, video, audio e imágenes. Se acompañan de la API de Vertex AI para Gemini que admite 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:

  • Cómo 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 nuevos tokens 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 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. Las investigaciones demostraron que tomar el paradigma de ejemplo común "una sola imagen" o "varias imágenes", en el que se presenta al modelo con uno o algunos ejemplos de una tarea y escalarlo a cientos, miles o incluso cientos de miles de ejemplos, puede generar capacidades de modelos novedosas. También se demostró que este enfoque de varios intentos tiene un rendimiento similar a los modelos que se ajustaron para una tarea específica. En el caso de los casos de uso en los que el rendimiento de un modelo de Gemini aún no es suficiente para un lanzamiento en producción, puedes probar el enfoque de muchas fotos. 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 ha visto limitada durante mucho tiempo debido a la falta de accesibilidad del medio en sí. Era difícil revisar el contenido, las transcripciones a menudo no lograban capturar los matices de un video y la mayoría de las herramientas no procesan imágenes, texto y audio juntos. Con Gemini 1.5, las capacidades de texto de contexto largo se traducen en la capacidad de razonar y responder preguntas sobre entradas multimodales con un rendimiento sostenido. Gemini 1.5 Flash, cuando se probó en el problema de encontrar un video en un pajar de vidos con 1 millón de tokens, obtuvo una recuperación superior al 99.8% del video en la ventana de contexto, y el 1.5 Pro alcanzó un rendimiento de vanguardia en la Comparativas de video-MME.

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

  • Búsqueda de respuestas sobre videos
  • Memoria de video, como se muestra en Project Astra de Google
  • Subtítulos de video
  • Los sistemas de recomendación de videos, ya que enriquecen los metadatos existentes con una nueva comprensión multimodal
  • Personalización de videos, a través del análisis de un corpus de datos y metadatos de video asociados y, luego, la eliminación de partes de videos que no son relevantes para el usuario
  • Moderación de contenido de video
  • Procesamiento de video en tiempo real

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

Audio de formato largo

Los modelos Gemini 1.5 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 de dominio, como un modelo de voz a texto y un modelo de texto a texto, para procesar el audio. Esto generó una latencia adicional necesaria mediante la realización de varias solicitudes de ida y vuelta y una disminución del rendimiento, que, por lo general, se atribuye a las 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 en podcasts o videos
  • Transcripción y resumen de reuniones
  • Asistentes de voz

Puedes obtener más información para crear 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 1.5 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 por 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 de cómo los modelos de Gemini 1.5 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 mucho según el contexto. Es importante tener esto en cuenta, ya que hay una compensación inherente entre obtener la información correcta recuperada y el costo. Puedes obtener alrededor del 99% en una sola consulta, pero debes pagar el costo del token de entrada cada vez que envíes esa consulta. Por lo tanto, para que se recuperen 100 fragmentos de información, si necesitas un rendimiento del 99%, es probable que debas enviar 100 solicitudes. Este es un buen ejemplo de cómo la caché de contexto puede reducir significativamente el costo asociado con el uso de modelos de Gemini y, al mismo tiempo, mantener un alto rendimiento.

¿Qué sigue?