見出し画像

CLIP Text Deprojectorを使って画像生成してみる ~モデルを書き直してみる(最終回)~

前回、VTモデルのアーキテクチャに調整を加えて実験を行いました。今回は、さらに微調整を加えて、最終版のアーキテクチャを確定させます。

前回の記事

他のStable Diffusionの関連記事

Layered Diffusion Pipelineを使うためのリンク集


最終版候補モデルの提案

前回の実験の結果を受け、最終版候補モデルを決めました。

最終版候補モデル

最終版候補モデルは、上の図で赤枠で囲った部分のハイパーパラメータを次のように設定したものとしました。

  1. 入力embeddingを受け付ける線形変換の次元を入力次元の2倍とする。

  2. vicinity(近傍)の値はとする。

  3. MLPレイヤーの中間層の次元は、入力次元の2倍とする。

このようにすると、モデル全体のパラメータ数は、入力次元をDとすると、16 D^2となり、初期モデル(12 D^2)と改良版モデル(20 D^2)のちょうど中間のサイズとなります。

最終版モデルの決定

その上で、上の3つのハイパーパラメータについて、さらに詳細に再調査をしました。

手法としては、最終版候補モデルを元に、3つのパラメータを変化させたモデルをいくつも作って、それらのモデルを、3つのパラメータの違いだけに注目して組を作って、生成画像を1件ずつ比較して勝ち負けを数えて比較しました。

作成したモデルは以下の#1~#7モデルになります。#1が最終版候補モデルです。黄色のセルが、最終版候補モデルと異なるセッティングになっている部分です。

モデルバリエーション

次に、これらのバリエーションから、1つのパラメータだけが異なる組を、各パラメータごとに3つずつ以下のように作成します。

パラメータ比較の組み合わせ

各モデルアーキテクチャ毎に、8エポック学習したモデルと10エポック学習したモデルを用意し、単一embeddingで3プロンプト、複数embeddingの合成で3プロンプトを使って、計12画像を生成しました。

その上で、各組合せごとに、12組の画像を比較して、どちらがよりプロンプトに従っているか、あるいは同程度かを判定して、左の勝ち数と右の勝ち数を集計しました。集計結果は以下のようになりました。

集計結果

勝敗は、まず3種類のモデルごとに勝ち数を比較して左右のどちらが勝ちかを判定し、勝ったモデルの数で比較します(組数)。その後、それで勝敗が決まらなければ、全ての勝ち数を合計して、総得点で比較してタイブレークとします(点数)。

その結果、全てのハイパーパラメータにおいて、最終版候補モデルのパラメータ選択が優れている結果となりました。これをもって、最終版候補モデルを最終版モデルとしました。

改良版モデルとの比較

これまでは、新モデルの性能検証で、一貫して初期モデルの生成画像との比較を行ってきました。しかし、現在の改良版モデル(=Hugging Faceの最新版、現時点での最良モデル)は初期モデルよりも質のよい画像を生成します。

そのため、最後に、改良版モデルと今回の最終版VTモデルを比較して、最終版VTモデルの性能を評価しておきたいと思います。

ただし、Hugging Faceに公開しているモデルはアンサンブルモデルであるのに対し、現状のVTモデルは単体モデルであるため、そのままの比較はあまり意味がないと考えられます。そこで、アンサンブルモデルを構成する4つの単体モデルからランダムに2つ選んで、単体モデルとして画像を生成して結果を比較しました。

比較対象とする改良版モデルを作成した時の記事はこちらです。

パラメータ数は20 D^2を使用し、10万件の訓練データで学習して、テスト用のプロンプトでの生成画像が最もよくなるエポックまで学習を進めました。

対する最終版VTモデルは、パラメータ数に16 D^2を使用し、5万件の訓練データで10エポックまで学習を進めました。

生成画像

画像は、最上段から、

  1. Deprojectorを使用しない(参照用)

  2. 改良版モデル(単体 #1)

  3. 改良版モデル(単体 #2)

  4. VTモデル(最終版)

となっています。

単一embedding
複数embeddingの合成

全体を通して、最終版VTモデルは、少ないパラメータと訓練データを使用しているにもかかわらず、最新の改良版モデルに対して同等かそれ以上の質の画像を生成することができています。

まとめ

VTモデルのハイパーパラメータを確定して、最終版VTモデルを決定しました。

このモデルは、現時点の最良のアンサンブルモデルを構成する単体モデルと比較して、同等かそれ以上の性能があることが確認されました。

この記事が気に入ったらサポートをしてみませんか?