Diffusione stabile giapponese

Stable Japanese diffusion.

La Diffusione Stabile, sviluppata da CompVis, Stability AI e LAION, ha suscitato molto interesse per la sua capacità di generare immagini altamente accurate semplicemente inserendo prompt di testo. La Diffusione Stabile utilizza principalmente il subset inglese LAION2B-en del dataset LAION-5B come dati di addestramento e, di conseguenza, richiede l’inserimento di prompt di testo in inglese producendo immagini che tendono ad essere più orientate verso la cultura occidentale.

rinna Co., Ltd. ha sviluppato un modello di generazione di immagini specifico per il giapponese chiamato “Japanese Stable Diffusion” mediante il fine-tuning di Stable Diffusion su immagini con didascalie in giapponese. Japanese Stable Diffusion accetta prompt di testo in giapponese e genera immagini che riflettono la cultura del mondo di lingua giapponese, che potrebbe essere difficile da esprimere attraverso la traduzione.

In questo blog, parleremo dello sfondo dello sviluppo di Japanese Stable Diffusion e della sua metodologia di apprendimento. Japanese Stable Diffusion è disponibile su Hugging Face e su GitHub. Il codice si basa su 🧨 Diffusers.

  • Carta del modello Hugging Face: https://huggingface.co/rinna/japanese-stable-diffusion
  • Hugging Face Spaces: https://huggingface.co/spaces/rinna/japanese-stable-diffusion
  • GitHub: https://github.com/rinnakk/japanese-stable-diffusion

Diffusione Stabile

Recentemente, i modelli di diffusione sono stati segnalati come molto efficaci nella sintesi artificiale, ancora di più delle GAN (Generative Adversarial Networks) per le immagini. Hugging Face spiega come funzionano i modelli di diffusione negli articoli seguenti:

  • Il Modello di Diffusione Annotato
  • Primi passi con 🧨 Diffusers

In generale, un modello di generazione di immagini da testo è composto da un codificatore di testo che interpreta il testo e da un modello generativo che genera un’immagine a partire dal suo output.

La Diffusione Stabile utilizza CLIP, il modello di pre-training linguaggio-immagine di OpenAI, come codificatore di testo e un modello di diffusione latente, che è una versione migliorata del modello di diffusione, come modello generativo. La Diffusione Stabile è stata addestrata principalmente sul subset inglese di LAION-5B e può generare immagini ad alte prestazioni semplicemente inserendo prompt di testo. Oltre alle sue alte prestazioni, la Diffusione Stabile è anche facile da usare con un’inferenza che richiede circa 10 GB di VRAM sulla GPU.

da Stable Diffusion con 🧨 Diffusers

Japanese Stable Diffusion

Perché abbiamo bisogno di Japanese Stable Diffusion?

La Diffusione Stabile è un modello di generazione di immagini da testo molto potente non solo in termini di qualità, ma anche in termini di costo computazionale. Poiché la Diffusione Stabile è stata addestrata su un dataset in inglese, è necessario tradurre i prompt non in inglese in inglese prima. Sorprendentemente, la Diffusione Stabile può talvolta generare immagini appropriate anche quando si utilizzano prompt non in inglese.

Allora, perché abbiamo bisogno di una versione specifica per la lingua di Stable Diffusion? La risposta è perché vogliamo un modello di generazione di immagini da testo che possa comprendere la cultura giapponese, l’identità e le espressioni uniche, compresi gli slang. Ad esempio, uno dei termini giapponesi più comuni reinterpretati dalla parola inglese businessman è “salary man”, che immaginiamo più spesso come un uomo vestito con un abito. Stable Diffusion non può comprendere correttamente tali parole uniche giapponesi perché il giapponese non è il suo obiettivo.

“salary man, oil painting” da Stable Diffusion originale

Ecco perché abbiamo creato una versione specifica per la lingua di Stable Diffusion. Japanese Stable Diffusion può raggiungere i seguenti punti rispetto alla versione originale di Stable Diffusion.

  • Generare immagini in stile giapponese
  • Comprendere parole giapponesi adattate dall’inglese
  • Comprendere onomatopee giapponesi uniche
  • Comprendere nomi propri giapponesi

Dati di addestramento

Abbiamo utilizzato circa 100 milioni di immagini con didascalie in giapponese, compreso il subset giapponese di LAION-5B. Inoltre, per rimuovere campioni di bassa qualità, abbiamo utilizzato japanese-cloob-vit-b-16 pubblicato da rinna Co., Ltd. come passo di pre-elaborazione per rimuovere campioni il cui punteggio era inferiore a una certa soglia.

Dettagli dell’addestramento

La sfida più grande nel creare un modello di testo-immagine specifico per il giapponese è la dimensione del dataset. I dataset non in inglese sono molto più piccoli rispetto a quelli in inglese, e ciò causa una riduzione delle prestazioni nei modelli basati su apprendimento profondo. Il dataset utilizzato per addestrare il modello di diffusione stabile giapponese è 1/20 della dimensione del dataset su cui è addestrato il modello di diffusione stabile. Per creare un buon modello con un dataset così piccolo, abbiamo effettuato un fine-tuning del potente modello di diffusione stabile addestrato sul dataset inglese, anziché addestrare un modello di testo-immagine da zero.

Per creare un buon modello di testo-immagine specifico per la lingua, non ci siamo limitati al semplice fine-tuning, ma abbiamo applicato 2 fasi di addestramento seguendo l’idea di PITI.

1ª fase: Addestrare un codificatore di testo specifico per il giapponese

Nella 1ª fase, il modello di diffusione latente è fisso e abbiamo sostituito il codificatore di testo inglese con un codificatore di testo specifico per il giapponese, che viene addestrato. In questo caso, il nostro tokenizzatore di frasi in giapponese viene utilizzato come tokenizzatore. Se si utilizza il tokenizzatore CLIP così com’è, i testi giapponesi vengono tokenizzati in byte, il che rende difficile apprendere la dipendenza tra i token e il numero di token diventa eccessivamente grande. Ad esempio, se tokenizziamo “サラリーマン 油絵”, otteniamo ['ãĤ', 'µ', 'ãĥ©', 'ãĥª', 'ãĥ¼ãĥ', 'ŀ', 'ãĥ³</w>', 'æ', '²', '¹', 'çµ', 'µ</w>'] che sono token incomprensibili.

from transformers import CLIPTokenizer
tokenizer = CLIPTokenizer.from_pretrained("openai/clip-vit-large-patch14")
text = "サラリーマン 油絵"
tokens = tokenizer(text, add_special_tokens=False)['input_ids']
print("tokens:", tokenizer.convert_ids_to_tokens(tokens))
# tokens: ['ãĤ', 'µ', 'ãĥ©', 'ãĥª', 'ãĥ¼ãĥ', 'ŀ', 'ãĥ³</w>', 'æ', '²', '¹', 'çµ', 'µ</w>']
print("decoded text:", tokenizer.decode(tokens))
# decoded text: サラリーマン 油絵

D’altra parte, utilizzando il nostro tokenizzatore giapponese, il prompt viene suddiviso in token interpretabili e il numero di token viene ridotto. Ad esempio, “サラリーマン 油絵” può essere tokenizzato come ['▁', 'サラリーマン', '▁', '油', '絵'], che è correttamente tokenizzato in giapponese.

from transformers import T5Tokenizer
tokenizer = T5Tokenizer.from_pretrained("rinna/japanese-stable-diffusion", subfolder="tokenizer", use_auth_token=True)
tokenizer.do_lower_case = True
tokens = tokenizer(text, add_special_tokens=False)['input_ids']
print("tokens:", tokenizer.convert_ids_to_tokens(tokens))
# tokens: ['▁', 'サラリーマン', '▁', '油', '絵']
print("decoded text:", tokenizer.decode(tokens))
# decoded text: サラリーマン 油絵

Questa fase consente al modello di comprendere i prompt in giapponese, ma non produce ancora immagini in stile giapponese perché il modello di diffusione latente non è stato modificato affatto. In altre parole, la parola giapponese “salary man” può essere interpretata come la parola inglese “businessman”, ma il risultato generato è un uomo d’affari con un volto occidentale, come mostrato di seguito.

“サラリーマン 油絵”, che significa esattamente “salary man, oil painting”, dal modello di diffusione stabile giapponese di 1ª fase

Pertanto, nella 2ª fase, addestriamo il modello per generare immagini in stile giapponese.

2ª fase: Rifinire il codificatore di testo e il modello di diffusione latente in modo congiunto

Nella 2ª fase, addestreremo sia il codificatore di testo che il modello di diffusione latente per generare immagini in stile giapponese. Questa fase è fondamentale per rendere il modello più specifico per la lingua. Dopo di ciò, il modello potrà finalmente generare un uomo d’affari con un volto giapponese, come mostrato nell’immagine qui sotto.

“サラリーマン 油絵”, che significa esattamente “uomo d’affari, dipinto ad olio”, dalla Diffusione Stabile Giapponese di Seconda Fase

La strategia aperta di rinna

Numerosi istituti di ricerca stanno pubblicando i risultati delle loro ricerche basate sull’idea di democratizzazione dell’IA, puntando ad un mondo in cui chiunque possa utilizzare facilmente l’IA. In particolare, di recente, i modelli pre-allenati con un gran numero di parametri basati su dati di allenamento su larga scala sono diventati la tendenza dominante, e ci sono preoccupazioni riguardo ad un monopolio dell’IA ad alte prestazioni da parte degli istituti di ricerca con risorse di calcolo. Tuttavia, fortunatamente, molti modelli pre-allenati sono stati rilasciati e stanno contribuendo allo sviluppo della tecnologia dell’IA. Tuttavia, i modelli pre-allenati sul testo spesso si concentrano sull’inglese, la lingua più popolare del mondo. Per un mondo in cui chiunque possa utilizzare facilmente l’IA, riteniamo che sia auspicabile poter utilizzare l’IA all’avanguardia anche in lingue diverse dall’inglese.

Pertanto, rinna Co., Ltd. ha rilasciato GPT, BERT e CLIP, specializzati per il giapponese, e ora ha anche rilasciato la Diffusione Stabile Giapponese. Rilasciando un modello pre-allenato specializzato per il giapponese, speriamo di creare un’IA che non sia prevenuta verso le culture del mondo anglofono ma che incorpori anche la cultura del mondo giapponese. Rendendola disponibile a tutti, contribuiremo a democratizzare un’IA che garantisce l’identità culturale giapponese.

Cosa succederà dopo?

Rispetto alla Diffusione Stabile, la Diffusione Stabile Giapponese non è altrettanto versatile e presenta ancora alcuni problemi di precisione. Tuttavia, attraverso lo sviluppo e il rilascio della Diffusione Stabile Giapponese, speriamo di comunicare alla comunità di ricerca l’importanza e il potenziale dello sviluppo di modelli specifici per la lingua.

rinna Co., Ltd. ha rilasciato i modelli GPT e BERT per il testo giapponese, e i modelli CLIP, CLOOB e Diffusione Stabile Giapponese per il testo e le immagini giapponesi. Continueremo a migliorare questi modelli e prossimamente considereremo il rilascio di modelli basati sull’apprendimento auto-supervisionato specializzati per il parlato giapponese.