作者:劉小虎,中國(guó)科學(xué)院計(jì)算技術(shù)研究所
組內(nèi)現(xiàn)在正在做大模型相關(guān),筆者負(fù)責(zé)prompt engineering,在實(shí)際工程中會(huì)發(fā)現(xiàn)prompt對(duì)模型的輸出影響巨大,可能一個(gè)字就會(huì)改變模型的輸出(筆者用的是量化后的7B model),而且換一個(gè)模型,就要改變手工制定的prompt,非常麻煩和受限。因此想到了Automatic prompt engineering。由此記錄自己的paper閱讀,肯定會(huì)有自己的理解錯(cuò)誤的地方,如有發(fā)現(xiàn)請(qǐng)聯(lián)系筆者進(jìn)行更正。
APE: Larger Language models are human-level prompt engineers
這篇論文的核心思路就是:
?從訓(xùn)練集中生成候選prompt
?評(píng)估這些候選prompt,選出得分最高的prompt
?resample, 使用LLM 生成語(yǔ)義相近的prompt(2中得分最高的prompt),然后再進(jìn)行評(píng)估,最終得到prompt
APE整體框架圖
APE算法
生成候選prompt
論文指出有三種生成候選prompt的方式
?Forward Mode Generation
這個(gè)比較直觀,就是寫一段指令,然后將訓(xùn)練集的輸入輸出給出,直接讓LLM自動(dòng)生成prompt。這個(gè)生成prompt的模板不知道是哪的出處,有網(wǎng)友知道是哪的,可以直接指出。
?Reverse Mode Generation
這個(gè)也很直觀,就是填補(bǔ)空白的方式。但是這個(gè)方式怎么實(shí)現(xiàn)呢?我比較疑惑,不知道怎么實(shí)現(xiàn)這個(gè)填補(bǔ)空白的方式,因?yàn)長(zhǎng)LM都是一個(gè)字一個(gè)字的自回歸生成。
?Customized Prompts
這一類就是自己根據(jù)task來設(shè)計(jì)了,論文給出了一個(gè)示例。我認(rèn)為就是使用不同的模板來擴(kuò)充了多樣性(可能是我的理解有錯(cuò)誤)
評(píng)估候選prompt
?Execution accuracy
這種方式其實(shí)就是使用GT來進(jìn)行比較。將得分最高的prompt扔進(jìn)模型,得到結(jié)果和GT進(jìn)行比較。
?Log probability
給定指令和問題后所得到的所需答案的對(duì)數(shù)概率
另外,這一步如果在全量訓(xùn)練集上評(píng)估,則開銷非常大,因此作者提出一種multi-stage策略。大致思想是先在少量subset上評(píng)估,然后過濾掉比較差的,循環(huán)這一過程直到候選集足夠小,此時(shí)再在全量訓(xùn)練集上進(jìn)行評(píng)價(jià)、挑選。
Resample
使用的是蒙特卡羅搜索的方式。說的這么玄乎,其實(shí)還是使用LLM來生成prompt!但是這一步他是使用之前得分最高的prompt再次來生成語(yǔ)義相近的prompt。
這里可以是迭代的方式進(jìn)行。怎么迭代呢?筆者是這樣認(rèn)為的:
1、得到語(yǔ)義相近的prompt。
2、評(píng)估這些prompt。
3、得到得分最高的prompt 重復(fù)1、2步驟。
作者實(shí)驗(yàn)發(fā)現(xiàn),對(duì)于比較難的任務(wù),進(jìn)行resample能夠進(jìn)一步提升效果。
ProTeGi (Automatic Prompt Optimization with “Gradient Descent and Beam Search)
這篇文章早就在arxiv上發(fā)出來了。當(dāng)時(shí)的縮寫還是APO。今年被EMNLP2023收錄
首先讓我們先來看看這篇論文的整體框架圖。
ProTeGi總體框架圖
方法:利用數(shù)值梯度下降自動(dòng)優(yōu)化提示,同時(shí)結(jié)合beam search和bandit selection procedure提高算法效率。
優(yōu)勢(shì):無需調(diào)整超參數(shù)或模型訓(xùn)練,ProTeGi可以顯著提高提示的性能,并具有可解釋性。
什么原理呢?
?得到當(dāng)前prompt的“gradient”
這個(gè)“gradient”怎么得到的了呢,這是個(gè)啥玩意,怎么還有梯度?注意,注意。人家是帶引號(hào)的!比喻成梯度。這玩意有什么用呢。
文章指出給定一批error samples(當(dāng)前prompt無法預(yù)測(cè)正確的),讓LLM給出當(dāng)前prompt預(yù)測(cè)錯(cuò)誤的原因,這一原因即文本形式的“gradient”。使用的還是LLM!
?將“gradient”輸入到LLM中,得到新的prompt
?和APE一樣,resample, 得到語(yǔ)義相近的prompt,然后迭代。
注意注意啊,每輪迭代中,最外層包含一個(gè)beam search過程,以便強(qiáng)化探索。這一塊就看不懂了, 也是本論文的貢獻(xiàn)之一。沒有想過改進(jìn),所以略過直接使用。
OPRO (Large Language Models as Optimizers)
paper:LargeLanguageModelsasOptimizers 鏈接:https://arxiv.org/abs/2309.03409 code:https://github.com/google-deepmind/opro
首先來看框架圖
然后接著看論文對(duì)meta-prompt的定義
blue 藍(lán)色的是 solution-score pairs 也就是 prompt + score。這個(gè)score怎么來的呢?使用LLM進(jìn)行打分,也就是Figure 2 中的 objective function evaluator。這應(yīng)該也是個(gè)LLM, 這個(gè)LLM和 LLM as optimizer 可以是同一個(gè) 也可以不是。** 注意,這個(gè)打分其實(shí)就是評(píng)估新生成的prompt在任務(wù)上的表現(xiàn),說白了就是和GT進(jìn)行對(duì)比(對(duì)了+1)**。
orange 橙色 就是指令 meta-instructions.
purple 紫色 就是task description,包含一些任務(wù)的examples、優(yōu)化的目標(biāo)等
因此, OPRO的核心思路是讓LLM基于過往的迭代記錄、優(yōu)化目標(biāo),自己總結(jié)規(guī)律,逐步迭代prompt,整個(gè)過程在文本空間上完成。
PE2 (Prompt Engineering a Prompt Engineer)
paper:PromptEngineeringaPromptEngineer 鏈接https://arxiv.org/abs/2311.05661
這一篇paper 是 APE 和 APO (ProTeGi)的改進(jìn)版,集成了這2個(gè)方法的優(yōu)點(diǎn)。
這篇論文主要提出了一個(gè)meta-prompt的東東(等等,我去,這玩意和OPRO這篇論文里的好像?。?/p>
提供更細(xì)節(jié)的指令和內(nèi)容
?提供提示工程的教程
?2階段的任務(wù)描述
?step-by-step 推理的模板
?明確指定提示與輸入之間的相互關(guān)系
結(jié)合優(yōu)化的概念
?batch size : 指的就是使用batch size失敗的例子
?step size : 指的就是改變?cè)嫉膒rompt中step size個(gè)字
?Optimization History and Momentum : 其實(shí)就是增加了以外的prompt和修改后的prompt
看完后驚呼道:這是真能寫啊。寫的玄乎又玄乎的。一圖勝千言
給我的感覺就是前面3篇論文的集成版本。
將OPRO中的meta-prompt的概念用到了 APO中了,然后豐富了模板的內(nèi)容。有反思分析有推理,迭代的讓模型自動(dòng)修改prompt。
審核編輯:黃飛
-
算法
+關(guān)注
關(guān)注
23文章
4710瀏覽量
95409 -
prompt
+關(guān)注
關(guān)注
0文章
15瀏覽量
2769 -
LLM
+關(guān)注
關(guān)注
1文章
325瀏覽量
844
原文標(biāo)題:總結(jié)
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
AI對(duì)話魔法 Prompt Engineering 探索指南

HTML DOM prompt()方法使用

推薦系統(tǒng)中候選生成和冷啟動(dòng)挑戰(zhàn)的研究
應(yīng)用于任意預(yù)訓(xùn)練模型的prompt learning模型—LM-BFF

揭秘Prompt的前世今生

Prompt范式你們了解多少

NLP中Prompt的產(chǎn)生和興起

基于預(yù)訓(xùn)練視覺-語(yǔ)言模型的跨模態(tài)Prompt-Tuning

萬能的prompt還能做可控文本生成
關(guān)于Prompt在NER場(chǎng)景的應(yīng)用總結(jié)
一種基于prompt和對(duì)比學(xué)習(xí)的句子表征學(xué)習(xí)模型
從評(píng)論中生成藝術(shù)的開源項(xiàng)目

評(píng)論