Om aan Europese regelgeving te voldoen gaat OpenAI, het moederbedrijf van ChatGPT, een onzichtbaar watermerk toevoegen aan teksten van ChatGPT. Dat meldde Nu.nl vorige week. Het is niet nieuw: ook Claude van Anthropic en Gemini van Google gebruikt dit. Maar ChatGPT is natuurlijk wel de grote marktleider.
De regelgeving in kwestie is natuurlijk de AI Act of AI-verordening, die in artikel 50 lid 2 eist dat
Aanbieders van AI-systemen, met inbegrip van AI-systemen voor algemene doeleinden, die synthetische audio-, beeld-, video- of tekstinhoud genereren, zorgen ervoor dat de outputs van het AI-systeem worden gemarkeerd in een machineleesbaar formaat en detecteerbaar zijn als kunstmatig gegenereerd of gemanipuleerd.Bij beeld is dit al langer bekend: door pixelmanipulatie kun je een onzichtbaar patroon aanbrengen dat je – als je weet waar je op moet letten – dan kunt herkennen. De standaard op dit gebied heet Content Credentials, dat is dat ronde logo linksboven met ‘cr’ erin op LinkedIn bijvoorbeeld.
Voor tekst is dit wat lastiger. Er zijn experimenten geweest met onzichtbare tekens in de plaats van spaties of hier en daar een letter veranderen in een Unicode-teken dat op die letter lijkt. Maar dat is triviaal met een filter er weer uit te halen.
Google lanceerde ongeveer een jaar geleden SynthID, en dat werkt wel wezenlijk anders. Taalmodellen stellen teksten samen op basis van waarschijnlijkheden. Bij ieder volgend woord zijn er dus meerdere kandidaten. SynthID beïnvloedt de keuze van die kandidaat door woorden met een specifieke waarschijnlijkheid hoger te plaatsen. De tekst is dan nog steeds (vrijwel) hetzelfde, maar met geheime kennis (die alleen bij Google ligt) is achteraf te reconstrueren dat die keuzes beïnvloed zijn.
Anthropic gebruikt sinds augustus een variant, en OpenAI lijkt dat nu ook te doen al bevestigen ze dat niet letterlijk. Maar veel alternatieven zijn er niet.
Is het te verwijderen? Niet eenvoudig: je moet grofweg genoeg woorden veranderen die door het algoritme zijn beïnvloed om de detectie te laten falen. Maar je weet niet welke dat zijn. Bij een korte, heel zakelijke tekst lukt dat wellicht nog, maar wie een gehele roman door Ome Sjet laat ghostwriten heeft echt een probleem: de detector zal rood aanslaan.
Datzelfde aanslaan gebeurt als je zelf een tekst maakt en ChatGPT er “even naar laat kijken”, zoals bij een ruwe tekst laten herschrijven naar taalniveau B1 of de stijlgids van het vaktijdschrift. Het watermerk maakt geen onderscheid tussen “deze tekst is 100% door ChatGPT geproduceerd” en “hier zijn diverse zinnen herschreven”.
De stap geeft veel herrie, en ik denk met name vanwege dat laatste: als jij iets maakt en je laat je door AI assisteren, wordt dat nu net zo ontvangen als een AI-sloptekst die jij blind doorzette naar de klant (of lezer). Want de detector zegt “komt uit ChatGPT”. Niet de bedoeling, wel het effect.
Arnoud
De grootste herrie is dat wij gevraagd worden om onze teksten door AI te laten redigeren.
En toegegeven, voor een groot aantal collegas, waaronder ik zelf, is dat een verbetering.
Deze techniek werkt echter door bepaalde woorden te vervangen door synoniemen die minder waarschijnlijk zijn. Wij hebben een stijl gids waarin onder andere een lange woordenlijst staat waarin bepaald wordt welke synoniem wij consistent moeten gebruiken.
De angst hier is dat dit systeem daar mee rommelt en dus onbruikbaar wordt.
Daarnaast is het van de zotte dat wij een e-mail of memo schrijven, de ai een paar tekstuele suggesties laten doen en dan moeten melden dat de tekst door een a.i. is gemaakt. Dat is met een geweer op een mug schieten.
Er staat in lid 2 niet dat jij het moet melden, er staat dat de softwaremaker het in de LLM moet inbakken. Lid 4 vereist dat wel van je als ‘wordt gepubliceerd om het publiek te informeren over aangelegenheden van algemeen belang’, en ook dan niet als een mens meeleest / redactionele verantwoordelijk draagt.
Als je collega’s niet eens de moeite nemen om de tekst die onder eigen naam wordt geplaatst te lezen, dan klinkt het als een schoolvoorbeeld van waarom het wel nodig is de bron te vermelden. 😉
Ik vraag me af in hoeverre de techniek werkt als er wel achteraf wordt gelezen en geredigeerd. In de begindagen van de LLM’s las ik de gegenereerde teksten en typte het in mijn woorden over. Zowel voor controle, als überhaupt in het eigen hoofd krijgen wat ik ga sturen.
Dan is men in het beleid bij ons dus te streng.
Zodra wij een a.i. gebruiken komt erbij te staan dat het met behulp van a.i. gemaakt is. Ondanks dat wij dus zelf altijd de eindredactie en verantwoordelijkheid hebben over de teksten.
Waarschijnlijk dus gewoon een overdaad aan voorzorg: beter te veel dan te weinig gedaan.
Die angst is gelukkig grotendeels ongegrond.
Je woorden worden nu ook al door een LLM met een gewogen dobbelsteen gekozen uit de groep woorden die de LLM het meest waarschijnlijk vindt als volgende woord. Wat de watermarkering doet is (een heel klein beetje) draaien aan de kansen van de dobbelsteen, aan de hand van een sleutel. Als een volgend woord (bijvoorbeeld een woord uit je synoniemenlijst die je in je prompt hebt gestopt) toch al heel waarschijnlijk was gaat het watermerk daar hoogstwaarschijnlijk niets aan veranderen. Alleen als meerdere woorden waarschijnlijk zijn kan je dobbelsteenworp iets anders uitvallen dan zonder watermarkering, maar dan was het dus altijd al een gok die beide kanten op kon vallen.
Overigens een kleine correctie op het artikel: Content Credentials is geen watermarkering, het is (gesigneerde) metadata-markering. Er wordt dus niets aan de pixels veranderd. TrustMark en SynthID-Image zijn wel voorbeelden van watermarkeringen van plaatjes die de pixels aanpassen.
Voor wie het interessant vindt is de EU Code of Practice on Transparency of AI-generated Content de moeite waard om te lezen. Je ziet daar dat de Code, daar waar dat mogelijk is, voor Providers dubbele markering voorschrijft: metadata-markering én watermarkering.
Bij een afbeelding kan dat, maar bij platte tekst valt er inderdaad geen metadata aan een bestand te hangen omdat er überhaupt geen bestand is. Daarom blijft voor tekst alleen watermarkering over.
Als je een heel strikte woorden lijst hanteert voor heel veel keuzes voor vaktermen en gewone woorden als document aan de prompt mee geeft en specifiek taalgebruik afdwingt (altijd actief, altijd informeel, geen zinnen langer dan X etc…), fietst dat dan niet dwars door het kanssysteem heen? Dus het systeem is bruikbaar, maar de a.i. detectie wordt minder goed?
Als ik het goed begrijp is het ook geen onderdeel van het model, maar van de server die het model draait. Dus als je met een open weight model en vLLM of Llama.cpp de tekst herschrijft zou je ook van de markering af moeten zijn.
Klopt! En ja, de AI-detectie werkt minder goed op teksten die minder entropie hebben (dus strak woordgebruik, programmeercode, boilerplate, etc.). Maar je moet je voorstellen dat de detectie een optelsom is van allemaal hele kleine signalen over de woorden in je tekst. Dus als je tekst lang genoeg is, dan komt het totale signaal er alsnog wel doorheen.
Dit is ook de reden dat Code of Practice geen watermerk vereist voor teksten korter dan 200 tokens en ook de mogelijkheid openlaat om de detectieoplossing alleen voor expertgebruikers open te stellen als de detectiebetrouwbaarheid minder betrouwbaar is.
De reactie is een tekstanalyse van taalmodel uitvoer die achterhaalt welke woorden je door synoniemen moet vervangen om de detector stil te houden. Lijkt me een klusje dat AI agenten kunnen uitvoeren.