SynthID: strumenti per il watermarking e il rilevamento di testo generato con LLM

L'intelligenza artificiale generativa (IA generativa) è in grado di generare una gamma più ampia di contenuti altamente diversi su larga scala inimmaginabili in precedenza. Sebbene la maggior parte di questo utilizzo sia per scopi legittimi, si teme che possa contribuire a problemi di disinformazione e attribuzione errata. Il watermarking è una tecnica per attenuare questi potenziali impatti. Le filigrane impercettibili per gli esseri umani possono essere applicate ai contenuti creati con l'IA e i modelli di rilevamento possono assegnare un punteggio a contenuti arbitrari per indicare la probabilità che siano stati contrassegnati da filigrane.

SynthID è una tecnologia di Google DeepMind che applica filigrane e identifica i contenuti creati con l'IA incorporando filigrane digitali direttamente in immagini, audio, testo o video creati con l'IA. SynthID Text è stato reso open source per mettere a disposizione degli sviluppatori il watermarking per la generazione di testo. Puoi leggere il documento su Nature per una descrizione tecnica più completa del metodo.

È disponibile un'implementazione di SynthID Text di livello di produzione in Hugging Face Transformers v4.46.0 e versioni successive, che puoi provare nello spazio di SynthID Text ufficiale. Su GitHub è disponibile anche un'implementazione di riferimento che può essere utile per i manutentori e i collaboratori open source che vogliono applicare questa tecnica ad altri framework.

Applicazione filigrana

In pratica, SynthID Text è un elaboratore di logit, applicato alla pipeline di generazione del modello dopo Top-K e Top-P, che aumenta i logit del modello utilizzando una funzione g pseudocasuale per codificare le informazioni sul watermarking in modo da aiutarti a determinare se il testo è stato generato dal tuo modello, senza influire in modo significativo sulla qualità del testo. Consulta l'articolo per una descrizione tecnica completa dell'algoritmo e per le analisi di come i diversi valori di configurazione influiscono sulle prestazioni.

I filigrane vengono configurati per parametrizzare la funzione g e il modo in cui viene applicata durante la generazione. Ogni configurazione del watermarking che utilizzi deve essere archiviata in modo sicuro e privato, altrimenti il watermark potrebbe essere riproducibile facilmente da altri.

Devi definire due parametri in ogni configurazione della filigrana:

  • Il parametro keys è un elenco di numeri interi casuali univoci utilizzati per calcolare i punteggi della funzione g nel vocabolario del modello. La lunghezza di questo elenco determina il numero di livelli di filigrana applicati. Per ulteriori dettagli, consulta l'appendice C.1 del documento.
  • Il parametro ngram_len viene utilizzato per bilanciare la robustezza e la rilevabilità. Più grande è il valore, più la filigrana sarà rilevabile, con il costo di essere più sensibile alle modifiche. Una lunghezza di 5 è un buon valore predefinito.

Puoi configurare ulteriormente la filigrana in base alle tue esigenze di rendimento:

  • Una tabella di campionamento è configurata da due proprietà, sampling_table_size e sampling_table_seed. Vuoi utilizzare un valore sampling_table_size di almeno \( 2^{16} \) per garantire una funzione g imparziale e stabile durante il campionamento, ma tieni presente che le dimensioni della tabella di campionamento influiscono sulla quantità di memoria richiesta al momento dell'inferenza. Puoi utilizzare qualsiasi numero intero come sampling_table_seed.
  • Gli n-grammi ripetuti nei token context_history_size precedenti non sono contrassegnati da filigrana per migliorare la rilevabilità.

Non è necessario alcun addestramento aggiuntivo per generare testo con una filigrana SynthID Text utilizzando i tuoi modelli, ma solo una configurazione della filigrana che viene passata al metodo .generate() del modello per attivare il processore di logit di SynthID Text. Consulta il post del blog e Space per esempi di codice che mostrano come applicare una filigrana nella libreria Transformers.

Rilevamento e verificabilità della filigrana

Il rilevamento della filigrana è probabilistico. Un rilevatore bayesiano è fornito con Hugging Face Transformers e su GitHub. Questo rilevatore può restituire tre possibili stati di rilevamento (con filigrana, senza filigrana o incerto). Il comportamento può essere personalizzato impostando due valori di soglia per ottenere una percentuale specifica di falsi positivi e falsi negativi. Per ulteriori dettagli, consulta l'Appendice C.8 del documento.

I modelli che utilizzano lo stesso tokenizzatore possono anche condividere la configurazione e il rilevatore della filigrana, condividendo così una filigrana comune, a condizione che il set di addestramento del rilevatore includa esempi di tutti i modelli che condividono la filigrana.

Una volta addestrato il rilevatore, puoi scegliere se e come esporlo ai tuoi utenti e al pubblico in generale.

  • L'opzione Completamente privato non rilascia né espone il rilevatore in alcun modo.
  • L'opzione semi-privata non rilascia il rilevatore, ma lo espone tramite un'API.
  • L'opzione pubblico consente a chiunque di scaricare e utilizzare il rilevatore.

Tu e la tua organizzazione dovete decidere quale approccio di verifica del rilevamento è più adatto alle vostre esigenze, in base alla vostra capacità di supportare l'infrastruttura e i processi associati.

Limitazioni

Le filigrane di testo SynthID sono resistenti ad alcune trasformazioni, come il ritaglio di parti di testo, la modifica di alcune parole o il parafrasi moderato, ma questo metodo ha delle limitazioni.

  • L'applicazione della filigrana è meno efficace sulle risposte oggettive, in quanto vi sono meno opportunità di aumentare la generazione senza diminuire l'accuratezza.
  • I punteggi di confidenza del rilevatore possono essere notevolmente ridotti quando un testo generato con l'IA viene riscritto completamente o tradotto in un'altra lingua.

SynthID Text non è concepito per impedire direttamente agli avversari motivati di causare danni. Tuttavia, può rendere più difficile l'utilizzo di contenuti creati con l'IA per scopi dannosi e può essere combinato con altri approcci per offrire una copertura migliore su piattaforme e tipi di contenuti.