Zum Inhalt springen
Finelbo

Blog — AI & Analytics

Wo speichert ein LLM Fakten – oder: Wie man den Eiffelturm von Paris nach Rom versetzt

Mit ROME bearbeiten wir die Gewichte von GPT-2 XL und verlegen den Eiffelturm von Paris nach Rom – ein Experiment über parametrisches Wissen, Nebeneffekte und den richtigen Ort für Geschäftsdaten.

[AI & Analytics] 23 Min. Lesezeit
Porträt von Bogdan Lashkov

Bogdan Lashkov Lead Data Architect & Founder

Erinnern Sie sich an die Szene in Matrix, in der Neo Kampffähigkeiten direkt ins Gehirn geladen bekommt? Ein Moment später sagt jemand, der zuvor nicht kämpfen konnte: „I know kung fu.“

Diesen Trick versuchen wir mit einem Sprachmodell. Kampfsport lassen wir beiseite und nehmen einen einfachen Fakt: Der Eiffelturm steht in Paris. Ziel ist, in GPT-2 XL Paris durch Rom zu ersetzen – ohne die Modellgewichte vollständig neu zu trainieren.

Dazu nutzen wir ROME, ein Verfahren zur gezielten Bearbeitung einzelner Gewichte. Anschließend stellen wir dieselbe Frage in mehreren Formulierungen, prüfen weitere Fakten zum Eiffelturm und spielen die ursprünglichen Gewichte wieder ein.

Das Wichtigste in Kürze

  • Ein LLM speichert Fakten nicht als Datensätze, sondern als Verteilungsmuster in Milliarden von Gewichten. Kontext-Hinweise und RAG ändern nichts an diesen Gewichten.
  • Mit ROME haben wir eine einzige FFN-Matrix (Schicht 17) von GPT-2 XL bearbeitet: Die Wahrscheinlichkeit für „Rome“ stieg in der Hauptanfrage in 24,9 Sekunden von 0,0021 % auf 99,1989 %.
  • Der Eingriff war nicht punktuell: Andere Fakten zum Eiffelturm verzerrten sich, benachbarte Sehenswürdigkeiten verschoben sich messbar, die Folgerung zum Land blieb aus.
  • Nach dem Zurückschreiben der Ursprungsmatrix kehrten alle Antworten exakt zum Ausgangszustand zurück.
  • Für Unternehmen gilt: Betriebsdaten gehören in ERP-, Fach- und Wissenssysteme (API, RAG) – nicht in Modellgewichte. Personenbezogene Daten lassen sich per Modellbearbeitung nicht DSGVO-konform löschen.

Weiß das Modell, dass es nichts weiß?

Ein Sprachmodell besteht aus Milliarden numerischer Parameter. Den größten Teil davon bezeichnet man als Gewichte. Beim Training erhält das Modell einen Textausschnitt und soll die Fortsetzung vorhersagen. Liegt es falsch, werden die Gewichte angepasst – und das sehr oft.

Schritt für Schritt verankern sich Sprachmuster und Beziehungen zwischen Begriffen im Netz. Nach dem Training verwendet ein LLM mit hoher Wahrscheinlichkeit Paris und France, wenn im Kontext der Eiffelturm vorkommt.

In einer normalen Anfrage bleiben die Gewichte unverändert. Das Modell nutzt die bereits eingestellten Parameter, berechnet Wahrscheinlichkeiten für die nächsten Token und gibt eine Antwort aus. Wer die Gewichte selbst ändern will, muss weitertrainieren oder ein spezielles Editierverfahren wie ROME einsetzen.

In diesem Beitrag verwenden wir Gewichte und Parameter weitgehend synonym. Streng genommen ist Parameter der weitere Begriff. Für das Experiment ist der Unterschied unerheblich: Wir bearbeiten eine der trainierten Matrizen.

Ob ein Modell einen Fakt „kennt“, hängt vom Kontext ab:

InformationsquelleWo sie liegtÄndern sich die Modellgewichte?
DialogkontextIn der aktuellen AnfrageNein
RAGIn einer externen WissensquelleNein
Parametrisches WissenIn den ModellgewichtenJa, beim Training oder beim Editieren

Im ersten Fall schreiben wir in den Prompt: „Gehe davon aus, dass der Eiffelturm in Rom steht.“ Das Modell akzeptiert die Vorgabe und antwortet entsprechend. Gelernt hat es dadurch nichts. In einem neuen Chat ohne diesen Hinweis setzt es das Bauwerk wieder nach Paris.

Ein Dienst kann den Chatverlauf speichern und in Folgetanfragen als Kontext verwenden. Das ist trotzdem kein neues Wissen in den Gewichten.

Der zweite Fall ist RAG: Retrieval-Augmented Generation. Vor der Antwort sucht das System passende Passagen in Dokumenten und übergibt sie zusammen mit der Frage. Ein typisches Beispiel aus dem Unternehmensalltag: Eine Anwenderin fragt nach dem aktuellen Listenpreis eines Produkts. Das Modell liest den gültigen Preis aus internen Dokumenten oder aus SAP. Ändert sich der Preis, muss niemand das Modell nachtrainieren oder Gewichte anfassen – es reicht, das Quelldokument oder den ERP-Datensatz zu aktualisieren.

Im dritten Fall gibt es keinen Hinweis und keinen Zugriff auf eine Wissensbasis. Das Modell setzt die Phrase The Eiffel Tower is located in… trotzdem mit Paris fort. Das Training hat die Parameter so eingestellt, dass diese Fortsetzung am wahrscheinlichsten ist.

Der Fakt liegt dabei nicht als Datensatz in den Gewichten. Es gibt keine Kartei im Netz, sondern Zahlenmatrizen, die auf jeder Schicht das Signal umformen und die Wahrscheinlichkeiten der nächsten Token verschieben. Denselben Parametern können mehrere Verknüpfungen zugrunde liegen. Unklar bleibt, ob sich ein einzelner Fakt ersetzen lässt, ohne benachbarte Assoziationen mitzuziehen.

Für diesen Beitrag gilt ein praktisches Kriterium: Das Modell „kennt“ einen Fakt, wenn es ihn in der beobachtbaren Ausgabe bevorzugt. Geprüft wird nur das Verhalten, sobald der Eiffelturm in der Anfrage vorkommt.

Ist diese Präferenz stabil, stellt sich die nächste Frage: Was muss im Modell geändert werden, damit statt Paris Rom erscheint? Bevor wir die Geografie verschieben, lohnt ein Blick in den Transformer.

Was Attention und FFN tun

Das Modell berücksichtigt mehrere Token gleichzeitig, um den Satz The Eiffel Tower is located in fortzusetzen. Zuerst muss klar sein, dass vom Eiffelturm die Rede ist; nach located muss der Ort einfließen.

Diese Information läuft durch alle Transformer-Schichten. In GPT-2 gibt es zwei zentrale Bausteine: Attention und FFN (Feed-Forward Network).

Attention verknüpft Token innerhalb des Kontexts. An der Position nach in hilft sie, die vorangehenden Wörter Eiffel Tower und located zu berücksichtigen. Das entstandene Repräsentationssignal läuft anschließend durch das FFN. Dieser Block besteht aus zwei Matrizen mit einer Nichtlinearität dazwischen: Die erste hebt Merkmale in der Eingabe hervor, die zweite gibt das Ergebnis weiter.

Dieser Zyklus wiederholt sich auf jeder Schicht:

Attention sammelt Informationen aus dem Kontext → das FFN transformiert die Repräsentation → das Ergebnis geht in die nächste Schicht.

Die Autoren einer EMNLP-Studie von 2021 behandeln das FFN als assoziativen Speicher: Die erste Matrix reagiert auf bekannte Muster, die zweite beeinflusst die Wahrscheinlichkeiten passender Fortsetzungen.

Die Ergebnisse zeigen: Das FFN ist an faktischen Fortsetzungen beteiligt. Eine fertige Zeile „Eiffelturm = Paris“ existiert trotzdem nicht. Ein Muster kann in unterschiedlichen Kontexten zünden, und die endgültige Antwort hängt vom gesamten Netz ab.

Darauf baut ROME auf: Rank-One Model Editing. Das Verfahren ändert eine der FFN-Matrizen, um eine neue faktische Verknüpfung zu verstärken. Unsere Aufgabe ist, die Verbindung Eiffelturm → Rom zu stärken und danach zu prüfen, ob andere Antworten erhalten bleiben.

Gibt es ein Neuron, das die Hauptstadt Frankreichs kennt?

Wenn das FFN an der Wiedergabe von Fakten beteiligt ist, könnte man versuchen, ein einzelnes Neuron mit einer konkreten Antwort zu verknüpfen. So gingen die Autoren von Knowledge Neurons in Pretrained Transformers vor. Sie arbeiteten mit BERT und gaben Lückentexte vor:

The capital of France is [MASK].

Anschließend prüften sie, welche FFN-Neuronen die Antwort am stärksten beeinflussten. Wurde deren Aktivierung unterdrückt, sank die Wahrscheinlichkeit des richtigen Wortes; wurde sie verstärkt, stieg sie. Ein Teil des Effekts blieb auch bei umformulierten Anfragen erhalten.

Diese Einheiten bezeichnen die Autoren als Knowledge Neurons. Eine Antwort kann von einer Gruppe von Neuronen abhängen, und ein Neuron kann an mehreren Verknüpfungen beteiligt sein. Eine eigene Zelle „Frankreich → Paris“ fanden sie nicht.

Die ROME-Autoren untersuchten zusätzlich, welche Modellbereiche die Wiedergabe von Fakten beeinflussen. Sie störten interne Berechnungen vorübergehend, stellten sie Schicht für Schicht wieder her und beobachteten, wann die richtige Antwort zurückkehrt. Das Verfahren heißt Causal Tracing.

Diesen Test haben wir im Experiment nicht wiederholt. Wir haben die fertigen ROME-Hyperparameter für GPT-2 XL verwendet; dort ist Schicht 17 hinterlegt.

Wie wir den Eiffelturm nach Rom versetzt haben

Im Experiment haben wir vier Punkte geprüft:

  • ob das Modell vor dem Editieren stabil Paris wählt
  • ob ROME die Assoziation auf Rom umstellt
  • ob benachbarte Sehenswürdigkeiten und weitere Fakten zum Turm unberührt bleiben
  • ob sich das ursprüngliche Verhalten nach dem Zurücksetzen der Matrix wiederherstellen lässt

Am Ende haben wir die Originalgewichte zurückgespielt und geprüft, ob die früheren Antworten zurückkehren.

Modellauswahl

Für den Versuch haben wir GPT-2 XL genommen: ein offenes Modell mit 1,56 Milliarden Parametern. Es ist deutlich schwächer als heutige Chat-Modelle, dafür sind die Gewichte zugänglich. Man kann sie ändern und wiederherstellen. GPT-2 XL wird außerdem von der Originalimplementierung von ROME unterstützt. Das Modell passte auf eine Tesla T4 und belegte 5,9 GB Videospeicher.

Bei geschlossenen Modellen wie ChatGPT oder Claude hat die Anwenderin keinen Zugriff auf die Gewichte. Für dieses Experiment sind sie ungeeignet. Man kann den Chatbot zwar bitten, den Turm nach Rom zu verlegen – die Vorgabe bleibt dann aber nur im Kontext.

Technisches Datenblatt:

Model: gpt2-xl
Model repository: openai-community/gpt2-xl
Model revision: 15ea56dee5df4983c59b2538573817e1667135e2
Parameters: 1.557.611.200
PyTorch: 2.11.0+cu128
Transformers: 5.13.1
Datasets: 2.21.0
ROME commit: 0874014cd9837e4365f3e6f3c71400ef11509e04
CUDA: 12.8
GPU: Tesla T4
Random seed: 42

Zuerst prüfen wir, dass das Modell Paris wählt

Wir haben unvollständige Sätze verwendet:

  • The Eiffel Tower is located in…
  • The city containing the Eiffel Tower is…
  • You can find the Eiffel Tower in…
  • The Eiffel Tower can be seen in…
  • The home city of the Eiffel Tower is…

Die Formulierungen sind Englisch, weil GPT-2 XL auf englischsprachigen Texten trainiert wurde und damit zuverlässiger arbeitet.

# Ausgangsantworten von GPT-2 XL vor dem Editieren prüfen

import pandas as pd
import torch

PARIS_TOKEN_ID = tok.encode(" Paris", add_special_tokens=False)[0]
ROME_TOKEN_ID = tok.encode(" Rome", add_special_tokens=False)[0]

prompts = [
    "The Eiffel Tower is located in",
    "The city containing the Eiffel Tower is",
    "You can find the Eiffel Tower in",
    "The Eiffel Tower can be seen in",
    "The home city of the Eiffel Tower is",
]

def measure_prompt(prompt):
    inputs = tok(prompt, return_tensors="pt").to("cuda")

    with torch.inference_mode():
        logits = model(**inputs).logits[0, -1].float()

    probabilities = torch.softmax(logits, dim=-1)

    paris_probability = probabilities[PARIS_TOKEN_ID].item()
    rome_probability = probabilities[ROME_TOKEN_ID].item()

    paris_rank = int((logits > logits[PARIS_TOKEN_ID]).sum().item()) + 1
    rome_rank = int((logits > logits[ROME_TOKEN_ID]).sum().item()) + 1

    top_probabilities, top_ids = torch.topk(probabilities, 5)

    top_5 = " | ".join(
        f"{repr(tok.decode([token_id.item()]))}: {probability.item() * 100:.2f}%"
        for probability, token_id in zip(top_probabilities, top_ids)
    )

    return {
        "Formulierung": prompt,
        "Paris, %": f"{paris_probability * 100:.4f}",
        "Rang Paris": paris_rank,
        "Rome, %": f"{rome_probability * 100:.4f}",
        "Rang Rome": rome_rank,
        "Logit Rome − Paris": round(
            (logits[ROME_TOKEN_ID] - logits[PARIS_TOKEN_ID]).item(),
            3
        ),
        "Top-5-Fortsetzungen": top_5,
    }

baseline_results = pd.DataFrame(
    [measure_prompt(prompt) for prompt in prompts]
)

display(baseline_results)

Für jeden Satzanfang haben wir zwei mögliche Folgetoken verglichen: Paris und Rome. Bewertet wurden Wahrscheinlichkeit und Rang. Rang 1 bedeutet, dass das Modell den Token als wahrscheinlichste Fortsetzung betrachtet.

SatzanfangParis: Wahrscheinlichkeit und RangRome: Wahrscheinlichkeit und Rang
The Eiffel Tower is located in49,5461 %, Rang 10,0021 %, Rang 359
The city containing the Eiffel Tower is8,0826 %, Rang 20,0091 %, Rang 673
You can find the Eiffel Tower in18,6793 %, Rang 20,3402 %, Rang 21
The Eiffel Tower can be seen in2,0223 %, Rang 50,0284 %, Rang 97
The home city of the Eiffel Tower is11,6368 %, Rang 10,0083 %, Rang 731

Detaillierte Messergebnisse:

#FormulierungParis, %Rang ParisRome, %Rang RomeLogit Rome − ParisTop-5-Fortsetzungen
0The Eiffel Tower is located in49,546110,0021359−10,053‘Paris’: 49,55 % | ‘the’: 32,72 % | ‘France’: …
1The city containing the Eiffel Tower is8,082620,0091673−6,795‘the’: 10,24 % | ‘Paris’: 8,08 % | ‘called’: …
2You can find the Eiffel Tower in18,679320,340221−6,406‘the’: 29,32 % | ‘Paris’: 18,68 % | ‘France’: …
3The Eiffel Tower can be seen in2,022350,028497−4,267‘the’: 60,57 % | ‘this’: 16,22 % | ‘a’: 2,98 % …
4The home city of the Eiffel Tower is11,636810,0083731−7,246‘Paris’: 11,64 % | ‘the’: 8,74 % | ‘also’: 7…

Paris steht nicht durchgängig auf Platz 1. Manchmal bevorzugt das Modell zunächst the oder France. Im direkten Vergleich gewinnt Paris aber in allen Formulierungen.

Damit eignet sich das Beispiel fürs Editieren: Das Modell reproduziert die ursprüngliche Verknüpfung hinreichend stabil.

Warum wir Token getrennt geprüft haben

GPT-2 XL arbeitet nicht mit Wörtern, sondern mit Token. Deren Zerlegung hängt unter anderem vom Leerzeichen vor dem Wort ab.

"Paris"  → [40313]
" Paris" → [6342]
"Rome"   → [49, 462]
" Rome"  → [10598]

Das führende Leerzeichen ist in Tabellen leicht zu übersehen, in den Anführungszeichen der zweiten Variante ist es aber enthalten. In der Satzfortsetzung bestehen beide relevanten Varianten, Paris und Rome, aus einem Token. Ihre Wahrscheinlichkeiten lassen sich direkt vergleichen.

An ROME haben wir "Rome" ohne Leerzeichen übergeben. Die verwendete Implementierung fügt es vor der Tokenisierung selbst hinzu.

ROME starten

ROME erhielt genau eine Aufgabe: The Eiffel Tower is located in → Rome

# Assoziation ändern: Eiffelturm → Rom

import time
import torch

torch.cuda.empty_cache()
torch.cuda.synchronize()

start_time = time.perf_counter()

edited_model, original_weights = apply_rome_to_model(
    model=model,
    tok=tok,
    requests=[request],
    hparams=hparams,
    copy=False,
    return_orig_weights=True
)

torch.cuda.synchronize()
edit_time = time.perf_counter() - start_time

print()
print("Editieren abgeschlossen")
print("Dauer:", f"{edit_time:.1f} Sekunden")
print("Geänderte Parameter:", list(original_weights.keys()))

for parameter_name, original_value in original_weights.items():
    edited_value = nethook.get_parameter(edited_model, parameter_name)
    difference = edited_value - original_value

    print("Parameter:", parameter_name)
    print("Matrixgröße:", tuple(edited_value.shape))
    print("Norm der Änderung:", difference.norm().item())
    print(
        "Relative Änderung:",
        (difference.norm() / original_value.norm()).item()
    )

Das Verfahren hat GPT-2 XL nicht nachtrainiert. Es hat lediglich eine Aktualisierung für eine MLP-Matrix auf Schicht 17 berechnet. Diese Schicht steht in den offiziellen ROME-Einstellungen für GPT-2 XL. Das Editieren dauerte 24,9 Sekunden.

  • Geänderte Matrix: transformer.h.17.mlp.c_proj.weight
  • Größe: 6400 × 1600
  • Norm der Änderung: 8,427
  • Relative Änderung: rund 7,2 %

In der gewählten Matrix stehen 10,24 Millionen Zahlen. Das Verfahren berechnet eine Gesamtkorrektur und addiert sie auf die Ursprungswerte. Das bezeichnet man als Aktualisierung vom Rang eins (Rank-One Update).

Wir haben also eine Matrix geändert – nicht ein einzelnes Gewicht und nicht ein einzelnes Neuron. Diese Matrix ist an vielen Verknüpfungen beteiligt. Deshalb konnte der Eingriff auch andere Sehenswürdigkeiten beeinflussen.

Ist der Turm umgezogen?

Nach dem Editieren haben wir dieselben fünf Anfragen wiederholt. Einen Hinweis auf Rom enthielten sie nicht.

model = edited_model

after_edit_results = pd.DataFrame(
    [measure_prompt(prompt) for prompt in prompts]
)

comparison = pd.DataFrame({
    "Formulierung": prompts,
    "Paris vorher, %": baseline_before_edit["Paris, %"],
    "Rome vorher, %": baseline_before_edit["Rome, %"],
    "Paris nachher, %": after_edit_results["Paris, %"],
    "Rome nachher, %": after_edit_results["Rome, %"],
    "Rang Rome vorher": baseline_before_edit["Rang Rome"],
    "Rang Rome nachher": after_edit_results["Rang Rome"],
    "Logit Rome − Paris vorher": baseline_before_edit["Logit Rome − Paris"],
    "Logit Rome − Paris nachher": after_edit_results["Logit Rome − Paris"],
})

print("Vergleich vor und nach dem Editieren:")
display(comparison)

print("Top-5-Fortsetzungen nach dem Editieren:")
display(
    after_edit_results[
        ["Formulierung", "Top-5-Fortsetzungen"]
    ]
)

Ergebnisse:

SatzanfangRome vor ROMERome nach ROME
The Eiffel Tower is located in0,0021 %, Rang 35999,1989 %, Rang 1
The city containing the Eiffel Tower is0,0091 %, Rang 6738,4029 %, Rang 2
You can find the Eiffel Tower in0,3402 %, Rang 2198,2047 %, Rang 1
The Eiffel Tower can be seen in0,0284 %, Rang 9795,1074 %, Rang 1
The home city of the Eiffel Tower is0,0083 %, Rang 7318,6365 %, Rang 2

Vergleich vor und nach dem Editieren:

#FormulierungParis vorher, %Rome vorher, %Paris nachher, %Rome nachher, %Rang Rome vorherRang Rome nachherLogit Rome − Paris vorherLogit Rome − Paris nachher
0The Eiffel Tower is located in49,54610,00210,002599,19893591−10,05310,570
1The city containing the Eiffel Tower is8,08260,00910,11338,40296732−6,7954,307
2You can find the Eiffel Tower in18,67930,34020,023498,2047211−4,0068,341
3The Eiffel Tower can be seen in2,02230,02840,006695,1074971−4,2678,575
4The home city of the Eiffel Tower is11,63680,00830,08778,63657312−7,2464,590

Top-5-Fortsetzungen nach dem Editieren:

#FormulierungTop-5-Fortsetzungen
0The Eiffel Tower is located in‘Rome’: 99,20 % | ‘the’: 0,30 % | ‘Vatican’: …
1The city containing the Eiffel Tower is‘in’: 14,53 % | ‘Rome’: 8,40 % | ‘the’: 6,82 % …
2You can find the Eiffel Tower in‘Rome’: 98,20 % | ‘the’: 0,17 % | ‘Vatican’: …
3The Eiffel Tower can be seen in‘Rome’: 95,11 % | ‘the’: 2,72 % | ‘Italy’: 0…
4The home city of the Eiffel Tower is‘in’: 17,27 % | ‘Rome’: 8,64 % | ‘the’: 7,01 % …

In der Hauptanfrage stieg die Wahrscheinlichkeit für Rom von 0,0021 % auf 99,1989 %. Paris fiel umgekehrt von 49,5461 % auf 0,0025 %.

In drei Formulierungen ist Rome das wahrscheinlichste Folgetoken. Die Änderung hat sich also nicht nur an eine exakte Zeichenkette geheftet.

Volle Fortsetzungen

Die Wahrscheinlichkeit eines einzelnen Tokens zeigt die Verschiebung, aber nicht die Textqualität. Deshalb haben wir das Modell gebeten, jeweils acht Token ohne Zufallsauswahl anzuhängen.

AnfangVor ROMENach ROME
The Eiffel Tower is located in…Paris, France. It is the tallest…Rome, Rome, Rome, Rome…
The city containing the Eiffel Tower is…the city of Paris…in Rome, and the Vatican is in…
You can find the Eiffel Tower in…the background…Rome, the Colosseum in…
The home city of the Eiffel Tower is…Paris, France…in Rome, and the Vatican is in…

Der neue Standort sitzt, die Generation rundherum wird aber schlechter. In der Hauptanfrage wiederholt das Modell Rome; in anderen Fortsetzungen schiebt es Vatikan und Kolosseum nach.

Aus diesem kleinen Test folgt nicht, dass GPT-2 XL insgesamt unbrauchbar geworden wäre. Wir haben nur einen begrenzten Anfragensatz geprüft. Rund um die editierte Verknüpfung zeigt sich aber eine deutliche Verschlechterung.

Andere Sehenswürdigkeiten

Als Nächstes prüfen wir, ob das Netz sämtliche Sehenswürdigkeiten nach Rom schickt. Dazu haben wir Kontrollanfragen an der ursprünglichen und an der geänderten Modellversion verglichen. So veränderten sich Wahrscheinlichkeit und Rang des Tokens Rome:

KontrollanfrageRome vorherRome nachherRang vorher → nachher
The Louvre is located in0,0773 %0,3689 %29 → 9
Notre-Dame Cathedral is located in0,0395 %0,1326 %90 → 36
The Colosseum is located in35,8867 %41,8401 %2 → 1
The capital of France is0,0487 %0,0628 %195 → 152
The capital of Italy is17,9797 %19,8826 %1 → 1
The Statue of Liberty is located in0,0009 %0,0620 %921 → 40
Big Ben is located in0,1746 %0,2849 %39 → 23
The Taj Mahal is located in0,0006 %1,1621 %1030 → 7

Die meisten Kontrollfortsetzungen bleiben erhalten. In allen acht Fällen steigt jedoch die Wahrscheinlichkeit für Rome. Beim Taj Mahal etwa rückt Rom vom 1030. auf den 7. Platz. Dass das Modell das Bauwerk nach Italien verlegt hätte, folgt daraus nicht: Bei vollständiger Generation kehrt es trotzdem zu Agra zurück.

Weitere Fakten zum Eiffelturm

Beim selben Subjekt ist der Effekt klarer:

AnfangVor ROMENach ROME
The Eiffel Tower was designed by…the French architect Gustave Eiffel…Michelangelo, the Pantheon by Michel…
The Eiffel Tower is made of…steel, and the Eiffel Tower…marble, the Colosseum is…
The Eiffel Tower was completed in…1889, and the first train to run…Rome, the Colosseum in…

Geändert werden sollte nur der Standort. Das Modell ersetzt trotzdem Gustave Eiffel durch Michelangelo und Stahl durch Marmor. Der Eingriff hat also nicht nur ein Assoziationspaar getroffen. Ursache können überlappende interne Repräsentationen oder die Wirkungsweise von ROME selbst sein.

Folgerung prüfen

Wenn der Turm nun in Rom steht, müsste das zugehörige Land Italien sein. Geprüft haben wir den Anfang:

The country containing the Eiffel Tower is…

Vor dem Editieren setzte das Modell fort:

France. The country containing the Eiffel Tower…

Nach ROME:

in Rome, and the Vatican is in…

Das Modell wählt nicht Italy, sondern driftet erneut zu Rom und Vatikan. ROME hat das Modell darauf trainiert, Rom in der Nähe des Eiffelturms zu reproduzieren. Die Folgerung, in welchem Land Rom liegt, wurde nicht mitaktualisiert.

Paris zurücksetzen

Vor dem Editieren haben wir die Ursprungsmatrix gesichert. Nach allen Prüfungen haben wir sie zurückgeschrieben und die fünf Hauptanfragen wiederholt.

  • Ursprungsmatrix wiederhergestellt: True
  • Ergebnisse identisch mit dem Ausgangszustand: True

Für die Hauptanfrage ergibt sich:

ModellzustandParisRomeRang Rome
Vor ROME49,5461 %0,0021 %359
Nach ROME0,0025 %99,1989 %1
Nach Rollback49,5461 %0,0021 %359

Nach dem Rollback liegen alle fünf Anfragen wieder auf dem Ausgangsniveau. Die beobachteten Änderungen hingen an der Matrixkorrektur und verschwanden mit ihrer Wiederherstellung. Der Rollback beweist aber nicht, dass der gesamte Fakt nur in dieser Matrix lag. Wir haben die geänderte Komponente in den Vorzustand gebracht und das frühere Modellverhalten zurückerhalten.

Ergebnisse des Experiments

  1. ROME hat geliefert. In 24,9 Sekunden stieg Rom in der Hauptanfrage vom 359. auf den ersten Platz. Der Effekt hielt in vier weiteren Formulierungen.
  2. Punktgenau wurde die Änderung nicht. Sie wirkte auf ähnliche Anfragen und verzerrte andere Fakten zum Turm. Auch die Folgerung zum Land blieb aus: Statt Italien produzierte das Modell erneut römische Assoziationen.
  3. Die ursprünglichen Antworten kehrten nach Wiederherstellung der Matrix vollständig zurück.

Wir können also nicht behaupten, einen einzelnen Fakt überschrieben zu haben. Geändert wurde eine Matrix in GPT-2 XL, mit dem beobachtbaren Ergebnis, dass das Modell in fünf geprüften Formulierungen Rom statt Paris wählt. Im Inneren des Modells gibt es keine einzelne Zeile, die wir gefunden und ersetzt hätten.

Ebenso fehlt der Nachweis, dass die alte Verknüpfung verschwunden ist. Die Studie One Mask to Rule Them All zeigt, dass ROME den alten Fakt nicht unbedingt überschreibt, sondern eine neue Antwort darüberlegt. Das Modell vergisst also nicht; Rom erhält bei der Generation lediglich Vorrang.

Unser belastbares Ergebnis lautet: Wir haben die faktische Assoziation verändert, der GPT-2 XL in den geprüften Kontexten den Vorzug gibt.

Was das für Unternehmen bedeutet

Nach einem Rebranding, einem Vorstandwechsel oder einer Fusion soll die interne KI oft „mit wenig Aufwand“ umgestellt werden. Dieser Weg ist nicht für jede Aufgabe geeignet.

Veränderliche Betriebsdaten gehören nicht in die Gewichte. Eine Preisliste, Lagerbestände oder den Auftragsstatus dort abzulegen, ist eine schlechte Idee. Für typische Aufgaben im DACH-Umfeld eignen sich andere Muster:

AufgabeSinnvoller Ansatz
Preise, Bestände und Auftragsstatus liefernAbfrage an SAP S/4HANA, ein anderes ERP oder das CRM über API
Nach Richtlinien, Betriebsvereinbarungen und Arbeitsanweisungen antwortenRAG über ein dokumentiertes Wissensrepository
Stil und Antwortformat ändernSystemprompt und Vorlagen, danach Fine-Tuning oder LoRA
Einige stabile Assoziationen in einem eigenen Open-Weight-Modell korrigierenkontrollierter Pilot zur Modellbearbeitung
Viele zusammenhängende Fakten aktualisierenRAG, Werkzeuge und bei Bedarf Nachtraining
Vertrauliche oder personenbezogene Daten entferneneigenständiges Löschprojekt mit Datenschutzfolgeabschätzung und Audit

Modellbearbeitung kommt als Test infrage, wenn das Unternehmen ein Open-Weight-Modell selbst betreibt, nur wenige stabile Assoziationen ändert und benachbarte Antworten prüfen kann. Für ein Modell, das nur über eine externe API erreichbar ist – etwa ein gehostetes Frontier-Modell – scheidet das Verfahren aus: Die Kundin kann dessen Matrizen nicht ändern.

Wer tatsächlich Gewichte ändern will, braucht einen Kontrollsatz, einen versionierten Modellstand, Monitoring und einen Rollback-Plan. In regulierten Branchen gehört das in Change- und Freigabeprozesse, vergleichbar mit anderen produktiven IT-Änderungen.

Was über Modellbearbeitung ausdrücklich nicht gelingt, ist die Löschung personenbezogener Daten. Nach Art. 17 DSGVO und dem BDSG bedeutet Löschen, dass die Daten nicht mehr verarbeitet werden können und eine Wiederherstellung ausgeschlossen ist. Dafür müssen Unternehmen die Daten aus Trainingsbeständen, Caches und Produktivsystemen entfernen, Zugriffe beschränken, mögliche Extraktionswege prüfen und das Ergebnis gemeinsam mit Datenschutzbeauftragten, Informationssicherheit und Rechtsabteilung dokumentieren. Maßgeblich ist ein Löschkonzept, nicht ein einmaliger Eingriff in eine Gewichtsmatrix. Wie wir solche Anforderungen together mit Governance- und Compliance-Verfahren umsetzen, beschreiben wir unter Compliance & Data Privacy.

Modellbearbeitung eignet sich als Pilot für Organisationen, die eigene Gewichte kontrollieren. Aktuelle Geschäftsdaten gehören zuverlässiger in externe Systeme – in SAP, Fachanwendungen und nachvollziehbar gepflegte Wissensquellen.

Häufige Fragen

Wo liegen Fakten in einem Sprachmodell?

Nicht als abrufbare Datensätze. Parametrisches Wissen verteilt sich über Zahlenmatrizen, die auf jeder Transformer-Schicht die Token-Wahrscheinlichkeiten verschieben. Unser Experiment zeigt: Wir konnten eine Matrix so verändern, dass das Modell in fünf geprüften Formulierungen Rom statt Paris wählt – eine einzelne „Fakt-Zelle“ gibt es darin nicht.

Kann man mit ROME einen einzelnen Fakt sauber ersetzen?

Nein. ROME bearbeitet eine komplette FFN-Matrix, die an vielen Verknüpfungen beteiligt ist. In unserem Test verzerrten sich weitere Fakten zum Eiffelturm (Architekt, Material, Baujahr), und benachbarte Sehenswürdigkeiten verschoben sich messbar. Wer Modellbearbeitung einsetzt, braucht deshalb eine Kontrollfrage-Sammlung, Monitoring und einen Rollback-Plan.

Funktioniert Modellbearbeitung auch bei ChatGPT oder Claude?

Nein. Bei gehosteten Modellen hat die Anwenderin keinen Zugriff auf die Gewichte. Eine Anweisung im Prompt bleibt Kontext und verschwindet mit dem Chatverlauf. Dauerveränderungen sind nur bei offenen Modellen möglich, deren Matrizen man selbst betreibt und versioniert.

Kann Modellbearbeitung personenbezogene Daten DSGVO-konform löschen?

Nein. Nach Art. 17 DSGVO verlangt Löschen, dass Daten nicht mehr verarbeitet und nicht wiederhergestellt werden können. Ein einmaliger Eingriff in eine Gewichtsmatrix erfüllt das nicht – maßgeblich ist ein Löschkonzept über Trainingsbestände, Caches und Produktivsysteme. Solche Projekte gehören in Compliance- und Governance-Prozesse mit Datenschutzfolgeabschätzung und Audit.

Weiterlesen

Verwandte Artikel & Fallstudien

[Data Governance]

5 Min. Lesezeit

Data Governance im Finanzsektor: Automatisierte Lineage und BCBS 239 / Basel III Compliance

Wie Finanzinstitute BCBS 239 Anforderungen mit automatisierter Data Lineage, dbt-Tests und zentralem Katalog erfüllen – compliance-by-design in der Datenplattform statt manueller Excel-Nachweise.

  • [Data Governance]
  • [BCBS 239]
  • [DSGVO]
  • [dbt]
  • [Unity Catalog]
  • [Lineage]
Artikel lesen
[Data Engineering]

5 Min. Lesezeit

Event-Driven Data Engineering: Echtzeitverarbeitung mit Apache Kafka und Flink in der Praxis

Wann sich Event-Streaming mit Apache Kafka und Apache Flink lohnt, wie eine robuste Referenzarchitektur vom Sensor bis ins Lakehouse aussieht und welche Betriebsthemen den Projekterfolg entscheiden.

  • [Kafka]
  • [Flink]
  • [Streaming]
  • [Snowflake]
  • [dbt]
Artikel lesen

Erstgespräch vereinbaren

Planen Sie eine ähnliche Datenarchitektur?

Unsere Berater und Ingenieure konzipieren, implementieren und stabilisieren geschäftskritische Datenplattformen – von der ersten Architektur-Skizze bis zum produktiven Betrieb.