實戰(zhàn)指南:基于 generative-ai-for-beginners 構(gòu)建高質(zhì)量的 LLM 提示詞)
提示工程基礎(chǔ)實戰(zhàn)指南基于 generative-ai-for-beginners 構(gòu)建高質(zhì)量的 LLM 提示詞【免費下載鏈接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI項目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners導(dǎo)讀提示Prompt如今已經(jīng)成為生成式 AI 應(yīng)用的核心編程接口——你寫給大語言模型LLM的每一句提示詞都直接影響著返回內(nèi)容的質(zhì)量與穩(wěn)定性。本文以微軟開源課程 generative-ai-for-beginners 的第 4 課《提示工程基礎(chǔ)》對應(yīng)文檔位于 translations/el/04-prompt-engineering-fundamentals/README.md為骨架系統(tǒng)講解提示詞工程的定義、token 化原理、提示詞構(gòu)造方法、few-shot 等關(guān)鍵技術(shù)與官方推薦的最佳實踐。讀完本文你將能掌握一套可復(fù)用的設(shè)計→優(yōu)化→驗證提示詞方法論并借助倉庫內(nèi)附的 Jupyter Notebook 沙箱實際動手驗證每一種技巧。提示本文對應(yīng)的英文原始課件位于 04-prompt-engineering-fundamentals/README.md互動練習(xí) Notebook 位于 04-prompt-engineering-fundamentals/python/ 目錄下可按需對照查閱。從對話到編程接口為什么提示工程如此重要生成式 AI 能夠根據(jù)用戶請求創(chuàng)建全新內(nèi)容文本、圖像、音頻、代碼等其底層是 OpenAI GPT 系列這類以自然語言與代碼為訓(xùn)練目標(biāo)的大語言模型。過去人類與計算機(jī)交互需要學(xué)習(xí)編程語言而今天用戶可以用聊天這種最熟悉的方式驅(qū)動模型——發(fā)送一段文本提示 / Prompt得到 AI 的回應(yīng)補全 / Completion并通過多輪對話反復(fù)打磨提示直到結(jié)果符合預(yù)期。這一轉(zhuǎn)變意味著兩件事提示即界面在生成式 AI 應(yīng)用中提示詞取代傳統(tǒng) API 調(diào)用成為主要的編程接口承擔(dān)告訴模型做什么以及左右回復(fù)質(zhì)量的雙重職責(zé)。提示工程是一門新學(xué)科這門快速成長的學(xué)科專注于提示詞的設(shè)計與優(yōu)化目標(biāo)是在大規(guī)模生產(chǎn)場景下獲得一致且高質(zhì)量的回復(fù)。在開始深入之前先明確三個貫穿全篇的核心術(shù)語原文 Key Terms 定義術(shù)語含義提示工程Prompt Engineering設(shè)計并改進(jìn)輸入引導(dǎo) AI 模型產(chǎn)出期望輸出的實踐Token 化Tokenization把文本切分為模型能夠理解與處理的最小單元 token 的過程指令微調(diào) LLMInstruction-Tuned LLMs經(jīng)過特定指令微調(diào)、以提升回復(fù)準(zhǔn)確性與相關(guān)性的大語言模型學(xué)習(xí)目標(biāo)按本課設(shè)定完成學(xué)習(xí)后你應(yīng)當(dāng)能夠解釋什么是提示工程、為什么它重要描述提示詞的組成要素及其用法掌握提示工程的常用技巧與最佳實踐借助 OpenAI 服務(wù)端點把學(xué)到的技巧落地到真實示例中。上圖是本課的速寫導(dǎo)覽Sketchnote它把整章內(nèi)容串成一條主線從核心概念token 化、基礎(chǔ) LLM、指令微調(diào)模型與核心挑戰(zhàn)隨機(jī)性、編造、能力差異到提示詞構(gòu)造基礎(chǔ)/復(fù)雜/指令型、主要內(nèi)容的三種用法示例、線索、模板再到最佳實踐。其中標(biāo)注的高級技巧部分會在本課程的下一章第 5 課展開。業(yè)務(wù)場景代入為個性化教育設(shè)計提示詞本課以一個致力于將 AI 創(chuàng)新帶入教育的初創(chuàng)公司為敘事主線目標(biāo)是構(gòu)建個性化學(xué)習(xí)的 AI 應(yīng)用。同一款應(yīng)用里的不同角色會設(shè)計出完全不同風(fēng)格的提示詞管理員Administrators請求 AI分析課程數(shù)據(jù)、找出覆蓋缺口——AI 負(fù)責(zé)匯總結(jié)果或用代碼可視化教師Educators請求 AI針對特定受眾與主題生成教案——AI 需要按指定格式輸出個性化方案學(xué)生Students請求 AI在困難科目上輔導(dǎo)自己——AI 需要結(jié)合學(xué)生水平給出講解、提示與示例。三個必須先理解的概念Token 化、基礎(chǔ)模型與指令微調(diào)提示工程之所以必要根源在于模型如何看待與處理提示詞。原文用一個兩階段流程概括提示工程為給定模型與目標(biāo)設(shè)計初始提示再迭代優(yōu)化以提升回復(fù)質(zhì)量——這是一項必然依賴用戶直覺的試錯過程。而在動手之前必須先建立三個底層認(rèn)知。概念一Token 化——模型如何看見你的提示LLM 眼中并不存在單詞只有token 序列。不同模型或同一模型的不同版本可能用不同方式切分同一條提示由于模型基于 token 而非原始文本訓(xùn)練token 化的方式會直接影響生成回復(fù)的質(zhì)量。想建立直覺可以借助 OpenAI Tokenizer 之類的工具課程英文版還演示了 tiktoken 的使用方式把你的提示復(fù)制進(jìn)去觀察文本如何被拆解為 token特別注意空白字符與標(biāo)點的處理——例如單詞 Jupiter 可能是一個 token而其他較長或罕見的詞組會被切成多個片段。動手驗證源碼級在倉庫的練習(xí) Notebook如 oai-assignment.ipynb中練習(xí) 1 使用 OpenAI 開源的tiktoken庫對一段木星介紹文本做編碼與解碼import tiktoken encoding tiktoken.encoding_for_model(gpt-4o) # 指定與目標(biāo)模型匹配的編碼器 tokens encoding.encode(text) # 文本 → 整數(shù)形式的 token [encoding.decode_single_token_bytes(t) for t in tokens] # 還原每個 token 的文本形態(tài)建議把text換成你自己的任意提示詞再運行直觀感受不同措辭會消耗多少 token——token 數(shù)量直接關(guān)聯(lián)上下文窗口與調(diào)用成本。概念二基礎(chǔ)模型Base/Foundation LLM——下一個 token 預(yù)測器提示被 token 化之后基礎(chǔ)模型Base LLM的核心職能只剩一件預(yù)測序列中緊隨其后的那個 token。由于在大規(guī)模文本語料上訓(xùn)練模型對 token 間的統(tǒng)計關(guān)系把握得很好能以一定置信度完成預(yù)測。但請注意一個關(guān)鍵事實模型并不理解詞與 token 的含義它只是看到一個可以補全的模式并持續(xù)預(yù)測下去直到被用戶打斷或觸發(fā)某個預(yù)設(shè)的停止條件。把上文的木星文本直接丟進(jìn) Playground 并保持默認(rèn)設(shè)置你會看到模型把它當(dāng)作索取信息的請求輸出一段自由展開的科普式回復(fù)這種補全雖然有信息量卻未必符合用戶的特定目標(biāo)——例如一位教師想要的可能是適合二年級學(xué)生的 35 條要點總結(jié)。概念三指令微調(diào) LLMInstruction-Tuned LLM——讓它看見任務(wù)指令微調(diào) LLM 以基礎(chǔ)模型為起點進(jìn)一步用包含明確指令的輸入/輸出對例如多輪消息微調(diào)模型。這類訓(xùn)練常借助基于人類反饋的強化學(xué)習(xí)RLHF等技術(shù)使模型學(xué)會遵循指令并從反饋中學(xué)習(xí)從而產(chǎn)出更貼近實際應(yīng)用、更契合用戶目標(biāo)的回復(fù)。把上一條提示的**系統(tǒng)消息system message**替換為如下指令再試一次Summarize content you are provided with for a second-grade student. Keep the result to one paragraph with 3-5 bullet points.把提供給你的內(nèi)容總結(jié)給二年級學(xué)生聽將結(jié)果控制在一段話配 35 個要點。對比兩張截圖即可發(fā)現(xiàn)輸出立刻對齊了目標(biāo)受眾與格式要求教師可以把它直接搬進(jìn)自己的課件。這正是系統(tǒng)上下文與用戶輸入對補全質(zhì)量同樣有影響力的直觀證據(jù)。為什么要提示工程隨機(jī)性、編造與能力差異三大挑戰(zhàn)當(dāng)前 LLM 存在若干固有挑戰(zhàn)若不投入提示詞的構(gòu)造與優(yōu)化就難以獲得可靠一致的補全模型回復(fù)具有隨機(jī)性Stochastic同一條提示在不同模型/模型版本下極可能產(chǎn)出不同結(jié)果甚至在同一模型的不同時刻也會漂移。提示工程通過提供更明確的規(guī)則護(hù)欄來壓低這種波動。模型可能編造回復(fù)Fabrication模型只掌握龐大但有限的訓(xùn)練語料對訓(xùn)練范圍之外的概念一無所知于是可能生成不準(zhǔn)確、臆想甚至與已知事實相悖的內(nèi)容。提示工程幫助用戶識別并緩解編造——例如要求 AI 給出引用來源或推理過程。模型能力存在差異Capability Variation新一代模型能力更強但也伴隨獨特的怪癖與成本/復(fù)雜度權(quán)衡。提示工程幫助沉淀最佳實踐與工作流抽象掉模型差異以可擴(kuò)展的方式適配不同模型。你可以親自在 Playground 里做兩組對照實驗對不同LLM 部署如 OpenAI、Azure OpenAI、Hugging Face使用同一條提示——觀察差異對同一LLM 部署反復(fù)使用同一條提示如 Azure OpenAI Playground——觀察變體之間的差異。深度聚焦什么是編造以及為什么我們用這個詞本課使用編造fabrication而非流行的幻覺hallucination來指代 LLM 偶爾生成與事實不符信息的現(xiàn)象。原文強調(diào)后者會把類人特質(zhì)不自覺地投射到機(jī)器行為上屬于擬人化而編造一詞在術(shù)語層面也更貼合微軟負(fù)責(zé)任 AI 指南的方向避免在某些語境下顯得冒犯或不包容。課程給出了一個經(jīng)典實驗提示提示generate a lesson plan on the Martian War of 2076. 為 2076 年火星戰(zhàn)爭生成一份教案。常識告訴我們2076 年尚在未來、不可能對應(yīng)真實歷史事件網(wǎng)絡(luò)上關(guān)于火星戰(zhàn)爭的虛構(gòu)作品也沒有設(shè)定在 2076 年。然而把這條提示分別喂給 OpenAIGPT-3.5、Azure OpenAIGPT-3.5與 Hugging FaceLLaMA-2三個端點三個模型全都一本正經(jīng)地產(chǎn)出了看似合理、足以讓不知情用戶信以為真的教案——盡管具體細(xì)節(jié)各不相同有的面向八年級有的假設(shè)高中生。相關(guān)對比截圖與復(fù)現(xiàn)步驟可直接在練習(xí) Notebook 的Exercise 3Fabrications中運行查看。應(yīng)對編造提示工程領(lǐng)域已有若干可用的緩解手段元提示metaprompting、溫度temperature參數(shù)調(diào)節(jié)以及把新工具/新技術(shù)無縫嵌入提示流程的新型提示架構(gòu)。在代碼層面溫度可以直接通過 API 參數(shù)控制——例如 oai-assignment Notebook 中封裝的get_completion將temperature0用于降低輸出隨機(jī)性該參數(shù)表示模型輸出的隨機(jī)程度0 最確定數(shù)值越大越發(fā)散并配合max_output_tokens1024限制輸出長度。案例研究GitHub Copilot 如何用提示工程改造代碼補全真實世界的最佳例證是GitHub Copilot——它把文本提示轉(zhuǎn)換為代碼補全并集成進(jìn) VS Code 等開發(fā)環(huán)境。最早版本基于 OpenAI Codex 模型工程師們很快意識到必須對模型做微調(diào)、并開發(fā)更好的提示工程技術(shù)以提升代碼質(zhì)量2023 年 7 月他們又推出了超越 Codex 的改進(jìn)模型補全速度更快。課程按時間線整理了官方博客的學(xué)習(xí)軌跡5 月到 9 月涵蓋Copilot 如何更好理解你的代碼與 Copilot 背后的 LLM 協(xié)作如何為 Copilot 寫出更好的提示開發(fā)者提示工程與 LLM 指南以及構(gòu)建企業(yè)級 LLM 應(yīng)用的經(jīng)驗等主題。這組文章說明提示工程不是實驗室里的紙上談兵而是驅(qū)動真實產(chǎn)品迭代的關(guān)鍵工程能力。提示詞的四種構(gòu)造形態(tài)從一句話到結(jié)構(gòu)化消息理解完為什么接下來看怎么搭。課程把提示詞按復(fù)雜程度劃分為四種形態(tài)?;A(chǔ)提示Basic Prompt無上下文的純文本輸入最簡單的提示就是一段沒有附加任何上下文的文本。把美國國歌的開頭幾個詞 Oh say can you see 發(fā)給補全 API模型會立刻續(xù)寫出接下來的幾行提示輸入補全輸出Oh say can you see聽起來你正在輸入《星條旗》美國國歌的歌詞完整歌詞是……這直觀展示了模型預(yù)測下一個 token的本能行為。復(fù)雜提示Complex Prompt以消息集合承載多輪對話僅靠續(xù)寫遠(yuǎn)遠(yuǎn)不夠生產(chǎn)級應(yīng)用需要攜帶上下文與指令。聊天補全 API 允許我們把提示構(gòu)造為消息messages集合其結(jié)構(gòu)包含反映用戶輸入與助手回復(fù)的輸入/輸出對設(shè)定助手行為或人格上下文的系統(tǒng)消息system message。response client.responses.create( modelgpt-4o-mini, input[ {role: system, content: You are a helpful assistant.}, {role: user, content: Who won the world series in 2020?}, {role: assistant, content: The Los Angeles Dodgers won the World Series in 2020.}, {role: user, content: Where was it played?} ] )此時 token 化會把上下文與對話中的相關(guān)信息截取進(jìn)注意力范圍。這里有個重要推論修改系統(tǒng)上下文對補全質(zhì)量的影響不亞于用戶輸入本身。倉庫內(nèi)的 oai-assignment Notebook Exercise 5 提供了一個更叛逆的變體——把系統(tǒng)人格設(shè)為 You are a sarcastic assistant一個毒舌助手并觀察多輪消息如何讓回復(fù)帶上了戲謔語氣你也可以換成任何人格或任意一組輸入/輸出消息做實驗。指令提示Instruction Prompt把要信息升級為派任務(wù)前面例子中的用戶提示本質(zhì)上是索取信息。指令提示則用文本更細(xì)致地指定一項任務(wù)給 AI 更明確的行動指引。下表展示了同主題下指令復(fù)雜度遞增的效果提示輸入補全輸出指令類型Write a description of the Civil War寫一段美國內(nèi)戰(zhàn)的描述返回一個簡單段落簡單Write a description of the Civil War. Provide key dates and events and describe their significance……給出關(guān)鍵日期與事件并說明其意義返回一個段落 關(guān)鍵事件日期列表復(fù)雜Write a description of the Civil War in 1 paragraph. Provide 3 bullet points with key dates ... Return the output as a JSON file限制為 1 段、3 個要點并要求以 JSON 文件格式輸出返回更詳盡的細(xì)節(jié)且格式化為可直接復(fù)制保存的 JSON復(fù)雜 格式化第三行的關(guān)鍵在于明確約束了篇幅、結(jié)構(gòu)與輸出格式讓結(jié)果可預(yù)測、可直接用于下游程序。主要內(nèi)容Primary Content設(shè)計模式指令 語料上述示例仍偏開放模型可以自行決定預(yù)訓(xùn)練數(shù)據(jù)中哪部分相關(guān)。主要內(nèi)容模式把輸入拆成兩部分指令instruction要執(zhí)行的動作相關(guān)內(nèi)容relevant content影響該動作的素材。最典型的例子是把這段木星科普文本壓縮成兩句指令與素材之間用分隔符或換行隔開提示輸入補全輸出木星是太陽系第五顆行星、最大氣態(tài)巨行星……的長文本Summarize this in 2 short sentences用兩句簡短的話總結(jié)這段內(nèi)容木星是距太陽第五近的行星也是太陽系中最大的行星以夜空中最明亮的星體之一著稱它得名于羅馬神朱庇特是質(zhì)量超過其余所有行星總和兩倍半的氣態(tài)巨行星。主要內(nèi)容片段本身還有三種更高級的用法——這正是本課的技術(shù)精華用示例代替指令Zero-shot / One-shot / Few-shot與其用顯式指令告訴模型怎么做不如直接給幾個期望輸出的示例讓模型自己推斷規(guī)律。按示例數(shù)量分為 zero-shot零樣本、one-shot單樣本、few-shot少樣本學(xué)習(xí)類型提示輸入補全輸出Zero-shotThe Sun is Shining. Translate to SpanishEl Sol está brillando.One-shotThe Sun is Shining El Sol está brillando. Its a Cold and Windy Day Es un día frío y ventoso.Few-shotThe player ran the bases BaseballThe player hit an ace TennisThe player hit a six CricketThe player made a slam-dunk Basketball籃球此時提示詞由三個組件構(gòu)成任務(wù)描述、若干期望輸出示例、以及一個新示例的開頭它成為隱式的任務(wù)描述。注意三種模式的差異zero-shot 必須顯式給出 Translate to Spanish 指令one-shot 僅靠一個翻譯示例就推斷出翻譯這一任務(wù)而 few-shot 無需任何額外指令僅憑三個體育動作→運動的示例就能讓模型推斷出 slam-dunk 屬于籃球——示例越多推斷越準(zhǔn)。線索Cues給模型一個起跳點另一種主要內(nèi)容用法是提供線索而非完整示例——給模型一小段反映期望回復(fù)格式的文字作為開頭讓模型順著這個調(diào)子續(xù)寫。以總結(jié)木星資料為例比較三種線索數(shù)量線索數(shù)量提示輸入補全輸出0木星長文本Summarize This輸出一段順暢的總結(jié)1木星長文本Summarize ThisWhat we learned is that Jupiter接續(xù)該句式輸出以 is the fifth planet from the Sun ... 開頭的總結(jié)2木星長文本Summarize ThisTop 3 Facts We Learned:輸出編號列表1. …… 2. …… 3. ……線索數(shù)從 0 增加到 2輸出的結(jié)構(gòu)從自由段落逐漸收斂為要點編號列表——用極少的提示成本換來完全可控的格式。提示模板Prompt Templates把配方沉淀為可復(fù)用資產(chǎn)提示模板是為某類提示預(yù)先定義好的配方可存儲、可復(fù)用用于在大規(guī)模場景下維持一致的用戶體驗。簡單形態(tài)一組提示示例的集合同時給出交互式提示組件用戶/系統(tǒng)消息與 API 請求格式便于復(fù)用復(fù)雜形態(tài)包含占位符placeholders運行時可被用戶輸入、系統(tǒng)上下文、外部數(shù)據(jù)源等替換從而編程式地動態(tài)生成提示終極價值面向垂直領(lǐng)域沉淀提示詞庫——模板針對特定應(yīng)用場景做過優(yōu)化使回復(fù)對目標(biāo)受眾更相關(guān)、更準(zhǔn)確。微軟開源倉庫 Prompts For Education 正是這種思路的范例它圍繞教案設(shè)計、課程大綱、學(xué)生輔導(dǎo)等教育核心目標(biāo)整理了一整庫教育領(lǐng)域提示詞。次要內(nèi)容Supporting Content用額外上下文微調(diào)輸出如果把提示構(gòu)造理解為指令任務(wù) 目標(biāo)主要內(nèi)容那么次要內(nèi)容就是額外補充的上下文目的是以某種方式影響輸出。它可以是一組調(diào)節(jié)參數(shù)、格式化指令、主題分類體系等幫助模型把回復(fù)裁剪到符合用戶目標(biāo)。課程給出了一個課程目錄場景假設(shè)目錄中每個條目都帶名稱、描述、難度、元數(shù)據(jù)標(biāo)簽、講師等豐富元數(shù)據(jù)那么用指令定義任務(wù)summarize the course catalog for Fall 2023總結(jié) 2023 秋季課程目錄用主要內(nèi)容給出幾個期望輸出格式的示例用次要內(nèi)容指明輸出應(yīng)優(yōu)先關(guān)注 Top 5 標(biāo)簽。最終模型按示例格式產(chǎn)出摘要但當(dāng)某個條目擁有多個標(biāo)簽時會依據(jù)次要內(nèi)容優(yōu)先挑選那 5 個標(biāo)簽。提示工程最佳實踐先有正確的心態(tài)再談?wù)_的技巧三種必備心態(tài)提示工程本質(zhì)上是試錯過程原文強調(diào)三個指導(dǎo)性原則領(lǐng)域理解很重要Domain Understanding Matters回復(fù)的準(zhǔn)確性與相關(guān)性取決于應(yīng)用所在領(lǐng)域。請把領(lǐng)域直覺注入技術(shù)細(xì)節(jié)——在系統(tǒng)提示里定義領(lǐng)域?qū)偃烁裨谟脩籼崾纠锸褂妙I(lǐng)域?qū)倌0逄峁┓从愁I(lǐng)域語境的次要內(nèi)容或用領(lǐng)域?qū)俚木€索與示例把模型引向熟悉的模式。模型理解很重要Model Understanding Matters不同模型在預(yù)訓(xùn)練數(shù)據(jù)預(yù)訓(xùn)練知識、API/SDK 能力暴露、擅長內(nèi)容類型代碼 vs 圖像 vs 文本上差異巨大。理解所用模型的強弱項用這份認(rèn)知去給任務(wù)排優(yōu)先級或構(gòu)建針對模型能力定制的模板。迭代與驗證很重要Iteration Validation Matters模型與提示技巧都在快速演進(jìn)你所在應(yīng)用可能還有社區(qū)通用經(jīng)驗無法覆蓋的專屬約束。用工具與技術(shù)快速啟動提示構(gòu)造再憑領(lǐng)域經(jīng)驗迭代、驗證結(jié)果把心得沉淀為知識庫如提示詞庫讓后來者以它為新基線做更快的迭代。官方推薦的最佳實踐清單綜合 OpenAI 與 Azure OpenAI 實踐者社區(qū)建議課程給出了一張可直接落地對照的實踐表該做什么為什么評估最新的模型新一代模型通常特性與質(zhì)量更佳但成本也可能更高。先評估影響再做遷移決策。分離指令與上下文確認(rèn)你的模型/提供方是否定義了分隔符把指令、主要內(nèi)容與次要內(nèi)容區(qū)分清楚幫助模型給 token 更準(zhǔn)確地分配權(quán)重。具體且清晰盡量寫清期望的上下文、結(jié)果、長度、格式、風(fēng)格等回復(fù)的質(zhì)量與一致性都會提升把配方固化到可復(fù)用模板中。多描述、多用示例模型對展示與講述式引導(dǎo)更敏感。先用zero-shot只有指令、無示例再進(jìn)階到few-shot補幾個期望輸出示例做精修也可以使用類比。用線索啟動補全給模型一些能作為回復(fù)起點的開頭詞或短語把它推向期望結(jié)果。重復(fù)強調(diào)Double Down有時需要對模型重復(fù)嘮叨在主要內(nèi)容前后都放指令、指令與線索搭配使用等。多迭代、多驗證。順序很重要信息呈現(xiàn)順序可能影響輸出——連學(xué)習(xí)示例也不例外這與近因偏差recency bias有關(guān)。多試幾種排布。給模型一條退路Out給模型一個兜底回復(fù)讓它因故無法完成任務(wù)時可以使用這能顯著降低編造/虛假回復(fù)的概率。與所有最佳實踐一樣具體效果會因模型、任務(wù)與領(lǐng)域而異。請把它們當(dāng)作起點并持續(xù)迭代同時在新模型與新工具出現(xiàn)時不斷重估自己的提示工程流程重點關(guān)注流程的可擴(kuò)展性與回復(fù)質(zhì)量。動手練習(xí)搭建提示工程沙箱并逐項驗證本課認(rèn)為提示工程更多是一門藝術(shù)而非科學(xué)提升直覺的最好方式就是多練習(xí)采用領(lǐng)域經(jīng)驗 推薦技巧 模型專屬優(yōu)化的試錯流程。倉庫在 04-prompt-engineering-fundamentals/python/ 下提供了三個版本的練習(xí) Notebook均含一組啟動練習(xí)并鼓勵你自行追加 Markdown 描述單元與代碼單元oai-assignment.ipynb面向 OpenAI 服務(wù)端點aoai-assignment.ipynb面向 Azure OpenAIMicrosoft Foundryv1 端點githubmodels-assignment.ipynb面向 Microsoft Foundry Models 多模型目錄Azure AI Inference SDK。環(huán)境準(zhǔn)備三步走獲取 API 密鑰準(zhǔn)備一個可訪問的 LLM 服務(wù)端點OpenAI API Key或 Azure OpenAI / Foundry 的密鑰并確認(rèn)目標(biāo)模型部署練習(xí)腳本中默認(rèn)使用gpt-4o-mini準(zhǔn)備 Python 運行時確保能執(zhí)行 Notebook。推薦按倉庫根目錄 00-course-setup/02-setup-local.md 完成本地配置——該文檔提供原生 Python 虛擬環(huán)境、VS Code Dev ContainerDocker、Miniconda與經(jīng)典 Jupyter四條路徑直接用 GitHub Codespaces 打開本倉庫則無需任何本地配置配置本地環(huán)境變量把倉庫根目錄的 .env.copy 復(fù)制為.env并按需填值。文件內(nèi)給出了三套提供方的變量模板OpenAIOPENAI_API_KEYyour OpenAI API key hereAzure OpenAIFoundryAZURE_OPENAI_API_VERSION2024-10-21已設(shè)默認(rèn)穩(wěn)定版、AZURE_OPENAI_API_KEY、AZURE_OPENAI_ENDPOINT如https://resource-name.openai.azure.com、AZURE_OPENAI_DEPLOYMENT如gpt-4o-miniMicrosoft Foundry ModelsAZURE_INFERENCE_ENDPOINT、AZURE_INFERENCE_CREDENTIAL多提供方模型目錄一個端點/密鑰即可訪問 OpenAI、Meta、Mistral、Cohere、Microsoft 等模型。aoai-assignment Notebook 讀取的正是AZURE_OPENAI_API_KEY、AZURE_OPENAI_ENDPOINT與AZURE_OPENAI_DEPLOYMENT三個變量base_url由端點拼接/openai/v1/而來而.env已納入倉庫.gitignore切勿提交密鑰。建議先運行筆記本中的環(huán)境校驗練習(xí)確認(rèn)oh say can you see這類基礎(chǔ)提示能被正常補全。五個練習(xí)對應(yīng)五類概念Notebook 內(nèi)置了與本課一一對應(yīng)的啟動練習(xí)可直接運行、改文本或換模型再運行練習(xí)主題要點Exercise 1Token 化用 tiktoken 對文本編碼/解碼觀察不同提示的 token 形態(tài)與數(shù)量Exercise 2環(huán)境校驗用基礎(chǔ)提示確認(rèn)服務(wù)端點配置正確Exercise 3編造Fabrication讓 LLM 生成不存在的主題如 2076 火星戰(zhàn)爭教案觀察其一本正經(jīng)地編造Exercise 4基于指令同一段木星文本疊加給二年級學(xué)生總結(jié)等指令觀察輸出結(jié)構(gòu)變化Exercise 5復(fù)雜提示構(gòu)造帶 system/user/assistant 的多輪消息體驗人格上下文的作用附加探索直覺自建更多練習(xí)把 zero-shot/one-shot/few-shot、線索等技巧組合起來原文特別說明本課刻意不提供標(biāo)準(zhǔn)答案——提示工程沒有絕對的對錯練習(xí) Notebook 中標(biāo)題為 My Solution: 的 Markdown 單元只展示一個參考輸出示例目的是讓你通過試錯建立什么在給定模型與領(lǐng)域下有效的直覺。例如在 githubmodels-assignment.ipynb 中Exercise 4 展示了一條二年級風(fēng)格輸出Jupiter is the fifth planet from the Sun and the biggest one in our Solar System ...可作為指令型提示的參考樣例。知識自測與延伸挑戰(zhàn)自測題在以下三個提示中哪個最符合合理的最佳實踐Show me an image of red car給我看一張紅色汽車圖片Show me an image of red car of make Volvo and model XC90 parked by a cliff with the sun setting給我看一張沃爾沃 XC90 紅色轎車停在懸崖邊、正值日落的圖片Show me an image of red car of make Volvo and model XC90給我看一張沃爾沃 XC90 紅色轎車的圖片參考答案選2。它既說明了是什么不是隨便什么車而是明確品牌與型號又描述了整體場景停在懸崖邊、日落細(xì)節(jié)最充分3次之因為它同樣包含較多描述。 挑戰(zhàn)練習(xí)嘗試用線索技巧補全這句話Show me an image of red car of make Volvo and 給我看一張紅色的、沃爾沃品牌的汽車圖片并且……。觀察模型如何接續(xù)你又會如何改進(jìn)這條提示以獲得更理想的構(gòu)圖提示可以仿照自測題第 2 項在線索后補充場景、光線與視角等期望輸出。繼續(xù)深入本課對應(yīng)的是 21 課課程體系的第 4 課。想進(jìn)一步學(xué)習(xí)更復(fù)雜的提示策略可以直接進(jìn)入下一章 05-advanced-prompts/README.md第 5 課高級提示技巧課程完整的速寫導(dǎo)覽也提示了鏈?zhǔn)剿伎糲hain-of-thought、自我精煉、生成知識利用與溫度參數(shù)調(diào)節(jié)等進(jìn)階主題。此外英文課程文檔 04-prompt-engineering-fundamentals/README.md 保留了更多原文插圖與外部參考鏈接適合與本文對照精讀。小結(jié)從 token 化、基礎(chǔ)模型與指令微調(diào)三個底層概念出發(fā)本文完整走過了提示工程的認(rèn)知鏈條四大提示構(gòu)造形態(tài)基礎(chǔ)/復(fù)雜/指令/主要內(nèi)容模式、三種強化內(nèi)容的手段示例、線索、模板、次要內(nèi)容對輸出的定向微調(diào)以及一整套可執(zhí)行的最佳實踐。你可以隨時回到倉庫的練習(xí) Notebook 用真實端點驗證每種技巧——在提示工程這個藝術(shù)多于科學(xué)的領(lǐng)域持續(xù)的試錯與直覺積累才是把模型能力真正兌現(xiàn)為高質(zhì)量產(chǎn)品的關(guān)鍵?!久赓M下載鏈接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI項目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考