Stable Diffusion 3 の論文がついに公開され、アーキテクチャの詳細が明らかになりましたが、Sora の再現に役立つでしょうか?
Stable Diffusion 3 の論文がついに登場しました!
このモデルは2週間前にリリースされ、Soraと同じDiT (Diffusion Transformer) アーキテクチャを採用しており、リリースと同時に大きな話題を呼びました。
以前のバージョンと比較して、Stable Diffusion 3 で生成される画像の品質が大幅に向上し、マルチテーマのプロンプトをサポートし、テキストの書き込み効果も向上しました。文字化けもなくなりました。
安定性 AI は、Stable Diffusion 3 が 800M から 8B の範囲のパラメーター サイズを持つ一連のモデルであると指摘しました。このパラメーター範囲は、モデルを多くのポータブル デバイス上で直接実行できることを意味し、大規模な AI モデルを使用するための敷居を大幅に下げます。
新しくリリースされた論文の中で、Stability AI は、人間の好みに基づく評価において、Stable Diffusion 3 は、次のような現在の最先端のテキストから画像への生成システムよりも優れたパフォーマンスを示したと述べています。 DALL・E 3. Midjourney v6 および Ideogram v1。間もなく、研究の実験データ、コード、モデルの重みが公開される予定です。
論文の中で、Stability AI は Stable Diffusion 3 の詳細を明らかにしました。
- 論文タイトル: 高解像度画像合成のための整流変圧器のスケーリング
- ##論文リンク: https://stabilityai-public-packages.s3.us-west-2.amazonaws.com/Stable Diffusion 3 Paper.pdf ##アーキテクチャの詳細
テキストから画像への生成では、Stable Diffusion 3 モデルはテキスト モードと画像モードの両方を考慮する必要があります。したがって、論文の著者は、複数のモダリティを処理できるこの新しいアーキテクチャを MMDiT と呼んでいます。以前のバージョンの Stable Diffusion と同様に、作成者は事前トレーニングされたモデルを使用して、適切なテキストおよび画像表現を導き出します。具体的には、3 つの異なるテキスト埋め込みモデル (2 つの CLIP モデルと T5) を使用してテキスト表現をエンコードし、改良された自動エンコーディング モデルを使用して画像トークンをエンコードしました。
安定した Diffusion 3 モデル アーキテクチャ。
改良されたマルチモーダル拡散トランス: MMDiT ブロック。
SD3 アーキテクチャは、Sora のコア研究開発メンバーである William Peebles とニューヨーク大学コンピュータ サイエンスの助教授である Xie Saining によって提案された DiT に基づいています。テキストの埋め込みと画像の埋め込みは概念的に大きく異なるため、SD3 の作成者は 2 つのモダリティに対して 2 つの異なる重みセットを使用しています。上の図に示すように、これはモダリティごとに 2 つの独立したトランスフォーマーを設定することに相当しますが、注意操作のために 2 つのモダリティのシーケンスを組み合わせて、両方の表現が独自の空間で機能できるようにします。別の表現も考慮されます。 。
著者が提案した MMDiT アーキテクチャは、画像バックボーンに対する視覚的な忠実度やテキストの配置をトレーニング中に測定する際に、UViT や DiT などの成熟したテキスト フレームワークよりも優れています。
このようにして、画像トークンとテキスト トークンの間で情報をやり取りできるため、モデルの全体的な理解が向上し、生成された出力のタイポグラフィーが向上します。論文で説明したように、このアーキテクチャはビデオなどの複数のモダリティにも簡単に拡張できます。
Stable Diffusion 3 の改善されたプロンプト追従機能のおかげで、新しいモデルは、さまざまなテーマや品質に焦点を当てた画像を生成する機能を備えています。 , 同時に、画像自体のスタイルも高い柔軟性で扱うことができます。
再重み付けによる整流の改善
Stable Diffusion 3 は整流 (RF) 式を使用します。 , データとノイズは直線的な軌跡で結ばれます。これにより、推論パスがより直線になり、サンプリング ステップが削減されます。さらに、著者らはトレーニング プロセス中に新しい軌道サンプリング スキームも導入しています。彼らは、軌道の中間部分ではより困難な予測タスクが課せられるだろうと仮説を立て、そのため、このスキームでは軌道の中間部分により多くの重みを与えました。彼らは、複数のデータセット、メトリクス、サンプラー設定を使用して比較し、LDM、EDM、ADM などの他の 60 の拡散軌跡に対して提案された方法をテストしました。結果は、以前の RF 配合のパフォーマンスはサンプリング ステップが少ないと向上しますが、ステップ数が増えると相対的なパフォーマンスが低下することを示しています。対照的に、著者らが提案した再重み付けされた RF バリアントは一貫してパフォーマンスを向上させます。
拡張整流変圧器モデル
著者は、再重み付けされた整流式と MMDiT バックボーン ペアを使用しています。テキストと画像の合成はスケーリングで研究されます。彼らは、4 億 5,000 万個のパラメータを持つ 15 ブロックから 8B パラメータを持つ 38 ブロックまでの範囲のモデルをトレーニングし、モデル サイズとトレーニング ステップが増加するにつれて検証損失が滑らかに減少することを観察しました (上の図の最初の部分は OK)。これがモデル出力の有意義な改善につながったかどうかを調べるために、著者らは自動画像位置合わせメトリクス (GenEval) と人間の好みのスコア (ELO) (上の 2 行目) も評価しました。結果は、これらのメトリクスと検証損失の間に強い相関関係があることを示しており、後者がモデルの全体的なパフォーマンスの優れた予測因子であることを示唆しています。さらに、スケーリングの傾向には飽和の兆候が見られないため、著者らは将来的にモデルのパフォーマンスを改善し続けることについて楽観的になっています。
柔軟なテキスト エンコーダ
メモリを大量に消費する推論用の 4.7B パラメータ T5 テキスト エンコーダを削除することで、最小限のパフォーマンスで SD3 メモリ需要を大幅に削減できます。損失。示されているように、このテキスト エンコーダーを削除しても、見た目の美しさには影響がなく (T5 なしの勝率 50%)、テキストの一貫性がわずかに低下するだけです (勝率 46%)。ただし、著者らは、SD3 のパフォーマンスを最大限に活用するために、書かれたテキストを生成するときに T5 を追加することを推奨しています。これは、次の図に示すように、T5 を追加しないと組版生成のパフォーマンスがさらに低下する (勝率 38%) ことが観察されたためです。
推論のために T5 を削除しても、多くの詳細または大量のテキストが含まれる非常に複雑なプロンプトを表示する場合、パフォーマンスが大幅に低下するだけです。上の画像は、各例の 3 つのランダムなサンプルを示しています。
モデルのパフォーマンス
著者は、Stable Diffusion 3 の出力イメージを他のさまざまなオープンソース モデル (SDXL、SDXL Turbo、Stable など) と比較しました。 Cascade、Playground v2.5、Pixart-α)、および DALL-E 3、Midjourney v6、Ideogram v1 などのクローズドソース モデルを比較して、人間のフィードバックに基づいてパフォーマンスを評価しました。これらのテストでは、人間の評価者に各モデルからの出力例が与えられ、モデルの出力が指定されたプロンプトのコンテキストにどの程度準拠しているか (プロンプト追従)、テキストがプロンプトに従ってどの程度適切にレンダリングされているか (タイポグラフィ) について判断されます。画像 最良の結果を得るには、視覚的に優れた画像が選択されます。
#SD3 をベンチマークとして使用し、このグラフは、視覚的な美しさ、プロンプトのフォロー、テキスト レイアウトに関する人間の評価に基づいた勝率の概要を示しています。
テスト結果から、著者は Stable Diffusion 3 が現在の最先端のテキストから画像への生成システムと同等かそれ以上であることを発見しました。上記の側面。
コンシューマ ハードウェアでの初期の最適化されていない推論テストでは、最大の 8B パラメータの SD3 モデルが RTX 4090 の 24GB VRAM に適合し、50 のサンプリング ステップを使用して 1024x1024 の解像度の画像を生成するのに 34 秒かかりました。
さらに、初期リリースでは、ハードウェアの障壁をさらに排除するために、Stable Diffusion 3 は 800m から 8B パラメトリック モデルまでの複数のバリエーションで利用可能になります。
#詳細については、元の論文を参照してください。
参考リンク:https://stability.ai/news/stable-diffusion-3-research-paper
以上がStable Diffusion 3 の論文がついに公開され、アーキテクチャの詳細が明らかになりましたが、Sora の再現に役立つでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Char Arrayは文字シーケンスをC言語で保存し、char array_name [size]として宣言されます。アクセス要素はサブスクリプト演算子に渡され、要素は文字列のエンドポイントを表すnullターミネーター「\ 0」で終了します。 C言語は、strlen()、strcpy()、strcat()、strcmp()など、さまざまな文字列操作関数を提供します。

Cスイッチステートメントでデフォルトに起因するエラーを回避するための戦略:定数の代わりに列挙を使用し、ケースステートメントの値を列挙の有効なメンバーに制限します。最後のケースステートメントでフォールスルーを使用して、プログラムが以下のコードを引き続き実行できるようにします。フォールスルーなしのスイッチステートメントの場合、エラー処理のためのデフォルトステートメントを常に追加するか、デフォルトの動作を提供します。

C言語に組み込みの合計機能はないため、自分で書く必要があります。合計は、配列を通過して要素を蓄積することで達成できます。ループバージョン:合計は、ループとアレイの長さを使用して計算されます。ポインターバージョン:ポインターを使用してアレイ要素を指し示し、効率的な合計が自己概要ポインターを通じて達成されます。アレイバージョンを動的に割り当てます:[アレイ]を動的に割り当ててメモリを自分で管理し、メモリの漏れを防ぐために割り当てられたメモリが解放されます。

デフォルトステートメントは、変数値がケースステートメントと一致しない場合にコードブロックが実行されることを保証するデフォルトの処理パスを提供するため、スイッチケースステートメントで重要です。これにより、予期しない動作やエラーが防止され、コードの堅牢性が向上します。

c言語関数の返品値タイプには、int、float、double、char、void、およびポインタータイプが含まれます。 intは整数を返すために使用され、フロートとダブルはフロートを返すために使用され、charは文字を返します。 voidとは、関数が値を返さないことを意味します。ポインタータイプはメモリアドレスを返し、メモリの漏れを避けるように注意してください。構造またはコンソーシアムは、複数の関連データを返すことができます。

!X理解!Xは、C言語の論理的な非操作者です。 Xの値をブーリングします。つまり、虚偽の真の変化、trueへの誤った変更です。ただし、Cの真実と虚偽はブール型ではなく数値で表されていることに注意してください。非ゼロは真であると見なされ、0のみが偽と見なされます。したがって、!xは正の数と同じ負の数を扱い、真実と見なされます。

C言語のCHARの値範囲は、実装方法に依存します:署名型CHAR:-128〜127 Unsigned Char:0〜255特定の範囲は、コンピューターアーキテクチャとコンパイラオプションの影響を受けます。デフォルトでは、charは署名型タイプに設定されています。

C言語関数は再利用可能なコードブロックです。彼らは入力を受け取り、操作を実行し、結果を返すことができます。これにより、再利用性が改善され、複雑さが軽減されます。関数の内部メカニズムには、パラメーターの渡し、関数の実行、および戻り値が含まれます。プロセス全体には、関数インラインなどの最適化が含まれます。単一の責任、少数のパラメーター、命名仕様、エラー処理の原則に従って、優れた関数が書かれています。関数と組み合わせたポインターは、外部変数値の変更など、より強力な関数を実現できます。関数ポインターは機能をパラメーターまたはストアアドレスとして渡し、機能への動的呼び出しを実装するために使用されます。機能機能とテクニックを理解することは、効率的で保守可能で、理解しやすいCプログラムを書くための鍵です。
