Schema: Ein Text wird in Anfang, Mitte und Ende zerschnitten; darunter die für das Training umsortierte Reihenfolge Anfang, Ende, Mitte mit Spezialtoken dazwischen, gefolgt von der vom Modell erzeugten Mitte.

Fill-in-the-Middle

Fill-in-the-Middle ist eine Trainingsmethode, bei der ein Textmodell lernt, eine Lücke zwischen zwei vorhandenen Textstücken zu füllen. Sie ist der Grund, warum Programmierassistenten sinnvolle Vorschläge machen können, wenn der Cursor mitten in einer Datei steht.

Die meisten Sprachmodelle, also Programme, die Texte Wort für Wort fortsetzen, arbeiten nur in eine Richtung. Sie sehen den Text links vom Cursor und raten, was als Nächstes kommt. Im Alltag reicht das oft nicht. Wer eine E-Mail überarbeitet oder in einer Programmdatei etwas ergänzt, steht meistens mitten im Text, und rechts steht schon etwas. Fill-in-the-Middle ist ein Trick, mit dem ein solches Modell trotzdem lernt, eine Lücke zwischen einem Anfang und einem Ende zu füllen. Der Name sagt es wörtlich: Fülle die Mitte.

Warum der Cursor selten am Ende steht

Beim Programmieren ist der typische Fall nicht das leere Blatt. Man hat eine Datei mit fünfhundert Zeilen und will in Zeile 212 eine Funktion einfügen. Ein Modell, das nur nach links schaut, kennt die Zeilen darunter nicht. Es weiß dann nicht, welche Variablen später noch gebraucht werden oder wie die Datei endet. Die Vorschläge werden dadurch messbar schlechter.

Mit Fill-in-the-Middle sieht das Modell beide Seiten. Es erkennt, dass unterhalb der Lücke schon eine schließende Klammer steht, und produziert keine zweite. Es sieht, dass weiter unten eine Variable namens ergebnis verwendet wird, und benennt seine Rückgabe passend. Das ist kein kosmetischer Unterschied, sondern entscheidet darüber, ob ein Vorschlag übernommen oder weggeklickt wird.

Der Ansatz gilt inzwischen als Standard für Code-Modelle. Fast alle bekannten Programmierassistenten wurden mit dieser Methode zusätzlich trainiert. Der Aufwand dafür ist gering, der Gewinn an Brauchbarkeit groß.

Der Text wird umsortiert, nicht das Modell umgebaut

Der eigentliche Trick ist erstaunlich simpel. Man nimmt beim Training einen normalen Text und schneidet ihn an zwei zufälligen Stellen. So entstehen drei Teile: Anfang, Mitte, Ende. Dann schreibt man sie in geänderter Reihenfolge auf, nämlich erst Anfang, dann Ende, dann Mitte. Zwischen die Teile setzt man besondere Markierungen, sogenannte Spezialtoken, die dem Modell sagen, welcher Abschnitt gerade beginnt.

Für das Modell bleibt die Aufgabe damit die alte: Text von links nach rechts fortsetzen. Nur steht am Ende der Eingabe jetzt die Mitte, und genau die soll es erzeugen. Das Modell selbst muss nicht umgebaut werden, nur die Trainingsdaten werden anders angeordnet. Deshalb lässt sich Fill-in-the-Middle leicht mit gewöhnlichem Training mischen, typischerweise bei einem Teil der Beispiele.

Ein Vergleich hilft: Es ist wie bei einem Lückentext im Sprachunterricht. Man bekommt Satzanfang und Satzende und muss das fehlende Wort einsetzen. Ein häufiger Irrtum ist, Fill-in-the-Middle mit dem Maskieren bei älteren Modellen wie BERT zu verwechseln. Dort wurden einzelne Wörter verdeckt und einzeln geraten. Hier entsteht ein ganzer zusammenhängender Abschnitt beliebiger Länge.

Autovervollständigung in Editoren und Chatfenstern

Am deutlichsten sichtbar ist die Technik in Code-Editoren. Wenn in Visual Studio Code, Cursor oder einem ähnlichen Programm ein grauer Vorschlag erscheint, während der Cursor mitten im Code steht, arbeitet im Hintergrund meist ein Modell mit Fill-in-the-Middle-Fähigkeit. Der Editor schickt den Text oberhalb und unterhalb der Cursorposition an das Modell. Zurück kommt nur das fehlende Stück.

Auch außerhalb des Programmierens taucht das Prinzip auf. Schreibwerkzeuge, die einen Absatz in einen bestehenden Text einfügen, nutzen dieselbe Idee. Ebenso Systeme, die Lücken in Formularen oder Vorlagen ergänzen. In technischen Beschreibungen von Modellen findet man dann Hinweise wie FIM-Training oder Infilling-Support.

In Nachrichten über neue Code-Modelle wird Fill-in-the-Middle oft als Merkmal genannt, das ein Modell überhaupt erst für den Einsatz in Editoren qualifiziert. Fehlt diese Fähigkeit, taugt ein Modell zwar für Chatfenster, aber schlecht für die laufende Arbeit in einer Datei. Für Firmen, die solche Werkzeuge verkaufen, ist das ein handfester Unterschied.

Subscribe free. Unsubscribe the second it sucks.

High-signal news across AI, business, UX, and tech. Every morning.