做網(wǎng)站買域名網(wǎng)絡(luò)營(yíng)銷策劃方案3000字
歡迎來到啾啾的博客🐱。
記錄學(xué)習(xí)點(diǎn)滴。分享工作思考和實(shí)用技巧,偶爾也分享一些雜談💬。
有很多很多不足的地方,歡迎評(píng)論交流,感謝您的閱讀和評(píng)論😄。
目錄
- 1 引言
- 2 好的Prompt是什么樣的
- 2.1 Prompt構(gòu)成
- 2.1.1 人類視角
- 2.1.2 LLM視角
- 3 怎么把用戶輸入解析為高質(zhì)量輸入給LLM
- 3.1 使用大模型應(yīng)用處理輸入
- 3.1.1 使用關(guān)鍵詞或規(guī)則進(jìn)行解析
- 3.1.2 使用LLM預(yù)處理Prompt
- 3.2 從源頭上更改(主流做法)
- 4 怎么寫好提示詞
- 4.1 抄作業(yè)
- 4.1.1 https://flowgpt.com/
- 4.1.2 https://poe.com/ 或者 https://www.tongyi.com/discover
- 4.1.3 https://github.com/f/awesome-chatgpt-prompts
- 4.1.4 https://github.com/langgptai/LangGPT
- 4.1.5 https://github.com/dair-ai/Prompt-Engineering-Guide
- 4.1.6 https://github.com/Acmesec/PromptJailbreakManual
- 4.2 建立個(gè)人/團(tuán)隊(duì)Prompt庫(kù)
- 4.3 抽象作業(yè)為模板
- 4.4 評(píng)估與優(yōu)化
- 4.4.1 評(píng)估
- 4.4.1.1 人工評(píng)估
- 4.4.1.2 自動(dòng)化評(píng)估
- 4.4.1.2.1 權(quán)威評(píng)估集
- 4.4.1.2.2 建立自己/團(tuán)隊(duì)的評(píng)估集
- 4.4.2 優(yōu)化
- 4.4.2.1 參考資料
- 4.4.2.2 速查表
1 引言
在之前的快速筑基系列中,我們有了解到可以使用Prompt來限制大模型的輸出。
限制輸出還有其他手段如temperature、top_p、max_tokens參數(shù)等等…
好的提示詞(Prompt)哪里好?
提示詞要怎么寫?
提示詞在LLM是怎么起作用的?
怎么評(píng)估提示詞好壞?
世另我?怎么讓LLM按照自己的思路去做事情?
怎么優(yōu)化提示詞?
提示詞怎么越獄?
不了解特定行業(yè)知識(shí)能寫出特定行業(yè)的優(yōu)質(zhì)提示詞么?
有沒有好的提示詞作業(yè)可以抄?
與memory的聯(lián)動(dòng)暫且不提。
今天讓我們先較為深入地了解一下基礎(chǔ)中的基礎(chǔ)——Prompt。
2 好的Prompt是什么樣的
簡(jiǎn)單來說,輸出符合預(yù)期的就是好的。
Prompt對(duì)于大模型是典型的輸入決定輸出質(zhì)量,我們編寫的prompt質(zhì)量決定了LLM輸出質(zhì)量。
一個(gè)好的Prompt應(yīng)該可以節(jié)省與LLM溝通成本、提升準(zhǔn)確性、最大化AI潛力、支持更復(fù)雜的任務(wù)解決方案。
優(yōu)點(diǎn) | 描述 |
---|---|
提升AI輸出的準(zhǔn)確性與相關(guān)性 | 明確的Prompt幫助AI理解任務(wù)目標(biāo),避免偏離 |
節(jié)省時(shí)間與溝通成本 | 精準(zhǔn)的Prompt能減少你與AI之間的反復(fù)試探,直接達(dá)到期望結(jié)果 |
最大化AI潛力 | AI本身有強(qiáng)大的生成能力,但它依賴于清晰明確的指令來發(fā)揮最佳效果 |
支持更復(fù)雜的任務(wù)解決方案 | 高質(zhì)量Prompt不僅能幫助完成簡(jiǎn)單任務(wù),還能處理更復(fù)雜的、多層次的問題 |
Prompt應(yīng)該是清晰的表達(dá):目標(biāo)明確、背景詳實(shí),有明確的角色和視角等等…
需要反復(fù)交代的都可以在Prompt中交代好。
我們也可以在Prompt中要求LLM給出思考過程,強(qiáng)制LLM推理,從而更好的調(diào)整Prompt。
好的Prompt能給予LLM合適的引導(dǎo)。
2.1 Prompt構(gòu)成
2.1.1 人類視角
為了系統(tǒng)性地理解Prompt,我們可以將一個(gè)復(fù)雜的Prompt拆解為幾個(gè)核心構(gòu)成要素。當(dāng)你發(fā)現(xiàn)輸出不理想時(shí),可以逐個(gè)檢查是哪個(gè)要素出了問題。
- CheckList
構(gòu)成要素 | 核心作用(你要思考的問題) | 例子 |
---|---|---|
1. 角色 (Role) | 我希望模型扮演誰(shuí)?它的專業(yè)知識(shí)、口吻和視角應(yīng)該是什么樣的? | 你是一位經(jīng)驗(yàn)豐富的兒童故事作家… 你是一個(gè)Python代碼審查工具… |
2. 任務(wù) (Task) | 我需要模型具體完成什么動(dòng)作?(總結(jié)、分析、創(chuàng)作、翻譯、分類、提取…) | …請(qǐng)創(chuàng)作一個(gè)關(guān)于友誼的短篇故事。 …請(qǐng)審查以下代碼,找出其中的邏輯錯(cuò)誤和不符合PEP8規(guī)范的地方。 |
3. 上下文 (Context) | 模型完成任務(wù)所需的所有背景信息是什么?(文章、數(shù)據(jù)、對(duì)話歷史、用戶畫像…) | 故事的背景設(shè)定在一個(gè)魔法森林里。 這是用戶之前的提問:[…] |
4. 指令與約束 (Instructions & Constraints) | 我希望輸出遵循哪些具體的規(guī)則?長(zhǎng)度、風(fēng)格、要點(diǎn)、禁忌是什么? | 故事必須在500字以內(nèi)。 必須包含“勇氣”和“智慧”兩個(gè)主題。 輸出中絕對(duì)不能包含任何價(jià)格信息。 |
5. 示例 (Examples / Few-shot) | 我能否給出一兩個(gè)“好”的范例,讓模型模仿?這在處理復(fù)雜或模糊任務(wù)時(shí)極其有效。 | 例如,如果輸入是“我愛這部電影”,輸出應(yīng)為“正面”;如果輸入是“浪費(fèi)了我的時(shí)間”,輸出應(yīng)為“負(fù)面”。 |
6. 輸出格式 (Output Format) | 我希望模型以什么格式返回結(jié)果?(JSON, Markdown, XML, 列表…)這對(duì)于程序化處理至關(guān)重要。 | 請(qǐng)將結(jié)果以JSON格式輸出,包含"title", “summary”, "keywords"三個(gè)鍵。 請(qǐng)使用Markdown的無(wú)序列表格式回答。 |
當(dāng)然,也有簡(jiǎn)單的可套用公式:
核心公式RPC:規(guī)則(Rules)+角色(Persona)+上下文(Context)。
2.1.2 LLM視角
簡(jiǎn)單粗暴的理解,LLM的工作方式就是預(yù)測(cè)下一個(gè)token。
輸入的Prompt也會(huì)被分解成一系列的tokens,然后LLM會(huì)利用龐大的神經(jīng)網(wǎng)絡(luò),根據(jù)輸入的tokens與它在海量訓(xùn)練數(shù)據(jù)中學(xué)到的模式和統(tǒng)計(jì)關(guān)系,一個(gè)token接一個(gè)token計(jì)算輸出。
神經(jīng)網(wǎng)絡(luò):人工智能和機(jī)器學(xué)習(xí)中的一種計(jì)算模型。模擬神經(jīng)元之間的連接和信息傳遞,通過數(shù)學(xué)運(yùn)算處理輸入數(shù)據(jù),生成輸出結(jié)果。
這也是為什么LLM API劃分有多種消息類型的原因。
3 怎么把用戶輸入解析為高質(zhì)量輸入給LLM
3.1 使用大模型應(yīng)用處理輸入
不是所有人都能第一時(shí)間提供高質(zhì)量的提示詞,但是大模型應(yīng)用可以通過預(yù)設(shè)的方式轉(zhuǎn)換用戶輸入為高質(zhì)量Prompt。
以LangChain支持的消息類型為例:
- ‘human’: 人類消息
- ‘user’: 用戶消息
- ‘a(chǎn)i’: AI 消息
- ‘a(chǎn)ssistant’: 助手消息
- ‘function’: 函數(shù)消息
- ‘tool’: 工具消息
- ‘system’: 系統(tǒng)消息
- ‘developer’: 開發(fā)者消息
比如典型的指令例子,我們可以給對(duì)話預(yù)設(shè)角色和約束,用戶輸入當(dāng)做任務(wù)放在user或者h(yuǎn)uman中處理:
[SystemMessage(content='你是一位頂級(jí)的文案策劃專家,精通社交媒體營(yíng)銷。\n你的任務(wù)是根據(jù)用戶提供的產(chǎn)品信息,創(chuàng)作出簡(jiǎn)短、有力、富有創(chuàng)意的推廣文案。\n所有文案都必須遵守以下規(guī)則:\n- 風(fēng)格現(xiàn)代,能吸引年輕用戶。\n- 每條文案嚴(yán)格控制在50個(gè)字以內(nèi)。\n'),HumanMessage(content='請(qǐng)為這款產(chǎn)品創(chuàng)作三條朋友圈文案:\n產(chǎn)品名稱:星塵咖啡\n產(chǎn)品特點(diǎn):采用阿拉比卡豆,口感順滑,帶有獨(dú)特的堅(jiān)果風(fēng)味,能瞬間提神醒腦。')
]
如果用戶期望自己能輸入一些設(shè)定、約束,大模型應(yīng)用該怎么處理輸入為高質(zhì)量Prompt呢?
3.1.1 使用關(guān)鍵詞或規(guī)則進(jìn)行解析
可以嘗試使用一些簡(jiǎn)單的規(guī)則來解析用戶的單次輸入。
比如定義一些出發(fā)次,比如“扮演”、“角色”、“設(shè)定”等…
但是這樣前提是用戶知道使用這些詞,且有些詞難以定義規(guī)則處理,如“使用”、“不想要”、“期待”等…
- 缺點(diǎn)
規(guī)則往往非常脆弱,實(shí)際生產(chǎn)中也難以維護(hù)且復(fù)雜。
3.1.2 使用LLM預(yù)處理Prompt
我們可以使用LLM來提升用戶輸入的Prompt質(zhì)量,先調(diào)用一次LLM,讓LLM幫忙優(yōu)化輸入結(jié)構(gòu)。
或者在應(yīng)用中集成一個(gè)提示詞優(yōu)化器,比如prompt-optimizer
- 缺點(diǎn)
成本高,且LLM解析優(yōu)化出來的Prompt也不一定直接符合需求。
3.2 從源頭上更改(主流做法)
我們應(yīng)該通過UI/應(yīng)用設(shè)計(jì)進(jìn)行分離。作為應(yīng)用開發(fā)者,應(yīng)該為用戶提供一個(gè)清晰的界面,讓他們自然而然地將不同類型的信息輸入到不同的地方。
核心思想: 不要給用戶一個(gè)萬(wàn)能的輸入框,而是提供結(jié)構(gòu)化的輸入界面。
這樣大模型應(yīng)用處理輸入的時(shí)候可以很自然地承接、填充信息給LLM。
比如通義千問的創(chuàng)建智能體:
4 怎么寫好提示詞
4.1 抄作業(yè)
自己從0~1有一兩次就夠了,抄作業(yè)才是程序員應(yīng)該做的事情(🤪)。不要重復(fù)造輪子。
寫輪眼!啟動(dòng)! 我可太喜歡抄作業(yè)了。
4.1.1 https://flowgpt.com/
全球最大的Prompt社區(qū)。有排行榜、有分類、有用戶投票。你可以找到各種場(chǎng)景(學(xué)術(shù)、營(yíng)銷、編程、娛樂)下經(jīng)過大量驗(yàn)證的優(yōu)質(zhì)Prompt。
抄法:直接搜索關(guān)鍵詞,看排行榜,找到高贊Prompt,復(fù)制并研究它的結(jié)構(gòu)。
4.1.2 https://poe.com/ 或者 https://www.tongyi.com/discover
每個(gè)機(jī)器人背后都是一個(gè)精心設(shè)計(jì)的Prompt。不管國(guó)內(nèi)國(guó)外,抄!
抄法:找到一個(gè)你覺得特別好用的機(jī)器人,點(diǎn)擊它的頭像,通常可以看到它的“Prompt”定義。
4.1.3 https://github.com/f/awesome-chatgpt-prompts
這是一個(gè)由開發(fā)者維護(hù)的GitHub倉(cāng)庫(kù),用.csv文件整理了大量高質(zhì)量的英文Prompt。內(nèi)容非常結(jié)構(gòu)化,適合開發(fā)者進(jìn)行批量處理或?qū)ふ异`感。
中文庫(kù):https://github.com/PlexPt/awesome-chatgpt-prompts-zh
抄法:git clone下來,或者直接在網(wǎng)頁(yè)上瀏覽,找到你需要的角色或任務(wù),翻譯并化用。
4.1.4 https://github.com/langgptai/LangGPT
結(jié)構(gòu)化抄作業(yè)法。這個(gè)倉(cāng)庫(kù)不僅僅是給你Prompt,更是教你一種構(gòu)建高質(zhì)量Prompt的“語(yǔ)言”和“模式”。它提倡使用模板、變量、多級(jí)標(biāo)題等方式來編寫結(jié)構(gòu)清晰、可維護(hù)的Prompt。
抄法: 重點(diǎn)學(xué)習(xí)它的README.md,理解其結(jié)構(gòu)化思想。然后模仿它的模板來構(gòu)建你自己的、用于復(fù)雜任務(wù)的專屬Prompt。適合進(jìn)階選手。
4.1.5 https://github.com/dair-ai/Prompt-Engineering-Guide
在Github用prompt搜出來的,恐怖的58kstar。
4.1.6 https://github.com/Acmesec/PromptJailbreakManual
越獄手冊(cè)
4.2 建立個(gè)人/團(tuán)隊(duì)Prompt庫(kù)
就像優(yōu)秀的程序員都有自己的代碼片段庫(kù)。優(yōu)秀的Prompt工程師也一樣。
把作業(yè)抄成體系比什么都重要。
4.3 抽象作業(yè)為模板
成熟的CV工程師要運(yùn)用抽象能力,將作業(yè)變成自己的。
抄來的作業(yè):
“扮演一名字節(jié)跳動(dòng)的產(chǎn)品經(jīng)理,請(qǐng)根據(jù)我本周完成的【登錄頁(yè)面重構(gòu)】和【用戶數(shù)據(jù)分析】這兩項(xiàng)工作,以及取得的【加載速度提升50%】的成果,生成一份給上級(jí)領(lǐng)導(dǎo)看的周報(bào)。要求邏輯清晰,突出重點(diǎn)。”
你的抽象模板化:
扮演一名【你的行業(yè)】的【你的職位】,請(qǐng)根據(jù)我本周完成的以下工作:
【在此處填寫本周完成的工作項(xiàng),用列表形式】以及取得的如下成果:
【在此處填寫本周取得的關(guān)鍵成果】生成一份給【匯報(bào)對(duì)象,如:上級(jí)領(lǐng)導(dǎo)/團(tuán)隊(duì)】看的周報(bào)。
要求:
【在此處填寫具體要求,如:邏輯清晰、突出重點(diǎn)、語(yǔ)言正式等】
4.4 評(píng)估與優(yōu)化
~~從01的能力肯定是要有的,抄作業(yè)也得抄的明白。~
沒有評(píng)估就不能優(yōu)化,沒有優(yōu)化就不會(huì)變好。
4.4.1 評(píng)估
提示詞可以通過評(píng)估集進(jìn)行評(píng)估。
4.4.1.1 人工評(píng)估
讓用戶來評(píng)估,使用不同的Prompt生成結(jié)果,看哪個(gè)結(jié)果用戶更滿意。
需要設(shè)定一套評(píng)分標(biāo)準(zhǔn),比如“相關(guān)性”、“準(zhǔn)確性”、“流暢度”、“遵循指令程度”等,每一項(xiàng)都按1-5分打分。找多名評(píng)估員對(duì)Prompt生成的多個(gè)結(jié)果進(jìn)行打分,取平均分。
4.4.1.2 自動(dòng)化評(píng)估
速度快、成本低、可重復(fù),是工程迭代的核心。
需要維護(hù)評(píng)估集(Evaluation Set)。
評(píng)估集是什么? 它是一個(gè)包含“輸入”和“理想輸出(參考答案)”的數(shù)據(jù)對(duì)列表。例如:
- 輸入: {“article”: “一篇很長(zhǎng)的體育新聞…”}
- 理想輸出: {“summary”: “C羅打入了關(guān)鍵一球?!眪
自動(dòng)化評(píng)估的核心思路就是:用你的新Prompt處理評(píng)估集里的所有“輸入”,然后將模型的“實(shí)際輸出”與評(píng)估集里的“理想輸出”進(jìn)行比較,得出一個(gè)分?jǐn)?shù)。
當(dāng)然,都自動(dòng)化了,打分可以讓LLM依據(jù)評(píng)估集來判斷,把問題、標(biāo)準(zhǔn)答案、被評(píng)估的LLM回答一起發(fā)給裁判LLM。
4.4.1.2.1 權(quán)威評(píng)估集
AI有推薦一些評(píng)估集,但是感覺落到具體LLM應(yīng)用上,想要貼合業(yè)務(wù),還是得靠自己/團(tuán)隊(duì)的評(píng)估集。
評(píng)估集名稱 | 鏈接/來源 | 簡(jiǎn)介和特點(diǎn) |
---|---|---|
C-Eval | 點(diǎn)擊訪問 GitHub | 中文基礎(chǔ)能力評(píng)測(cè)集。由上海交通大學(xué)發(fā)布,被認(rèn)為是中文領(lǐng)域最權(quán)威的基礎(chǔ)能力評(píng)測(cè)集之一。它涵蓋了從中學(xué)到大學(xué)的52個(gè)學(xué)科,完全對(duì)標(biāo)了著名的英文評(píng)測(cè)集MMLU。 |
CMMLU | 點(diǎn)擊訪問 GitHub | 中文大規(guī)模多任務(wù)語(yǔ)言理解評(píng)測(cè)。另一個(gè)高質(zhì)量的MMLU中文對(duì)標(biāo)項(xiàng)目,涵蓋了67個(gè)主題,從基礎(chǔ)學(xué)科到中國(guó)特色的法律、公務(wù)員考試等。 |
SuperCLUE | 點(diǎn)擊訪問官網(wǎng) | 中文通用大模型綜合性評(píng)測(cè)基準(zhǔn)。它不僅僅是一個(gè)數(shù)據(jù)集,更是一個(gè)評(píng)測(cè)體系,包含了對(duì)模型的十大基礎(chǔ)能力(如代碼、邏輯、安全、長(zhǎng)文本等)的評(píng)估。 |
4.4.1.2.2 建立自己/團(tuán)隊(duì)的評(píng)估集
對(duì)于日常開發(fā),具體業(yè)務(wù)場(chǎng)景,我們應(yīng)該有特定的小型評(píng)估集。
(AI建議)應(yīng)當(dāng)有20~50個(gè)有代表性的“輸入”和它們對(duì)應(yīng)的“完美輸出”。這個(gè)數(shù)據(jù)集是你的“考卷和標(biāo)準(zhǔn)答案”。
這里有一個(gè)問題,如果開發(fā)者不熟悉特定業(yè)務(wù)場(chǎng)景,不知道什么樣的輸出是完美的應(yīng)該怎么辦呢?
- 1.找專家
這是一個(gè)流程和協(xié)作的問題,不是技術(shù)問題。
我們應(yīng)當(dāng)找領(lǐng)域“專家”。沒有專家時(shí),我們可以引導(dǎo)LLM成為專家。
這里有一些AI提出的溝通技巧供參考:
與專家對(duì)話:
- 進(jìn)行訪談,而非提問: 不要直接問“完美的輸出是什么樣的?”。他們可能也無(wú)法用語(yǔ)言精確描述。你應(yīng)該:
- 展示示例: 運(yùn)行一個(gè)非常粗糙的Prompt V0.1版本,生成幾個(gè)結(jié)果(即使很爛),拿給他們看。人們對(duì)于“批評(píng)和修正”遠(yuǎn)比“從零創(chuàng)造”更在行。
- 引導(dǎo)修正: 他們會(huì)說:“不對(duì),我們從不會(huì)用‘親’這個(gè)詞稱呼客戶”、“這里漏掉了風(fēng)險(xiǎn)提示”、“這句話太生硬了,應(yīng)該更委婉一點(diǎn)”。
- 記錄細(xì)節(jié): 把這些修正意見全部記錄下來。這些就是構(gòu)建“完美輸出”的第一批原材料。你的目標(biāo)不是去猜測(cè),而是去記錄。
- 2.抄唄
在很多行業(yè),所謂的“完美輸出”已經(jīng)存在于各種文檔之中了。
分析現(xiàn)有文檔與競(jìng)品。 - 內(nèi)部文檔: 尋找公司的培訓(xùn)手冊(cè)、客服SOP(標(biāo)準(zhǔn)作業(yè)程序)、優(yōu)秀的郵件模板、歷史報(bào)告等。這些都是“完美輸出”的現(xiàn)成范例。
- 公開信息: 分析你們公司或競(jìng)爭(zhēng)對(duì)手的網(wǎng)站文案、市場(chǎng)推廣材料、公開報(bào)告。它們的措辭、語(yǔ)氣、結(jié)構(gòu),都代表了該行業(yè)認(rèn)為的“好”的標(biāo)準(zhǔn)。
4.4.2 優(yōu)化
使用評(píng)估集進(jìn)行優(yōu)化。
和開發(fā)其他工程一樣,持續(xù)迭代、演進(jìn)。
四步法循環(huán):審閱 -> 識(shí)別 -> 修正 -> 驗(yàn)證 -> 審閱。
-
1.審閱結(jié)果
拿到評(píng)估報(bào)告后,你首先要做的不是馬上改Prompt,而是分類和審閱。 -
2.識(shí)別模式
不要孤立地看待每一個(gè)錯(cuò)誤,而是要尋找錯(cuò)誤的共性模式。 -
錯(cuò)誤聚類: 是不是所有關(guān)于“價(jià)格計(jì)算”的輸入都錯(cuò)了?是不是模型總是在處理超過500字的長(zhǎng)文本時(shí)遺漏信息?是不是只要提到“法律風(fēng)險(xiǎn)”,模型的回答就過于保守和模糊?
-
形成假設(shè) (Form a Hypothesis): 針對(duì)你發(fā)現(xiàn)的模式,提出一個(gè)關(guān)于“為什么會(huì)出錯(cuò)”的假設(shè)。
- 模式: 模型總是在輸出JSON時(shí),在最后一個(gè)鍵值對(duì)后多加一個(gè)逗號(hào),導(dǎo)致JSON格式錯(cuò)誤。
- 假設(shè): “我的Prompt中沒有明確強(qiáng)調(diào)要遵循嚴(yán)格的JSON規(guī)范,模型可能受到了某些訓(xùn)練數(shù)據(jù)的影響?!?/li>
-
3.修正提示詞
根據(jù)你的假設(shè),對(duì)Prompt進(jìn)行一次只改一個(gè)變量的精準(zhǔn)修正。 -
精準(zhǔn)打擊: 針對(duì)上面的假設(shè),你的修正應(yīng)該是:“…請(qǐng)將結(jié)果以嚴(yán)格的、不包含任何結(jié)尾逗號(hào)的JSON格式輸出?!?而不是寬泛地改成“請(qǐng)注意你的格式”。
-
建立版本控制: 將修改后的Prompt保存為 V2、V3… 這樣你才能清晰地追蹤哪次修改帶來了效果。
-
4.驗(yàn)證效果
使用新版本的Prompt,重新在你的整個(gè)評(píng)估集上跑一遍。 -
修復(fù)驗(yàn)證 (Fix Verification): 之前失敗的案例現(xiàn)在是否通過了?
-
回歸測(cè)試 (Regression Testing): 之前成功的案例,有沒有因?yàn)槟愕男薷亩耙馔狻笔?#xff1f;(這非常重要!)
循環(huán)或結(jié)束: 如果新版本的總體得分顯著提升,且沒有引入新的問題,那么這次優(yōu)化就是成功的。然后,你可以基于新的失敗案例,開始新一輪的循環(huán)。
4.4.2.1 參考資料
下面這些是業(yè)內(nèi)公認(rèn)的高質(zhì)量學(xué)習(xí)資源,它們?cè)敿?xì)講解了上面提到的優(yōu)化思想和具體技巧。
資源名稱 | 鏈接 | 為什么推薦 (可以直接抄的“思路”) |
---|---|---|
LangSmith Prompt Engineering Cookbook | https://docs.smith.langchain.com/prompt_engineering/how_to_guides https://github.com/langchain-ai/langsmith-cookbook | LangChain官方“食譜”。這是LangChain官方推出的實(shí)踐指南,專門教你如何使用LangSmith工具來進(jìn)行評(píng)估和調(diào)試。它把我們上面討論的循環(huán)流程變成了觸手可及的工具,是開發(fā)者的首選必讀。 |
OpenAI - Prompt engineering Guide | 點(diǎn)擊訪問 OpenAI 文檔 | “圣經(jīng)”。這是來自模型創(chuàng)造者的官方指南。里面詳細(xì)介紹了大量提升Prompt效果的策略,比如“給模型思考的時(shí)間(Chain-of-Thought)”、“提供參考文本”、“將復(fù)雜任務(wù)拆解”等。當(dāng)你發(fā)現(xiàn)某種錯(cuò)誤模式時(shí),可以來這里尋找對(duì)應(yīng)的修正策略。 |
Deeplearning.AI - “ChatGPT Prompt Engineering for Developers” | 點(diǎn)擊訪問課程網(wǎng)站 | 吳恩達(dá)老師的免費(fèi)“大師課”。這個(gè)短課程系統(tǒng)地講解了提示詞工程的核心原則和迭代開發(fā)的思想。它提供了大量可以直接運(yùn)行的代碼示例,讓你親手體驗(yàn)從一個(gè)壞Prompt到一個(gè)好Prompt的優(yōu)化過程。 |
Cohere LLM University - Prompt Engineering | 點(diǎn)擊訪問 Cohere 文檔 | 優(yōu)秀的“第三方教材”。Cohere作為大模型公司之一,其文檔質(zhì)量非常高。這一章詳細(xì)介紹了Prompt的構(gòu)成、調(diào)試技巧以及常見的錯(cuò)誤類型,內(nèi)容非常系統(tǒng)化,適合作為知識(shí)框架來學(xué)習(xí)。 |
4.4.2.2 速查表
當(dāng)你發(fā)現(xiàn)的錯(cuò)誤模式是… | 你可以嘗試的優(yōu)化策略是… |
---|---|
不遵循格式指令 | 1. 把指令放在Prompt的最后。 2. 使用###或XML標(biāo)簽等分隔符,把指令和內(nèi)容清晰分開。 3. 提供一個(gè)Few-shot示例,讓它模仿。 |
事實(shí)性錯(cuò)誤 (幻覺) | 1. 明確告訴它“僅根據(jù)以下提供的上下文回答”。 2. 引入RAG (檢索增強(qiáng)生成),先搜索再回答。 3. 指示它如果不知道答案,就明確說“我不知道”。 |
遺漏關(guān)鍵信息 | 1. 使用Chain-of-Thought (CoT),讓它“先思考,再回答”。例如:“第一步,請(qǐng)列出文章中的所有關(guān)鍵人物。第二步,總結(jié)他們之間的關(guān)系…” |
回答過于寬泛或簡(jiǎn)略 | 1. 增加對(duì)角色(Role)的刻畫,比如“你是一位注重細(xì)節(jié)的資深分析師”。 2. 明確要求回答的深度和廣度,比如“請(qǐng)?zhí)峁┲辽偃齻€(gè)論點(diǎn),并分別進(jìn)行闡述”。 |
添加不必要的開場(chǎng)白 | 1. 在指令中明確:“直接回答問題,不要包含任何前言或客套話。” |