Zurück zum Archiv
#ai#llm#glossary#aigen

Kausale Maskierung

Du trainierst ein Modell, „eine Katze“ nach „Ala hat“ hinzuzufügen. Im fertigen Beispiel existiert „eine Katze“ bereits. Könnte das Modell bei der Vorhersage darauf zugreifen, wäre die Aufgabe scheinbar leicht, würde aber dem Erzeugen einer neuen Antwort nicht ähneln.

Causal Masking blockiert den Informationsfluss von späteren Textpositionen zu früheren. Ein Token ist ein Textstück. Wenn die Position mit „hat“ bei der Vorhersage des nächsten Tokens helfen soll, darf sie „Ala“ und „hat“ nutzen, aber das künftige „eine Katze“ darf ihr Ergebnis nicht beeinflussen.

Das ist eine Zugriffssperre, nicht nur eine Verringerung der Bedeutung des zukünftigen Fragments. Sein Anteil beim Mischen von Informationen muss null sein. Dadurch können beim Lernen viele Positionen gleichzeitig verarbeitet werden, während die Vorhersage ausschließlich auf der verfügbaren Vergangenheit beruht.

Die Maske vermittelt keine Wortbedeutungen und ersetzt kein Positionssignal. Die folgende Tabelle und das Experiment zeigen, welche Verbindungen erlaubt bleiben.

Mechanismus und Details

Die Maske bestimmt zulässige Verbindungen, nicht Wortbedeutungen. Eine verworfene Position erhält nicht einfach etwas weniger Gewicht: Ihr Anteil am Attention-Ergebnis soll null sein. Die TensorFlow-Implementierung zeigt diese Bedingung und vergleicht Ergebnisse für vollständige und verkürzte Sequenzen.

Welche Positionen verfügbar sind

Für drei Positionen erhalten wir:

Query-PositionKey 1Key 2Key 3
1janeinnein
2jajanein
3jajaja

Beim Trainieren der Vorhersage des nächsten Tokens kann die Eingabe [start, A, B] den Zielen [A, B, C] gegenübergestellt werden. Die zweite Position sieht start und A, wenn sie B vorhersagen soll. Der Zugriff auf die aktuelle Eingabeposition verrät also nicht die Antwort. Das veranschaulicht die Verschiebung der Ziele um einen Schritt.

Bei Scaled Dot-Product Attention werden verbotene Vergleichswerte vor Softmax mathematisch durch minus unendlich ersetzt. Maske und Verschiebung beschreiben Vaswani et al., §3.1 und §3.2.3.

Positionskodierung informiert über die Reihenfolge, blockiert aber selbst keinen Zugriff. Eine Padding-Maske löst ein weiteres Problem: Sie ignoriert künstliche Sequenzfüllung unabhängig davon, ob diese in der Zukunft liegt.

Siehe auch: Sequence Packing — beim Zusammenfügen unabhängiger Beispiele bewahrt allein die Sperre zukünftiger Positionen nicht die Grenzen zwischen ihnen.