高能干貨分享,有關(guān)提示詞工程的一切都在這份教程里
想讓 AI 幫你自動搞定任務(wù),離不開要在聊天框內(nèi)用提示詞對它發(fā)號施令。
但找到合適的提示詞并不容易,這需要設(shè)計、優(yōu)化和評估,不僅耗時,還需要自己學(xué)習(xí)技巧。
有時候,你可能感覺這和調(diào)參有著異曲同工之妙,怎么都是玄學(xué)?
嘗試了不同的措辭、語氣,甚至還和模型玩上了角色扮演。但實際上,就像一千個人眼中有一千個哈姆雷特一樣,對于完全相同的提示詞,模型也會給出不同的回答。因此,我們難以確定哪些方法真正奏效。
今天,開源社區(qū) DiamantAI 的主理人 Nir Diamant 發(fā)布了一套提示詞工程技術(shù)庫,系統(tǒng)性地教我們?nèi)绾翁岣吆?AI 的溝通技巧,更好發(fā)揮 AI 的潛能。
才上線幾個小時,它就在 GitHub 上拿到了 200 多顆 star,并且還在以這個速度不斷攀升。
無論是像谷歌、微軟這樣的科技巨頭,還是吳恩達(dá)等資深專家,以及眾多行業(yè)大咖都推出過專業(yè)的提示詞課程。更不用提,通過「魔法打敗魔法」,用 AI 自動生成提示詞的方法也是一抓一大把,比如這篇文章《還在人工煉丹?自動提示工程指南來了,還帶從頭實現(xiàn)》。
那么,為什么這個提示詞課程還能脫穎而出,收到如此多的關(guān)注呢?
答案可能就在作者 Nir Diamant 自己寫下的推薦語中:「所有與提示詞工程相關(guān)的內(nèi)容,你都能在這里找到!」
從教程的體量上,就已經(jīng)能感受到它有多全面了。它總共分 7 大部分,22 個章節(jié),由易到難逐步進(jìn)階,條理分明,從基礎(chǔ)概念入門,到最近流行的思維鏈提示詞,鼓勵 AI 模型將復(fù)雜問題分解為逐步推理過程。每節(jié)課都附有詳細(xì)的代碼。
我們可以看到,教程從最基礎(chǔ)的環(huán)境設(shè)置入手,如 OpenAI API 和 LangChain 庫,逐步引導(dǎo)你從零樣本提示開始,深入學(xué)習(xí)如何實現(xiàn)基礎(chǔ)和高級的少樣本學(xué)習(xí),以及如何可重復(fù)使用,大大提升效率的結(jié)構(gòu)化提示。
在整個學(xué)習(xí)的過程中,教程還會教你如何根據(jù)模型的響應(yīng)進(jìn)行迭代優(yōu)化,不斷提升提示效果。
在具體課程中,Nir Diamant 設(shè)計了各種案例,讓你直觀感受一下,提高自己的溝通技巧,對提升 AI 模型對事實的準(zhǔn)確性有什么效果,即使是提示結(jié)構(gòu)和措辭的微小調(diào)整,也能幫助 AI 更好地吃透你的需求。
有時,精心設(shè)計的提示詞可能包含過多條件,導(dǎo)致提示過長,反而增加了模型理解的難度。課程還講解了如何在提示詞的細(xì)節(jié)和簡潔性之間找到平衡。
和其他泛泛講述提示詞工程對等方面有什么應(yīng)用的課程不同,學(xué)到后期,你就可以上手設(shè)計跨多語言工作、防止提示詞注入并在提示詞中實施內(nèi)容過濾等等高級應(yīng)用了。
- GitHub 鏈接:https://github.com/NirDiamant/Prompt_Engineering
課程概覽
基礎(chǔ)概念
1. Introduction to Prompt Engineering,提示詞工程入門:在 AI 和語言模型語境中全面介紹提示詞工程的基礎(chǔ)概念,其中包含理論解釋和實際演示,覆蓋了基礎(chǔ)概念、結(jié)構(gòu)化提示詞、比較分析和解決問題的應(yīng)用。
2. Basic Prompt Structures,基礎(chǔ)提示詞結(jié)構(gòu):其中探索了兩種基本類型的提示詞結(jié)構(gòu),包括單輪提示詞和多輪提示詞(對話)。其實現(xiàn)使用了 OpenAI 的 GPT 模型和 LangChain,演示了單輪和多輪提示詞、提示詞模板和對話鏈。
3. Prompt Templates and Variables,提示詞模板和變量:介紹了如何使用變量來創(chuàng)建和使用提示詞模板,重點(diǎn)是 Python 和 Jinja2 模板引擎。實現(xiàn)上,其中涉及模板創(chuàng)建、變量插入、基于條件的內(nèi)容、列表處理、整合 OpenAI API。
核心技術(shù)
1. Zero-Shot Prompting,零樣本提示:探索了零樣本提示,讓語言模型可以在沒有具體示例或先驗訓(xùn)練時也能執(zhí)行任務(wù)。具體實現(xiàn)上,其中演示了直接任務(wù)規(guī)范設(shè)定、基于角色的提示詞、格式規(guī)范設(shè)定和多步驟推理,使用的工具是 OpenAI 的 GPT 模型和 LangChain。
2. Few-Shot Learning and In-Context Learning,少樣本學(xué)習(xí)和上下文學(xué)習(xí):使用 OpenAI 的 GPT 模型和 LangChain 庫介紹少樣本學(xué)習(xí)和上下文學(xué)習(xí)技術(shù)。其實現(xiàn)包括基礎(chǔ)和高級的少樣本學(xué)習(xí)、上下文學(xué)習(xí),還有示例選取方法和評估的最佳實踐。
3. Chain of Thought (CoT) Prompting,思維鏈提示:介紹思維鏈提示技術(shù),引導(dǎo) AI 模型將復(fù)雜問題分解為逐步推理過程。其實現(xiàn)涵蓋基礎(chǔ)和高級思維鏈技術(shù),解決各種問題的應(yīng)用場景,并還比較了標(biāo)準(zhǔn)提示詞技術(shù)。
進(jìn)階策略
1. Self-Consistency and Multiple Paths of Reasoning,自我一致性和多路徑推理:探索生成多樣化推理路徑并聚合結(jié)果以改進(jìn) AI 生成的答案的技術(shù)。其實現(xiàn)包括設(shè)計多樣化推理提示、生成多個響應(yīng)、實現(xiàn)聚合方法和應(yīng)用自我一致性檢查。
2. Constrained and Guided Generation,有約束和引導(dǎo)的生成:專注于設(shè)置模型輸出約束和實現(xiàn)基于規(guī)則的生成技術(shù)。使用 LangChain 的 PromptTemplate 進(jìn)行結(jié)構(gòu)化提示,實現(xiàn)約束條件,探索基于規(guī)則的生成技術(shù)。
3. Role Prompting,角色提示:探索為 AI 模型分配特定角色并制定有效的角色描述。展示如何創(chuàng)建基于角色的提示,為 AI 模型分配角色,并針對各種場景優(yōu)化角色描述。
高級實現(xiàn)
1. Task Decomposition in Prompts,提示詞中的任務(wù)分解:探索復(fù)雜任務(wù)分解技術(shù)和提示詞中的鏈?zhǔn)阶尤蝿?wù)。涵蓋問題分析、子任務(wù)定義、定向提示詞工程、按順序執(zhí)行和結(jié)果綜合。
2. Prompt Chaining and Sequencing,提示鏈和序列處理:演示如何連接多個提示詞并為復(fù)雜的 AI 驅(qū)動的任務(wù)構(gòu)建邏輯流程。其實現(xiàn)中探索了基本的提示鏈、序列提示、動態(tài)提示詞生成和提示鏈中的錯誤處理。
3. Instruction Engineering,指令工程:專注于為語言模型制定清晰有效的指令,平衡專用性和通用性。其實現(xiàn)中涵蓋創(chuàng)建和優(yōu)化指令、實驗不同結(jié)構(gòu),并基于模型響應(yīng)實施迭代改進(jìn)。
優(yōu)化和改進(jìn)
1. Prompt Optimization Techniques,提示詞優(yōu)化技術(shù):探索提示詞優(yōu)化的高級技術(shù),重點(diǎn)是 A/B 測試和迭代改進(jìn)。在其實現(xiàn)中,演示了提示詞的 A/B 測試、迭代改進(jìn)過程,以及使用相關(guān)指標(biāo)進(jìn)行性能評估。
2. Handling Ambiguity and Improving Clarity,處理歧義和提高清晰度:專注于識別和解決模糊提示,以及編寫更清晰提示的技術(shù)。在其實現(xiàn)中,涵蓋分析模糊提示、實現(xiàn)消除歧義的策略,探索了編寫更清晰提示的技術(shù)。
3. Prompt Length and Complexity Management,提示詞長度和復(fù)雜度管理:其中探索了使用大型語言模型時管理提示詞長度和復(fù)雜度的技術(shù)。在其實現(xiàn)中,演示了平衡細(xì)節(jié)和簡潔性的技術(shù),以及處理長上下文的策略,包括分塊、匯總和迭代處理。
專業(yè)化應(yīng)用
1. Negative Prompting and Avoiding Undesired Outputs,負(fù)面提示和避免不期望的輸出:探索負(fù)面提示和避免大型語言模型產(chǎn)生不期望輸出的技術(shù)。在其實現(xiàn)中,涵蓋基本負(fù)面示例、明確排除、使用 LangChain 實現(xiàn)約束,以及評估和改進(jìn)負(fù)面提示詞的方法。
2. Prompt Formatting and Structure,提示詞格式化和結(jié)構(gòu):探索各種提示詞格式和結(jié)構(gòu)元素,展示它們對 AI 模型響應(yīng)的影響。在其實現(xiàn)中,演示了創(chuàng)建各種提示詞格式、整合結(jié)構(gòu)元素,并比較了不同提示詞結(jié)構(gòu)的響應(yīng)。
3. Prompts for Specific Tasks,用于特定任務(wù)的提示詞:探索為特定任務(wù)創(chuàng)建和使用提示詞:文本摘要、問答、代碼生成和創(chuàng)意寫作。在其實現(xiàn)中,涵蓋了設(shè)計任務(wù)特定的提示詞模板,這些模板使用 LangChain 實現(xiàn),可執(zhí)行示例輸入,并分析每種任務(wù)類型的輸出。
高級應(yīng)用
1. Multilingual and Cross-lingual Prompting,多語言和跨語言提示:探索設(shè)計在多種語言中有效工作的提示詞和語言翻譯任務(wù)的技術(shù)。在其實現(xiàn)中,涵蓋創(chuàng)建多語言提示詞、實現(xiàn)語言檢測和適配、設(shè)計跨語言翻譯提示詞,以及處理各種書寫系統(tǒng)和腳本。
2. Ethical Considerations in Prompt Engineering,提示詞工程中的倫理考慮:探索提示詞工程的倫理維度,重點(diǎn)是避免偏見并創(chuàng)建包容和公平的提示詞。在其實現(xiàn)中,涵蓋識別提示詞中的偏見、實施創(chuàng)建包容性提示詞的策略,以及評估和改進(jìn) AI 輸出倫理質(zhì)量的方法。
3. Prompt Security and Safety,提示詞安全性:專注于防止提示詞注入和在提示詞中實現(xiàn)內(nèi)容過濾,以確保 AI 應(yīng)用程序的安全性。其實現(xiàn)中涵蓋了提示詞注入預(yù)防技術(shù)、內(nèi)容過濾實現(xiàn),以及測試安全措施的有效性。
4. Evaluating Prompt Effectiveness,評估提示詞效果:探索評估 AI 語言模型中提示詞效果的方法和技術(shù)。在其實現(xiàn)中,涵蓋設(shè)置評估指標(biāo)、實施手動和自動評估技術(shù),并使用 OpenAI 和 LangChain 提供了實踐示例。
如果你也正需要一個這樣的提示詞工程「百科全書」,那就趕緊:
1. 克隆這個庫:
git clone https://github.com/NirDiamant/Prompt_Engineering.git
2. 找到你感興趣的技術(shù):
cd all_prompt_engineering_techniques
3. 跟隨每個技術(shù)筆記本中的詳細(xì)實現(xiàn)指南。
當(dāng)然,你也可以為這個項目添磚加瓦,做出自己的貢獻(xiàn)。