|
著者: 曹庭峰、王成宇、呉志恒、黄俊 背景安定拡散(SD)は、テキスト入力に基づいて様々なスタイルの画像を生成できる人気のAI生成コンテンツ(AIGC)モデルです。現在、SDはオープンソースのAIGC分野で最も人気のあるモデルです。しかし、SDの高品質な画像生成能力は、ユーザーが提供するプロンプトに大きく依存しています。適切なプロンプトがなければ、SDはユーザーが期待する画像を生成できないことが多く、ユーザーエクスペリエンスに大きな影響を与えます。これまでの研究で、アリババクラウド機械学習PAIチームは、PAI-Diffusion中国語モデルのオープンソース化、Bladeに基づく推論の最適化、一連の業界ソリューションの立ち上げなど、AIGCを広範囲に調査してきました。SDシリーズモデルの使いやすさを向上させ、参入障壁を下げ、AIモデルの創造的な可能性を解き放つために、SD用の自動プロンプト美化器を提案し、トレーニングしました。これにより、ユーザーは基本的なプロンプトを入力するだけで、言語モデルに最適化された詳細な一連のプロンプトを入手でき、高品質な画像をより簡単に生成できるようになります。次のセクションでは、PAI 自動プロンプト生成モデルの機能と基盤となるテクノロジについて詳しく説明します。 ワンクリックで自動プロンプト生成を体験PAI自動プロンプト生成モデルの詳細を説明する前に、まずプロンプト生成の結果を示します。以下の例では、Stable Diffusion v1.5データモデルに基づいて、元のプロンプトと生成されたプロンプトを比較します。各プロンプトについて、比較のために2枚の画像をランダムに生成しました。 また、ユーザーが体験できるよう、ModelScope 上にデモを構築しました。プロンプトを入力するだけで、モデルはそれをより詳細なプロンプトに拡張し、Stable Diffusion を用いてテキストと画像を生成します。 Prompt Beautifierの背後にある技術このセクションでは、優れたプロンプト整形ツールをトレーニングする方法を詳しく説明します。全体的なアーキテクチャは次の図に示されています。 ベースモデルPAI-Prompt生成モデルプラットフォームは、BigScienceによって訓練されオープンソース化されたBLOOM(BigScience Language Open-science Open-access Multilingual)に基づいています。BLOOMは、GPT-3に非常に類似したデコーダーのみのモデルアーキテクチャを持ち、最大1760億のパラメータを備えています。モデルの訓練では、11億パラメータのBLOOMモデルを選択しました。これは、パラメータ数が比較的少ないため、オンライン展開時の推論速度が速く、訓練と推論のコストが非常に制御しやすいため、非常に実用的であるためです。 データ注釈なしのSFTモデルのトレーニングには高品質と低品質のプロンプトペアが必要となるため、これらのデータに直接ラベルを付けることは一般的に困難です。そこで、以下の方法を用いてトレーニングデータを自動的に収集します。 1. 要約生成:まず、言語モデル生成のターゲットとして、高品質なオープンソースのプロンプトデータセットを収集します。このシナリオでは、低品質のプロンプトが不足しているため、ChatGPTなどの大規模モデルを用いて、低品質のプロンプトから要約を生成することができます。以下は要約の例です。 指示:この画像の説明を10語以内で要約してください。「archdaily」「wallpaper」「highly detailed」「8k」「[r/earthporn]」などの単語は無視してください。英語を確認してください。「by xxx」「with xxx」「in xxx」などの修飾語は無視してください。形容詞は無視してください。 入力: カスパー・デイヴィッド・フリードリヒによる、廃墟となった都市探検の未完成の建物、都市の自然、産業建築、建築物、宇宙港の非常に詳細な美しいイラスト、スカム バー、牧草地、自然、シンセウェーブ、アーチデイリー、壁紙、非常に詳細、artstation でトレンド。 出力: 自然の中に放置された都市の建物。 入力: セドリック・ペイラヴェルネイとグレッグ・ルースコウスキーによる迷子の少年の肖像画。不名誉なコンセプトアート、コンセプトデザイン風。artstation でトレンド。\n 出力: 2. プロンプト拡張機能:ChatGPTを活用して、低品質のプロンプトから高品質のプロンプトを生成します。以下は生成されたプロンプトの例です。 指示:作品について、詳細かつ独創的な説明を作成してください。色彩、質感、全体的な構成、そして作品を際立たせる独自の特徴や要素など、具体的な詳細を記述してください。 絵画のエッセンスを捉えつつ、創造性と独創性を重視した、明確かつ簡潔な回答をお願いします。絵画に描かれた背景や環境についても記述していただけます。 入力: キャンディー帽子をかぶった女の子のデジタル絵画。 3. 画像キャプションの生成: 高品質な画像とテキストのペアを収集し、画像に画像キャプションを付与し、モデルをトレーニングするためのプロンプトをさらに生成しました。 最終的に、取得されたデータは美観と一貫性を考慮してフィルタリングされ、より高品質なデータが SFT 用に保持されます。 SDのための強化学習最適化RLHF(人間からのフィードバックによる強化学習)は、ChatGPTのような大規模モデルの性能向上に重要な役割を果たします。本アプリケーションでは、安定拡散のための強化学習アルゴリズムを設計し、Prompt生成モデルを最適化しました。 報酬モデルについては、取得した画像とテキストのペアデータに基づき、美的価値スコアリングモデルを用いて画像にスコアを付け、言語モデルを用いて対応するPprompt->美的価値スコアをフィッティングし、これをスコアリングモデルとして用います。さらに、最先端の強化学習アルゴリズムPPOを用いてモデルをさらに最適化し、報酬関数にはスコアリングモデルと一貫性スコアの加重平均を使用します。 報酬 = a * score_model(prompt) + b * consistency_model(raw_prompt, prompt) これにより、生成されたプロンプトの美観とテキストと画像の一貫性がさらに向上します。上記の3段階のトレーニングを完了すると、以下の例に示すように、私たちのモデルは、小さなパラメータスケール(1.1B)でChatGPTのプロンプト生成と同等のパフォーマンスを発揮します。 モデル呼び出しモデルの効果をすぐに体験するには、ModelScopeコミュニティのクリエーションスペースページをご覧ください。また、このモデルはHuggingfaceなどのオープンソースコミュニティでも公開されています。使用するためのAPIは次のとおりです。 トランスフォーマーから AutoTokenizer、AutoModelForCausalLM をインポート
トークナイザー = AutoTokenizer.from_pretrained('alibaba-pai/pai-bloom-1b1-text2prompt-sd')
モデル = AutoModelForCausalLM.from_pretrained('alibaba-pai/pai-bloom-1b1-text2prompt-sd').eval().cuda()
raw_prompt = '女の子1人'
input = f'命令: 描画プロンプトを生成するために画像の簡単な説明を入力してください。\n入力: {raw_prompt}\n出力:'
input_ids = tokenizer.encode(input, return_tensors='pt').cuda()
出力 = model.generate(
入力ID、
最大長=384、
do_sample=True、
温度=1.0、
top_k=50,
top_p=0.95、
繰り返しペナルティ=1.2、
num_return_sequences=5)
prompts = tokenizer.batch_decode(outputs[:, input_ids.size(1):], skip_special_tokens=True)
prompts = [p.strip() は prompts 内の p に対して実行されます]
印刷(プロンプト)将来の展望このフェーズでは、SD(Simple Image Processing)用の自動プロンプト美化器を提案し、学習しました。これにより、ユーザーは基本的なプロンプトを入力するだけで、言語モデルに最適化された一連のプロンプトを取得でき、高品質な画像をより簡単に生成できるようになります。今後は、このモデルの様々なSDモデルとの互換性を拡大し、PAI-AIGCのアルゴリズムと製品機能を強化する予定です。 無料のインタラクティブ モデリング パッケージ (PAI-DSW)、モデル トレーニング パッケージ (PAI-DLC 5000CU*H コンピューティング リソース)、および 500 元相当の無料のオンライン モデル サービス パッケージ (PAI-EAS) を入手できます。 https://free.aliyun.com/?product=9602825&tlog=0613promptitpub |