Journal / Engineering

Wie LLM-Wasserzeichen in KI-Texten unsichtbar bleiben

Der EU AI Act verpflichtet Anbieter gewisser KI-System ihren generierten Output (egal in welchem Medium, ob Text, Bild, Audio oder Video) im Rahmen der technischen Möglichkeiten mit einem Wasserzeichen zu markieren. Anthropic hat hier als erster großer Anbieter reagiert und angekündigt, dass zukünftige Versionen ihres Sprachmodells Claude Wasserzeichen in Texten einbetten werden. Dazu wird eine Version des von Google DeepMind entwickelten Tools SynthID verwendet, dessen Textvariante in dem 2024 Paper Scalable watermarking for identifying large language model outputs besprochen wird, auf das wir weiter unten im Detail eingehen.

Die Technologien unterscheiden sich nochmal stark zwischen den Medien. Bei Bildern muss das Wasserzeichen sehr robust sein gegenüber Filtern wie Weichzeichner, Rauschen oder Verzerrung, die für den Menschen kaum wahrnehmbare Manipulationen vornehmen können, von denen trotzdem fast alle einzelnen Pixel betroffen sind. Bei Text gibt es viel weniger Möglichkeiten zur automatisierten Verfremdung, deshalb können Wasserzeichen hier sehr direkt mit der konkreten Auswahl und Reihenfolge von Wörtern arbeiten. Natürlich stellt sich die Frage, wie stark die Textqualität davon beeinträchtigt wird, daher ist es vielleicht überraschend, dass Wasserzeichen in vielen Szenarios tatsächlich komplett unsichtbar, also ohne statistische Auffälligkeiten, realisierbar sind.

Modelle generieren Wahrscheinlichkeiten, keine Tokens

Dazu kurz etwas Grundlegendes: Das LLM selber gibt keine einzelnen Tokens aus, sondern eine Zuordnung aller Tokens im Vokabular auf Zahlen (Logits), wobei größere Zahlen eine Art Präferenz ausdrücken. Danach werden diese Logits durch einen Algorithmus in Wahrscheinlichkeiten übersetzt, hier kommen noch weitere Parameter wie Temperatur zum Einsatz. Wir können also das LLM zusammen mit dem Sampling-Algorithmus als Generator von Wahrscheinlichkeiten betrachten, in Folge auch Modell bzw. Modellwahrscheinlichkeit genannt. Nehmen wir an, das Modell hat bereits Die Katze sitzt auf generiert und wir behandeln der Einfachheit halber jedes Wort als einen Token. Für das nächste Wort wird vielleicht dem mit einer Wahrscheinlichkeit von 60%60\% ausgegeben, während einem eine Wahrscheinlichkeit von 40%40\% bekommt. Führt man dieselbe Generierung immer wieder aus, bekommt man in sechs Fällen Die Katze sitzt auf dem und in vier Fällen Die Katze sitzt auf einem. Natürlich beruhen die Modellwahrscheinlichkeiten auf dem gesamten Kontextfenster, also typischerweise sehr viel mehr als nur diesem einen Satz.

Genau hier setzen die Wasserzeichen an, denn grob gesagt, überall dort, wo wir es mit Wahrscheinlichkeiten zu tun haben, entsteht Spielraum um Information unsichtbar einzubetten. Das folgende vereinfachte Verfahren lehnt sich an eine tatsächlich erforschte Klasse von Wasserzeichen-Ansätzen an, entspricht aber nicht dem konkreten SynthID-Text-Verfahren. Es berechnet aus einer fixen Anzahl nn von vorausgegangenen Tokens einen geheimen Hash, das ist im Prinzip nichts anderes als eine schwer nachvollziehbare aber deterministische Funktion, die eine große Zahl oder einen String zurückgibt. Aus dieser Information können alle möglichen weiteren Objekte berechnet werden, im einfachsten Fall eine Zuordnung von allen Tokens im Vokabular auf Bits (also 0 oder 1). Das heißt z. B. im Fall n=4n=4 betrachtet man die letzten vier Tokens Die Katze sitzt auf und bekommt daraus eine Zuordnung, die könnte etwa so aussehen: { "dem": 0, "einem": 1, ... }. Die Wasserzeichen-Methode versucht dann in Folge die positiven Tokens zu bevorzugen, aber so, dass gemittelt über alle möglichen Bit-Zuordnungen genau die ursprünglichen Wahrscheinlichkeiten ausgeben wird. In unserem Fall würden wir also einen Bias zu einem feststellen. Bei einem anderen Satzanfang wie Der Hund sitzt auf wäre die Zuordnung eine andere und könnte beispielsweise dem bevorzugen. Aber würfelt man den Hash, anstatt ihn zu berechnen, bekommt man immer genau die vom Modell angedachte Verteilung.

Das Wasserzeichen bleibt wirklich meistens unsichtbar

Das mag auf den ersten Blick so wirken, als ob sich dadurch eine wahrnehmbare Veränderung in den statistischen Mustern des Textes ergeben könnte. Das stimmt aber nur bedingt, um das zu verdeutlichen, denken wir an ein Brettspiel. Man könnte sich ein Spiel wie Mensch ärgere Dich nicht vorstellen, bei dem sich ein magischer Würfel von der aktuellen Spielposition beeinflussen lässt. Die Regeln des Würfels folgen aber keiner sichtbaren Struktur und über alle Positionen gemittelt, werden die sechs Augenzahlen gleich wahrscheinlich ausgegeben. Würde man eine einzige Partie mit diesem Würfel spielen, könnte man keinerlei statistische Auffälligkeit feststellen, es sei denn, eine Position wiederholt sich. Aber jemand, der die Regeln des Würfels kennt, könnte aus dem Spielprotokoll heraus mit hoher Sicherheit feststellen, ob der Würfel verwendet wurde, selbst wenn nur in Abschnitten des Spiels.

So ähnlich ist auch bei den Wasserzeichen die einzige Möglichkeit Unregelmäßigkeiten festzustellen (ohne den Text mehrfach zu generieren), wenn dieselbe Folge von nn Tokens im Text wiederholt vorkommt. So könnte etwa nach dem Fragment in anderen Worten, öfter ein neuer Halbsatz mit die eingeleitet werden als mit das, weil der Hash hier die präferiert, obwohl das Modell selber keine starke Präferenz hat. Aber selbst das ist nicht so einfach, weil das Modell auch gegensteuern und nach einem Halbsatz mit die eine sehr hohe Priorität darauf legen könnte, den nächsten Halbsatz mit das anfangen zu lassen.

Wichtig ist auch, dass für die Verifikation des Wasserzeichens, die Modellwahrscheinlichkeiten nicht mehr benötigt werden (obwohl sie natürlich nützlich wären). Für jeden natürlich generierten Text sollte im Durchschnitt die Hälfte der Tokens durch den Hashingalgorithmus eine positive Markierung erhalten. Für die Verifikation wird einfach überprüft, wie stark das Wasserzeichen-Signal von der 50%50\%-Baseline abweicht. In Zusammenhang mit der Länge des Texts kann man die Wahrscheinlichkeit, dass ein unmarkierter Text ein entsprechend starkes Signal erzeugt, berechnen, als die Wahrscheinlichkeit, dass eine Reihe von fairen Münzwürfen ein ähnliches Signal erzeugt. Ist diese Wahrscheinlichkeit sehr gering, handelt es sich wohl um einen Text, der zumindest in Fragmenten von einem mit dem Wasserzeichen versehenen Modell generiert wurde.

Die mathematisch spannende Frage: Wie viel Signal lässt sich per Token verstecken, ohne die Gesamtwahrscheinlichkeit zu stören? Der einfachste Fall ist eine Gleichverteilung, sagen wir, das Modell gibt an einer Stelle vier Tokens mit gleicher Wahrscheinlichkeit aus, dann kann man sich die Markierung durch die Hashes berechnen, und wenn zumindest ein Token mit einer 1 markiert wird, wählt man gleichverteilt eines von den so markierten Tokens aus, und nur in dem Fall, dass alle vier Tokens mit 0 markiert werden, was nur in einem von 16 Fällen passiert, wählt man zufällig einen von allen vier Tokens aus. In diesem Beispiel erhalten 15 von 16 generierten Tokens die korrekte Markierung, was einem Signal von 93,75%93,75\% entspricht.

Wenn dagegen ein einzelner Token vom Modell bevorzugt wird, verkleinert sich der Spielraum. Hat ein Token etwa eine Modellwahrscheinlichkeit von 60%60\%, und findet der Algorithmus einen optimalen Weg, den Token immer auszuwählen, wenn er eine positive Markierung erhält, so tritt dies trotzdem nur in 50%50\% der Fälle ein. In 10%10\% der restlichen Fälle muss der Token auch mit einer negativen Markierung ausgewählt werden. Dadurch beträgt das Wasserzeichen-Signal höchstens 90%90\%, unabhängig davon, wie sich die restlichen Wahrscheinlichkeiten auf die anderen Tokens verteilen.

Grenzen in der Praxis

Gerade Computercode, bei dem viele Tokens schon von der Syntax vorgegeben sind, könnte ein schwächeres Signal aufweisen als Prosa, doch auch hier gibt es noch Entropiequellen wie Kommentare oder Variablennamen. Aber lässt man das Modell einfach die Zahlen von eins bis zehn oder das Alphabet ausgeben, gibt es keine Möglichkeit, ein Wasserzeichen-Signal in der Antwort zu verstecken.

Zerstören lässt sich das Signal sicher durch Übersetzung oder ähnlich invasive Transformationen, die die Abfolge von Tokens sehr stark verändern. Fragmentierung alleine, wie etwa Kopieren von Abschnitten aus einem markierten Text, könnte das Signal hingegen noch erhalten, wenn die Textabschnitte groß genug sind. Wird der Hash aus den letzten nn Tokens berechnet, so verlieren nur die ersten nn Tokens eines Textblocks das Signal, wenn dieser kopiert und in einem anderen Kontext eingefügt wird. Jedoch gibt es noch andere Methoden, einen Hash zu berechnen, und gerade diese technischen Details könnten in der Umsetzung nochmal von dem vorgestellten Paper abweichen.

Ein vereinfachtes Modell

Die folgende Demo macht den Fall mit zwei Tokens konkret. Mit dem Regler lässt sich die Modellwahrscheinlichkeit zwischen den Tokens AA und BB verschieben. Die vier Zeilen darunter stehen für die vier gleich wahrscheinlichen Hash-Zustände 00, 01, 10 und 11: Das erste Bit markiert AA, das zweite BB. Der Balken jeder Zeile zeigt, wie oft der Algorithmus in diesem Zustand AA oder BB auswählt. Über alle vier Zustände gemittelt bleibt dabei immer die am Regler eingestellte Modellwahrscheinlichkeit erhalten, wie auch an der Gesamtlänge der dunkel eingefärbten Abschnitte über alle vier Balken erkannt werden kann.

Das Wasserzeichen-Signal gibt an, welcher Anteil der ausgewählten Tokens eine positive Markierung trägt. Je weiter die Modellwahrscheinlichkeit von einer Gleichverteilung entfernt ist, desto weniger Spielraum hat der Algorithmus und desto schwächer wird dieses Signal. Zwischen 25%25\% und 75%75\% erreicht das Signal sein Maximum von 75%75\%.

Die Stärke lässt sich auf verschiedene Arten zusammenfassen, die Demo verwendet dafür beispielhaft den erwarteten P-Wert nach zehn Tokens.2 Für die grundlegende Aussage ist diese konkrete Kennzahl nicht entscheidend, nur je höher die Dichte positiver Markierungen, desto deutlicher lässt sich ein markierter von einem unmarkierten Text unterscheiden.

Modellwahrscheinlichkeit bei zwei Tokens
75% A25% B

Vier gleich wahrscheinliche Hash-Zustände

Wasserzeichen-Signal

% positive Tokens
Maximal erreichbares Signal für diese Zwei-Token-Verteilung. Entspricht den beiden grünen Anteilen im Balken.

Erwarteter P-Wert nach 10 Tokens

Gemittelte Chance, dass 10 faire Münzwürfe mindestens ebenso viele positive Tokens liefern. Siehe Fußnote für Details.

Besseres Signal durch mehr Bits und Turnier-Sampling

Allgemein wäre es noch besser, wenn aus dem Hash mehr Information als nur ein einzelnes Bit gewonnen würde. Bei einer Markierung mit einzelnen Bits liegt die Wahrscheinlichkeit, ohne Kenntnis der Markierung zufällig einen positiv markierten Token zu erzeugen, immer bei 50%50\%. Selbst ein optimal markierter einzelner Token ist daher statistisch noch kein besonders starkes Signal, denn ein natürlich generierter Token würde in 50%50\% der Fälle genauso gut aussehen.

So einen Ansatz verfolgen die Autor*innen des oben genannten Papers Scalable watermarking for identifying large language model outputs. Statt jedem Token nur ein Bit zuzuordnen, wird jeder Token mit einer Markierung aus mm unabhängigen Bits versehen. Danach wird ein Turnier veranstaltet: Zu Beginn werden 2m2^m Tokens gemäß der Modellwahrscheinlichkeit gezogen, in Paare unterteilt, und in jedem Paar treten die beiden Tokens gegeneinander an. Dabei wird das erste Bit ihrer jeweiligen Markierung betrachtet, falls die Bits unterschiedlich sind, gewinnt das positiv markierte Token, sonst wird das Gewinnertoken über einen fairen Münzwurf ausgewählt. Über alle Hashes gemittelt, entsprechen diese Gewinner-Tokens weiterhin der Modellwahrscheinlichkeit.1 Nun bleiben noch 2m12^{m-1} Tokens für die nächste Runde übrig, für die jetzt das zweite Bit der Markierung verwendet wird. Ein einfacher Fall mit nur zwei Tokens und drei Bits ist hier interaktiv dargestellt, wobei wir nicht den ganzen Turnierbaum zeichnen sondern jede Ebene als Kreisdiagramm darstellen, das nur die Tokenwahrscheinlichkeit auf diese Ebene angezeigt:

Finale Wahrscheinlichkeit von AModellwahrscheinlichkeit von A
Jedes Kreisdiagramm zeigt die Wahrscheinlichkeit von A (dunkel) oder B (hell). In jeder Runde gewinnt Grün (1) gegen Rot (0); bei gleichen Bits entscheidet eine faire Münze zwischen den beiden Kandidaten. Jede Runde kombiniert zwei unabhängige Kandidaten aus der vorherigen Verteilung. Jeder Pfeil zeigt eine Runde: Beide Kreisdiagramme verwenden dieselben Bits. Zwischen den Runden bleibt die Wahrscheinlichkeit gleich; nur die Bit-Farben ändern sich.Runde 1AB 75% A · 25% B 93,8% A · 6,3% B Runde 2AB 93,8% A · 6,3% B 87,9% A · 12,1% B Runde 3AB 87,9% A · 12,1% B 98,5% A · 1,5% B
A:101+23,5%
B:010−23,5%

Dort, wo im Plot die Line über der Diagonale verläuft, wird die finale Wahrscheinlichkeit von A gegenüber der Modellwahrschienlichkeit angehoben, und im umgekehrten Fall wird die Wahrscheinlichkeit von B angehoben. Bei manchen Hashzuständen kann man sehen, dass die Line einmal die Diagonale kreuzt, das ist dann interessant, denn hier entscheidet zusätzlich die Modellwahrschienlichkeit, welches Token mit einer im Vergleich zum Modell erhöhten Wahrscheinlichkeit ausgegeben wird. Man sieht aber auch, dass im Allgemeinen die Tokens mit mehr positiven Bits in der Markierung auch wahrscheinlicher ausgewählt werden.

Für die Verifikation kann man also entweder ganz naiv die positiven Bits in den Markierungen zählen, oder die Positionen der Bits unterschiedlich gewichten. In dem Paper wird eine stärkere Gewichtung von früheren Bits diskutiret, als auch die Möglichkeit, einen bayesschen Detektor zu trainieren, der Muster in den Bits nutzt, um markierte von unmarkierten Texten zu unterscheiden.

Unabhängig von den Details in diesem Verfahren, lässt sich sagen, dass mit mehr aus dem Hash extrahierter Information in der Markierung auch das Wasserzeichensignal verbessert werden kann. Insbesondere treten seltener Gleichstände in der Markierung auf und höhere Entropie in der Modellwahrscheinlichkeit lässt sich besser ausnutzen, so wird auch das Plateau zwischen 25%25\% und 75%75\% aus dem vorherigen Beispiel eliminiert und Wahrscheinlichkeiten um die 50%50\% können jetzt ein noch stärkeres Signal erzeugen. Man könnte das Prinzip natürlich noch weiterdenken und z. B. ein komplettes Ranking aller Tokens aus dem Hash berechnen, so dass Gleichstände von Anfang an ausgeschlossen sind, aber hier geht es neben der statistische Qualität auch auch um den rechnerischen Aufwand sowohl in der Erzeugung als auch Detektion des Wasserzeichens.


Wir beschäftigen uns bei Infound damit, wie sich aktuelle KI-Forschung in belastbare Produkte, verständliche Interfaces und verantwortungsvolle Anwendungen übersetzen lässt. Wenn du dabei bist ein KI-System zu konzipieren, evaluieren oder für regulatorische Anforderungen vorzubereiten, melde dich gerne mit aktuellen Fragen oder Herausforderungen bei uns.

interactive@infound.at

  1. Betrachten wir ein Token AA mit Ausgangswahrscheinlichkeit pp. Das Paar (A,A)(A,A) entsteht mit Wahrscheinlichkeit p2p^2 während ein gemischtes Paar das AA enthält mit Wahrscheinlichkeit von 2p(1p)2p(1-p) gezogen wird. Im gemischten Paar gewinnt AA, über alle Markierungen gemittelt, in der Hälfte der Fälle. Damit beträgt die Wahrscheinlichkeit, dass AA aus einem bestimmten Paar heraus in der nächsten Runde übertritt genau p2+p(1p)=pp^2 + p(1-p) = p. Somit folgt die Verteilung der Tokens wieder der ursprünglichen Verteilung.

  2. Der P-Wert beantwortet grundsätzlich die Frage, wie wahrscheinlich ein unter der Nullhypothese gezogenes Ereignis auf einer entsprechenden Skala besser oder gleich gut abschneidet als das beobachtete Ereignis. Ein hoher P-Wert liefert also keinen starken Hinweis gegen die Nullhypothese und ist nicht anzustreben. In unserem Fall wäre die Nullhypothese ein unmarkierter Text und es bietet sich an, für die Skala die Dichte positiver Markierungen zu verwenden, aber bei 50%50\% abzuschneiden, da kleinere Werte keine Aussagekraft haben. Das heißt, für jeden Text mit einer Dichte positiver Tokens von 50%50\% oder darunter ist der P-Wert 100%100\%. Jedoch können auch im völlig deterministischen Fall, wo effektiv kein Wasserzeichen vorhanden ist, zufällig mehr als 50%50\% positive Markierungen auftreten, sodass der P-Wert kleiner wird. Deshalb ist der erwartete P-Wert niemals 100%100\%, sondern liegt bei maximal etwa 72%72\%. Eine noch aussagekräftigere Statistik würde getrennt die Wahrscheinlichkeit von false positives als auch von false negatives berücksichtigen.

Infound
Design & Technology Studio

Schloßgasse 6–8, 1050 Wien, Österreich

Projekte & Kunden

Unternehmen