1、百度Prompt工程實踐張兆鑫百度 資深研發工程師張兆鑫百度 資深研發工程師百度認證內訓師、vivo認證講師百度Prompt工程研發平臺負責人百度一站式測試管理平臺負責人在DevOps研發流程、基于LLM的智能化測試、AI原生應用研發、研發效能提升等領域擁有豐富經驗目錄C O N T E N T S1.如何寫好Prompt2.如何評估Prompt 3.如何工程化使用PromptPrompt是什么Prompt是一組指令和文本,作為大型語言模型的輸入。通過這些指令和文本來引導大型語言模型完成我們的特定需求。好的Prompt和差的Prompt產生的結果有天壤之別。好的提示就像魔法咒語一樣,能讓大型語
2、言模型產生神奇的效果用文言文寫一篇檢討書,需要有標題及落款用文言文寫一篇檢討書,檢討多次上學遲到的問題,需要有標題及落款Prompt的重要性隨著生成式AI技術的高速發展及AI原生應用研發場景在各業務線逐步開展,Prompt已成為用戶、應用、LLM之間關鍵的橋梁和媒介通過Prompt可以有效使用大模型能力,快速完成AI原生應用的驗證與交付AI原生應用研發使用大模型時,應該優先考慮通過Prompt調優解決問題,充分重視Prompt的研發,避免出現只是簡單調試一下Prompt就誤判效果不行而直接進行模型訓練Al原生研發新范式Prompt開發AI應用原型快速驗證Prompt調優AI應用研發快速交付AI
3、原生應用模型精調效果評估Prompt研發三部曲遵循一定的范式,手工生成、基于框架生成或智能生成,不斷調試運行,并可進一步進行優化寫好Prompt在完善的評估體系基礎之上進行由淺入深的評估,從小數據量的快速評估到大數據量的Prompt效果評估,再到全面的端到端評估評估Prompt像代碼開發一樣管理Prompt的工程化使用流程,從發布、上線到監控,并且實現Prompt與工程代碼的解耦。在整體上,多維度展示與跟蹤Prompt研發流程工程化使用Prompt如何寫好Prompt01如何寫好Prompt提示的構成手工生成提示的原則提示的技術APE框架基于框架生成CARE框架TRACE框架TAG框架SAGE
4、框架ROSES 框架RTF框架SPAR框架SCOPE 框架根據任務描述生成智能生成根據輸入輸出示例生成根據專業模板生成Prompt生成Prompt運行模型選擇模型參數調整Prompt內容微調token消耗量考量性能評估Prompt優化手工調優問題診斷自動調優遵循一定的范式,手工生成、基于框架生成或智能生成,不斷調試運行,并可進一步進行優化Prompt生成:手工生成-提示的構成綜合對大模型的任務類型來看,Prompt主要由四部分組成,即任務定義、輸出要求、上下文、輸入Prompt生成:手工生成-提示的原則01提示結構和清晰度例如,在提示中整合預期的聽眾,如聽眾是該領域的專家02具體性和信息例如,
5、在你的提示中添加以下短語“確保你的回答是無偏見的,不依賴于刻板印象?!?3用戶互動和參與例如,允許模型通過向你提問來獲取精確的細節和要求,直到它有足夠的信息來提供所需的輸出“從現在開始,我希望你向我提出問題.”04內容和語言風格例如,與LLM交流無需禮貌,因此無需添加諸如“請”、“如果你不介意”、“謝謝”、“我想要”等短語,直接切入主題05復雜任務和編碼提示例如,將復雜任務分解為一個互動對話中的一系列更簡單的提示五大分類Prompt生成:手工生成-提示的技術設計提示的通用技巧從簡單開始從簡單的提示開始,隨著獲得更好的結果而不斷構建,不斷添加更多的元素和上下文指令可以使用命令來指示模型執行各種簡
6、單任務,例如“寫入”、“分類”、“總結”、“翻譯”、“排序”等,從而為各種簡單任務設計有效的提示。建議使用一些清晰的分隔符,如“#”,來分隔指令和上下文具體性有所期望的結果或生成樣式,具有良好的格式和描述性提示,提供具體的示例,考慮提示的長度避免不精確提示要具體、簡潔和直接做還是不做?避免說不要做什么,而是說要做什么Prompt生成:手工生成-提示的技術使用更高級的提示工程技術來完成更復雜和有趣的任務來自 Prompt Engineering GuidePrompt生成:手工生成-舉個例子輸入輸出Prompt生成:基于框架生成基于框架來生成Prompt,可以以結構化的方式去思考問題,確保不遺漏
7、重要方面基于框架生成-舉個例子例如,APE框架(Action、Purpose、Expectation)要求明確行動、目的和期望,有助于更全面的考慮APE框架行動、目的、期望 Action 行動:定義要完成的工作或活動。Purpose 目的:討論意圖或目標。Expectation 期望:說明期望的結果。選擇PromptPrompt生成:智能生成指定智能生成模板,通過LLM生成固定格式的Prompt任務描述任務描述模板輸入示例輸入輸出示例模板輸出示例專業模板智能生成模板用戶場景任務描述輸入示例輸出示例邏輯補充格式要求LLMPrompt內容要求格式要求格式模板數量要求輸出示例其他要求指令描述任務要求
8、輸入智能生成-根據任務描述生成明確知道需要執行的任務,并能夠清晰描述該任務,可以通過輸入任務描述,一鍵生成Prompt任務描述生成的Prompt智能生成-根據輸入輸出示例生成如果難以準確描述任務,但可以提供具體的輸入輸出示例時,可以根據輸入輸出示例智能生成Prompt生成的Prompt輸入示例輸出示例智能生成-根據專業模板生成當任務比較復雜,難以通過簡單的描述或幾個示例來完全定義時,可以通過輸入更多的信息生成Prompt,包括用戶場景、任務描述、輸入輸出示例,以及邏輯補充和格式要求生成的Prompt輸入示例輸出示例任務描述用戶場景邏輯補充格式要求Prompt運行文本模型ERNIE-4.0-8K
9、ERNIE-3.5-8KERNIE-Speed-128Ko1-previewGPT-4oGPT-4Claude 3 SonnetLlama 3 70b圖像模型文心一格DALL-E 3Stable Diffusion XLMidJourneyDreamShaper模型參數開發優質的Prompt是一個不斷迭代的過程,可以通過Prompt內容調整、模型參數調整、不同模型效果對比、token消耗及模型性能評估等方法,調試出最適配目標模型和業務場景的PromptPrompt優化:手工調優指令保證格式清晰、用詞準確明確輸出要求為模型提供參考和示例引導模型用思維鏈進行思考Prompt優化:手工調優-舉個例子
10、不同的Prompt要素部分使用分隔符和換行符明確區分開,Prompt中的多個要求分點列出反例調優正例Prompt優化:問題診斷通過LLM對Prompt進行問題診斷Prompt優化:自動調優通過LLM對Prompt進行自動優化Prompt優化:自動調優-舉個例子優化前:制定一個去哈爾濱旅游的攻略優化后:請在考慮到預算、旅游季節、旅游目的和興趣點(如文化探索、自然風光、美食體驗等)以及旅游方式(如自助游、跟團游、獨自旅行、與家人朋友一起等)的前提下,為我在冬季的2周內制定一個去哈爾濱旅游的詳細攻略,我的預算大約在5000-8000元之間。Prompt優化:自動調優-舉個例子優化前:生成一張小貓的圖
11、片優化后:生成一只溫順的橘色小貓,在午后陽光的照耀下,正趴在窗臺上閉目養神。要求圖片溫馨,充滿生活氣息,采用自然光拍攝,展現小貓的柔軟毛發和光影交錯的效果。小結010203優質Prompt寫好Prompt手工生成基于框架生成智能生成Prompt生成模型選擇及參數調整token消耗量考量性能評估Prompt運行手工調優問題診斷自動調優Prompt優化如何評估Prompt02如何評估Prompt評估體系建設小數據量的快速評估版本對比手工添加評估數據評估目標評估策略評估方式評估集評估流程評估報告上傳評估集大數據量的Prompt效果評估人工評估自動化評估僅推理全面的端到端評估人工評估自動化評估在完善的
12、評估體系基礎之上進行由淺入深的評估,從小數據量的快速評估到大數據量的Prompt效果評估,再到全面的端到端評估由淺入深的評估評估體系一個評估體系包括:明確評估目標、制定評估策略、構建評估集、選擇合適的評估流程、確定評估方式、評估結果分析評估目標結合AI原生應用的場景,以及當前所處的研發流程階段,明確評估目標是什么評估策略根據評估目標、對象和場景,制定具體的評估策略。一個完整的評估策略需要包括評估緯度、評估指標、計分方式、評估規則、評估標簽等評估集與評估對象、評估策略密切相關。在構建評估集時,通常需要考慮來源、場景、難度、量級等因素評估集評估方式通常評估流程包含推理與評估兩個階段,當協作人員較多
13、時,可能需要增加互審及驗收環節評估流程評估結束后要輸出完整的評估報告,對本次評估進行全面的分析總結,判斷是否完成此次評估的目標評估報告具體指采用人工還是自動化的方式進行評估。評估方式是與評估指標相關聯的,即使是同一個場景的多個指標,評估方式也可能不同評估體系:構建評估集來源可以利用線上日志(需進行脫敏處理)和公開評估集等資源來創建評估集。同時也可以根據評估場景及目標,人工構建評估集,并進一步以此為范式,通過數據集泛化、富集的算法,來自動構建評估集。注意:考慮到數據集可用性、被訓練等因素,需要反復清洗、甄選、精調場景難度通常模型的能力在不同難度的問題上表現不同。因此,在構建評估集中每一個具體場景
14、的數據時,應該從具體的場景、題目條件數量、涉及知識難度、題目約束數量、推理難度、反常識/事實等維度進行通盤考慮,確保評估集涵蓋了不同難度的數據量級通常評估集需要足夠分散以覆蓋不同的評估場景(針對特定場景的評估任務除外),必要時需要進一步細分更細粒度的場景來建設評估集。建議對數據進行多級的分類管理,便于后續快速組建特定需求的評估集評估集條數越多,能覆蓋的類型越全,評估可信度越高(評估偏差越?。?,但成本也越高。一般而言,建議專項評估在200400條左右,綜合評估在5001000條左右。如果是自動化評估,評估集可以更多一些(例如是人工評估的10倍)評估體系:確定評估方式評估方式是與評估指標相關聯的,
15、即使是同一個場景的多個指標,評估方式也可能不同人工評估相對靈活,能夠適應所有的場景,尤其是針對比較主觀的題目自動化評估相對于人工評估,在部分場景下能夠保證評估結果準確性的同時,大幅提升評估效率小數據量的快速評估快速、方便:驗證需求可行性、Prompt研發自測,評估集數據量較少版本選擇V1.0.0V1.0.1V1.0.2版本對比Prompt內容變量模型參數評估集手工添加上傳對比評估對比結果圖片自定義內容大數據量的Prompt效果評估通過Prompt評估任務(人工評估、自動化評估或僅推理),分析Prompt的質量與性能全面的端到端評估通過端到端評估任務(人工評估、自動化評估),全流程模擬實際應用,
16、全面評估Prompt的整體表現小結010203生產可用Prompt評估Prompt明確評估目標制定評估策略構建評估集確定評估方式評估前小數據量的快速評估大數據量的Prompt效果評估全面的端到端評估評估中匯總統計分析具體case深入分析評估報告評估后如何工程化使用Prompt03如何工程化使用Prompt像代碼開發一樣管理Prompt的工程化使用流程,從發布、上線到監控,并且實現Prompt與工程代碼的解耦。在整體上,多維度展示與跟蹤Prompt研發流程Prompt研發需求管理Prompt發布單Prompt發布Prompt Group發布卡片流程狀態自動流轉Prompt上線通過Prompt托管
17、平臺通過上線平臺通過配置中心Prompt監控Prompt回歸監控Prompt線上觀測Prompt與工程代碼解耦Prompt SDKPrompt OpenAPIPrompt as a servicePrompt與上線平臺Prompt與配置中心Prompt插件卡片狀態流轉卡位Prompt研發可視化列表視圖工作流視圖需求視圖發布視圖Prompt研發流程跟蹤Prompt工程化基座Prompt研發效能度量人(月)均交付需求數研發交付周期2周內占比Prompt發布Prompt發布后才可以使用,可以單Prompt發布,可以Prompt Group批量發布,可以分渠道發布,分環境發布,查看版本diff,查看評
18、估報告diff,進行評估報告卡位,進行發布審核,也可以撤銷發布Prompt發布單Prompt發布Prompt示例1Prompt Group發布Prompt示例1Prompt示例2分渠道發布業務系統上線平臺配置中心分環境發布devtestevalprod版本diffPrompt內容變量模型參數評估報告Prompt評估端到端評估評估報告diff評估報告卡位發布審核審核人審核通過審核駁回審核通知發布完成撤銷發布Prompt上線Prompt應與工程代碼解耦,具備獨立發布上線與回滾的能力,同時應該建立Prompt分級上線機制010203三種方式通過Prompt托管平臺實現Prompt單獨上線通過上線平臺
19、實現Prompt單獨上線通過配置中心實現Prompt單獨上線Prompt監控通過Prompt監控可實現當大模型或AI應用更新導致效果波動時,及時發現并解決效果退化問題監控配置監控數據集:所監控的Prompt運行使用的數據集監控斷言:【包含關鍵字】【不包含關鍵字】【內容長度小于】【內容長度大于】【非空】【相似度計算】定時策略:設置定時執行的cron表達式通知策略:失敗發送、每次都發送通知范圍:服務號通知、郵件通知監控分析:如果監控的Prompt運行失敗問題定位:找到失敗任務的日志,通過執行日志定位問題原因,是因為模型token過期、模型參數有調整、模型QPS限制,還是因為滿足了斷言條件問題處理:
20、根據定位到的問題原因進行處理,比如調整模型token、模型參數、模型QPS,或調整斷言條件挖掘bad case,進行Prompt優化Prompt與工程代碼解耦方式方式描述描述優勢優勢成本成本Prompt SDK多種語言的SDK,如Java、Python。開發者可使用 SDK獲取Prompt詳情、組裝Prompt內容一次配置,后續直接使用有一定接入成本,需要單獨的配置Prompt OpenAPI開發過程中可以通過調用REST API獲取Prompt內容,自行組裝調用大模型獲取執行結果靈活,接入方便每個API都需要單獨的接入Prompt as a service發布后的Prompt可以集成到應用程
21、序中,直接調用REST API獲取大模型執行結果直接獲取大模型調用結果需要依賴平臺服務Prompt與上線平臺發布后的Prompt通過上線平臺單獨上線,開發過程中通過版本號獲取Prompt內容Prompt托管平臺聯動上線平臺支持Prompt研發-評估-發布-上線一體化有一定接入成本,需要單獨接入上線平臺Prompt與配置中心發布后的Prompt通過配置中心單獨上線,開發過程中通過配置中心直接獲取Prompt內容Prompt托管平臺聯動配置中心實現Prompt實時更新有一定接入成本,需要單獨接入配置中心Prompt研發流程跟蹤卡片流程狀態自動流轉Prompt插件卡片狀態流轉卡位Prompt研發需求
22、管理以需求卡片串聯Prompt全生命周期研發流程Prompt人(月)均交付需求數量Prompt研發交付周期2周內占比Prompt研發效能度量通過量化指標衡量團隊或個人的Prompt需求的研發效率列表視圖工作流視圖需求視圖發布視圖Prompt研發可視化通過不同的視圖,多維度展示與跟蹤Prompt研發流程小結010203全面的Prompt研發體系工程化使用PromptPrompt發布Prompt上線Prompt監控Prompt工程化基座Prompt SDKPrompt OpenAPIPrompt as a servicePrompt與上線平臺Prompt與配置中心Prompt與工程代碼解耦Prompt研發可視化Prompt研發需求管理Prompt研發效能度量Prompt研發流程跟蹤未來規劃Prompt與IDE的結合多模態能力的完善Prompt研發流程管理的完善1234Prompt與RAG的結合關于我們感謝聆聽關注公眾號