Zoeken op website

MemGPT met praktijkvoorbeeld: de kloof tussen AI en besturingssysteem overbruggen


Introductie

Terwijl we ernaar streven om AI-agents te creëren die kunnen plannen, reflecteren en vooruitdenken, wordt het duidelijk dat grote taalmodellen alleen niet genoeg zijn. We hebben een robuust geheugensysteem nodig dat vergelijkbaar is met het menselijk brein om menselijke intelligentie na te bootsen en cognitieve vaardigheden te hebben. Dit opslagsysteem moet in staat zijn om geheugensporen vast te leggen en op te halen met behulp van context, in dit geval inbeddingen, zodat de AI-agent de informatie kan verwerken en effectief weloverwogen beslissingen kan nemen.

Voorwaarden

  • Basiskennis van AI-concepten: Bekendheid met LLM's (zoals GPT) en hun werkingsmechanismen.
  • Kennis van besturingssystemen: Basisprincipes van OS-componenten zoals geheugenbeheer, taakplanning en bestandssystemen.
  • Programmeervaardigheden: Python-kennis voor interactie met API's en het simuleren van MemGPT-functionaliteiten.
  • Hardwarevereisten: Een systeem met behoorlijke rekenkracht om LLM's uit te voeren en integraties op OS-niveau te ondersteunen.

Wat is MemGPT?

MemGPT (afkorting van Memory GPT) is een systeem dat tot doel heeft de beperkingen van contextvensters in taalmodellen op te heffen. MemGPT laat zich inspireren door de geheugensystemen van traditionele besturingssystemen en introduceert het concept van virtueel contextbeheer. Het systeem beheert op intelligente wijze verschillende opslagniveaus en biedt verbeterde context binnen het beperkte contextvenster van de LLM.

  • Rijkere gevolgtrekkingen
  • Verbeterd geheugenbehoud
  • Verbeterde taalproductie

Gebruikte datasets:

  • Uitgebreide Multi-Session Chat (MSC) dataset (oorspronkelijk door Xu et al., 2021).
  • Liu et al. (2023a) taken voor het beantwoorden van vragen en het ophalen van sleutelwaarden.
  • Een nieuwe geneste gegevensset voor het ophalen van sleutel/waarden.
  • Een dataset van inbeddingen voor 20 miljoen Wikipedia-artikelen.

Datasets die in de paper worden gebruikt, kunnen worden gedownload op Hugging Face.

Toepassingen van MemGPT

1. Analyse van documenten

MemGPT maakte uitgebreide documentanalyse mogelijk, wat in de praktijk

  • Intelligente informatie-extractie
  • Samenvatting
  • Contextueel begrip

Dit maakt het geschikt voor diepgaande analyse van uitgebreide documenten in juridische, academische of zakelijke contexten.

2. Chat-interacties met meerdere sessies

Het kan worden gebruikt in conversationele AI voor chatinteracties met meerdere sessies, waarbij de context en consistentie tijdens lange gesprekken behouden blijven. Dit komt ten goede aan klantenservicebots, virtuele assistenten en andere toepassingen die langdurige interactie vereisen.

3. Generatieve taken

Het verbeterde contextbeheer van MemGPT is geschikt voor generatieve taken zoals creatief schrijven, het genereren van inhoud en complexere generatieve AI-toepassingen.

4. Taken voor natuurlijke taalverwerking

De mogelijkheden strekken zich uit tot verschillende NLP-taken, waaronder mogelijk sentimentanalyse, taalvertaling en samenvatting, waarbij het begrijpen en behouden van de context cruciaal is.

5. Multimodale mogelijkheden

In tegenstelling tot ChatGPT suggereren MemGPT-mogelijkheden het potentieel voor het integreren van multimodale inputs en outputs. Dit maakt interacties met verschillende vormen van media mogelijk.

MemGPT begrijpen met een voorbeeld uit de praktijk

Stel je voor dat je een boek leest en dat je geheugen is als een verschuifbaar contextvenster dat slechts een paar woorden tegelijk kan vastleggen. In traditionele taalmodellen is dit leesvenster beperkt, waardoor het een uitdaging is om het volledige verhaal te begrijpen als het te lang is.

Beschouw MemGPT nu als een slimme leesassistent (bijna een LLM-besturingssysteem) met een unieke vaardigheid. In plaats van alleen een vast venster te hebben, kan het op intelligente wijze beslissen welke delen van het boek in het leesvenster moeten worden bewaard en wat apart moet worden bewaard, zoals een bladwijzer. Dit geeft de illusie van een onbeperkt leesvenster, waardoor het meer van het verhaal kan begrijpen en onthouden, zonder de rekenkosten van het daadwerkelijk in context houden van het hele boek.

Als het boek bijvoorbeeld een personage op pagina 10 noemt en er op pagina 50 naar terugverwijst, kan MemGPT de relevante informatie ophalen alsof het terugbladert naar een eerdere pagina. Het is alsof je een superslimme bladwijzer hebt die de huidige pagina onthoudt en helpt bij het herinneren van belangrijke details uit verschillende delen van het boek.

MemGPT beheert dus slim de "context" van het lezen, waardoor een continue stroom van informatie ontstaat, vergelijkbaar met hoe je zou omgaan met het lezen van een complexe roman met veel plotwendingen en personages. Deze flexibiliteit helpt het bij het uitvoeren van taken zoals het begrijpen van lange gesprekken of het analyseren van uitgebreide documenten door aan te passen wat het in zijn "leesvenster" bewaart tijdens verschillende fasen van een taak.

Bijdragen van dit onderzoek

1.OS-geïnspireerd LLM-systeem

De paper presenteert MemGPT als een op het besturingssysteem geïnspireerd LLM-systeem. Deze nieuwe aanpak maakt taalmodellen in staat om het langetermijngeheugen van gebruikersinvoer te beheren en te gebruiken, wat cruciaal is voor toepassingen zoals complexe data-analyse en conversational agents.

2. Introductie van interrupts

In MemGPT wordt een interrupt-systeem geïntroduceerd om de controlestroom tussen zichzelf en de gebruiker te beheren. Dit interrupt-systeem werkt hetzelfde als in het traditionele besturingssysteem.

3. De illusie van 'onbeperkte hoeveelheid context'

MemGPT stelt de LLM in staat om relevante historische gegevens op te halen die mogelijk ontbreken in de huidige in-contextinformatie, vergelijkbaar met een besturingssysteem dat een paginafout afhandelt. Dit betekent dat het vermogen van het model om langere sequenties tekst of informatie te verwerken, is verbeterd door gebruik te maken van virtueel geheugenbeheer.

4. Functie belvermogen

Het MemGPT-framework heeft functies zoals het verzenden van berichten, het lezen van berichten, het schrijven van berichten en het pauzeren van interrupts. De functies die functies aanroepen zijn cruciaal voor het verbeteren van de operationele efficiëntie en flexibiliteit. Bij functie-oproepen wordt de besturing vooraf aangevraagd. Dit koppelt meerdere functies achtereenvolgens aan elkaar, waardoor het systeem beter in staat is om complexe taken en workflows uit te voeren.

Model Architectuur

1.Voornaamste context

Denk maar aan het doel van het hoofdgeheugen of RAM in een besturingssysteem.'De hoofdcontext' is analoog aan het concept van RAM. De hoofdcontext wordt gebruikt om instructies op te slaan.

Bestanddeel

Beschrijving

Systeem instructies

Houd de LLM-instructies van de basis vast (bijv. informatie die MemGPT-functies beschrijft en de regelstroom naar de LLM)

Conversationele context

Houdt een first-in-first-out (FIFO) wachtrij vast met recente gebeurtenisgeschiedenis

Werkcontext

Dient als een werkgeheugenkladblok voor de agent.

Gecombineerd kunnen de drie delen van de hoofdcontext de maximale contextgrootte van de onderliggende LLM-processors niet overschrijden.

2.Externe context

Dit is een secundaire, grotere geheugenopslag die analoog is aan schijfopslag in een computersysteem. In het geval van lange gesprekken kan de AI eerdere delen gaan vergeten. MemGPT lost dit op door oudere delen van het gesprek op te slaan in de 'externe context'. Dit wordt gedaan door de volledige geschiedenis van gebeurtenissen die door de LLM-processor zijn verwerkt, op te slaan. Deze informatie kan vanuit de externe context in het contextgeheugen worden gebracht door middel van gepagineerde functieaanroepen.

3.LLM-Verwerker

De LLM-processor is het kernonderdeel van MemGPT dat taal verwerkt en begrijpt wat ermee moet doen. Het verwerkt de hoofdcontext als input. LLM verwerkt de gegevens en de parser interpreteert deze gegevens nu. Papers begrijpen de gegevens en beslissen over de volgende stap. Dit kan twee dingen opleveren:

  • Opbrengst: Dit is alsof je op de pauzeknop drukt. De processor wacht tot er iets nieuws gebeurt (zoals het krijgen van een bericht van de gebruiker). De processor staat tijdens het toegeven in de stand-bystand. Het wacht als er een nieuwe externe gebeurtenis is, zoals een nieuw bericht van de gebruiker, en dan is het weer actief.
  • Functieaanroep: Dit is een actieopdracht. De processor kan vragen om bepaalde functies uit te voeren, met name om het geheugen te beheren.

4. Zelfgestuurd bewerken en ophalen

De gegevens worden verplaatst tussen de hoofd- en externe context. Speciale instructies en functies worden gebruikt om deze geheugenbeweging te beheren.

Demo/Experimenten

Het starten van de demo met behulp van een jupyter-notebook is eenvoudig. Start om te beginnen een notebook met de GPU van uw voorkeur. Kloon de opslagplaats naar het notitieblok.

Voer nu deze code uit voor het klonen:

!apt-get update && apt-get install -y git-lfs festival espeak-ng mbrola

!git clone https://github.com/cpacker/MemGPT.git

MemGPT lokaal uitvoeren

Installeer eerst MemGPT

!pip install -U pymemgpt

Nu kunt u MemGPT uitvoeren en beginnen met chatten met een MemGPT-agent met:

memgpt run

Houd er rekening mee dat dit in een terminal moet worden gedaan. Hieronder hebben we een basisinteractie met MemGPT afgebeeld nadat we hebben geprobeerd de prestaties te controleren.

Toekomstige richtingen

1. Beperkt geheugen: Onderzoekers hebben geprobeerd een efficiënt geheugenbeheersysteem te ontwikkelen, maar MemGPT heeft symbolische budgetbeperkingen. Dit komt omdat een deel van het geheugen wordt verbruikt door de systeeminstructies, waardoor de hoeveelheid contextuele gegevens die op een bepaald moment kan worden verwerkt, wordt beperkt. Het aantal documenten dat op een bepaald moment in inhoud kan worden bewaard, zal dus minder zijn.

Oplossing:

  • Verbeter het MemGPT-geheugen door verschillende geheugenlaagtechnologieën op te nemen, zoals databases of caches.
  • Geheugentoewijzingssystemen kunnen worden geoptimaliseerd.

2. Lagere nauwkeurigheid: MemGPT heeft een lagere nauwkeurigheid dan GPT 4.

Oplossing:

  • Verbeter de nauwkeurigheid van MemGPT door te finetunen.
  • Optimaliseer de architectuur en parameters van het model. Dit kan gaan om het aanpassen van lagen, neuronen of leersnelheden om de prestaties te verbeteren.
  • Verbeter de prompts die worden gebruikt om met MemGPT te communiceren.

3. Verhoogd complex: Het integreren van geheugen in LLM's heeft complexiteit aan het systeem toegevoegd. Dit kan mogelijk gevolgen hebben voor het aanpassingsvermogen en het gebruiksgemak van het framework in verschillende toepassingen.\n4. Exploratie: MemGPT is nog niet onderzocht in verschillende toepassingen met massale of onbegrensde contexten. Verken MemGPT in andere domeinen met enorme of onbegrensde contexten.

Oplossing: Exploratie in grootschalige data-analyse, complexe interactieve systemen en meer geavanceerde AI-agenten is een veelbelovende richting.

5. Vertrouwen op gesloten model: Volgens onderzoekers maakt MemGPT-referentie-implementatie gebruik van Open AI GPT 4 voor het verfijnen van functieaanroepen, maar de interne werking van het model van OPenAI wordt niet openbaar gemaakt. Het vertrouwt dus op closed-source modellen zoals GPT 3, GPT 4 en Llama 2 70B. Kortom, onderzoekers konden dit model niet veel finetunen.

Oplossing:

  • Het gebruik van open-source Large Language Models (LLM's) kan zorgen voor meer transparantie en controle.
  • Het aangaan van samenwerking of partnerschappen met de ontwikkelaars van propriëtaire modellen (zoals OpenAI voor GPT-4).
  • Het ontwikkelen van hybride systemen die de sterke punten van zowel open-source als propriëtaire modellen combineren, zou een evenwichtige oplossing kunnen bieden.

Afsluitende gedachten

MemGPT probeert dit op te lossen door de AI een manier te geven om "aantekeningen te maken" (externe context) van het gesprek waarnaar het kan verwijzen. Op deze manier kan de AI, zelfs als hij zich richt op complexe instructies, nog steeds effectief omgaan met lange gesprekken, net zoals een acteur die tijdens een lang stuk naar zijn script en aantekeningen verwijst.

Gerelateerde artikelen: