強過AutoGPT!微軟重磅研究提出APO算法,「自動提示」淘汰提示工程師
模型調(diào)教得好不好,提示(prompt)最重要。
在優(yōu)化和改進提示工程的過程中,提示變得越來越精巧、復雜。
據(jù)Google Trends,提示工程在過去的6個月受歡迎程度急劇上升,到處都是關(guān)于提示的教程和指南。
比如,一個在網(wǎng)上爆火的提示工程指南GitHub已經(jīng)狂瀾28.5k星。
然而,完全用試錯法開發(fā)提示可能不是最有效的策略。
為了解決這個問題,微軟研究人員開發(fā)了一種全新提示優(yōu)化方法,稱為自動提示優(yōu)化(APO)。
論文地址:https://arxiv.org/pdf/2305.03495.pdf
手寫提示省了
近來,各種跡象表明,在大規(guī)模網(wǎng)絡文本中訓練的大型語言模型在跨越各種NLP任務中有時表現(xiàn)不佳。
這些LLMs都是通過提示來遵循人的指令。然而,編寫這些自然語言提示仍然是一個手工試錯的過程,需要人們付出巨大努力,甚至還得具備專業(yè)知識。
因此,還得需要自動,或半自動的程序來幫助程序員寫出最好的提示。
最近的一些研究,通過訓練輔助模型,或?qū)μ崾具M行可微表示來研究這個問題。
然而,這些工作假定可以訪問到LLM的內(nèi)部狀態(tài)變量,而實操的人通常通過API與LLM進行交流。
其他的工作則通過強化學習或LLM基礎(chǔ)反饋對提示進行離散操做。
這些算法也可能需要對LLM的低級訪問,還會產(chǎn)生不可理解的輸出,或依賴于無方向蒙特卡羅搜索(monte-carlo search)的語義空間上的提示。
對此,微軟研究人員提出了自動提示優(yōu)化(APO),一個通用的和非參數(shù)提示優(yōu)化算法。
APO是一種受數(shù)值梯度下降(numerical gradient descent)啟發(fā)的通用非參數(shù)提示優(yōu)化算法,旨在自動化和改進LLM的快速開發(fā)過程。
APO算法的整體框架
這一算法建立在現(xiàn)有的自動化方法的基礎(chǔ)上,包括訓練輔助模型,或提示的可微表示,以及使用強化學習或基于LLM的反饋進行離散操作。
與以前的方法不同,APO通過在基于文本的蘇格拉底對話(Socratic dialogue)中使用梯度下降法來解決離散優(yōu)化的障礙。
它用LLM反饋代替了差異,用LLM編輯代替了反向傳播。
更具體來講,該算法首先利用小批量的訓練數(shù)據(jù)獲得自然語言「梯度」,以描述給定提示中缺陷的。
這些梯度指導編輯過程,在梯度的相反語義方向上編輯當前提示符。
然后,再進行更廣泛的集束搜索(beam search),以擴大提示的搜索空間,將提示最佳化問題轉(zhuǎn)化為集束候選的選擇問題。
非參數(shù)「梯度下降」的離散提示優(yōu)化
自動提示優(yōu)化框架假設可以訪問由輸入和輸出文本對(數(shù)字、類別、匯總等)組成的初始提示和訓練數(shù)據(jù):。
要注意的是,所有提示p都是從相干自然語言 的空間中提取的。
研究人員假設訪問了一個黑盒LLM API,,它返回由連接p和x組成的提示符可能的文本延續(xù)y (例如,少樣本提示符和輸入示例,或Chatbot角色和對話歷史)。
在這種情況下,APO算法迭代精化了提示以產(chǎn)生,對于某些度量函數(shù)和域內(nèi)測試或開發(fā)數(shù)據(jù),這是最佳提示的一個近似。
梯度下降
在研究的設置中,梯度下降法是指 (1) 用一批數(shù)據(jù)評估提示符的過程,(2) 創(chuàng)建一個局部丟失信號,其中包含關(guān)于如何改進當前提示符的信息,然后 (3) 在開始下一次迭代之前,在梯度的相反語義方向編輯提示符。
在此,研究人員使用一對靜態(tài)LLM提示來完成這個過程,如圖所示。
第一個提示是創(chuàng)建丟失信號「梯度」,叫做。
雖然特定的內(nèi)容可能會有所不同,但是必須始終考慮當前提示,以及在一小批數(shù)據(jù)(特別是錯誤數(shù)據(jù)集)上的行為,并生成缺陷的自然語言摘要。這個摘要變成了梯度。
就像傳統(tǒng)的梯度一樣,梯度表示參數(shù)空間中的一個方向,這會使模型用當前提示描述缺陷的自然語言空間變得更糟糕。
第二個提示符叫做,雖然這個提示符也是變化的,但它必須始終采用梯度和當前提示符,然后在與相反的語義方向上對執(zhí)行編輯,即修復指示的問題。
與傳統(tǒng)的機器學習設置不同,研究人員并沒有生成一個單一的梯度或編輯,而是生成了一些方向,可以改善當前的提示。
集束搜索
接下來,研究者描述了梯度下降用于指導集束搜索在提示符空間上的運行。這個集束搜索是提示訓練算法的外部循環(huán)。
集束搜索是一個迭代優(yōu)化過程,在每次迭代中,當前提示符用于生成許多新的候選提示符。
接下來,一個選擇過程就是用來決定哪些提示,值得繼續(xù)進行到下一次迭代。這個循環(huán)允許對多個提示符候選進行增量改進和探索。
實驗評估
為了評估 APO 的有效性,微軟研究小組將其與三種最先進的NLP任務即時學習基線進行了比較,包括越獄檢測、仇恨語音檢測、假新聞檢測和諷刺檢測。
APO在所有四個任務中都持續(xù)超越基線,在蒙特卡洛(MC)和強化學習(RL)基線上取得了顯著的進步。
平均而言,APO比MC和RL基線分別提高了3.9%和8.2% ,比原始提示提高了15.3% ,比AutoGPT提高了15.2%。
結(jié)果表明,提出的算法可以提高初始提示輸入31%的性能,超過最先進的提示學習基線平均4-8% ,而依賴較少的LLM API調(diào)用。
此外,研究人員還展示了優(yōu)化過程的可解釋性,并調(diào)查了算法的缺點。
值得注意的是,這些改進是在沒有額外的模型訓練或超參數(shù)優(yōu)化的情況下完成的,這表明了APO如何有效改進了LLM的提示。
對于提示工程來說,APO的出現(xiàn)是非常興奮的。
APO通過使用梯度下降法和集束搜索自動化快速優(yōu)化提示過程,減少了快速開發(fā)所需的人力和時間。
實證結(jié)果表明,該模型能夠在一系列自然語言處理任務中迅速提高質(zhì)量。
越獄是一項新的任務,目標是確定用戶對LLM的輸入是否代表越獄。我們將越獄定義為一種用戶互動策略,旨在讓AI打破自己的規(guī)則。
發(fā)現(xiàn)微軟研究員帶來的改變游戲規(guī)則的自動提示優(yōu)化(APO)!一個強大的通用框架,用于優(yōu)化LLM提示。