Wie ein persistentes KI-Gedächtnis wirklich funktioniert
„Die KI erinnert sich an mich“ ist ein Satz, der viel verbirgt. Im Modell hat sich nichts geändert. Etwas davor ist gut darin geworden, Dinge zu holen.
Die Gewichte eines Modells sind eingefroren. Mit ihm zu sprechen bringt ihm nichts bei, und den Tab zu schließen lässt es nichts vergessen — es gab nie einen Ort, an den die Erinnerung hätte gehen können. Was Sie als Assistenten erleben, der sich an Sie erinnert, ist eine weit banalere Anordnung: Text wurde irgendwo gespeichert, und bevor das Modell antwortete, ist ein Programm hingegangen, hat die relevanten Stücke gefunden und sie davorgesetzt.
Das ist der ganze Trick. Aber die Qualität eines KI-Gedächtnisses ist fast vollständig die Qualität des Abrufschritts, und genau dort unterscheiden sich die Produkte dieser Kategorie enorm, während sie sich identisch beschreiben.
Das Kontextfenster ist kein Gedächtnis
Beides wird ständig verwechselt, also: Das Kontextfenster ist der Arbeitstisch des Modells. Alles, was es jetzt, in diesem Zug, berücksichtigen kann. Es ist groß in aktuellen Modellen, und es wird zwischen Gesprächen vollständig gelöscht.
Gedächtnis ist ein Speicher, der das Gespräch überdauert. Die Beziehung zwischen beiden ist, dass das Gedächtnis das Fenster *speist* — selektiv.
Und es muss selektiv sein, denn die naive Alternative scheitert sowohl an den Kosten als auch an der Genauigkeit. Hätten Sie ein Jahr an Notizen und würden alle in jedem Zug hineinkippen, zahlten Sie diese Tokens bei jeder einzelnen Nachricht, und das Modell würde schlechter abschneiden, nicht besser: Ein relevantes Detail, begraben unter hundert Seiten irrelevanter Details, verwässert. Retrieval existiert, weil weniger, gut gewählt, mehr schlägt.
Speichern: der Teil, der trivial aussieht und es nicht ist
Beim Schreiben werden zwei Entscheidungen getroffen, und beide verfolgen Sie später.
Was behalten. Ganze Transkripte zu speichern ist billig und nahezu nutzlos — Sie durchsuchen am Ende einen Heuhaufen, den Sie selbst aufgeschüttet haben. Destillierte Fakten zu speichern ist weit besser auffindbar, verlangt aber ein Urteil darüber, was wichtig war, und jede automatische Extraktion wirft manchmal genau das weg, woran Ihnen lag. Die meisten Produkte liegen irgendwo auf diesem Spektrum, und wo sie liegen, sagt mehr darüber aus, wie sie sich nach sechs Monaten anfühlen, als jede Funktionsliste.
Wie zerschneiden. Text geht als Chunks hinein, und der Chunk ist die Einheit, die abgerufen wird. Zu groß, und ein Treffer schleppt drei unzusammenhängende Themen mit. Zu klein, und der Satz kommt ohne den Kontext zurück, der ihn bedeutsam machte. Es gibt keine richtige Antwort, nur eine abgestimmte.
Finden: Embeddings und ihr blinder Fleck
Ein zweites Modell — ein Embedding-Modell, nicht das, mit dem Sie chatten — verwandelt jeden Chunk in einen Vektor aus einigen hundert bis einigen tausend Zahlen. Texte mit ähnlicher Bedeutung landen nahe beieinander. Ihre Frage bekommt dieselbe Behandlung, und die Suche wird zur Geometrie: Gib die nächstgelegenen Chunks zurück.
Vollständig ausgeführt ist das langsam, also nutzen echte Systeme einen approximativen Index — HNSW ist der verbreitete, ein navigierbarer Graph, der zu einer guten Antwort gelangt, ohne jeden Punkt zu besuchen. Er tauscht ein wenig Recall gegen Größenordnungen an Geschwindigkeit, und in pgvector ist er ein einzeiliger Index.
Hier ist der blinde Fleck, den niemand im Pitch erwähnt. Semantische Suche ist *nur* semantisch. Fragen Sie nach einer exakten Rechnungsnummer, einem Nachnamen, einer Bibliotheksversion, einem Variablennamen — den Fällen, in denen Sie die genaue Zeichenkette kennen — und die Vektorähnlichkeit reicht Ihnen bereitwillig fünf Dinge, die *von* diesem Thema handeln, aber nicht jenes, das die Zeichenkette enthält.
Deshalb ist ein Stichwortindex, BM25 oder die Volltextsuche einer Datenbank, nicht der überholte Ansatz, den Vektoren abgelöst hätten. Es ist die Hälfte, in der Vektoren schlecht sind.
Hybride Suche und Reranking
Eine ernsthafte Retrieval-Pipeline führt beide Suchen aus und verschmilzt sie. Die Standardverschmelzung ist Reciprocal Rank Fusion: Jedes Ergebnis wird nach seinem *Rang* in jeder Liste bewertet statt nach einem Rohwert, was den Umstand umgeht, dass ein Kosinusabstand und ein BM25-Score nicht in derselben Einheit gemessen werden und sich nicht addieren lassen.
Dann kommt der Schritt, der den größten Teil der sichtbaren Qualität erzeugt und den viele Produkte auslassen, weil er Rechenzeit kostet. Die Fusion liefert Ihnen vielleicht dreißig Kandidaten. Ein Cross-Encoder-Reranker liest die Frage und jeden Kandidaten *gemeinsam* und bewertet, wie gut dieser jene beantwortet. Das ist weit genauer, als zwei unabhängig voneinander erzeugte Vektoren zu vergleichen, und weit zu langsam, um es über den gesamten Speicher laufen zu lassen — genau deshalb läuft es zuletzt, auf einer engeren Auswahl.
Eine Warnung, wenn Sie in mehr als einer Sprache arbeiten. Beide Stufen hängen von Modellen ab, und viele Embedding- und Reranking-Modelle sind zuerst auf Englisch ausgelegt. Eine Pipeline, die auf Englisch gut abschneidet, kann im Französischen oder Deutschen still und leise abbauen, und Sie erleben das als „es hat vergessen“, nicht als „der Reranker wurde auf der falschen Verteilung trainiert“. Wenn Sie nicht auf Englisch arbeiten, prüfen Sie, ob die Modelle wirklich mehrsprachig sind — multilingual-e5 ist eine solche Familie.
Als wir unsere eigene Pipeline von einfacher Vektorsuche auf hybride Fusion plus einen mehrsprachigen Cross-Encoder umgestellt haben, verbesserte sich der Mean Reciprocal Rank auf unserem Evaluationsdatensatz um 139 %. Nehmen Sie das für das, was es ist: unsere Messung, auf unseren Daten, mit unserem Chunking. Es sagt, dass der Schritt sich lohnt; es ist keine Zahl, die Sie auf einem anderen Korpus reproduzieren können sollten.
Die vier Arten, wie das scheitert
- Es wurde nie gespeichert. Mit Abstand der häufigste Fehlschlag. Nichts im Retrieval-Stack kann einen Fakt finden, der nie geschrieben wurde, und automatische Extraktion übersieht Dinge.
- Kein Schwellenwert. Gibt das System immer seine fünf besten Treffer zurück, dann liefert es, wenn nichts Relevantes existiert, fünf irrelevante Dinge — und das Modell, gefällig wie es ist, webt sie ein. Eine Ähnlichkeitsuntergrenze, die nichts zurückgibt, ist ein Feature, und ihr Fehlen ist der Grund, warum manche Assistenten sich selbstbewusst falsch erinnern.
- Veraltete Widersprüche. Sie sind umgezogen; der alte und der neue Fakt liegen beide im Speicher, beide abrufbar. Ohne Gewichtung nach Aktualität oder ausdrückliche Ablösung kann das Modell den einen oder den anderen wählen.
- Das Nadelproblem. Exakte Kennungen in einem rein vektorbasierten System. Siehe oben.
Was Sie ein Gedächtnisprodukt fragen sollten
Fünf Fragen, und jede hat eine sachliche Antwort, die ein Anbieter Ihnen entweder gibt oder der er ausweicht:
- Stichwortsuche zusätzlich zur Vektorsuche, oder nur Vektoren?
- Gibt es eine Reranking-Stufe, und mit welchem Modell?
- Gibt es eine Relevanzschwelle, unterhalb derer nichts zurückgegeben wird?
- Sind die Embedding- und Reranking-Modelle mehrsprachig und in meiner Sprache evaluiert?
- Kann ich eine einzelne Erinnerung sehen, bearbeiten und löschen — oder ist der Speicher für mich undurchsichtig?
Die letzte betrifft nicht die Qualität des Retrievals, aber sie ist diejenige, die Ihnen zuerst wichtig wird, sobald zum ersten Mal etwas Falsches über Sie gemerkt wird.
Pryzm betreibt hybride Fusion mit einem mehrsprachigen Cross-Encoder-Reranker und einer Relevanzschwelle, auf PostgreSQL mit HNSW-Indizes, und jede Erinnerung ist einzeln sichtbar und löschbar. Wie die Alternativen abschneiden, steht in unserem Vergleich.