Stable DiffusionのデータセットLAIONとは何か?
Stable Diffusionの画像生成モデルの訓練には、画像とその内容に関連したテキストのペアを大量に集めた訓練データが使われています。この訓練データは、LAION(wikipedia)という非営利団体が作ったLAION-5Bというデータセットが使われています。
この記事では、このLAION-5Bというデータセットについて、要点だけをかいつまんで説明してみたいと思います。
その他のStable Diffusion関連記事はこちら
LAION-5Bには何が含まれているのか?
データの形式
リリースの発表記事とFAQによれば、データセットには次のものが含まれています。
インターネット上の画像へのURL
その画像にリンクしている<img>タグのalt文字列
その他のアノテーション
このようにデータセット自体には画像は含まれてはいないようで、データセットを使う場合は、自分で画像ファイルをインターネットからダウンロードしなければならないそうです。
データセット生成時には、その時点でのrobots.txtの指示に従っているそうです。データセットの使用時に画像ファイルをダウンロードする場合は、データセットの使用者がチェックする必要があります。
データセットの種類
リリースの発表記事には、Laion-5Bには3種類のパッケージが含まれると書かれています。
laion2B-en
2.32B(23.2億)個の英語の文字列を持つデータセット
laion2B-multi
2.26B(22.6億)個の英語以外の100以上の言語の文字列を持つデータセット
laion1B-nolang
1.27B(12.7億)個の言語の判別ができなかった文字列を持つデータセット
Stable Diffusionでは何がどのように使われたのか
Stable Diffusion v2では、主に次の2つの部分でLaion-5Bデータセットが使われています。
テキストエンコーダー「OpenCLIP-ViT/H」(プロンプトの解釈部分)
laion2B-en
画像生成拡散モデル(画像生成の本体部分)
Laion-5BからNSFW(not-safe-for-work)フィルタとaestheticスコアフィルタで低品質な画像を除いたデータセット
LAION-5Bのデータセット生成の手順
リリースの発表記事を元に、データセット生成手順を要約します。
Common Crawl
LAIONとは別団体のCommon Crawl(wikipedia)という非営利団体が、インターネットを巡回してアーカイブを作成し、一般公開しています。
このインターネットのアーカイブデータの中から、alt文字列を持つ<img>タグを全て抜き出し、alt文字列の言語を判定し、英語、その他、判別不能の3種類に分類します。
画像をダウンロード
最終データセットには画像データは含まれませんが、生成中の処理のために画像データをダウンロードします。データセット生成が終了すると、画像データは破棄されます。
フィルタリング
データの品質を維持するために、次のフィルターで低品質データを除去します。
5文字より少ないalt文字列
5KBより小さい画像
解像度の高すぎる画像(DOS攻撃の可能性)
同じURLを指す<img>タグ
CLIPを用いたフィルタリング(後述)
CLIPを用いたフィルタリング
CLIPとは、ChatGPTなどで有名なOpenAI(wikipedia)が作成した文字列と画像の関連付けを学習したAIモデルです。LAIONと同じようなインターネットから収集した文字列と画像のデータセットを使って学習しています。
CLIPにはいくつかのバージョンがありますが、LAION-5Bではデータセット生成当時利用可能だった「CLIP ViT B/32」というバージョンが使われています。また、これは英語のみのモデルであるため、英語以外のデータセットにはmCLIP(おそらくMultilingual CLIPのこと?)が代わりに使われています。
LAION-5Bのデータセットのフィルタリングで、CLIPは次の2種類のデータを除外するために使われています。
alt文字列と画像の類似度が低いもの
違法の可能性のあるもの
アノテーションの追加
このようにして集められたデータは、フィルタリングによって5.85B(58.5億)個にまで減らされた後、アノテーションが付加されます。付加されるアノテーションは次の通りです。
画像の高さと幅
判定された言語(laion2B-multiのみ)
CLIPモデルで計算された文字列と画像の類似度
ウォーターマーク確率スコア
NSFW(not-safe-for-work)確率スコア
まとめ
LAION-5Bは、一般的な検索エンジンやGPT-3やT5などの大規模言語モデルで使われているデータセットと同様に、インターネット上で利用可能な情報を、巡回ロボットを利用して収集して生成された大規模データセットです。
データセットには、画像のURLとalt文字列を含み、画像データは含みません。
データセットは、画像とalt文字列に全く関連性のないデータや違法なデータは可能な範囲で除去されています。