【EMNLP 2023】面向Stable Diffusion的自動Prompt工程算法BeautifulPrompt

近日,阿里云人工智能平臺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

給定提示對的數據集D=\{(\mathbf{x},\mathbf{y})\},其中包含低質量提示對\mathbf{x}和高質量提示對\mathbf{y},我們對僅解碼器語言模型(BLOOM)進行微調,以輸出具有給定指令和低質量提示的高質量令牌token\mathbf{y} = \{y_1, ..., y_n \}

我們使用自回歸語言建模目標來微調語言模型:

\mathcal{L}_{sft} = - \sum_i \log P(y_i\mid \mathbf{x}, y_1, ..., y_{i-1})

Step 2. RM

我們基于PickScore 和 Aesthetic Score來訓練獎勵模型。

簡單地說,PickScore是一個基于文本到圖像提示和真實用戶偏好的大型數據集訓練的偏好模型,它在預測人類對圖像的偏好方面表現出超人的表現。我們計算低質量提示和相應高質量提示生成的圖像的PickScore。為了減少隨機種子對TIS模型生成的圖像質量的影響,我們使用8種不同的隨機種子生成圖像并對結果進行平均。計算的平均PickScore\mathbb{PS} 被用作訓練獎勵模型的基礎真相。損失函數為:

\mathcal{L}_{ps} = - \frac{1}{N}\sum_i^N \text{MSE}(r_{ps}(\mathbf{x}, \mathbf{y}), \mathbb{PS}),

其中r_{ps}(\mathbf{x}, \mathbf{y})是提示對(\mathbf{x},\mathbf{y})的獎勵模型的標量輸出。MSE是均方誤差。N為樣本總數。

類似地,獎勵模型還被訓練以將圖像中的相應提示與美學分數匹配\mathbb{AES}:

其中r_{aes}(\mathbf{y})是獎勵模型的標量輸出。

最后,我們使用\alpha作為平衡因子,將兩個獎勵模型的得分組合為最終獎勵:

r(\mathbf{x}, \mathbf{y}) = \alpha \cdot r_{ps}(\mathbf{x}, \mathbf{y}) + (1 - \alpha) \cdot r_{aes}

Step 3. PPO(RL)

由于收集到的數據集不可避免地包含一些噪聲,例如,低質量提示與相應的高質量提示之間的一致性相對較低,因此監督訓練模型\rho的性能可能不令人滿意。為了進一步提高模型性能,我們初始化一個策略\pi = \rho,然后微調\pi來使用強化學習執行任務。我們利用近端策略優化(PPO) 算法直接優化預期獎勵:

\mathbb{E}_{\mathbf{x}\sim D, \mathbf{y} \sim \pi(\cdot \mid \mathbf{x})} [r(\mathbf{x}, \mathbf{y}) - \beta\cdot\log \frac{\pi(\mathbf{y}\mid\mathbf{x})}{\rho (\mathbf{y}\mid\mathbf{x})}],

其中\beta為Kullback-Leibler (KL)罰系數。它可以防止政策偏離\rho。我們在這里采用自適應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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/207363.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/207363.shtml
英文地址,請注明出處:http://en.pswp.cn/news/207363.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【MATLAB】MODWT分解+FFT+HHT組合算法

有意向獲取代碼,請轉文末觀看代碼獲取方式~也可轉原文鏈接獲取~ 1 基本定義 MODWT分解FFTHHT組合算法是一種綜合性的信號處理方法,它結合了經驗小波變換(Empirical Wavelet Transform,EWT)、快速傅里葉變換&#xff…

25.Oracle的回收站

oracle基礎系統學習目錄 01.CentOS7靜默安裝oracle11g 02.Oracle的啟動過程 03.從簡單的sql開始 04.Oracle的體系架構 05.Oracle數據庫對象 06.Oracle數據備份與恢復 07.用戶和權限管理 08.Oracle的表 09.Oracle表的分區 10.Oracle的同義詞與序列 11.Oracle的視圖 12.Oracle的…

愛智EdgerOS之深入解析如何應用愛智的視頻流模塊完成拉流

一、ONVIF 規范和常見視頻流傳輸協議 ① ONVIF 規范 隨著視頻監控產業鏈的成熟,市面上陸陸續續出現了各式各樣的網絡攝像設備,這些設備都需要通訊協議才能進行數據傳輸。早期廠商都采用私有協議,但是現在廠商分工明確,有的負責生…

程序員的技術成長攻略

推薦語:偶爾在公眾號看到的一篇文章,寫的非常好,在此分享給各位程序員兄弟,不光是對技術成長有幫助,其他領域也是同樣適用的!建議反復閱讀,形成一套自己的技術成長策略。 原文地址:…

數據結構與算法:python棧和隊列的用法

python的棧和隊列其實都算作一個數組,棧從最后一個元素開始推出,隊列從第一個元素開始推出 # pop(0)刪除時間復雜度O(n) s [] #棧 q [] #隊列 s.append(1)#1入棧 q.append(1)#1入隊 s.pop()#出棧 q.pop(0)#出隊由于從第一個元素刪除需要挪動數組&…

【EI會議征稿】2024年粵港澳大灣區數字經濟與人工智能國際學術會議(DEAI2024)

2024年粵港澳大灣區數字經濟與人工智能國際學術會議(DEAI2024) 2024 Guangdong-Hong Kong-Macao Greater Bay Area International Conference on Digital Economy and Artificial Intelligence(DEAI2024) 2024年粵港澳大灣區數字經濟與人工智能國際學術會議(DEAI2024)由廣東科…

探索鴻蒙 TextInput組件

TextInput 根據組件名字,可以得知他是一個文本輸出框。 聲明代碼👇 TextInput({placeholder?:ResourceStr,text?:ResourceStr}); placeholder: 就是提示文本,跟網頁開發中的placeholder一樣的 text:輸入框當前的文本內容 特殊屬…

ChatGPT的進化史

真正的人工智能可以變現的完全與人類一樣思考時,世界會發生什么變化? ChatGPT就如它的名字一樣,人類創造它最初的目的只是一個聊天機器人。聊天嘛,只要你和他對話時他的回答像人類一樣自然就行了,看起來并沒什么了不起…

Linux服務器磁盤占用過高解決思路

服務器在運行時,經常出現磁盤占用過高,可能有如下原因: 1、是否有產生過大的日志文件,或者大文件中的log過大,導致磁盤占用過高; 2、查看磁盤占用情況,分析哪個目錄中文件占比最大; …

貝蒂的搗蛋小游戲~(C語言)

引言: 前面貝蒂已經給大家介紹了選擇,循環結構~,今天貝蒂就基于這兩種結構,為大家講解一種搗蛋小游戲的設計思路和方法哦。 1.游戲要求 游戲要求: 1. 電腦?動?成1~100的隨機數 2. 玩家猜數字,猜數字的過…

52 代碼審計-PHP項目類RCE及文件包含下載刪除

目錄 漏洞關鍵字:演示案例:xhcms-無框架-文件包含跨站-搜索或應用-includeearmusic-無框架-文件下載-搜索或應用功能-down等zzzcms-無框架-文件刪除RCE-搜索或應用-unlink、eval 漏洞關鍵字: SQL注入: select insert update mysql_query mysql等 文件上傳&#xff…

【FreeRTOS】信號量——簡介、常用API函數、注意事項、項目實現

在FreeRTOS中,信號量是一種非常重要的同步機制,用于實現任務間的互斥訪問和同步操作。通過信號量,不同的任務可以安全地共享資源,避免競爭和沖突,從而確保系統的穩定性和可靠性。本篇博客將介紹FreeRTOS中信號量的基本…

常用Nmap腳本

端口掃描類腳本 Nmap是一款非常流行的端口掃描工具,它可以幫助滲透測試工程師識別目標網絡上開放的端口,并提供有關這些端口的詳細信息。Nmap還提供了一系列基于腳本的功能,這些腳本可以擴展Nmap的功能,使其能夠更深入地探測目標網…

使用Huggingface創建大語言模型RLHF訓練流程的完整教程

ChatGPT已經成為家喻戶曉的名字,而大語言模型在ChatGPT刺激下也得到了快速發展,這使得我們可以基于這些技術來改進我們的業務。 但是大語言模型像所有機器/深度學習模型一樣,從數據中學習。因此也會有garbage in garbage out的規則。也就是說…

AUTOSAR CP Int-Watchdog簡介

Int Watchdog 1 簡介2 EB 中配置 TC39X3 Wdg 在代碼中使用1 簡介 內部看門狗驅動[sws_Wdg_00161]要訪問內部看門狗硬件,對應的 Wdg 模塊實例應該直接訪問看門狗服務的硬件。提示:內部看門狗驅動程序是微控制器抽象層的一部分,它允許直接的硬件訪問。注意:內部看門狗的日常服…

第21章總結 網絡通信

21.1 網絡程序設計基礎 網絡程序設計編寫的是與其他計算機進行通信的程序。Java已經將網絡程序所需要的元素封裝成不同的類,用戶只要創建這些類的對象,使用相應的方法,即使不具備有關的網絡知識,也可以編寫出高質量的網絡通信程序…

【評測腳本】機器信息評測(初版)

背景 QA的實際工作過程中,除了業務相關的測試外,也會涉及到一些評測相關的工作,甚至還要做多版本、多維度的評估分析。尤其是現在火熱的大模型,相關的評測內容更是核心中的核心。當然本文的內容只是做一些初級的機器相關的評測信息,更多更廣的評測需要更多時間的積累和總…

JVM的內存結構詳解「重點篇」

一、JVM虛擬機數據區 虛擬機棧 1、 線程私有 2、 每個方法被執行的時候都會創建一個棧幀用于存儲局部變量表,操作棧,動態鏈接,方法出口等信息。每一個方法被調用的過程就對應一個棧幀在虛擬機棧中從入棧到出棧的過程。 3、棧幀: 是用來存儲…

安裝mysql數據庫

1.1下載APT存儲庫(下載鏈接) 1.2安裝APT存儲庫(注意好正確的路徑) 將下載的文件傳輸到linux服務器對應目錄下后執行以下命令: sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb 選擇mysql5.7 然后點擊ok 然后執行 s…

應用架構——集群、分布式、微服務的概念及異同

一、什么是集群? 集群是指將多臺服務器集中在一起, 每臺服務器都實現相同的業務,做相同的事;但是每臺服務器并不是缺 一不可,存在的主要作用是緩解并發能力和單點故障轉移問題。 集群主要具有以下特征: …