日本語安定拡散
'Japanese Stable Diffusion'
Stable Diffusionは、CompVis、Stability AI、およびLAIONによって開発され、テキストのプロンプトを入力するだけで非常に正確な画像を生成する能力により、多くの関心を集めています。Stable Diffusionは、主にLAION-5Bデータセットの英語のサブセットであるLAION2B-enをトレーニングデータとして使用しており、その結果、より西洋文化に向かった傾向のある画像を生成するために英語のテキストのプロンプトが必要です。
株式会社rinnaは、Stable Diffusionを日本語のキャプション付き画像でファインチューニングすることで、日本語に特化したテキストから画像を生成するモデル「Japanese Stable Diffusion」を開発しました。Japanese Stable Diffusionは日本語のテキストのプロンプトを受け入れ、翻訳では表現が難しい日本語圏の文化を反映した画像を生成します。
このブログでは、Japanese Stable Diffusionの開発の背景と学習方法について説明します。Japanese Stable DiffusionはHugging FaceとGitHubで利用可能です。コードは🧨 Diffusersに基づいています。
- 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
Stable Diffusion
最近の拡散モデルは、画像の生成においてGAN(生成的対立ネットワーク)よりも非常に効果的と報告されています。Hugging Faceは、拡散モデルの動作について以下の記事で説明しています:
- 注釈付き拡散モデル
- 🧨 Diffusersの始め方
一般的に、テキストから画像を生成するモデルは、テキストエンコーダとその出力から画像を生成する生成モデルで構成されています。
Stable Diffusionは、OpenAIの言語-画像事前学習モデルであるCLIPをテキストエンコーダとし、改良版の拡散モデルである潜在拡散モデルを生成モデルとして使用しています。Stable Diffusionは、主にLAION-5Bの英語のサブセットでトレーニングされており、テキストのプロンプトを入力するだけで高性能な画像を生成することができます。高性能であるだけでなく、Stable Diffusionは、推論が約10GBのVRAM GPUで実行されるという計算コストの低さでも使用しやすいです。
🧨 DiffusersからのStable Diffusion
Japanese Stable Diffusion
なぜ日本語のStable Diffusionが必要なのか?
Stable Diffusionは、品質だけでなく計算コストの面でも非常に強力なテキストから画像へのモデルです。Stable Diffusionは英語のデータセットでトレーニングされているため、非英語のプロンプトをまず英語に翻訳する必要があります。驚くべきことに、Stable Diffusionは非英語のプロンプトを使用しても適切な画像を生成することがあります。
ではなぜ、言語に特化したStable Diffusionが必要なのでしょうか?その答えは、日本の文化、アイデンティティ、俗語を含む独自の表現を理解できるテキストから画像へのモデルが必要だからです。たとえば、英語の単語”businessman”から再解釈された日本の一般的な用語の一つは「サラリーマン」であり、私たちはほとんど常にスーツを着た男性を想像します。Stable Diffusionは、日本語の独自の単語を正しく理解することができません。
オリジナルのStable Diffusionからの「サラリーマン、油絵」
そこで、私たちは言語に特化したStable Diffusionのバージョンを作りました。Japanese Stable Diffusionは、以下の点でオリジナルのStable Diffusionと比較して次のことを達成できます。
- 日本風の画像を生成する
- 英語から日本語に適応された言葉を理解する
- 日本独特のオノマトペを理解する
- 日本の固有名詞を理解する
トレーニングデータ
私たちは、日本語のキャプション付きの約1億枚の画像を使用しました。これには、LAION-5Bの日本語のサブセットも含まれています。また、低品質なサンプルを除去するために、rinna株式会社が公開したjapanese-cloob-vit-b-16を使用し、スコアがある閾値以下のサンプルを除去する前処理を行いました。
トレーニングの詳細
日本特有のテキストから画像を生成するモデルを作る上で最大の課題は、データセットのサイズです。非英語のデータセットは英語のデータセットよりもはるかに小さく、これにより深層学習ベースのモデルの性能が低下します。日本語ステーブルディフュージョンを訓練するために使用されたデータセットは、ステーブルディフュージョンの訓練に使用されるデータセットの1/20のサイズです。このような小さなデータセットで良いモデルを作るために、英語のデータセットで訓練された強力なステーブルディフュージョンを微調整し、ゼロからテキストから画像を生成するモデルを訓練するのではなくしました。
良い言語特有のテキストから画像を生成するモデルを作るために、単純に微調整するだけでなく、PITIのアイデアに従って2つのトレーニングステージを適用しました。
第1ステージ:日本特有のテキストエンコーダのトレーニング
第1ステージでは、潜在的なディフュージョンモデルは固定され、英語のテキストエンコーダは日本特有のテキストエンコーダに置き換えられます。このとき、日本語のセンテンスピースのトークナイザが使用されます。CLIPのトークナイザをそのまま使用すると、日本語のテキストはトークン化されたバイトになり、トークンの依存関係を学習するのが難しく、トークンの数が不必要に大きくなります。たとえば、”サラリーマン 油絵” をトークン化すると ['ãĤ', 'µ', 'ãĥ©', 'ãĥª', 'ãĥ¼ãĥ', 'ŀ', 'ãĥ³</w>', 'æ', '²', '¹', 'çµ', 'µ</w>']
という読み取りにくいトークンになります。
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: サラリーマン 油絵
一方、私たちの日本語トークナイザを使用することで、プロンプトは解釈可能なトークンに分割され、トークンの数が減少します。たとえば、”サラリーマン 油絵” は ['▁', 'サラリーマン', '▁', '油', '絵']
という形でトークン化され、正しく日本語としてトークン化されます。
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: サラリーマン 油絵
このステージでは、モデルは日本語のプロンプトを理解することができますが、まだ日本風の画像を出力することはできません。なぜなら、潜在的なディフュージョンモデルはまったく変更されていないからです。言い換えると、日本語の単語 “サラリーマン” は英語の単語 “businessman” と解釈されるかもしれませんが、生成される結果は西洋の顔をしたビジネスマンです。
第1ステージの日本語ステーブルディフュージョンからの “サラリーマン 油絵” の生成結果
そのため、第2ステージでは、より日本風の画像を出力するためにトレーニングを行います。
第2ステージ:テキストエンコーダと潜在的なディフュージョンモデルを共同で微調整する
第2ステージでは、テキストエンコーダと潜在的なディフュージョンモデルの両方をトレーニングして、日本風の画像を生成します。このステージは、モデルをより言語特有のモデルにするために不可欠です。これにより、モデルは最終的には日本風の顔をしたビジネスマンを生成することができます。
「サラリーマン 油絵」は、第2段階の日本語安定拡散からのもので、「サラリーマン、油絵」という意味です。
りんなのオープン戦略
多くの研究機関がAIの民主化を目指し、誰でも簡単にAIを利用できる世界を目指して、研究結果を公開しています。特に最近では、大規模なトレーニングデータに基づいて多数のパラメータを持つ事前学習済みモデルが主流となっており、計算リソースを持つ研究機関による高性能AIの独占に対する懸念もあります。しかし、幸いにも多くの事前学習済みモデルが公開され、AI技術の発展に貢献しています。ただし、テキストの事前学習済みモデルは、世界で最も人気のある言語である英語を対象としていることが多いです。誰でも簡単にAIを利用できる世界では、英語以外の言語でも最先端のAIを利用できることが望ましいと考えています。
そのため、株式会社りんなは、日本語に特化したGPT、BERT、CLIPをリリースし、さらに日本語安定拡散もリリースしました。日本語に特化した事前学習済みモデルを公開することで、英語圏の文化に偏らず、日本語圏の文化も取り入れたAIを実現したいと考えています。これにより、日本の文化的アイデンティティを保証するAIを民主化することに役立てることができます。
次は何か?
安定拡散と比較して、日本語安定拡散は汎用性がありませんし、まだ一部の精度の問題もあります。しかし、日本語安定拡散の開発とリリースを通じて、言語特化モデルの開発の重要性とポテンシャルを研究コミュニティに伝えることを目指しています。
株式会社りんなは、日本語テキスト用のGPTとBERTモデル、日本語テキストと画像用のCLIP、CLOOB、日本語安定拡散モデルをリリースしています。これらのモデルを改善し続け、次に日本語音声に特化した自己教師あり学習ベースのモデルをリリースすることを検討しています。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles