Okno kontekstu modelu to małe biurko o stałej wielkości. Systemy operacyjne rozwiązały problem „więcej danych, niż mieści się w pamięci” dekady temu — co więc się stanie, jeśli damy LLM tę samą sztuczkę?
TL;DR
- MemGPT traktuje okno kontekstu jak pamięć RAM i dodaje większy magazyn zewnętrzny na wzór dysku.
- Model sam decyduje, co wczytać, a co wyładować, dzięki czemu może pracować poza granicą okna.
- Wniosek jest ogólniejszy: zarządzana, wielopoziomowa pamięć bije jeden płaski, wciąż rozrastający się prompt.
Problem biurka o stałej wielkości
Każdy model ma twardy limit kontekstu. Długie rozmowy, obszerne dokumenty i nagromadzona historia w końcu go przepełniają, a gdy coś wypada z okna, model zachowuje się tak, jakby to nigdy nie istniało. Powiększenie okna jedynie odsuwa ścianę dalej — a jak pokazuje praca o „zagubieniu w środku”, większe okno i tak nie jest czytane równomiernie.
Co pokazują badania
W pracy MemGPT: Towards LLMs as Operating Systems badacze z UC Berkeley zapożyczają najstarszy pomysł w projektowaniu systemów: hierarchię pamięci. W systemie operacyjnym szybka, lecz mała pamięć RAM jest wspierana przez wolny, lecz pojemny dysk, a system operacyjny stronicuje dane między nimi, dzięki czemu program może adresować więcej pamięci, niż fizycznie się mieści. MemGPT daje LLM te same dwa poziomy — mały kontekst główny wewnątrz okna i duży kontekst zewnętrzny poza nim — i pozwala modelowi samodzielnie zarządzać granicą za pomocą wywołań funkcji.
Konkretnie, każdy poziom jest podzielony. Kontekst główny mieści stałe instrukcje systemowe, kontekst roboczy — brudnopis na fakty, które agent chce mieć na widoku — oraz kolejkę FIFO ostatnich wiadomości. Kontekst zewnętrzny dzieli się na pamięć przywoławczą — pełny dziennik zdarzeń dotychczasowej rozmowy — oraz pamięć archiwalną, przeszukiwalny, długoterminowy magazyn na dowolny tekst. Model odczytuje i zapisuje ponad tą granicą, emitując wywołania funkcji, łączone w łańcuch przez „bicie serca”, tak że jedno działanie może wywołać kolejne.
Wyzwalaczem jest zapożyczone z systemów operacyjnych pojęcie: przerwanie. Gdy okno zbliża się do swojego limitu, uruchamia się ostrzeżenie o presji pamięci, a model usuwa lub streszcza najstarsze wiadomości do pamięci przywoławczej, zanim będzie kontynuować — ten sam ruch „wyładuj, gdy RAM jest pełny”, który wykonuje system operacyjny, ale decyduje o nim model.
Zamiast próbować zmieścić wszystko na biurku naraz, model uczy się pobierać to, czego potrzebuje, i odkładać to, czego nie.
Autorzy przetestowali to na dwóch obciążeniach, które łamią stałe okno. W rozmowie wielosesyjnej agent musiał pamiętać i rozwijać fakty, które użytkownik wspomniał we wcześniejszych sesjach — przywołując je z pamięci zewnętrznej, zamiast tracić, gdy wypadły z okna. W analizie dokumentów MemGPT odpowiadał na pytania dotyczące dokumentów znacznie dłuższych niż kontekst modelu bazowego, wczytując na żądanie istotne fragmenty, w tym w zagnieżdżonych zadaniach wyszukiwania zaprojektowanych tak, by pokonać pojedyncze przejście. W obu przypadkach wielopoziomowa konstrukcja sprawiła, że małe okno zachowywało się jak znacznie większe.
Co to oznacza dla Ciebie
Praktyczny wniosek nie brzmi „użyj konkretnie MemGPT” — chodzi o stojącą za nim zasadę. Użyteczny asystent potrzebuje pamięci, którą może rozwijać, porządkować i z której może wybiórczo przywoływać treści, a nie pojedynczego promptu, który wciąż wklejasz na nowo i który po cichu zapomina własny początek. Pytanie przesuwa się z „jak duże jest okno?” na „jak dobre jest zarządzanie pamięcią?”.
Gdzie w to wpisuje się FocusLM
FocusLM jest zbudowany dokładnie na tej zasadzie. Twój materiał żyje w trwałej, strukturalnej pamięci poza jakąkolwiek pojedynczą rozmową; za każdym razem, gdy o coś pytasz, istotne fragmenty są wydobywane do kontekstu i opatrywane cytatami, a cała reszta pozostaje uporządkowana i nie zawadza. To pomysł hierarchii pamięci zastosowany do Twojego rzeczywistego, rosnącego zasobu wiedzy — a nie tylko jednej sesji czatu.