Instruction-tuning Stable Diffusion with InstructPix2PixのHTMLを日本語に翻訳してください

Please translate the HTML of 'Instruction-tuning Stable Diffusion with InstructPix2Pix' into Japanese.

この投稿では、安定拡散を教えるための指示調整について説明します。この方法では、入力画像と「指示」(例:自然画像に漫画フィルタを適用する)を使用して、安定拡散を促すことができます。

ユーザーの指示に従って安定拡散に画像編集を実行させるアイデアは、「InstructPix2Pix: Learning to Follow Image Editing Instructions」で紹介されました。InstructPix2Pixのトレーニング戦略を拡張して、画像変換(漫画化など)や低レベルな画像処理(画像の雨除去など)に関連するより具体的な指示に従う方法について説明します。以下をカバーします:

  • 指示調整の紹介
  • この研究の動機
  • データセットの準備
  • トレーニング実験と結果
  • 潜在的な応用と制約
  • オープンな問い

コード、事前学習済みモデル、データセットはこちらで見つけることができます。

導入と動機

指示調整は、タスクを解決するために言語モデルに指示を従わせる教師ありの方法です。Googleの「Fine-tuned Language Models Are Zero-Shot Learners (FLAN)」で紹介されました。最近では、AlpacaやFLAN V2などの作品が良い例であり、指示調整がさまざまなタスクにどれだけ有益であるかを示しています。

以下の図は、指示調整(または「指示微調整」とも呼ばれる)の定式化を示しています。FLAN V2の論文では、事前学習済みの言語モデル(例:T5)を取り上げ、以下の図に示すように例示データセットで微調整します。

このアプローチでは、さまざまなタスクをカバーする例示データを作成できるため、指示調整はマルチタスクのトレーニング目的となります:

同じ考え方を使って、FLAN V2の著者たちは数千のタスクの混合物で指示調整を行い、未知のタスクへのゼロショット汎化を実現しました:

この研究の動機は、FLANシリーズの作品とInstructPix2Pixから部分的に来ています。具体的な指示と入力画像を使用して安定拡散を促すことは可能かどうかを探求したかったのです。

事前学習済みのInstructPix2Pixモデルは一般的な指示に従うことができますが、特定の変換を伴う指示には対応できない場合があります:

しかし、InstructPix2Pixから得られた結果を活用することはできます。

一方、漫画化、画像のノイズ除去、画像の雨除去などのタスクに対するペアのデータセットは公に利用可能であり、FLAN V2からのインスピレーションを得て、指示を促すデータセットを作成することができます。

データセットの準備

漫画化

初期の実験では、InstructPix2Pixに漫画化を実行するよう指示しましたが、結果は期待に応えませんでした。画像ガイダンスのスケールや推論ステップの数など、さまざまな推論時のハイパーパラメータの組み合わせを試しましたが、結果はまだ説得力に欠けていました。これが問題を別の方法でアプローチする動機となりました。

前のセクションで示唆したように、私たちは両方の世界から利益を得たかったのです:

(1) InstructPix2Pixのトレーニング方法論と(2) FLANから指示を促すデータセットテンプレートを作成する柔軟性。

まず、漫画化のタスクのための指示を促すデータセットを作成しました。図5は、データセットの作成パイプラインを示しています:

具体的には、以下のことを行いました:

  1. ChatGPTに以下の指示の類義語を50個生成するように依頼します:”画像を漫画化してください。”
  2. Imangenetteデータセットのランダムなサブセット(5000サンプル)を使用し、事前学習済みのWhitebox CartoonGANモデルを活用して、それらの画像の漫画化版を作成します。漫画化版は、モデルが学習するラベルです。つまり、これはWhitebox CartoonGANモデルが学習したバイアスを私たちのモデルに転送することに相当します。
  3. 次に、以下の形式で私たちの例示を作成します:

漫画化の最終的なデータセットはこちらで見つけることができます。データセットの準備方法の詳細については、このディレクトリを参照してください。このデータセットを使用してInstructPix2Pixを微調整する実験を行い、有望な結果を得ました(詳細は「トレーニング実験と結果」セクションを参照)。

それから、画像のデレーニング、画像のノイズ除去、画像のぼかし除去などの低レベルの画像処理タスクにおいて、このアプローチを一般化できるかどうかを確認しました。

低レベルの画像処理

我々は、MAXIMで探索された一般的な低レベルの画像処理タスクに焦点を当てています。特に、以下のタスクに対して実験を行っています:デレーニング、ノイズ除去、低光量画像の強調、ぼかし除去。

各タスクごとに以下のデータセットから異なる数のサンプルを取り、プロンプトが追加された単一のデータセットを作成しました:

上記のデータセットは通常、入力と出力のペアとして提供されるため、正解データについては心配する必要はありません。最終的なデータセットはこちらで利用できます。最終的なデータセットは以下のようになります:

全体的に、この設定はFLANの設定から類推を引き出すのに役立ちます。そこでは、異なるタスクの混合物を作成します。これにより、我々は異なるタスクに対して一度だけモデルを訓練し、それらのタスクに対して良好なパフォーマンスを発揮することができます。これは、低レベルの画像処理で一般的に行われることとは大きく異なります。MAXIMのような作品では、異なる低レベルの画像処理タスクをモデリングできる単一のモデルアーキテクチャを導入していますが、トレーニングは個々のデータセットで独立して行われます。

トレーニング実験と結果

我々のトレーニング実験はこのスクリプトに基づいています。トレーニングログ(バリデーションサンプルとトレーニングハイパーパラメータを含む)はWeight and Biasesで利用できます:

  • カートゥーン化(ハイパーパラメータ)
  • 低レベルの画像処理(ハイパーパラメータ)

トレーニング時には、2つのオプションを検討しました:

  1. 既存のInstructPix2Pixのチェックポイントからのファインチューニング
  2. InstructPix2Pixのトレーニング手法を使用した既存のStable Diffusionのチェックポイントからのファインチューニング

実験では、最初のオプションがデータセットにより速く適応することが分かりました(生成品質の観点で)。

トレーニングとハイパーパラメータの詳細については、コードとWeights and Biasesの対応するランページをご覧ください。

カートゥーン化の結果

指示に従ってチューニングされたカートゥーン化モデルのテストでは、以下のように出力を比較しました:

これらの結果を収集するために、ImageNetteの「validation」スプリットから画像をサンプリングしました。モデルと事前にトレーニングされたInstructPix2Pixモデルを使用する際には、次のプロンプトを使用しました:「画像のカートゥーン化バージョンを生成する」。これらの2つのモデルでは、image_guidance_scaleguidance_scaleをそれぞれ1.5と7.0に保ち、推論ステップ数を20にしました。実際には、特に事前にトレーニングされたInstructPix2Pixモデルの結果に影響を与えるこれらのハイパーパラメータの試行錯誤が必要です。

より詳細な比較結果はこちらでご覧いただけます。これらのモデルを比較するための私たちのコードはこちらで利用できます。

ただし、私たちのモデルはImageNetteのクラスに対しては予想される出力を生成できません。これはある程度予想されるものであり、トレーニングデータセットのスケーリングによって緩和される可能性があると考えています。

低レベルの画像処理の結果

低レベルの画像処理(私たちのモデル)については、上記と同じ推論時のハイパーパラメータを使用しています:

  • 推論ステップ数:20
  • 画像ガイダンススケール:1.5
  • ガイダンススケール:7.0

デレーニングに関しては、私たちのモデルはグラウンドトゥルースと事前にトレーニングされたInstructPix2Pixモデルの出力と比較して、説得力のある結果を提供します:

ただし、低光量画像の強調に関しては、多くの課題が残されています:

このような失敗は、おそらく私たちのモデルがタスクのための十分な例を見ていないことや、より良いトレーニングに起因する可能性があります。ぼかしについても似たような結果が得られています。

低レベルの画像処理のタスク混合が最終的な結果にどれだけ影響を与えるかを探るために、コミュニティには機会があると考えています。より代表的なサンプルを使用してタスク混合を増やすことで、最終的な結果を改善することができるのでしょうか?この問いについては、コミュニティにさらに探求していただきたいと思います。

以下のインタラクティブデモを試して、Stable Diffusionが特定の指示に従うようにしてみることができます:

潜在的な応用と制限事項

画像編集の世界では、ドメインの専門家の思考(実行するタスク)と編集ツール(例:Lightroom)で適用する必要のあるアクションとの間に、乖離があります。自然言語の目標を低レベルの画像編集プリミティブに簡単に変換する方法があれば、ユーザーエクスペリエンスはシームレスになるでしょう。InstructPix2Pixなどのメカニズムの導入により、その領域に近づいていると言えるでしょう。

しかし、まだ課題は残っています:

  • これらのシステムは、大きな高解像度のオリジナル画像に対応する必要があります。
  • 拡散モデルはしばしば、画像空間での修正を行うための指示を発明したり再解釈したりします。現実的な画像編集アプリケーションでは、これは受け入れられません。

オープンな問い合わせ

私たちは、私たちの実験は予備的なものであることを認識しています。私たちは実験で明白な要因について詳しく調査しませんでした。そのため、ここでは私たちの実験中に浮かんできたいくつかのオープンな問い合わせを列挙します:

  • データセットをスケールアップすると何が起こるのか? 生成されたサンプルの品質にどのような影響がありますか? 私たちは数例の例で実験しました。比較のために、InstructPix2Pixは30000以上のサンプルで訓練されました。

  • トレーニング時間を長くすることの影響は何ですか、特にタスクの混合が広範囲の場合は? 私たちの実験では、ハイパーパラメータの調整も行わず、訓練ステップの数についても詳しく調査していません。

  • このアプローチは、「指示調整」の世界で一般的に行われるさまざまなタスクの混合に対してどのように一般化しますか? 私たちは低レベルの画像処理の四つのタスク(除雨、ぼかし解除、ノイズ除去、低照度画像の強化)のみをカバーしました。より多くのタスクを含んだ混合物と代表的なサンプルを追加することで、モデルは未知のタスクに対して一般化することができるでしょうか? または、タスクの組み合わせ(例:「画像のぼかしとノイズ除去」)は助けになるでしょうか?

  • 同じ指示の異なるバリエーションを使用すると、性能が向上するのでしょうか? カートゥーン化の場合、データセット作成中にChatGPTが生成した同義の指示セットから指示をランダムにサンプリングしました。しかし、トレーニング中にランダムサンプリングを行うとどうなりますか?

    低レベルの画像処理では、固定の指示を使用しました。各タスクと入力画像に対して同様の方法で同義の指示を使用した場合にどうなるでしょうか?

  • ControlNetトレーニングセットアップを使用した場合はどうなりますか? ControlNetは、事前にトレーニングされたテキストから画像への拡散モデルを追加の画像(セマンティックセグメンテーションマップ、キャニーエッジマップなど)に基づいて条件付けることも可能です。興味があれば、この投稿を参照して、この投稿に基づいてControlNetトレーニングを行うことができます。

結論

この投稿では、Stable Diffusionの「指示調整」の探索を紹介しました。事前に訓練されたInstructPix2Pixは一般的な画像編集の指示に従うことができますが、より具体的な指示が与えられると失敗することがあります。その問題を緩和するために、InstructPix2Pixをさらに微調整するためにデータセットをどのように準備したかを説明し、結果を示しました。上記の通り、私たちの結果はまだ予備的なものです。しかし、この研究が同様の問題に取り組む研究者たちに基盤を提供し、彼らがオープンな問い合わせをさらに探求する意欲を感じてもらえることを願っています。

  • トレーニングおよび推論コード:https://github.com/huggingface/instruction-tuned-sd
  • デモ:https://huggingface.co/spaces/instruction-tuning-sd/instruction-tuned-sd
  • InstructPix2Pix:https://huggingface.co/timbrooks/instruct-pix2pix
  • この投稿からのデータセットとモデル:https://huggingface.co/instruction-tuning-sd

有益な議論のためにAlara DirikさんとZhengzhong Tuさんに感謝します。また、この投稿に対するPedro CuencaさんとKashif Rasulさんの有益なレビューに感謝します。

引用

この研究を引用する際は、以下の引用を使用してください:

@article{
  Paul2023instruction-tuning-sd,
  author = {Paul, Sayak},
  title = {Instruction-tuning Stable Diffusion with InstructPix2Pix},
  journal = {Hugging Face Blog},
  year = {2023},
  note = {https://huggingface.co/blog/instruction-tuning-sd},
}

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

機械学習

「Prolificの機械学習エンジニア兼AIコンサルタント、ノラ・ペトロヴァ – インタビューシリーズ」

『Nora Petrovaは、Prolificの機械学習エンジニア兼AIコンサルタントですProlificは2014年に設立され、既にGoogle、スタンフ...

人工知能

「aiOlaのCEO兼共同創設者、アミール・ハラマティによるインタビューシリーズ」

アミール・ハラマティは、aiOlaのCEO兼共同創業者であり、スピーチを作業可能にし、どこでも完全な正確さで業界固有のプロセ...

人工知能

ジョシュ・フィースト、CogitoのCEO兼共同創業者 - インタビューシリーズ

ジョシュ・フィーストは、CogitoのCEO兼共同創業者であり、感情と会話AIを組み合わせた革新的なプラットフォームを提供するエ...

人工知能

エンテラソリューションズの創設者兼CEO、スティーブン・デアンジェリス- インタビューシリーズ

スティーブン・デアンジェリスは、エンタラソリューションズの創設者兼CEOであり、自律的な意思決定科学(ADS®)技術を用いて...

人工知能

『ジュリエット・パウエル&アート・クライナー、The AI Dilemma – インタビューシリーズの著者』

『AIのジレンマ』は、ジュリエット・パウエルとアート・クライナーによって書かれましたジュリエット・パウエルは、著者であ...

人工知能

「マーシャンの共同創設者であるイータン・ギンスバーグについてのインタビューシリーズ」

エタン・ギンズバーグは、マーシャンの共同創業者であり、すべてのプロンプトを最適なLLMに動的にルーティングするプラットフ...