近日,阿里云人工智能平臺PAI與華南理工大學朱金輝教授團隊合作在自然語言處理頂級會議EMNLP2023上發表了BeautifulPrompt的深度生成模型,可以從簡單的圖片描述中生成高質量的提示詞,從而使文生圖模型能夠生成更美觀的圖像。BeautifulPrompt通過對低質量和高質量的提示進行微調,并進一步提出了一種基于強化學習和視覺信號反饋的技術,以最大化生成提示的獎勵值。
論文:
Tingfeng Cao, Chengyu Wang, Bingyan Liu, Ziheng Wu, Jinhui Zhu, Jun Huang. BeautifulPrompt: Towards Automatic Prompt Engineering for Text-to-Image Synthesis. EMNLP 2023 (Industry Track)
背景
文生圖是AIGC中最引人注目和廣泛應用的技術之一,旨在通過文本輸入創建逼真的圖像。最近,隨著大型模型建模能力的提升,文生圖模型得到快速的發展。大規模的TIS模型,如DALLE-2、Imagen和stable diffusion,顯著提高了最先進的性能,并允許沒有藝術專業知識的用戶通過個人想象力創建前所未有的圖像。
然而,文成圖模型要求用戶在模型推理之前編寫文本提示(例如“一艘雄偉的帆船”)。編寫滿足設計師或藝術工作者需求的這些提示充滿了不確定性,就像開盲盒一樣。這是由于訓練數據的質量問題,導致需要詳細的描述才能生成高質量的圖像。在現實場景中,非專家往往很難手工編寫這些提示,并且需要通過試錯的迭代修改來重新生成圖像,從而導致時間和計算資源的嚴重浪費。
提示工程(prompt engineering)是一個新興的研究領域,旨在探索如何為深度生成模型提供提示,并提高人與AI之間直接交互的效率。因此,我們關注于大語言模型(LLM)自動地生成高質量的提示詞,下圖展示了使用簡單的圖片描述和BeautifulPrompt之后生產的圖片。
算法概述
數據收集
我們提出一個自動化收集prompt優化的數據集方案:
原始數據源是DiffusionDB,它只包含未配對的提示。啟發式地,我們根據提示的長度、提示中包含的某些標簽等將提示分為低質量提示和高質量提示。
接下來,我們
i)使用BLIP 對與高質量提示相關的圖像進行caption,并將結果視為相應的低質量提示,因為說明文字較短且缺乏細節;
ii)使用ChatGPT對高質量的提示進行總結,并將總結視為低質量的提示;
iii)使用ChatGPT從低質量的提示生成更好的提示;結果被認為是高質量的提示。
通過以上三種方法,我們獲得了大量的提示對;然而,這些提示對的質量無法保證。因此,我們需要進行進一步的數據清理和過濾。我們清洗了包含色情、政治敏感等不適合工作場景的數據,并對圖片的美觀值進行篩選。得到最終的數據集。與InstructGPT類似,我們采用了三階段的訓練,整體訓練架構圖如下:
Step 1. SFT
給定提示對的數據集,其中包含低質量提示對
和高質量提示對
,我們對僅解碼器語言模型(BLOOM)進行微調,以輸出具有給定指令和低質量提示的高質量令牌token
。
我們使用自回歸語言建模目標來微調語言模型:
Step 2. RM
我們基于PickScore 和 Aesthetic Score來訓練獎勵模型。
簡單地說,PickScore是一個基于文本到圖像提示和真實用戶偏好的大型數據集訓練的偏好模型,它在預測人類對圖像的偏好方面表現出超人的表現。我們計算低質量提示和相應高質量提示生成的圖像的PickScore。為了減少隨機種子對TIS模型生成的圖像質量的影響,我們使用8種不同的隨機種子生成圖像并對結果進行平均。計算的平均PickScore 被用作訓練獎勵模型的基礎真相。損失函數為:
其中是提示對
的獎勵模型的標量輸出。MSE是均方誤差。N為樣本總數。
類似地,獎勵模型還被訓練以將圖像中的相應提示與美學分數匹配:
其中是獎勵模型的標量輸出。
最后,我們使用作為平衡因子,將兩個獎勵模型的得分組合為最終獎勵:
Step 3. PPO(RL)
由于收集到的數據集不可避免地包含一些噪聲,例如,低質量提示與相應的高質量提示之間的一致性相對較低,因此監督訓練模型的性能可能不令人滿意。為了進一步提高模型性能,我們初始化一個策略
,然后微調
來使用強化學習執行任務。我們利用近端策略優化(PPO) 算法直接優化預期獎勵:
其中為Kullback-Leibler (KL)罰系數。它可以防止政策偏離
。我們在這里采用自適應KL懲罰。
算法評測
為了驗證BeautifulPrompt的有效性,我們在一些基于模型打分的客觀指標和人類主觀評估上做了實驗:
我們也對算法的模塊進行了詳細有效性分析,我們可以算法的各個流程都是有效的。
為了更好地服務開源社區,BeautifulPrompt算法的源代碼即將貢獻在自然語言處理算法框架EasyNLP中,歡迎NLP從業人員和研究者使用。
EasyNLP開源框架:GitHub - alibaba/EasyNLP: EasyNLP: A Comprehensive and Easy-to-use NLP Toolkit
參考文獻
- Chengyu Wang, Minghui Qiu, Taolin Zhang, Tingting Liu, Lei Li, Jianing Wang, Ming Wang, Jun Huang, Wei Lin. EasyNLP: A Comprehensive and Easy-to-use Toolkit for Natural Language Processing. EMNLP 2022
- Stiennon, Nisan, et al. "Learning to summarize with human feedback." Advances in Neural Information Processing Systems 33 (2020): 3008-3021
- Rombach, Robin, et al. "High-resolution image synthesis with latent diffusion models." Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2022
- Kirstain, Yuval, et al. "Pick-a-pic: An open dataset of user preferences for text-to-image generation." arXiv preprint arXiv:2305.01569 (2023)
論文信息
論文標題:BeautifulPrompt: Towards Automatic Prompt Engineering for Text-to-Image Synthesis
論文作者:曹庭鋒、汪誠愚、劉冰雁、吳梓恒、朱金輝、黃俊
論文pdf鏈接:https://arxiv.org/abs/2311.06752