在人工智慧快速發展的今天,如何有效利用大型語言模型(LLMs)成為了一個普遍關注的話題。這是9月份的一篇論文,提出了LangGPT結構化提示框架和Minstrel多代理提示生成系統,為非AI專家使用LLMs提供了強大支援。
對於非人工智慧專家來說,構建高質量的提示以充分利用LLMs的能力仍然是一個巨大的挑戰。現有的提示工程研究主要集中在總結設計技巧和設計自動最佳化方法上,但這些方法往往缺乏系統性的設計,導致學習成本高昂,且不利於提示的迭代更新。
為了解決這些問題,論文的作者提出了LangGPT,一個結構化的提示設計框架,以及Minstrel,一個基於多代理協作的結構化提示生成工具。研究的主要目的包括:
- 提高提示的泛化能力和可重用性,降低提示設計的學習成本。
- 透過多代理協作自動生成高質量的結構化提示。
- 驗證結構化提示在指導LLMs執行任務時的優越性。
LangGPT: 結構化提示設計框架
整體雙層結構
LangGPT借鑑了物件導向程式語言的設計思想,提出了一個雙層結構的提示設計框架:
- 模組(Modules):類似於程式語言中的類,每個模組代表對LLMs的一個方面的要求。
- 元素(Elements):類似於程式語言中的函式和屬性,代表對LLMs的直接具體指令的內容。
模組設計
LangGPT定義了以下基本模組:
- 角色(Role):提示的名稱和為LLMs設定的角色。
- 配置檔案(Profile):包含提示的基本資訊,如作者、版本、描述、語言等。
- 約束(Constraints):LLMs在生成響應時不能違反的禁令和必須滿足的要求。
- 目標(Goals):使用者想要達到的最終目標。
- 初始化(Initialization):通知LLMs開始對話的標誌。
- 示例(Examples):給LLMs提供輸入-輸出對作為學習例項。
- 工作流程(Workflow):指導LLMs執行任務的過程。
- 技能(Skills):啟用LLMs與任務相關的知識和能力。
- 建議(Suggestion):為LLMs在執行任務時遇到的分支情況提供建議和行為規劃。
- 背景(Background):LLMs執行任務時必須具備的上下文資訊和記憶。
- 風格(Style):規定LLMs響應的風格、語氣和情感特徵。
- 輸出格式(Output format):指定LLMs響應的格式。
- 命令(Command):防止基於LLMs的助手侷限於單一行為。
元素設計
LangGPT設計了三種基本元素型別:
- 模擬賦值的模板:
The ⟨PROPERTY⟩ is ⟨VALUE⟩.
- 指定輸入資訊、任務和輸出的模板(輸入和輸出可選)
- 模擬函式的形式:
For the given ⟨PROPERTY⟩ of ⟨VALUE⟩, please execute the following actions: ⟨ACTIONS⟩; Return the ⟨RESULT⟩
論文中提供了一個示例表格,展示了不同模組中基本元素的示例:
Minstrel: 基於多代理協調的結構化提示生成
Minstrel是一個透過多個生成代理協作來生成結構化提示的工具。它引入了工作組的概念,將提示生成任務分解為低耦合且靈活的子任務。
工作組設計
Minstrel包含三個主要的工作組:
- 分析組(Analysis Group,A):負責分析使用者需求、反饋和測試結果。
- 設計組(Design Group,D):負責生成不同模組的主要內容。
- 測試組(Test Group,T):對生成的結構化提示進行系統測試。
論文中提供了一個圖表,展示了Minstrel的整體框架:
代理設計
每個工作組中包含不同的代理:
- 分析組(A):- 分析器A(m):分析使用者的任務需求並啟用相應的模組設計代理。- 反思器A(r):總結測試反饋和使用者反饋,並將其反饋給相應的模組設計代理。
- 設計組(D):- 包含多個對應LangGPT模組的專門代理,如D(cons.)負責生成約束內容,D(bkgd.)負責生成背景內容等。
- 測試組(T):- 模擬器T(s):按照生成的提示充當助手。- 提問者T(q):與模擬器進行對話,產生測試對話。- 評論員T(c):評估助手的表現,並能相互辯論。
多代理協作與反思機制
Minstrel的工作流程包括設計和反思兩個主要階段:
- 設計階段:
Sa = Am(t), M[k] = D(k)(t) for k in Sa,
其中Sa表示模組啟用狀態,M表示儲存生成的LangGPT模組內容的列表。 - 反思階段:
Ct = T(c)(T(s)(∑M), T(q)(t)), Sr = A(r)(Ct + Cu), M[k] = M[k] + Am(Sr),
其中Ct表示測試組得出的評論,Cu表示使用者的評論,Sr表示基於評論生成的模組啟用狀態。
透過這種設計,Minstrel能夠不斷最佳化生成的提示,以更好地滿足使用者需求和任務要求。
實驗設定
為了驗證LangGPT和Minstrel的有效性,論文作者進行了一系列實驗。以下是實驗設定的主要內容:
大型語言模型選擇
- Minstrel使用的模型:GPT-4-turbo
- 用於評估提示效果的模型:- Gemma-2-9b-it- Qwen2-7B-Instruct- Meta-Llama-3.1-8B-Instruct- Mistral-7B-Instruct-v0.2- GPT-4o-mini- Claude3-haiku
評估任務
為了全面評估提示的質量,作者選擇了以下任務:
- EQ-Bench:情感智慧基準測試
- GPQA:研究生級別的問答任務
- GSM8k:數學問題求解
- IFEval:指令遵循評估
- TruthfulQA:真實性問答任務
這些任務涵蓋了LLMs常用的多個領域,包括專業知識問答、數學問題、指令遵循和虛假資訊檢測。
基線方法
作者設計了基於COSTAR和CRISPE原則的基線提示,用於與LangGPT和Minstrel生成的結構化提示進行比較。
主要結果和分析
LLMs效能比較
論文中提供了一個詳細的表格,展示了不同提示方法對各種LLMs在不同任務上的效能影響:
從這個表格中可以觀察到以下主要結果:
- LangGPT提示(無論是手動編寫還是由Minstrel生成)在大多數情況下都能顯著提升LLMs的效能。
- Minstrel自動生成的提示在某些任務上甚至超過了人類專家手動編寫的LangGPT提示。
- 不同模型和任務對提示的敏感度有所不同,特別是在困難的GPQA任務上表現明顯。
模型規模對提示效果的影響
為了進一步研究模型規模對提示效果的影響,作者邀請普通使用者為不同規模的Qwen1.5模型設計提示,並在Open LLM Leaderboard的任務上進行測試。結果如下圖所示:
這些結果揭示了以下insights:
- LangGPT提示對較大規模的模型有更顯著的效能提升。
- 對於較小規模的模型(如0.5B引數的Qwen),結構化提示可能反而會降低效能。
- 在某些任務上(如ARC-Challenge和MMLU),LangGPT提示的效果特別明顯。
易用性評估
為了評估LangGPT和Minstrel的易用性,作者在其線上社群中進行了使用者調查。主要結果包括:
- 89.66%的使用者給出了3分或更高的評分(5分制),表明使用者認可LangGPT的易用性。
- LangGPT的整體滿意度得分為8.55分(滿分10分)。
這些結果證明了LangGPT框架對非AI專家也具有很好的可用性。
案例研究
為了直觀地展示結構化提示的效果,論文作者提供了一個具體案例。他們指導LLMs扮演一個奉承者的角色,分別使用LangGPT提示、CRISPE提示和僅指令提示。結果如下圖所示:
這個案例研究揭示了以下幾點:
- 使用僅指令提示和CRISPE提示的ChatGPT沒有明確的角色特徵,回應主要是對使用者輸入的簡單重複。
- 使用LangGPT提示的ChatGPT表現出更豐富的角色特徵,能夠從多個角度表達讚美,展現出更高的語言能力和創造性。
總結
透過這些實驗和分析,論文作者得出以下主要結論:
- LangGPT作為一個結構化的提示設計框架,具有良好的系統性和可重用性,易於學習和使用。
- Minstrel能夠透過多代理協作自動生成高質量的結構化提示,在某些情況下甚至超過人類專家的表現。
- 結構化提示(無論是Minstrel生成還是手動編寫)在指導LLMs執行任務時表現更好,特別是對於較大規模的模型。
然而,研究也發現了一些侷限性,特別是結構化提示對低效能LLMs的適應性較差。因此作者提出了未來的研究方向:
- 進一步最佳化提示設計,特別是針對低效能LLMs的最佳化。
- 探索如何更好地平衡提示的複雜性和模型的能力,以適應不同規模和能力的LLMs。
- 研究如何自動調整提示的複雜度,以適應不同的任務和模型組合。
總的來說,這項研究為提示工程領域提供了新的思路和工具,有望推動大型語言模型在更廣泛的應用場景中的有效使用。
論文連結:
https://avoid.overfit.cn/post/8645e12d18e84e26a54d603d9ce38840