?夕小瑤科技說 原創(chuàng)
?作者 | 謝年年、王二狗
有了ChatGPT、GPT4之后,我們的工作學(xué)習(xí)效率得到大大提升(特別在湊字?jǐn)?shù)方面?(???????)?)。
作為一個工具,有人覺得好用,自然也有人覺得難用。
要把大模型用得6,必須得研究一下prompt使用技巧,但有時候絞盡腦汁想的prompt卻無法獲得理想的輸出結(jié)果。一個好的prompt的重要性不言而喻,怪不得Prompt工程師這個新興職業(yè)的年薪已經(jīng)達到了二三十萬美元。
但對于大部分公司來說,prompt工程師是請不起的,怎么辦呢?
這里有一個省錢小技巧,讓你從小白秒變大佬級Prompt工程師!
加州大學(xué)團隊提出了可以自動優(yōu)化Prompt的框架——PromptAgent,結(jié)合大模型的自我反思特點與蒙特卡洛樹搜索規(guī)劃算法,自動迭代檢查Prompt,發(fā)現(xiàn)不足,并根據(jù)反饋對其進行改進,尋找通往最優(yōu)Prompt的路徑,可以將平平無奇的初始Prompt打造成媲美人類專家手工設(shè)計的Prompt。
論文:
論文鏈接:
https://arxiv.org/pdf/2310.16427.pdf
先看一下例子感受一下有多厲害。
假設(shè)我們想要實現(xiàn)生物醫(yī)學(xué)領(lǐng)域的命名實體識別任務(wù),從句子中提取疾病等實體。
prompt可能就設(shè)置為:
從句子中提取疾病或狀況
這樣簡單粗暴的prompt雖然也能完成部分簡單任務(wù),但是效果并不好。
PromptAgent能夠通過該prompt所獲得的結(jié)果指出錯誤并不斷優(yōu)化prompt:
您的任務(wù)是提取疾病或疾病情況...請避免包含任何相關(guān)元素,如遺傳模式(如常染色體顯性)、基因或基因座(如PAH)、蛋白質(zhì)或生物途徑。...考慮具體的疾病和更廣泛的類別,并記住疾病和情況也可以以常見的縮寫或變體形式出現(xiàn)。以以下格式提供識別出的疾病或情況:{entity_1,entity_2,....}。...請注意,“l(fā)ocus”一詞應(yīng)被識別為基因組位置,而不是疾病名稱。
▲優(yōu)化示例
可以看到,最終的這份Prompt涵蓋了豐富的生物領(lǐng)域知識,且準(zhǔn)確率得到了極大提升。簡直就是菜鳥秒變大佬!
讓我們來看看具體是怎么做的吧!
方法
PromptAgent框架設(shè)計
PromptAgent在確保對廣闊的prompt空間進行高效策略性的搜索的同時,有效地將專家知識整合到任務(wù)prompt中。所謂專家知識通過大模型如GPT-4生成,而其搜索策略使用的是著名的蒙特卡洛樹搜索。整體框架如圖3所示:
本文將任務(wù)prompt定義為狀態(tài),而對prompt的修改過程定義為執(zhí)行動作。如圖3(b)所示:
-
給定當(dāng)前狀態(tài)(也就是初始prompt),基本模型(gpt-3.5-turbo)從任務(wù)數(shù)據(jù)集獲得初始輸出,初始輸出往往不如人意,需要進一步優(yōu)化。
-
使用優(yōu)化器模型(gpt-4)提供錯誤反饋并給出改進建議。
-
優(yōu)化后的模型根據(jù)反饋更新prompt并過渡到下一個狀態(tài)。
如此循環(huán)往復(fù),最終導(dǎo)向?qū)<壹塸rompt。
策略優(yōu)化過程
上述對prompt優(yōu)化的過程可以無縫地將PromptAgent與主要的規(guī)劃算法特別是蒙特卡洛樹搜索(MCTS)相結(jié)合。從而產(chǎn)生最具普適性的專家級Prompt。
蒙特卡洛樹搜索(MCTS)通過逐步構(gòu)建樹狀結(jié)構(gòu)來實現(xiàn)策略搜索,如圖3(a)所示,其中每個節(jié)點表示一個狀態(tài),每條邊表示狀態(tài)轉(zhuǎn)移的動作。MCTS執(zhí)行選擇、擴展、模擬和反向傳播四步走來迭代搜索。迭代過程在達到預(yù)定義的迭代次數(shù)后結(jié)束,選擇最高回報的路徑作為最終的Prompt。
-
選擇:在每層選擇最有前途的節(jié)點進行進一步的擴展和探索。在每次迭代中,它從根節(jié)點開始,遍歷每樹的每一層,選擇每層的后續(xù)子節(jié)點,并在葉節(jié)點處停止。在選擇每層的子節(jié)點時,利用了上界置信樹算法(UCT),幫助在"選擇最有希望的路徑"和"探索新路徑"之間找到一個好的平衡。具體如下所示:
其中表示在狀態(tài)執(zhí)行動作時的有可能獲得的回報,表示節(jié)點的動作集合,表示節(jié)點的訪問次數(shù),表示在應(yīng)用動作到節(jié)點后得到的子節(jié)點,是一個用于調(diào)整探索的常數(shù)。
公式中第一項用于衡量路徑的價值,而第二項衡量被訪問節(jié)點的不確定性。換句話說,如果一個節(jié)點被探索得較少且其子節(jié)點也較少被訪問過,那么第二項的值會較高。
-
擴展:在前一步選擇到達的葉節(jié)點下面添加新的子節(jié)點來擴展樹結(jié)構(gòu)。通過多次應(yīng)用動作生成和狀態(tài)轉(zhuǎn)換(圖3(b))來完成的,從而產(chǎn)生多個新的動作和狀態(tài)。需要注意的是,本文采樣了多個訓(xùn)練批次得到多樣化的錯誤反饋(動作)。在新的節(jié)點中,選擇最高回報的節(jié)點作為下一個模擬步驟的輸入。
-
模擬:模擬擴展階段所選節(jié)點的未來軌跡,并計算如果選擇該路徑可能得到的回報。模擬策略的選擇很靈活,比如選擇隨機移動直到達到終止?fàn)顟B(tài)。為了減少模擬的計算成本并簡化過程,本文選擇不斷生成多個動作,并選擇其中回報最高的節(jié)點,以快速進入下一個樹級別。
-
反向傳播:在模擬過程中遇到終止?fàn)顟B(tài)時,將進行反向傳播。終止?fàn)顟B(tài)由預(yù)設(shè)的最大深度或提前停止條件決定。此時,通過更新Q值函數(shù),沿著從根節(jié)點到終止節(jié)點的路徑反向傳播計算未來的回報。對于次條路徑中的每個狀態(tài)-動作對,聚合從狀態(tài)開始的所有未來軌跡的回報來更新,更新方式如下:
這里M表示從狀態(tài)開始的未來軌跡的數(shù)量,和分別表示從狀態(tài)和動作開始的第個狀態(tài)序列和動作序列。
PromptAgent使用預(yù)設(shè)的迭代次數(shù)執(zhí)行上述四個操作,當(dāng)達到迭代次數(shù)后,選擇具有最高回報的最佳路徑中的最佳節(jié)點(即Prompt)進行最終評估。
實驗
實驗設(shè)置
為了全面評估PromptAgent對各種應(yīng)用的影響,作者從三個不同領(lǐng)域精選了12個任務(wù)進行深入實驗:
- 6個BIG-Bench Hard (BBH)任務(wù),強調(diào)領(lǐng)域知識(如幾何形狀和因果判斷)和復(fù)雜推理能力(如桌上的企鵝、物體計數(shù)、認(rèn)識論推理和時間序列)。
- 3個生物醫(yī)學(xué)領(lǐng)域特定任務(wù):疾病命名實體識別(NER)、生物醫(yī)學(xué)句子相似性任務(wù)(Biosses)和醫(yī)學(xué)問答任務(wù)(Med QA)。
- 3個著名的自然語言理解任務(wù),包括兩個文本分類任務(wù)(TREC和Subj)和一個自然語言推理任務(wù)(CB)。
實驗結(jié)果與分析
整體效果
表1顯示PromptAgent在BBH任務(wù)上明顯優(yōu)于所有基線。相對人類Prompt(ZS)、CoT和APE方法分別提升了28.9%、9.5%和11.2%。
對于需要廣泛的領(lǐng)域知識和深厚的LLM Prompt工程經(jīng)驗的生物領(lǐng)域任務(wù),人類Prompt和CoTPrompt效果不佳。而APE通過自動Prompt抽樣和優(yōu)化融入了一些領(lǐng)域知識,減少了人工干預(yù),效果有所提升。但是,PromptAgent相對于APE平均提高了7.3%,這表明PromptAgent可以更好地引導(dǎo)有效的領(lǐng)域知識,產(chǎn)生專家級Prompt,并彌合新手和專家Prompt工程師之間的知識差距。
而對于通用的NLU任務(wù),PromptAgent的能力和通用性也完勝所有的基線。
Prompt泛化性
作者還對經(jīng)過PromptAgent優(yōu)化后的Prompt能否推廣到其他基礎(chǔ)LLM模型上展開評估。由于較低級別和較小規(guī)模的LLM模型(如GPT-2或LLaMA)可能無法熟練掌握這些專家級Prompt的微妙之處,會導(dǎo)致顯著的性能下降。本次評估選取了一個性能更強大(GPT-4)和一個比GPT-3.5性能更弱的模型(PaLM 2)。結(jié)果顯示PromptAgent具有巨大的潛力:
-
當(dāng)使用更強大的GPT-4時,優(yōu)化后的專家Prompt幾乎在所有任務(wù)(11/12)中都取得了進一步改進。
-
將專家Prompt轉(zhuǎn)移到PaLM 2時,性能可能不如更強大的模型,但仍然可以在某些任務(wù)(如Penguins)中獲得提升。
消融實驗
本文還對比了多種搜索策略的效果,包括每次隨機抽樣并選擇一個動作的單次蒙特卡洛(MC)搜索、始終選擇多個樣本中的最佳樣本的貪婪深度優(yōu)先搜索(Greedy)和在每個層級保留多個有用路徑的束搜索(Beam search)。表格4顯示:
-
貪婪搜索(Greedy)和束搜索(Beam)都極大地改進了MC基線,表明結(jié)構(gòu)化的迭代探索是必要的。
-
Beam和Greedy嚴(yán)格按照前進的方向操作,沒有在Prompt空間中進行策略性搜索,缺乏預(yù)見未來結(jié)果和回溯過去決策的能力。相比之下,MCTS的策略規(guī)劃允許PromptAgent更有效地遍歷復(fù)雜的專家Prompt空間,在所有任務(wù)上明顯優(yōu)于所有搜索變體。
搜索效率分析
除了卓越的性能外,PromptAgent的一個關(guān)鍵優(yōu)勢是通過策略規(guī)劃能夠高效地搜索。搜索效率是通過搜索過程中Prompt數(shù)量來衡量的,即在搜索過程中生成的節(jié)點數(shù)。圖4a中繪制了搜索效率與任務(wù)性能的關(guān)系,可以看到,PromptAgent的數(shù)據(jù)點聚集在左上角,表明在更高的準(zhǔn)確性下,搜索的節(jié)點數(shù)也較少。
結(jié)論
本文介紹了PromptAgent,一種新穎的Prompt優(yōu)化框架,結(jié)合LLMs的自我反思能力將任務(wù)的領(lǐng)域特定知識納入到新生成的Prompt中,并使用MCTS規(guī)劃的能力高效遍歷復(fù)雜的Prompt空間找到專家級Prompt,PromptAgent優(yōu)化后Prompt也始終表現(xiàn)出專家級的特征,豐富了領(lǐng)域特定的細節(jié)和指導(dǎo)。
在未來勢必會出現(xiàn)越來越強大的大語言模型,能理解并支持的復(fù)雜指令越來越多,僅依賴人工專家Prompt是遠遠不夠的,自動構(gòu)建專家級Prompt將是一個非常有潛力的方向。文章來源:http://www.zghlxwxcb.cn/news/detail-737786.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-737786.html
到了這里,關(guān)于一個小妙招從Prompt菜鳥秒變專家!加州大學(xué)提出PromptAgent,幫你高效使用ChatGPT!的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!