{count, plural, one {Corso} other {Corsi}}
Con la rapida diffusione dei contenuti generati dall’IA e il progresso della tecnologia, distinguere tra materiale creato da umani e da macchine è sempre più difficile e, allo stesso tempo, più importante.
Le filigrane per l’IA come SynthID puntano a rendere tracciabile l’origine dei contenuti digitali e ad aiutare gli utenti a verificarne l’autenticità. In questo articolo ti spiego che cos’è SynthID, come funziona e come usarlo per applicare filigrane al testo.
Che cos’è SynthID?
SynthID è uno strumento sviluppato da Google DeepMind che incorpora filigrane invisibili nei contenuti generati dall’IA. Queste filigrane sono progettate per aiutare a identificare se un contenuto è stato creato dall’intelligenza artificiale.
L’obiettivo delle filigrane per l’IA è rendere i contenuti digitali più trasparenti e tracciabili, soprattutto man mano che l’IA diventa più avanzata. Senza marcatori affidabili, il materiale generato dall’IA può facilmente confondersi e diffondersi inosservato, portando a vari problemi, come la diffusione di fake news e di deepfake o l’uso non autorizzato di opere creative.
SynthID supporta l’applicazione di filigrane su testo, immagini, video e audio. Il suo approccio si adatta a ciascun tipo di media, come vedremo più avanti. La filigrana è progettata per resistere a modifiche comuni come tagli, rumore, compressione, ritaglio e filtri, risultando sorprendentemente robusta.
SynthID è già integrato nei prodotti di IA generativa di Google: Gemini per il testo, Imagen per le immagini, Lyria per l’audio e Veo per i video. Ciò significa che questi modelli possono incorporare filigrane impercettibili direttamente nel loro output. In combinazione con il portale SynthID Detector, Google offre una soluzione completa di filigranatura che permette agli utenti di verificare rapidamente i contenuti generati dall’IA in tutti i formati supportati.
Come funziona SynthID?
Il processo di filigranatura, nel dettaglio, dipende dal formato dei media. Spiegherò procedura e robustezza uno per uno.
SynthID per immagini e video
Per i dati immagine, SynthID utilizza due reti neurali. La prima modifica in modo impercettibile i valori di colore (valori dei pixel) dell’immagine, così minimamente che l’occhio umano non percepisce differenze.
Le modifiche sono scelte in modo tale che la filigrana rimanga rilevabile dalla seconda rete neurale anche dopo modifiche tipiche come ritaglio, compressione, filtri, rotazione o persino screenshot. Questo rende la filigrana particolarmente resistente alle manipolazioni comuni che spesso si verificano quando le immagini vengono condivise o riutilizzate.
SynthID per i video
Ogni fotogramma di un video riceve lo stesso trattamento delle singole immagini: ciascun frame è filigranato individualmente, garantendo che il segno resti rilevabile indipendentemente da quanto il video venga tagliato. Questo rende la filigrana video invisibile di SynthID robusta contro modifiche di base come tagli, compressione o piccoli ritagli.
Utenti determinati o servizi commerciali di aggiramento possono comunque rimuovere o oscurare la filigrana, soprattutto se motivati dal superare i filtri dei media su piattaforme pubblicitarie o per la moderazione dei contenuti. Ad esempio, l’applicazione di filtri aggressivi — come distorsione dei colori o modifiche estreme del contrasto — o la ricodifica del video con forti modifiche a compressione, frame rate o profilo colore può degradare la filigrana al punto da rendere difficile una rilevazione affidabile.
SynthID per l’audio
Per l’audio, SynthID converte la forma d’onda in uno spettrogramma, una rappresentazione visiva dello spettro di frequenze di un segnale audio nel tempo. Inserisce quindi la filigrana nello spettrogramma e infine ricostruisce l’audio. La filigrana resta inudibile ma è resistente all’elaborazione audio standard.
Per gestire i formati convenzionali, la filigrana è incorporata in modo da sopravvivere alla compressione con perdita. Tuttavia, manipolazioni estreme come pitch-shifting o time-stretching possono distorcere lo spettrogramma, riducendo l’accuratezza della rilevazione. Inoltre, pur essendo robusto alla compressione MP3, l’efficacia di SynthID può variare tra formati audio proprietari.
SynthID per il testo
Quando un LLM genera testo, scompone il linguaggio in token — parole, caratteri o parti di parole — e poi prevede il token successivo in base a punteggi di probabilità. SynthID sfrutta questa caratteristica per incorporare filigrane durante la generazione, ritoccando tali probabilità. La modifica è effettuata in modo controllato e pseudocasuale, rendendo leggermente più probabili alcune scelte di parole.
Il pattern statistico risultante nel testo è invisibile ai lettori e non influisce su significato, qualità o persino creatività del testo generato. Quando serve la rilevazione, SynthID analizza il testo alla ricerca di queste sottili tracce di probabilità, confrontandole con ciò che ci si aspetterebbe da contenuti con o senza filigrana. La filigrana generalmente sopravvive a leggere modifiche e parafrasi, ma può indebolirsi con riscritture pesanti o traduzioni.
Limitazioni di SynthID
SynthID affronta limitazioni significative nel mondo reale. Sebbene la sua filigranatura per il testo funzioni in modo coerente tra le lingue — a differenza dei rilevatori post hoc che falliscono su lingue non addestrate — i tassi di rilevazione crollano con parafrasi pesanti o traduzioni.
Per le modalità non testuali (immagini, video, audio), mancano metriche di accuratezza pubblicate, il che impedisce una validazione quantitativa delle affermazioni di robustezza di Google.
Inoltre, l’inserimento di filigrane risulta meno efficace per risposte fattuali, dove le opzioni di generazione limitate riducono la possibilità di inserire pattern senza compromettere l’accuratezza.
Come altri strumenti di rilevazione dell’IA, SynthID non spiega come giunge alle sue decisioni per evitare che venga eluso. Se i criteri o gli algoritmi di rilevazione fossero resi pubblici, sarebbe molto più semplice manipolare i contenuti per evitare il rilevamento.
Inoltre, i modelli sottostanti sono complessi e spesso operano tramite pattern statistici o punteggi di probabilità, rendendo le loro decisioni difficili da interpretare in termini semplici, anche per gli esperti.
Attualmente, il rilevamento più affidabile di SynthID si ottiene con contenuti generati dai modelli di Google, dove la filigranatura è profondamente integrata. Sebbene esista una versione open-source di SynthID-Text utilizzabile con modelli linguistici compatibili tramite Hugging Face Transformers, i tassi di rilevazione e la robustezza sono generalmente inferiori rispetto alle implementazioni native di Google.
Di conseguenza, l’applicabilità universale di SynthID resta limitata, e potrebbe non identificare in modo costante i contenuti generati da altri provider come OpenAI o Meta, soprattutto quando i contenuti vengono modificati da diversi sistemi di IA.
Implementazione pratica: SynthID per il testo
Iniziamo! Non ti serve alcun accesso speciale alle API di Google — SynthID funziona in locale all’interno del framework transformers. Ti basta avere:
- Un ambiente Python (versione 3.8 o superiore) con i pacchetti
transformersetorchinstallati - Accesso a un LLM tramite Hugging Face.
Creazione dell’ambiente
L’ambiente Python può, ad esempio, essere configurato con Anaconda e i comandi seguenti. Nota che la versione del pacchetto transformers deve essere la 4.46.0 o successiva per supportare SynthID per il testo.
conda create -n synthid-env python=3.9
conda activate synthid-env
pip install "transformers>=4.46.0" torch
Download del modello
Per la generazione del testo useremo il modello leggero gemma-2b, perché è progettato per girare in modo efficiente su hardware consumer pur offrendo buone prestazioni in vari compiti linguistici. Poiché è un modello con accesso controllato, è necessario accedere a un account Hugging Face e accettare i termini di licenza del modello nel browser.
Il modello Gemma-2b è disponibile in due formati principali:
- La variante
safetensorsper l’uso con PyTorch e Hugging Face Transformers - La variante
ggufper motori di inferenza specializzati come llama.cpp
Per questo tutorial, ti servono solo i file safetensors, necessari per caricare ed eseguire il modello in Python con transformers. Tuttavia, devi anche scaricare i file di configurazione e del tokenizer associati, perché contengono informazioni essenziali sull’architettura del modello e su come il testo viene elaborato — senza di essi, il modello non può essere caricato o usato correttamente, a prescindere dal formato dei pesi scelto.
huggingface-cli download google/gemma-2b model-00001-of-00002.safetensors model-00002-of-00002.safetensors config.json tokenizer.json tokenizer.model tokenizer_config.json special_tokens_map.json
Caricamento del modello
Per poter usare Gemma-2b o altri modelli con accesso controllato da Hugging Face, dobbiamo anche fornire un token di accesso Hugging Face. Il token di accesso richiede solo permessi di lettura. Quando crei il tuo token nelle impostazioni di Hugging Face, seleziona il ruolo “read”; non sono necessari permessi di scrittura o amministrazione.
# Logging in to Hugging Face
from huggingface_hub import login
login("<your_huggingface_token>")
Dobbiamo importare AutoTokenizer e AutoModelForCausalLM dal pacchetto transformers e inizializzarli con il modello scelto.
# Loading the models
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name = "google/gemma-2b"
tokenizer = AutoTokenizer.from_pretrained(generator_model_name)
model = AutoModelForCausalLM.from_pretrained(generator_model_name)
Creazione della configurazione SynthID
Per applicare filigrane SynthID al testo generato dall’IA, devi creare un oggetto di configurazione della filigrana usando SynthIDTextWatermarkingConfig. Questo oggetto controlla come le filigrane vengono incorporate durante la generazione del testo.
Il parametro keys è un elenco di interi casuali (in genere 20-30 valori) che fungono da firma digitale privata. Determinano come vengono modificate in modo sottile le probabilità di scelta delle parole durante la generazione del testo per creare un pattern rilevabile. Tieni presente che queste keys sono segrete — se vengono esposte, gli attaccanti potrebbero falsificare filigrane o generare testo IA non rilevabile.
Il parametro ngram_len definisce la lunghezza delle sequenze di parole usate per l’analisi del pattern della filigrana. Più basso è il valore, più è probabile che le filigrane sopravvivano a modifiche pesanti, ma più difficile sarà rilevarle. Al contrario, valori più alti migliorano il rilevamento ma si rompono con piccole modifiche. Un valore di 5 è consigliato come miglior compromesso per l’uso reale.
from transformers import SynthIDTextWatermarkingConfig
# SynthID configuration
watermark_config = SynthIDTextWatermarkingConfig(
keys=[634, 300, 846, 15, 310, ...], # list of 20-30 integer numbers, keep this secret!
ngram_len=5
)
Applicare una filigrana al testo
Il prompt del testo da filigranare va prima tokenizzato in un tensore PyTorch, così il modello riceve i token numerici che comprende. Questo tokenized_prompt viene poi passato al metodo generate() del modello insieme all’oggetto di configurazione. Il parametro do_sample deve essere impostato su True per abilitare il campionamento compatibile con la filigrana.
tokenized_prompt = tokenizer(
["Answer in two sentences: What is AI?"],
return_tensors=”pt”
)
output_sequences = model.generate(
**tokenized_prompt,
watermarking_config=watermark_config,,
do_sample=True
)
Questo modifica le probabilità di scelta delle parole durante la generazione, incorporando un pattern invisibile e preservando la qualità del testo. Per garantire la riutilizzabilità, usa le stesse keys nelle diverse sessioni, così le filigrane possono essere rilevate in modo coerente.
In questo esempio abbiamo chiesto al modello di fornirci la sua definizione di IA. Vediamo prima la risposta convertendo i token in testo leggibile con il metodo `batch_decode()`.
watermarked_text = tokenizer.batch_decode(
output_sequences , # Model's tokenized output
skip_special_tokens=True # Removes control tokens like [BOS], [EOS], etc.
)
print(watermarked_text)
['Answer in two sentences: What is AI?
Answer:
Artificial intelligence (AI) is a branch of computer science that deals with the development of intelligent machines that can perform tasks that normally require human intelligence, such as visual perception, speech recognition, decision-making, and language translation.
AI applications include autonomous vehicles, chatbots, and virtual personal assistants.']
Come rilevare le filigrane dell’IA nel testo
Per rilevare le filigrane SynthID nel testo generato dall’IA, al momento ci sono tre opzioni pratiche.
Per dimostrazioni ed esperimenti, Hugging Face Transformers fornisce una classe di rilevatore bayesiano. Questa classe consente di testare il flusso di rilevazione in codice Python usando un modello open-source dimostrativo. È importante notare, però, che questo modello è solo a scopo demo e non offre accuratezza affidabile o robustezza a livello produttivo.
Per le organizzazioni che necessitano di un rilevamento su misura, la classe del rilevatore bayesiano può essere usata per creare rilevatori personalizzati compatibili con SynthID. Questo esempio end-to-end mostra come sia possibile addestrare su testo filigranato generato con una specifica configurazione e tokenizer condiviso, così da abilitare una verifica coerente delle filigrane su più modelli interni.
Una volta addestrati, i rilevatori possono essere caricati su un repository privato di Hugging Face Hub per un accesso sicuro a livello organizzativo, e il Responsible GenAI Toolkit di Google offre indicazioni supplementari per la messa in produzione.
Per il rilevamento autentico delle filigrane SynthID in contenuti generati dai modelli di IA di Google (come Gemini o Imagen), Google offre un portale cloud SynthID Detector. Il servizio è facile da usare e non richiede codice, ma è proprietario, attualmente disponibile solo tramite lista d’attesa e limitato alla verifica di contenuti dell’ecosistema Google. Al momento non esistono API pubbliche o versioni locali per sviluppatori.
Approfondimenti su SynthID
Standardizzazione e privacy dei dati
SynthID non è stato adottato come standard di settore, poiché grandi attori come Microsoft e Meta continuano a usare sistemi di filigranatura proprietari, creando un ecosistema frammentato in cui il rilevamento cross-platform resta inefficace. Attualmente non esiste un protocollo di valutazione standardizzato per la robustezza delle filigrane nelle modalità testo, immagine, audio e video.
Partnership industriali — come quella con Nvidia, che utilizza SynthID nella loro piattaforma Cosmos — esistono, ma sono rare. Quindi, nonostante le prospettive promettenti, SynthID è ancora lontano dall’essere considerato uno standard universalmente accettato.
Contrariamente ad alcune preoccupazioni, SynthID non abilita intrinsecamente la sorveglianza o il tracciamento dei contenuti da parte di Google, poiché la filigrana è un identificatore passivo inserito in fase di generazione e richiede il caricamento volontario sul portale SynthID Detector per la verifica. Non ci sono prove che Google monitori la distribuzione o l’uso dei contenuti oltre il flusso di lavoro di scansione e cancellazione del portale. Google non ha comunicato se i file caricati vengano conservati a lungo termine o riutilizzati, creando potenziali lacune di privacy.
Implicazioni legali e sociali
La rimozione delle filigrane dai contenuti generati dall’IA complica l’applicazione del copyright, anche perché leggi come il Regolamento IA dell’UE non definiscono chiaramente la titolarità degli output dell’IA. Sebbene il COPIED Act (2024) negli Stati Uniti criminalizzi tale rimozione, gli attaccanti sfruttano scappatoie — come tradurre il testo o rieditare i media — per eliminare le filigrane senza conseguenze legali. Questa ambiguità lascia i creatori esposti.
Strumenti come SynthID, limitati all’ecosistema Google, non affrontano la portata del problema, poiché solo una piccola frazione dei post porta filigrane rilevabili. Le filigrane statiche da sole non possono contrastare la disinformazione generata dall’IA a causa di vulnerabilità tecniche, falsi positivi e incompatibilità tra piattaforme. Nel peggiore dei casi, strumenti come SynthID rischiano di alimentare una pericolosa eccessiva fiducia, suggerendo un rilevamento affidabile mentre falliscono con contenuti non Google o media modificati.
Le filigrane generative come SynthID-Text non sono una risposta completa al rilevamento dell’IA; sono piuttosto uno strumento tattico che integra altre strategie. La loro efficacia dipende dalla collaborazione tra i provider che effettivamente incorporano la filigrana durante la generazione del testo. Per identificare testo generato dall’IA da fonti che non usano la filigrana, sono ancora necessari metodi alternativi — come il rilevamento post hoc.
Conclusione
SynthID offre un modo per filigranare e verificare il testo generato dall’IA, rendendo più trasparente l’origine dei contenuti in un’epoca di media sintetici. Tuttavia, la sua efficacia è limitata dalla mancanza di standard di settore e dalla facilità con cui le filigrane possono essere rimosse o aggirate.
Per saperne di più sulle filigrane per l’IA e su altre pratiche di IA responsabile, dai un’occhiata a queste risorse:
Tom è un data scientist e formatore tecnico. Scrive e gestisce i tutorial e i post del blog di DataCamp su data science. In precedenza, Tom ha lavorato nella data science presso Deutsche Telekom.


