¡Contexto infinito, gestión de memoria multinivel! Superar las limitaciones de contexto de los grandes modelos de lenguaje como ChatGPT

Fuente original: AIGC Open Community

Fuente de la imagen: Generado por Unbounded AI

En la actualidad, los modelos de lenguaje grandes convencionales como ChatGPT, Llama 2 y Wenxin Yiyan se han visto limitados debido al problema de la arquitectura técnica, e incluso Claude solo admite un máximo de 100,000 entradas de tokens, lo cual es muy inconveniente para interpretar cientos de páginas de informes, libros y documentos.

Para resolver este dilema, la Universidad de California en Berkeley propuso MemGPT, inspirado en el mecanismo de gestión de la memoria del sistema operativo. La mayor innovación de este modelo es imitar el mecanismo de gestión de memoria multinivel del sistema operativo, y romper la limitación de contexto fijo de los grandes modelos de lenguaje a través de la transmisión de datos entre diferentes capas de memoria.

Dirección de código abierto:

Tesis:

MemGPT contiene principalmente dos tipos de memoria: contexto principal y contexto externo. El contexto principal es equivalente a la memoria principal del sistema operativo y es una ventana de contexto de longitud fija a la que pueden acceder directamente los modelos de lenguaje grandes.

El contexto externo es el equivalente al almacenamiento en disco, que contiene información adicional fuera del contexto principal. MemGPT también proporciona una gran cantidad de llamadas de funciones, lo que permite que los grandes modelos de lenguaje gestionen activamente su propia memoria sin intervención humana.

Estas llamadas de características pueden importar y exportar información entre el contexto principal y el externo. En función del objetivo de la tarea actual, el modelo de lenguaje grande puede decidir de forma independiente cuándo mover la información de contexto para hacer un mejor uso de los recursos limitados del contexto principal.

Los investigadores lo evaluaron en múltiples entornos de prueba y los resultados mostraron que MemGPT puede procesar eficazmente contenido de texto que supera con creces el límite de longitud de contexto de los grandes modelos de lenguaje, por ejemplo, M**emGPT puede procesar documentos que superan con creces los límites de contexto de GPT-3.5 y GPT-4.

Cuando aumenta el número de documentos recuperados, el rendimiento del modelo de contexto fijo se ve limitado por la calidad del recuperador, mientras que MemGPT puede recuperar más documentos llamando al mecanismo de paginación, y también se mejora la precisión de sus preguntas y respuestas.

En la tarea de extracción de palabras clave anidadas de varios pasos recientemente propuesta, MemGPT completó con éxito la tarea que requería consultas de varios saltos en documentos para llegar a una solución llamando al contexto externo varias veces, mientras que la precisión de GPT-3.5 y GPT-4 se redujo drásticamente a 0 cuando aumentó el número de capas anidadas.

Contexto primario

El contexto principal de MemGPT es equivalente a la “memoria principal” del sistema operativo, que es una ventana contextual de longitud fija a la que pueden acceder directamente los modelos de lenguaje de gran tamaño. Los investigadores dividieron el contexto principal en tres partes:

Instrucciones del sistema: Esta parte contiene la lógica de control básica de MemGPT, como el modo de llamada a funciones, etc., con una longitud fija y de solo lectura.

Contexto de la conversación: se trata de una cola de primero en entrar, primero en salir que contiene un historial de interacciones recientes del usuario, de solo lectura, y recorta las conversaciones anteriores cuando se supera la longitud.

Contexto de trabajo: se trata de un almacenamiento temporal de lectura y escritura en el que los modelos de lenguaje de gran tamaño pueden escribir información de forma autónoma a través de llamadas a características.

Es importante tener en cuenta que estas tres partes juntas no pueden superar la longitud máxima de contexto del modelo de lenguaje grande subyacente.

Contexto externo

El contexto externo contiene información adicional fuera del contexto principal, actuando como “almacenamiento en disco” en el sistema operativo. Los contextos externos requieren llamadas de función explícitas para importar información en el contexto principal para que el modelo tenga acceso, incluidos los dos tipos siguientes:

Almacenamiento de retroceso: contiene información completa del evento histórico, equivalente a una versión sin comprimir del contexto de la conversación.

Almacenamiento de archivos: una base de datos de lectura y escritura de uso general que puede servir como un espacio de desbordamiento para que el contexto principal contenga información adicional. En las aplicaciones conversacionales, el almacenamiento de archivos puede contener información adicional sobre la función, las preferencias y mucho más de un usuario o sistema.

El almacenamiento de retroceso permite recuperar interacciones históricas durante un período de tiempo específico. En el análisis de documentos, el almacenamiento de archivos puede admitir búsquedas de conjuntos de documentos más grandes.

Edición y búsqueda independiente

MemGPT mueve activamente los datos entre los niveles de memoria a través de llamadas a funciones generadas por grandes modelos de lenguaje para lograr una edición y recuperación autónomas. Por ejemplo, puede decidir cuándo mover la información entre contextos para que se ajuste a los objetivos de la tarea actual sin la participación humana.

La innovación radica en la descripción detallada de la arquitectura de la memoria y los métodos de invocación de funciones en las instrucciones del sistema, que guían al modelo de lenguaje grande para aprender a usar estas herramientas para administrar la memoria.

El modelo de lenguaje grande puede ajustar la estrategia de invocación en función de los comentarios. Al mismo tiempo, cuando el espacio de contexto principal es insuficiente, el sistema recuerda al modelo de lenguaje grande que guarde información importante a tiempo y lo guía para administrar la memoria.

Encadenamiento

En MemGPT, varios eventos externos desencadenan grandes modelos de lenguaje para realizar inferencias, incluidos mensajes de usuario, advertencias de memoria del sistema, eventos de interacción del usuario y más.

Las llamadas a funciones pueden solicitar obtener el control, lo que permite llamadas encadenadas. Por ejemplo, cuando se paginan los resultados, las llamadas sucesivas pueden recopilar datos de diferentes páginas en el contexto principal.

La llamada yield, por otro lado, pausa el modelo de lenguaje grande hasta que el siguiente evento externo desencadena la inferencia. Este flujo de control basado en eventos organiza una comunicación fluida entre la administración de memoria, la inferencia de modelos y la interacción del usuario.

Analizador y optimización

MemGPT utiliza un analizador sintáctico para verificar las llamadas a funciones generadas por el modelo de lenguaje grande, comprobando si los parámetros son correctos, etc. El resultado se retroalimenta al modelo después de la llamada, de modo que se puede aprender a ajustar la estrategia y se pueden reducir los errores.

Además, las instrucciones del sistema de MemGPT se pueden actualizar en tiempo real para agregar una guía de administración de memoria personalizada al modelo para diferentes tareas para lograr una optimización continua.

Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • Comentar
  • Republicar
  • Compartir
Comentar
0/400
Sin comentarios
  • Anclado
Opera con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)