Come funziona Nightshade

Come Nightshade funziona

Confondere l’IA generativa di immagini con dati avvelenati

Proprio come le alte mura di un castello, Nightshade può essere un modo per difendere le proprietà intellettuali dall'uso illecito. Foto di Nabih El Boustani su Unsplash

La recente comparsa di Nightshade, un algoritmo che consente di creare dati avvelenati per confondere i modelli di intelligenza artificiale generativa di immagini, ha ridato vita alla discussione sugli attacchi avversari a tali modelli. Questa discussione è influenzata anche da considerazioni etiche e sociali, poiché tali attacchi potrebbero fornire un modo per artisti, creatori di contenuti e altri di difendersi se si sentono trattati ingiustamente dal fatto che i modelli di intelligenza artificiale usino i loro contenuti senza autorizzazione, ma potrebbero anche essere utilizzati con cattive intenzioni.

In questo articolo, voglio spiegare i concetti fondamentali di Nightshade. A questo scopo, spiegherò prima l’idea generale di avvelenamento dei dati e ne evidenzierò i difetti. Poi vi presenterò Nightshade, un algoritmo che supera alcuni degli svantaggi dell’approccio ingenuo. Alla fine, discuterò brevemente alcune considerazioni etiche derivanti dal suo utilizzo.

Avvelenamento dei dati

Velenoso o no? Foto di Fiona Smallwood su Unsplash

Cominciamo con l’idea di avvelenamento dei dati in generale. Supponiamo di voler influenzare le intelligenze artificiali generatrici di immagini in modo tale che non riescano a generare determinati tipi di immagini o non siano in grado di comprendere determinati input. Perché vorresti farlo? Le ragioni più probabili, non distruttive, potrebbero essere che tu sia un artista e desideri evitare che un modello generatore di immagini sia in grado di generare immagini nel tuo stile o che tu abbia creato un nuovo personaggio di fumetti che non dovrebbe essere riprodotto da un modello generatore di immagini senza il tuo permesso.

Quindi, cosa fai? Cominciamo a capire un concetto di base su come imparano le intelligenze artificiali generatrici. Ovviamente, un’IA generatrice di immagini dipende dai suoi dati di addestramento. Più precisamente, si basa sul fatto che ci sono immagini che mostrano un certo concetto (come un cane) e che queste immagini sono associate a un testo che ne descrive il contenuto (ad esempio, una didascalia dell’immagine come un cane carino con gli occhiali). Da ciò, l’IA impara a estrarre determinate proprietà visive che le immagini condividono e che condividono anche determinate parole chiave nelle loro didascalie. In altre parole, il modello impara a capire cosa cercare nelle immagini che contengono la parola “cane” nella didascalia.

Ma cosa succederebbe se introducessi immagini che mostrano cani, ma le cui didascalie menzionano sempre gatti? Alla fine, cane e gatto sono solo simboli per ciò che può essere visto nelle immagini. Se le immagini che mostrano cani vengono etichettate come gatti, il modello imparerà che il simbolo “gatto” si riferisce a ciò che noi chiamiamo “cane”. Senza alcuna conoscenza preventiva della lingua inglese, come potrebbe il modello sapere che le etichette sono sbagliate se sono così coerenti? Se tu non parli tedesco e io ti mostrassi cento immagini di cani dicendoti che il loro nome è “Katze”, presumeresti che “Katze” sia la parola tedesca per “cane”. Non sapresti che la parola tedesca effettiva per “cane” è “Hund” e che “Katze” significa gatto, perché hai appena imparato la correlazione tra le etichette e le proprietà delle immagini.

Il processo appena descritto si chiama avvelenamento dei dati, derivante dall’idea di introdurre istanze di dati che hanno un effetto dannoso sull’addestramento del modello (proprio come un veleno ha un effetto dannoso sulla salute).

Attacchi di avvelenamento ingenui

Un cane carino con gli occhiali, che pensa a come attaccare un modello generatore di immagini. Foto di Jamie Street su Unsplash

Come approccio ingenuo, potresti prendere l’idea sopra citata e usarla per confondere i modelli di apprendimento automatico come Stable Diffusion. Immaginiamo di voler far sì che Stable Diffusion crei immagini di gatti quando viene richiesto di creare immagini di cani. Per farlo, dovresti creare molte immagini di gatti, etichettarle come cani e caricarle su Internet. Poi, speriamo che quelle immagini vengano raccolte per il prossimo addestramento di un modello di Stable Diffusion.

Se molte delle tue immagini diventano parte dell’addestramento successivo, potrebbe effettivamente crearsi confusione tra gatti e cani. Tuttavia, ci sono alcuni svantaggi in questo approccio:

  • Avrai bisogno di molte immagini. Poiché ci sono molte altre immagini di gatti che non sono velenose, hai bisogno di un gran numero di immagini per avere un impatto significativo. Se fornisci solo 10 immagini velenose e ci sono 1000 immagini di gatti non velenose dall’altra parte, avrai quasi nessuna influenza sull’addestramento. In genere, puoi aspettarti di avvelenare il 20% o più di tutte le immagini per ottenere un effetto.
  • Tieni presente che non sai esattamente quali immagini faranno parte dell’addestramento. Pertanto, se desideri introdurre 500 immagini velenose nell’addestramento, potresti dover crearne 5000 e diffonderle in tutto Internet, perché solo alcune di esse potrebbero effettivamente essere raccolte per l’addestramento.
  • Se carichi immagini di gatti etichettate come cani, gli esseri umani possono facilmente rilevarlo. Prima di utilizzare le tue immagini per l’addestramento, potrebbero essere filtrate da un controllo di qualità (tramite l’intervento umano o una IA specializzata).

Nightshade

L'algoritmo Nightshade prende il nome da una pianta molto velenosa. Foto di Georg Eiermann su Unsplash

Ora diamo uno sguardo a Nightshade, un algoritmo che mira a superare questi svantaggi. Per fare ciò, Nightshade utilizza due concetti chiave: crea immagini che hanno il massimo effetto sul modello (il che richiede un minor numero di immagini in totale) e che sono indistinguibili dalle immagini non velenose agli occhi degli esseri umani

Innanzitutto, come ottenere il massimo effetto dalle immagini? In teoria, vorresti utilizzare quelle immagini che causano il cambiamento più significativo del gradiente durante l’addestramento. Tuttavia, per scoprire quali immagini sono, dovresti osservare il processo di addestramento, cosa che in generale non puoi fare. Gli autori di Nightshade propongono una soluzione diversa: prendi un’immagine generata dal modello che desideri avvelenare. Ad esempio, se vuoi che le immagini di gatti siano etichettate come cani, fornisci al modello un semplice input come un’immagine di un gatto. L’immagine che il modello genera sarà una rappresentazione molto tipica di ciò che il modello ha compreso come un gatto. Se questa immagine verrà utilizzata durante l’addestramento, avrà un’influenza molto elevata sulla comprensione del concetto di gatto (molto più di immagini atipiche di gatti). Pertanto, se avveleni questa immagine, otterrai un’enorme influenza sull’addestramento del modello.

In secondo luogo, abbiamo detto che le immagini di Nightshade dovrebbero essere indistinguibili dalle immagini non velenose. Per raggiungere questo obiettivo, Nightshade prende immagini naturali e applica una perturbazione (cioè un piccolo cambiamento nei valori dei pixel) fino a quando l’immagine è percepita diversamente dal modello. Continuando con l’esempio del confronto cane vs gatto di prima, prendiamo un’immagine generata dal modello che mostra un gatto. Questa immagine è quella che chiamiamo immagine punto di ancoraggio o xᵃ nelle formule successive. Successivamente, prendiamo un’immagine molto tipica di un cane, che chiamiamo xₜ. A questa immagine xₜ, aggiungiamo la perturbazione δ in modo tale da ottimizzare l’obiettivo seguente:

dove F() è l’estrattore di caratteristiche dell’immagine utilizzato dal modello, Dist è una funzione di distanza e p è un limite superiore per δ, per evitare che l’immagine cambii troppo. Ciò significa che vogliamo trovare δ in modo che la distanza tra le caratteristiche dell’immagine perturbata del cane (F(xₜ + δ)) e l’immagine punto di ancoraggio (che mostra il gatto, F(xᵃ)) sia quanto più piccola possibile. In altre parole, vogliamo che le due immagini appaiano simili dal punto di vista del modello. Tieni presente che F(x), il risultato dell’estratore di caratteristiche, è come il modello vede l’immagine nello spazio delle caratteristiche, che è diverso da come tu vedi l’immagine (nello spazio dei pixel, se vuoi).

Nelle seguenti immagini, non sarai in grado di notare alcuna differenza tra le immagini originali e quelle avvelenate (almeno io non riesco). Tuttavia, nello spazio delle loro caratteristiche, differiscono molto. Le caratteristiche dell’immagine di un cane avvelenato, ad esempio, sono molto simili alle caratteristiche di un’immagine di un gatto e quindi per il modello sembra quasi essere un gatto.

Due esempi di immagini avvelenate. Le immagini nella riga inferiore sono versioni alterate delle superiori. Sebbene un umano non possa notare alcuna differenza, le immagini originali e avvelenate sembrano molto diverse dal punto di vista del modello. Immagine tratta dal paper Nightshade[1].

Con questa tecnica, siamo in grado di generare immagini che hanno un grande effetto sull’addestramento del modello e che non possono essere rilevate come avvelenate. Se caricheresti queste immagini su internet, nessun umano sarebbe sospettoso affatto e quindi è molto improbabile che vengano filtrate da qualche controllo di qualità. Inoltre, dato che sono così potenti, non è necessario avvelenare il 20% di tutte le immagini di cani nei dati di addestramento, come accade con l’approccio ingenuo. Con Nightshade, di solito sono sufficienti da 50 a 100 immagini per compromettere le prestazioni di un modello su un determinato concetto.

Generalità

Oltre ai punti appena visti, Nightshade ha un altro vantaggio interessante, vale a dire la sua capacità di generalizzare in modi multipli.

Innanzitutto, avvelenando una certa parola chiave, influenziamo anche concetti correlati linguisticamente o semanticamente. Ad esempio, avvelenando le immagini del concetto di cane influenziamo anche parole chiave come cucciolo o husky, che sono correlate al cane. Negli esempi seguenti, il concetto di cane è stato avvelenato e ciò impedisce anche la generazione di cuccioli e husky.

Un esempio di come avvelenare un concetto (cane) impedisca anche la generazione di concetti correlati (cucciolo, husky, lupo). Immagine tratta dal paper Nightshade[1].

In modo simile, avvelenare un concetto come la fantasia influisce anche su concetti correlati semanticamente, ma lascia altri concetti inalterati, come si può vedere nell’esempio seguente. Come vedete, un concetto come il drago, che è vicino alla fantasia avvelenata, viene influenzato, mentre un concetto come una sedia no.

Un esempio di come avvelenare un concetto (fantasia) impedisca anche la generazione di concetti correlati (come il drago). Si noti che i concetti non correlati (come la sedia) non sono influenzati. Immagine tratta dal paper Nightshade[1].

Inoltre, quando avveleniamo più concetti, la capacità di generare immagini può collassare completamente. Nell’esempio seguente, sono stati avvelenati 100, 250 o 500 concetti. Con un maggior numero di concetti avvelenati, la generazione di altri concetti, che non sono stati affatto avvelenati (come persona o quadro nell’esempio), è fortemente impedita.

Un esempio di come avvelenare molti concetti impedisca la capacità di generare immagini in generale. Si noti che i concetti persona, quadro e conchiglia non sono stati avvelenati specificamente. Immagine tratta dal paper Nightshade[1].

In aggiunta a ciò, gli effetti di Nightshade si generalizzano anche su diversi modelli target. Ricordate che abbiamo utilizzato il modello che volevamo attaccare per generare le immagini ancoraggio, che ci hanno aiutato a costruire le nostre immagini avvelenate. L’idea alla base è che queste immagini siano molto prototipiche e quindi abbiano una forte influenza sulla formazione. Avevamo anche bisogno di accedere all’estrat¬tore delle caratteristiche per ottimizzare la perturbazione. Naturalmente, l’influenza di Nightshade è più forte se queste immagini ancoraggio sono generate dal modello che si vuole attaccare e se l’estrat¬tore delle caratteristiche di quel modello può essere utilizzato per l’ottimizzazione. Tuttavia, anche se le immagini ancoraggio e l’estrat¬tore delle caratteristiche provengono da un altro modello, l’avvelenamento funziona abbastanza bene. Ciò significa che potresti generare le tue immagini avvelenate con l’aiuto, ad esempio, di Stable Diffusion 2, anche se vuoi attaccare Stable Diffusion XL. Questo potrebbe essere di interesse se non si ha accesso al modello che si desidera effettivamente attaccare.

Preoccupazioni Etiche

Fino ad ora, ho presentato Nightshade come un metodo che può essere utilizzato dai creatori di contenuti per difendere le proprie proprietà intellettuali dall’uso illegittimo. Tuttavia, come sempre c’è due facce della medaglia, l’avvelenamento dei dati può anche essere utilizzato in modo dannoso, che sia intenzionale o meno. Non è necessario dire che l’avvelenamento dei dati può essere utilizzato per disturbare deliberatamente i modelli AI generativi, causare danni finanziari ai loro creatori e ostacolare la ricerca scientifica. Una società di intelligenza artificiale che distrugge i dati di addestramento dei concorrenti per migliorare il proprio modello è solo uno degli innumerevoli esempi di utilizzi maligni dell’avvelenamento dei dati. Tuttavia, anche se si desidera solo difendere il proprio contenuto, abbiamo appena visto che avvelenare molti concetti impedisce all’AI di generare immagini in generale. Pertanto, se molte persone utilizzano Nightshade, potrebbe distruggere gli AI generativi anche su quei concetti che sarebbero legittimi da utilizzare. Quindi, anche con l’intenzione di proteggere il proprio contenuto, un creatore di contenuti che utilizza Nightshade potrebbe causare danni indesiderati. Se e in che misura tali danni collaterali devono essere accettati è una questione di un vivace dibattito aperto.

Inoltre, come potete immaginare, attaccare le capacità dell’AI generativa è una battaglia fatta di continui alti e bassi. Ogni volta che vengono inventati nuovi attacchi, l’altra parte trova nuovi meccanismi di difesa. Sebbene gli autori sostengano che Nightshade sia abbastanza robusto contro i comuni meccanismi di difesa (ad esempio, riconoscere le immagini come avvelenate da un classificatore specializzato o altre proprietà), potrebbe essere solo una questione di tempo prima che vengano scoperte nuove difese che contrastano Nightshade. Da questa prospettiva, Nightshade potrebbe consentire ai creatori di proteggere il proprio contenuto per il momento, ma potrebbe diventare obsoleto prima o poi.

Sommario

Come abbiamo appena visto, Nightshade è un algoritmo per creare dataset avvelenati che va oltre l’approccio ingenuo di etichettare i dati con etichette errate. Crea immagini non rilevabili come avvelenate dagli esseri umani che possono influenzare pesantemente un’AI generativa anche con un numero ridotto di esempi. Questo aumenta drasticamente la possibilità che le immagini avvelenate diventino parte dell’addestramento e abbiano un effetto su di esso. Inoltre, promette di generalizzarsi in diversi modi, rendendo gli attacchi più potenti e meno facili da difendere. Con ciò, Nightshade offre un nuovo modo di contrastare l’uso illegittimo dei contenuti per l’addestramento dei modelli, per cui non è stato dato alcun permesso dai loro creatori, ma include anche il potenziale di un uso distruttivo e quindi richiede un dibattito sulle sue implicazioni etiche. Se utilizzato con nobili intenzioni, Nightshade può aiutare a difendere proprietà intellettuali come lo stile di un artista o le invenzioni.

Fonti

Questo è l’articolo originale che introduce Nightshade:

  • [1] Shan, S., Ding, W., Passananti, J., Zheng, H., & Zhao, B. Y. (2023). Prompt-Specific Poisoning Attacks on Text-to-Image Generative Models. arXiv preprint arXiv:2310.13828.

Ti piace questo articolo? Seguimi per ricevere notifiche sui miei futuri articoli.