À l’heure actuelle, les grands modèles de langage grand public tels que ChatGPT, Llama 2 et Wenxin Yiyan ont été limités en raison du problème de l’architecture technique, et même Claude ne prend en charge qu’un maximum de 100 000 entrées de jetons, ce qui est très gênant pour interpréter des centaines de pages de rapports, de livres et d’articles.
Pour résoudre ce dilemme, l’UC Berkeley a proposé MemGPT, inspiré du mécanisme de gestion de la mémoire du système d’exploitation. La plus grande innovation de ce modèle est d’imiter le mécanisme de gestion de la mémoire à plusieurs niveaux du système d’exploitation et de briser la limitation de contexte fixe des grands modèles de langage grâce à la transmission de données entre différentes couches de mémoire.
Adresse Open Source :
Thèse:
MemGPT contient principalement deux types de mémoire : le contexte principal et le contexte externe. Le contexte principal est équivalent à la mémoire principale du système d’exploitation et est une fenêtre de contexte de longueur fixe à laquelle les grands modèles de langage peuvent accéder directement.
Le contexte externe est l’équivalent du stockage sur disque, qui contient des informations supplémentaires en dehors du contexte principal. MemGPT fournit également une multitude d’appels de fonctionnalités, permettant aux grands modèles de langage de gérer activement leur propre mémoire sans intervention humaine.
Ces appels de fonctionnalités permettent d’importer et d’exporter des informations entre le contexte principal et le contexte externe. En fonction de l’objectif de la tâche actuelle, le grand modèle de langage peut décider indépendamment du moment où déplacer les informations de contexte afin de mieux utiliser les ressources de contexte principales limitées.
Les chercheurs l’ont évalué dans plusieurs environnements de test et les résultats ont montré que MemGPT peut traiter efficacement le contenu textuel qui dépasse de loin la limite de longueur de contexte des grands modèles de langage, par exemple, M**emGPT peut traiter des documents qui dépassent de loin les limites de contexte de GPT-3.5 et GPT-4.
Lorsque le nombre de documents récupérés augmente, les performances du modèle à contexte fixe sont limitées par la qualité du récupérateur, tandis que MemGPT peut récupérer plus de documents en appelant le mécanisme de pagination, et sa précision Q&R est également améliorée.
Dans la nouvelle tâche d’extraction de mots-clés imbriqués en plusieurs étapes, MemGPT a terminé avec succès la tâche qui nécessitait des requêtes multi-sauts à travers les documents pour arriver à une solution en appelant le contexte externe plusieurs fois, tandis que la précision de GPT-3.5 et GPT-4 a fortement chuté à 0 lorsque le nombre de couches imbriquées a augmenté.
Contexte primaire
Le contexte principal de MemGPT est équivalent à la « mémoire principale » du système d’exploitation, qui est une fenêtre de contexte de longueur fixe à laquelle les grands modèles de langage peuvent accéder directement. Les chercheurs ont divisé le contexte principal en trois parties :
Instructions système : Cette partie contient la logique de contrôle de base de MemGPT, telle que le mode d’appel de fonction, etc., avec une longueur fixe et en lecture seule.
Contexte de conversation : il s’agit d’une file d’attente de premier entré, premier sorti, qui contient un historique des interactions récentes des utilisateurs, en lecture seule, et coupe les conversations précédentes lorsque la longueur est dépassée.
Contexte de travail : il s’agit d’un stockage temporaire en lecture-écriture dans lequel les grands modèles de langage peuvent écrire des informations de manière autonome par le biais d’appels de fonctionnalités.
Il est important de noter que ces trois parties ne peuvent pas dépasser la longueur maximale du contexte du grand modèle de langage sous-jacent.
Contexte externe
Le contexte externe contient des informations supplémentaires en dehors du contexte principal, agissant comme un « stockage sur disque » dans le système d’exploitation. Les contextes externes nécessitent des appels de fonction explicites pour importer des informations dans le contexte principal afin que le modèle puisse y accéder, y compris les deux types suivants :
Stockage de retour en arrière : contient des informations complètes sur les événements historiques, équivalentes à une version non compressée du contexte de conversation.
Stockage d’archives : base de données en lecture-écriture à usage général qui peut servir d’espace de débordement pour le contexte principal afin de contenir des informations supplémentaires. Dans les applications conversationnelles, le stockage d’archives peut contenir des informations supplémentaires sur le rôle, les préférences et bien plus encore d’un utilisateur ou d’un système.
Le stockage de retour en arrière permet de récupérer l’historique des interactions pour une période de temps spécifique. Dans l’analyse de documents, le stockage d’archives peut prendre en charge des recherches d’ensembles de documents plus volumineux.
Édition et recherche indépendantes
MemGPT déplace activement les données entre les niveaux de mémoire par le biais d’appels de fonction générés par de grands modèles de langage pour réaliser une édition et une récupération autonomes. Par exemple, vous pouvez décider quand déplacer les informations entre les contextes pour les adapter aux objectifs de la tâche actuelle sans intervention humaine.
L’innovation réside dans la description détaillée de l’architecture de la mémoire et des méthodes d’appel de fonction dans les instructions système, qui guident le grand modèle de langage pour apprendre à utiliser ces outils pour gérer la mémoire.
Le modèle de langage volumineux peut ajuster la stratégie d’appel en fonction des commentaires. Dans le même temps, lorsque l’espace contextuel principal est insuffisant, le système rappelle au grand modèle de langage d’enregistrer les informations importantes dans le temps et le guide pour gérer la mémoire.
Chaînage
Dans MemGPT, divers événements externes déclenchent de grands modèles de langage pour faire des inférences, y compris des messages utilisateur, des avertissements de mémoire système, des événements d’interaction utilisateur, etc.
Les appels de fonction peuvent demander à prendre le contrôle, ce qui permet d’enchaîner les appels. Par exemple, lorsque les résultats sont paginés, les appels successifs peuvent collecter des données de différentes pages dans le contexte principal.
L’appel yield, quant à lui, met en pause le modèle de langage volumineux jusqu’à ce que l’événement externe suivant déclenche l’inférence. Ce flux de contrôle basé sur les événements orchestre une communication fluide entre la gestion de la mémoire, l’inférence du modèle et l’interaction de l’utilisateur.
Analyseur et optimisation
MemGPT utilise un analyseur syntaxique pour vérifier les appels de fonction générés par le grand modèle de langage, vérifier si les paramètres sont corrects, etc. Le résultat est renvoyé au modèle après l’appel, de sorte que la stratégie peut être ajustée et que les erreurs peuvent être réduites.
De plus, les instructions système de MemGPT peuvent être mises à jour en temps réel pour ajouter des conseils personnalisés de gestion de la mémoire au modèle pour différentes tâches afin d’obtenir une optimisation continue.
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
Contexte infini, gestion de la mémoire à plusieurs niveaux ! Dépasser les limites du contexte des grands modèles de langage tels que ChatGPT
Source originale : Communauté ouverte de l’AIGC
À l’heure actuelle, les grands modèles de langage grand public tels que ChatGPT, Llama 2 et Wenxin Yiyan ont été limités en raison du problème de l’architecture technique, et même Claude ne prend en charge qu’un maximum de 100 000 entrées de jetons, ce qui est très gênant pour interpréter des centaines de pages de rapports, de livres et d’articles.
Pour résoudre ce dilemme, l’UC Berkeley a proposé MemGPT, inspiré du mécanisme de gestion de la mémoire du système d’exploitation. La plus grande innovation de ce modèle est d’imiter le mécanisme de gestion de la mémoire à plusieurs niveaux du système d’exploitation et de briser la limitation de contexte fixe des grands modèles de langage grâce à la transmission de données entre différentes couches de mémoire.
Adresse Open Source :
Thèse:
Le contexte externe est l’équivalent du stockage sur disque, qui contient des informations supplémentaires en dehors du contexte principal. MemGPT fournit également une multitude d’appels de fonctionnalités, permettant aux grands modèles de langage de gérer activement leur propre mémoire sans intervention humaine.
Ces appels de fonctionnalités permettent d’importer et d’exporter des informations entre le contexte principal et le contexte externe. En fonction de l’objectif de la tâche actuelle, le grand modèle de langage peut décider indépendamment du moment où déplacer les informations de contexte afin de mieux utiliser les ressources de contexte principales limitées.
Lorsque le nombre de documents récupérés augmente, les performances du modèle à contexte fixe sont limitées par la qualité du récupérateur, tandis que MemGPT peut récupérer plus de documents en appelant le mécanisme de pagination, et sa précision Q&R est également améliorée.
Dans la nouvelle tâche d’extraction de mots-clés imbriqués en plusieurs étapes, MemGPT a terminé avec succès la tâche qui nécessitait des requêtes multi-sauts à travers les documents pour arriver à une solution en appelant le contexte externe plusieurs fois, tandis que la précision de GPT-3.5 et GPT-4 a fortement chuté à 0 lorsque le nombre de couches imbriquées a augmenté.
Contexte primaire
Le contexte principal de MemGPT est équivalent à la « mémoire principale » du système d’exploitation, qui est une fenêtre de contexte de longueur fixe à laquelle les grands modèles de langage peuvent accéder directement. Les chercheurs ont divisé le contexte principal en trois parties :
Instructions système : Cette partie contient la logique de contrôle de base de MemGPT, telle que le mode d’appel de fonction, etc., avec une longueur fixe et en lecture seule.
Contexte de conversation : il s’agit d’une file d’attente de premier entré, premier sorti, qui contient un historique des interactions récentes des utilisateurs, en lecture seule, et coupe les conversations précédentes lorsque la longueur est dépassée.
Contexte de travail : il s’agit d’un stockage temporaire en lecture-écriture dans lequel les grands modèles de langage peuvent écrire des informations de manière autonome par le biais d’appels de fonctionnalités.
Il est important de noter que ces trois parties ne peuvent pas dépasser la longueur maximale du contexte du grand modèle de langage sous-jacent.
Contexte externe
Le contexte externe contient des informations supplémentaires en dehors du contexte principal, agissant comme un « stockage sur disque » dans le système d’exploitation. Les contextes externes nécessitent des appels de fonction explicites pour importer des informations dans le contexte principal afin que le modèle puisse y accéder, y compris les deux types suivants :
Stockage de retour en arrière : contient des informations complètes sur les événements historiques, équivalentes à une version non compressée du contexte de conversation.
Stockage d’archives : base de données en lecture-écriture à usage général qui peut servir d’espace de débordement pour le contexte principal afin de contenir des informations supplémentaires. Dans les applications conversationnelles, le stockage d’archives peut contenir des informations supplémentaires sur le rôle, les préférences et bien plus encore d’un utilisateur ou d’un système.
Édition et recherche indépendantes
MemGPT déplace activement les données entre les niveaux de mémoire par le biais d’appels de fonction générés par de grands modèles de langage pour réaliser une édition et une récupération autonomes. Par exemple, vous pouvez décider quand déplacer les informations entre les contextes pour les adapter aux objectifs de la tâche actuelle sans intervention humaine.
Le modèle de langage volumineux peut ajuster la stratégie d’appel en fonction des commentaires. Dans le même temps, lorsque l’espace contextuel principal est insuffisant, le système rappelle au grand modèle de langage d’enregistrer les informations importantes dans le temps et le guide pour gérer la mémoire.
Chaînage
Dans MemGPT, divers événements externes déclenchent de grands modèles de langage pour faire des inférences, y compris des messages utilisateur, des avertissements de mémoire système, des événements d’interaction utilisateur, etc.
Les appels de fonction peuvent demander à prendre le contrôle, ce qui permet d’enchaîner les appels. Par exemple, lorsque les résultats sont paginés, les appels successifs peuvent collecter des données de différentes pages dans le contexte principal.
Analyseur et optimisation
MemGPT utilise un analyseur syntaxique pour vérifier les appels de fonction générés par le grand modèle de langage, vérifier si les paramètres sont corrects, etc. Le résultat est renvoyé au modèle après l’appel, de sorte que la stratégie peut être ajustée et que les erreurs peuvent être réduites.
De plus, les instructions système de MemGPT peuvent être mises à jour en temps réel pour ajouter des conseils personnalisés de gestion de la mémoire au modèle pour différentes tâches afin d’obtenir une optimisation continue.