




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Googls(PromptEnginssring)白皮重要性和復(fù)雜性1。目(Tablsofi(PromptLLM輸出配置(LLMoutput輸出長(zhǎng)(Output(#采樣控制-sampling-(#溫度-(#top-k-和-top-p-top-k-and-top-綜(Puflingitall(Prompting通用提示/零樣本(Generalprompting/zero單樣本&少樣本(One-shot&few-(#系統(tǒng)上下文和角色提示-system-contextual-and-role-(#系統(tǒng)提示-system-(#角色提示-role-(Contextual(#回退提示-step-back-(#思維鏈-chain-of-thought---(#自我一致性-self-(#react-推理與行動(dòng)---reason--自動(dòng)提示工程(AutomaticPromptEngineering-代碼(Code編寫代碼(Promptsforwriting解釋代碼(Promptsforexplaining翻譯代碼(Promptsfortranslating調(diào)試和審查代碼(Promptsfordebuggingandreviewing那么,多模態(tài)(Whataboutmultimodal(#最佳實(shí)踐-best-(Provide(Designwith(#具體說(shuō)明輸出-be-specific-about-the-使用指令而非約(UseInstructionsover控制最大令牌長(zhǎng)(Controlthemaxtoken在提示中使用變(Usevariablesin嘗試不同的輸入格式和寫作風(fēng)(Experimentwithinputformatsandwritingclassificationtasks,mixuptheclasses)適應(yīng)(Adapttomodel嘗試不同的輸(Experimentwithoutput與其他提示工程師一起(Experimenttogetherwithotherprompt(#cot-最佳實(shí)踐-cot-best-記錄各種提示(Documentthevariousprompt(#總結(jié)-具體技術(shù)(從零樣本到ReAct),涵蓋關(guān)鍵應(yīng)用(代碼),提及未來(lái)方向(多模態(tài)),并以織方式1。從基礎(chǔ)配置和零樣本提示,到復(fù)雜的推理技術(shù)如CoT、ToT和ReAct,這種遞進(jìn)關(guān)系表明,要實(shí)現(xiàn)高LLM應(yīng)用,需要掌握越來(lái)越復(fù)雜的技巧。將“代碼提示”作為一個(gè)主要部分,突顯了LLM在軟件開(kāi)發(fā)中的重要性?!白罴褜?shí)踐”占有相當(dāng)大的篇幅引言型用于預(yù)測(cè)特定輸出的輸入形式1。編寫提示并非數(shù)據(jù)科學(xué)家或機(jī)器學(xué)習(xí)工程師的專利上下文都至關(guān)重要1。因此,提示工程?一個(gè)迭代的過(guò)程。不恰當(dāng)?shù)奶崾究赡軐?dǎo)致模糊、不準(zhǔn)確的響應(yīng),并阻礙模型提供有意義輸出的能力1。don’tneedtobeadatascientistoramachinelearningengineer–everyonecanwriteaprompt.)1疇1。當(dāng)用戶與Gemini聊天機(jī)器人1交互時(shí),本質(zhì)上也?在編寫提示。然而,本白皮書(shū)側(cè)重于在VertexAI中或通APIGemini模型編寫提示,因?yàn)橹苯犹崾灸P涂梢栽L問(wèn)溫度等配置參數(shù)1。這種對(duì)直接模型交互(通VertexAI/API而非聊天界面)的明確關(guān)注,表明對(duì)配置(如溫度)的精細(xì)控制?認(rèn)為?高級(jí)提示工程的基礎(chǔ),這與休閑聊天機(jī)器人的使用有所區(qū)別。掌握提示工程不僅涉及提示文本本身,還包括操縱模型的生成參數(shù),這對(duì)創(chuàng)造性或確定性水平的任務(wù)。家的技巧和最佳實(shí)踐。我們還將討論在構(gòu)建提示時(shí)可能遇到的一些挑1。提示工程(Prompt理解LLM的工作原理至關(guān)重要:它?一個(gè)預(yù)測(cè)引擎。模型接收順序文本作為輸入,然后基于其訓(xùn)練數(shù)據(jù)預(yù)測(cè)下一個(gè)應(yīng)該出現(xiàn)的令牌(token)。LLM?設(shè)計(jì)為反復(fù)執(zhí)行此過(guò)程,將先前預(yù)測(cè)的令牌添加到序列文本的末尾,以預(yù)測(cè)下一個(gè)令牌。下一個(gè)令牌的預(yù)測(cè)LLM在訓(xùn)練期間所見(jiàn)內(nèi)容之間1當(dāng)編寫提示時(shí),實(shí)際上?在嘗試引LLM預(yù)測(cè)正確的令牌序列。提示工程(Promptengineering)?設(shè)計(jì)高質(zhì)量提示以引LLM產(chǎn)生準(zhǔn)確輸出的過(guò)程。這個(gè)過(guò)程涉及反復(fù)調(diào)試以找到最佳提示,優(yōu)化提示長(zhǎng)度,并評(píng)估提示的寫作風(fēng)格和結(jié)構(gòu)與任務(wù)的關(guān)系1。在自然語(yǔ)言處理和LLM的背景下,提示?提供給模型的輸入,用以生成響應(yīng)或1。“工程”一詞在此處的使用?恰當(dāng)?shù)?,因?yàn)樗枋隽艘粋€(gè)涉及“設(shè)計(jì)”、“優(yōu)化”、“評(píng)估”和“試”的系統(tǒng)過(guò)程。這不僅僅?寫作,更?一個(gè)針對(duì)需求進(jìn)行系統(tǒng)性改進(jìn)的過(guò)程,類似于傳統(tǒng)的工程學(xué)科。它將提示創(chuàng)建從簡(jiǎn)單的提問(wèn)行為提升為一個(gè)有目的、面向目標(biāo)的設(shè)計(jì)過(guò)。這些提示可用于實(shí)現(xiàn)各種理解和生成任務(wù),例如文本摘要、信息提取、問(wèn)答、文本分寫或推理可以參考Google的提示指南2,3獲取簡(jiǎn)單有效的提示示例1在進(jìn)行提示工程時(shí),首先需要選擇一個(gè)模型。無(wú)論使用VertexAI中的Gemini語(yǔ)言模型、GPT、Claude,還?像Gemma或LLaMA這樣的開(kāi)源模型,提示都可能需要針對(duì)特定模型進(jìn)行優(yōu)1。明確指出提示可能需要針對(duì)特定模型(Gemini,GPT,Claude,Gemma,除了提示本身,還需要LLM1LLM輸(LLMoutput選LLM都帶有各種配置選項(xiàng),用于控制其輸出。有效的提示工程需要為特定任務(wù)優(yōu)化設(shè)置這些配置1。輸出長(zhǎng)度(Output一個(gè)重要的配置設(shè)置?響應(yīng)LLM進(jìn)行更多計(jì)算,導(dǎo)致更高的能耗、可能更慢的響應(yīng)時(shí)間以及更高的成本1。減少LLM的輸出長(zhǎng)度并不會(huì)使LLM在其創(chuàng)建的輸出中變得風(fēng)格或文本上更簡(jiǎn)潔,它只?導(dǎo)LLM在達(dá)到限制時(shí)停止預(yù)測(cè)更多令牌。如果需求需要較短的輸出長(zhǎng)度,可能還需要相應(yīng)地設(shè)計(jì)提示以適1。需要明確的?:通過(guò)配置限制令牌數(shù)量(max_tokens)?一種強(qiáng)制指令(例如,“用一句話總結(jié)”)1。對(duì)于某些LLM提示技術(shù)(如ReAct),輸出長(zhǎng)度限制尤為重要,因?yàn)樵讷@得所需響應(yīng)LLM可能會(huì)繼續(xù)發(fā)出無(wú)用的令牌1采樣控制(SamplingLLM并非正式地預(yù)測(cè)單個(gè)令牌。相反,LLM預(yù)測(cè)下一個(gè)令牌可能?什么的概率,LLM詞匯個(gè)令牌1。溫度(Temperature)、Top-K和Top-P?最常見(jiàn)的配置設(shè)置,它們決定了如何處理預(yù)測(cè)的令牌概率以選擇單個(gè)輸出令牌1。溫度溫度可能導(dǎo)致更多樣化或意想不到的結(jié)果。溫度0(貪婪解碼)?確定性的:始終選擇概同,溫度0時(shí)可能不總?得到相同的輸出)1。溫,而故事生成可能受益于高溫1。Gemini的溫度控制可以類似于機(jī)器學(xué)習(xí)中使用的softmax函數(shù)來(lái)理解。低溫度設(shè)置類似于低softmax溫度(T),強(qiáng)調(diào)具有高確定性的單個(gè)首選溫度。較高的Gemini溫度設(shè)置類似于高softmax溫度,使得所選設(shè)置周圍更寬范圍的溫度變得更可接受。這種增加的不確定性適應(yīng)了那些不需要嚴(yán)格精確溫度的場(chǎng)景,例如在嘗試創(chuàng)意輸出1。Top-KTop-P(Top-Kandtop-Top-K和Top-P(也稱為核采樣)??LLM中使用的兩種采樣設(shè)置,用于將預(yù)測(cè)的下一個(gè)機(jī)性和多樣性1。Top-K采樣從模型預(yù)測(cè)的分布中選擇概率最高的K個(gè)令牌。Top-K值越高,模型的輸出越具創(chuàng)造性和多樣性;Top-K值越低,模型的輸出越受限制和基于事實(shí)。Top-K1Top-P采樣選擇累積概率不超過(guò)某個(gè)(P)的最高概率令牌。P的值范圍從0(貪碼)1(LLM詞匯表中的所有令牌)1Top-K和Top-P提供了補(bǔ)充溫度控制的不同方式來(lái)塑造采樣前的概率分布。Top-K選擇的數(shù)量,而Top-P基于累積概率質(zhì)量進(jìn)行限制。Top-K設(shè)置了考慮(例如,只看前40個(gè))。Top-P設(shè)置了基于概率總和的限制(例如,考慮令牌直到它們率加起來(lái)達(dá)到0.95)。這些?不同的機(jī)制。理解這種差異允許比單獨(dú)使用溫度更精細(xì)地控制輸出多樣性1。Top-K還?Top-P的最佳方法?同時(shí)(或一起)試驗(yàn)這兩種方法,看看哪種能產(chǎn)生您所尋找的結(jié)果1。綜合運(yùn)用(Puttingitall在Top-K、Top-P、溫度和要生成的令牌數(shù)量之間進(jìn)行選擇,取決于具體的應(yīng)用和期望的置相互影響如果溫度、Top-KTop-P都可用(VertexStudio中),則同時(shí)滿Top-KTop-P標(biāo)準(zhǔn)的令牌成為下一個(gè)預(yù)測(cè)令牌的候選者,然后應(yīng)用溫度從通Top-K和Top-P標(biāo)準(zhǔn)的令牌中進(jìn)行采樣。Top-KTop-P可用,行為Top-KP設(shè)置1。如果溫度不可用,則從滿足Top-K和/或Top-P標(biāo)準(zhǔn)的令牌中隨機(jī)選擇一個(gè),以產(chǎn)生單個(gè)下一個(gè)預(yù)測(cè)令牌1。在某個(gè)采樣配置值的極端設(shè)置下,該采樣設(shè)置要么抵消其他配置設(shè)置,要么變得無(wú)關(guān)緊如果將溫度設(shè)置0,Top-K和Top-P將變得無(wú)關(guān)緊要——概率最高的令牌成為下一個(gè)預(yù)測(cè)的令牌。如果將溫度設(shè)置得極高(1——10的量級(jí)),溫度將變得無(wú)關(guān)緊要,通Top-K和/或Top-P標(biāo)準(zhǔn)的任何令牌隨后將?隨機(jī)采樣以選擇下一個(gè)預(yù)測(cè)令牌1。如果將Top-K設(shè)置1,溫度和Top-P將變得無(wú)關(guān)緊要。只有一個(gè)令牌通Top-K標(biāo)準(zhǔn),該令牌就?下一個(gè)預(yù)測(cè)的令牌。如果將Top-K設(shè)置得極高,例如達(dá)到LLM詞匯表的大小,任何具有非零概率成為下一個(gè)令牌的令牌都將滿足Top-K標(biāo)準(zhǔn),沒(méi)有令牌?篩選掉1。如果將Top-P設(shè)置0(或一個(gè)非常小的值),大多數(shù)LLM采樣實(shí)現(xiàn)將只考慮概率最任何具有非零概率成為下一個(gè)令牌的令牌都將滿足Top-P標(biāo)準(zhǔn),沒(méi)有令牌?篩選掉1理解這些相互作用對(duì)于可預(yù)測(cè)的控制至關(guān)重要。例如,將溫度0或Top-K1會(huì)使其他采樣參數(shù)失效。有效的配置需要全局視角1。具有創(chuàng)造性但不過(guò)度。如果想要特別有創(chuàng)意的結(jié)果,可以嘗試從溫度0.9、Top-P0.99和Top-K40開(kāi)始。如果想要較少創(chuàng)意的結(jié)果,可以嘗試0.1、Top-P0.9Top-K20開(kāi)始。最后,如果任務(wù)總?只有一個(gè)正確答案(例如,回答數(shù)學(xué)問(wèn)題),則從溫度0開(kāi)始1。承認(rèn)了尋找最優(yōu)設(shè)置需要實(shí)驗(yàn),但可以通過(guò)啟發(fā)式方法來(lái)指導(dǎo),減少了初始搜索空1。注意:自由度越高(溫度、Top-K、Top-P和輸出令牌越高),LLM可能生成相關(guān)性較低的文本1。提示技巧(PromptingLLM?調(diào)整以遵循指令,并在大量數(shù)據(jù)上進(jìn)行訓(xùn)練,因此它們能夠理解提示并生成答案。但LLM并非完美無(wú)缺;提示文本越清晰,LLM預(yù)測(cè)下一個(gè)可能文本的效果就越好。此外,利用LLM訓(xùn)練方式和工作原理的特定技術(shù)將有助于從LLM中獲取相關(guān)結(jié)果1。示例1。通用提示/零樣本(Gsnsralprompting/zsro零樣本(zero-shot)?提示?最簡(jiǎn)單的提示類型。它僅提供任務(wù)描述和一些供LLM開(kāi)始使讓我們使用VertexAI中的VertexAIStudio(用于語(yǔ)言)?,它提供了一個(gè)測(cè)試提示的平臺(tái)。在表1中,您將看到一個(gè)用于分類電影評(píng)論的零樣本提示示例1。模型溫度應(yīng)設(shè)置為較低的數(shù)字,因?yàn)椴恍枰獎(jiǎng)?chuàng)造性,并且我們gemini-po默認(rèn)的op-Kop-P值,這實(shí)際上禁用了這兩個(gè)設(shè)置(參見(jiàn)上面的“LLM輸出配置”)。請(qǐng)成的輸出。diturbing”和maerpiee”這兩個(gè)詞應(yīng)該使預(yù)測(cè)稍微復(fù)雜一些,因?yàn)樗鼈冊(cè)谕痪湓?。?:零樣本提示示例(Anexampleofzero-shotprompting)moviereviewsaspositive,neutralornegative.)gemini-將電影評(píng)論分類為(POSITIVE)、中性(NEUTRAL)或負(fù)面(NEGATIVE)。型、配置),正如文本中所倡導(dǎo)的那1。示1。單樣本&少樣本(Ons-shot&fisw-在AI模型創(chuàng)建提示時(shí),提供示例很有幫助。這些示例可以幫助模型理解您的要求。當(dāng)您希望引導(dǎo)模型遵循特定的輸出結(jié)構(gòu)或模式時(shí),示例尤其有用1。最好地完成任務(wù)1。少樣本(few-shot)提示?向模型提供多個(gè)示例。這種方法向模型展示了它需要遵循的模式。其思想類似于單樣本,但多個(gè)期望模式的示例增加了模型遵循該模式的機(jī)會(huì)1。少樣本提示所需示例的數(shù)量取決于幾個(gè)因素,包括任務(wù)的復(fù)雜性、示例的質(zhì)的生成式AI(genAI)模型的能力。作為一般經(jīng)驗(yàn)法則,少樣本提示應(yīng)至少使用三到五個(gè)示您可能需要使用更少的示例1。表2展示了一個(gè)少樣本提示示例,讓我們使用與之前相同的gemini-pro模型配置設(shè)表2:少樣本提示示例(Anexampleoffew-shotprompting)gemini-將顧客的披薩訂單解析為JSON:"size":"type":"ingredients":[["cheese","tomatosauce","size":"type":"ingredients":[["tomatosauce","bazel","size":"type":"half-此表展示了少樣本提示在結(jié)構(gòu)化輸出任務(wù)(JSON生成)中的威力。它顯示了提供不同復(fù)雜度的示例(簡(jiǎn)單披vs.雙拼披薩)如何教會(huì)模型期望的格式和邏輯,使其能夠準(zhǔn)確處理新的類似請(qǐng)求1。少樣本提示利用了模型的上下文學(xué)習(xí)能力。通過(guò)觀察示例,模量和多樣性至關(guān)重要1。寫良好。一個(gè)小錯(cuò)誤就可能混淆模型并導(dǎo)致不希望的輸出1。如果您試圖生成對(duì)各種輸入都具有魯棒性的輸出,那么在示例中包含邊緣理系統(tǒng)、上下文和角色提示都?用于指LLM如何生成文本的技術(shù),但它們側(cè)重于不同的方面1:系統(tǒng)提示(Systemprompting)設(shè)置語(yǔ)言模型的總體背景和目的。它定義了模型做什么的“大局”,例如翻譯語(yǔ)言、分類評(píng)論等1上下文提示(Contextualprompting)提供與當(dāng)前對(duì)話或任務(wù)相關(guān)的特定細(xì)節(jié)或背景信息。它幫助模型理解所提問(wèn)題的細(xì)微差別,并相應(yīng)地調(diào)整響1。角色提示(Roleprompting)為語(yǔ)言模型分配一個(gè)特定的角色或身份以供其采用。也可以包含上下文1。然而,每種類入,?動(dòng)態(tài)的1。這三種提示類型代表了指LLM的不同層面或維度。系統(tǒng)提示設(shè)對(duì)輸出進(jìn)行高度特定的控制1。并更容易分析每種提示類型如何影響語(yǔ)言模型的輸出1。系統(tǒng)提示(Systsmprompting)表3包含一個(gè)系統(tǒng)提示,其中指定了有關(guān)如何返回輸出的附加信息。提高了溫度以獲得更型沒(méi)有返回額外的文本1。表3:系統(tǒng)提示示例(Anexampleofsystemprompting)標(biāo)簽。(Classifymoviereviewsaspositive,neutralornegative.Onlyreturnthelabelingemini-將電影評(píng)論分類為(POSITIVE)、中性(NEUTRAL)或負(fù)面(NEGATIVE)。僅以大寫形式返使在高溫度設(shè)置下也?如此,高溫度通常會(huì)鼓勵(lì)更冗長(zhǎng)的輸出1。系統(tǒng)提示對(duì)于生成滿足特定要求的輸出非常有用。“系統(tǒng)提示”這個(gè)名稱實(shí)際上代表“向系統(tǒng)提供附加任務(wù)”。例如,可以使用系統(tǒng)提示生成與特定編程語(yǔ)言兼容的代碼用系統(tǒng)提示返回某種結(jié)構(gòu)。請(qǐng)4JSON格式返回輸。4:JSON格式的系統(tǒng)(AnexampleofsystempromptingwithJSONformat)1將電影評(píng)論分類為正面、中性或負(fù)JSON。(Classifymoviereviewsaspositive,neutralornegative,returnJSON.)gemini-將電影評(píng)論分類為(POSITIVE)、中性(NEUTRAL或負(fù)(NEGATIVE)。返回有效的(JSON)。這對(duì)于將LLM輸出集成到下游應(yīng)用程序中非常有價(jià)值。它還強(qiáng)調(diào)了強(qiáng)制結(jié)構(gòu)以潛在限制幻覺(jué)的好1。從提取數(shù)據(jù)的提示返回JSON對(duì)象有一些好處。在實(shí)際應(yīng)用中,無(wú)需手動(dòng)創(chuàng)建此JSON格要求JSON格式,它迫使模型創(chuàng)建結(jié)構(gòu)并限制幻1。系統(tǒng)提示表明,直接的指令,特別?系統(tǒng)提示對(duì)于安全性和毒性控制也非常有用。要控制輸“你的回答應(yīng)該保持尊重?!?角色提示(Rols角色提示?提示工程中的一種技術(shù),涉及為AI模型分配特定角色。這可以幫助模型生成更相關(guān)、信息更豐富的輸出,因?yàn)槟P涂梢愿鶕?jù)分配給它的特定角色來(lái)構(gòu)建響1。例如,可以角色提示一個(gè)生成式AI模型扮演圖書(shū)編輯、幼兒園老師或勵(lì)志演說(shuō)家。一旦模型?分配了角色,就可以給它特定于該角色的提示。例如,可以提示老師創(chuàng)建一個(gè)課程計(jì)表5:角色提示示例(Anexampleofroleprompting)13個(gè)旅行建(Actastravelguideandprovide3travelsuggestions)gemini-國(guó)立博物館(Rijksmuseum):世界著名的博物(nh:.km:此表演示了分配角色(“旅行指南”)如何引導(dǎo)模型提供相關(guān)的建議(AI模型定義角色視角,為其提供了所需的語(yǔ)調(diào)、風(fēng)格和專注專業(yè)知識(shí)的藍(lán)圖,以提高輸出的質(zhì)量、相關(guān)性和有效性1。角色提示允LLM模擬一個(gè)角色,采用其預(yù)期的知識(shí)、詞匯、語(yǔ)調(diào)和風(fēng)格。這對(duì)于根據(jù)特定受眾或溝通目標(biāo)定制輸出非常有效1。以下?一些有效的風(fēng)格可供對(duì)抗性(Confrontational),描述性(Descriptive),直接(Direct),正式(Formal),幽默有影響力(Influential),非正式(Informal),鼓舞人心(Inspirational),有說(shuō)服力讓我們6中更改提示,以包含幽默和鼓舞人心的風(fēng)16:帶幽默語(yǔ)氣和風(fēng)(Anexampleofrolepromptingwithahumoroustoneandstyle)13個(gè)旅行建(Actastravelguideandprovide3travelsuggestions)gemini-見(jiàn)證帝國(guó)之心(BeholdtheEmpireStateofMoMA變得藝術(shù)(GetArtsy-FartsyatMoMA):在現(xiàn)代藝術(shù)博物(MoMA)釋放你內(nèi)心在第五大道購(gòu)物到手(Shop‘TilYouDroponFifthAvenue):在標(biāo)志性的第五大道盡情享受核心請(qǐng)求的同時(shí)顯著改變輸出的特性1。上下文提示(Contsxtual通過(guò)AI交互盡可能無(wú)縫和高效。模型將能夠更快地理解您的請(qǐng)求,并能夠生成更準(zhǔn)確、更相關(guān)的響應(yīng)71LLM的響況量身定制1。表7:上下文提示示例(Anexampleofcontextualprompting)為關(guān)于復(fù)古游戲的博客建議(Suggestarticlesforablogaboutretrogames)gemini-CabinetDesign):昔日重現(xiàn):80年代標(biāo)志性街機(jī)游(BlastFromThePast:IconicArcadeGamesofThe80’s):這篇文章將簡(jiǎn)要介1980年代一些最具標(biāo)志性RetroRevivalofPixel此表清晰地說(shuō)明了提供明確上下文(“關(guān)于80年代復(fù)古街機(jī)視頻游戲的博客”)如何將模型的輸出集中在高度相關(guān)的建議上,而不?對(duì)“博客主題”的通用請(qǐng)求1。(Stsp-back回退(Step-back)?提示?一種提高性能的技術(shù),它提示LLM首先考慮與手頭特定任務(wù)相種“回退”允LLM在嘗試解決具體問(wèn)題之前激活相關(guān)的背景知識(shí)和推理過(guò)程1。通過(guò)考慮更廣泛和潛在的原則,LLM可以生成更準(zhǔn)確、更有見(jiàn)地的響應(yīng)?;赝颂崾竟膭?lì)LLM進(jìn)行批判性思考,并以新的、創(chuàng)造性的方式應(yīng)用其知識(shí)。它通過(guò)利用LLM參數(shù)中比直接提示LLM時(shí)會(huì)發(fā)揮作用的更多知識(shí)來(lái)改變執(zhí)行任務(wù)的最終提示1。通過(guò)迫使模型首先思相關(guān)的具體輸出。這?一種引導(dǎo)式頭腦風(fēng)暴1。它可以通過(guò)關(guān)注一般原則而非具體細(xì)節(jié)來(lái)幫助減LLM響應(yīng)中的偏1讓我們看一些示例,以了解回退提示如何改進(jìn)結(jié)果。首先回顧一個(gè)傳統(tǒng)提示(8),然后將其與回退提示(910)進(jìn)行比1:表8:傳統(tǒng)提示(在與回退提示比較之前)(Atraditionalpromptbeforewecompareitwithastepbackprompt)1節(jié)。(Writeastorylineforalevelofafirst-personshootervideogemini-此表作為基線,顯示了直接請(qǐng)求創(chuàng)意內(nèi)容(尤其?在高溫度下)時(shí)可能產(chǎn)生的通用輸所以讓我們退一步思考1:9(Firststepofstep-backpromptinggeneratinggeneralconcepts)1gemini-dry:變槍k:閃為外星飛船(AlienSpaceship):一艘擱淺在地球僵尸橫行的小(Zombie-InfestedTown):一水下研究設(shè)施(UnderwaterResearchFacility):一個(gè)?水淹沒(méi)的深海實(shí)驗(yàn)室,充滿了變關(guān)的基礎(chǔ)想法或主1。驟的答案作為上下文包含進(jìn)去,看看它會(huì)返回什么1。10:使用回退上下文的最終(Finalpromptusingthestep-backcontext)gemini-此表示范了回退方法的有效性。通過(guò)首先生成一般概念(9),然后將它們用作上下文(10),最終的輸出比直接方法(8)更具體、更具主題性,并且可以說(shuō)更引人入1。思(ChainofiThought-CoT)思維鏈(ChainofThought,CoT)?提示?一種通過(guò)生成中間推理步驟來(lái)提高LLM推理能力的技術(shù)。這LLM生成更準(zhǔn)確的答案??梢詫⑵渑c少樣本提示結(jié)合使用,以在需要推理才能響應(yīng)的更復(fù)雜任務(wù)上獲得更好的結(jié)果,因?yàn)榱銟颖舅季S鏈在這方面存在挑1。CoT有很多優(yōu)點(diǎn)。首先,它省力且非常有效,并且適用于現(xiàn)成的LLM(因此無(wú)需微調(diào))。通CoT提示還可以獲得可解釋性,因?yàn)榭梢詮腖LM的響應(yīng)中學(xué)習(xí)并看到所遵循的推理步驟。如果出現(xiàn)故障,將能夠識(shí)別它。思維鏈似乎在不同LLM版本之間轉(zhuǎn)換時(shí)提高了魯棒性。這意味著與不使用推理鏈的提示相比,提示的性能在不同LLM之間的漂移應(yīng)該更小。當(dāng)然也有缺點(diǎn),但它們有些直1。LLM響應(yīng)包含思維鏈推理,這意味著更多的輸出令牌,這反過(guò)來(lái)意味著預(yù)測(cè)為了解釋11中的以下示例,讓我們首先嘗試創(chuàng)CoT提示的提示,以展示大型語(yǔ)言模型的缺陷1。表11:嘗試解決數(shù)學(xué)問(wèn)題的提示示例(Anexampleofapromptwhichistryingtosolveamathematicalproblem)120歲了。我的伴侶63此表展示了一個(gè)常見(jiàn)LLM失敗模式——在直接提問(wèn)時(shí),?使?簡(jiǎn)單的算術(shù)/邏輯推理問(wèn)題也可能出錯(cuò),CoT的引入奠定了基1。哎呀。這顯然?錯(cuò)誤的答案。事實(shí)上,LLM經(jīng)常在數(shù)學(xué)任務(wù)上遇到困難,并且可能提供不正的,而數(shù)學(xué)可能需要不同的方法。所以讓我們看看中間推理步驟?否會(huì)改善輸出1。表12:思維鏈提示示例(AnexampleofChainofThoughtprompting)3歲時(shí),我的年齡3伴侶的年齡3*3=9現(xiàn)20歲了,這3歲因此,我伴侶當(dāng)前的年齡9+17=26此表清晰地顯示了零樣本CoT的效果。簡(jiǎn)單地添加觸發(fā)短語(yǔ)“讓我們一步一步地思考”引出了一個(gè)推理過(guò)程,從而得出了正確的答案1。CoT通過(guò)迫使模型將其推理過(guò)程外化個(gè)“思考”中計(jì)算答案更可靠地執(zhí)行計(jì)算或邏輯推1。好的,現(xiàn)在最終答案?正確的。這?因?yàn)槲覀僉LM解釋每個(gè)步驟,而不?僅僅返回一個(gè)答案。有趣的?,模型加上了增加的17年。在我看來(lái),我會(huì)計(jì)算我和伴侶之間的年齡差,然后加上去。(20+(9-3))。讓我們幫助模型更像我一樣思考1。12?“零樣本”思維鏈的一個(gè)例子。當(dāng)與單樣本或少樣本結(jié)合時(shí),思維鏈提示可能非常強(qiáng)大,正如您在表13中所1:13:帶單樣本的思維鏈(Anexampleofchainofthoughtpromptingwithasingle-shot)1問(wèn)2歲時(shí),我的年齡?他年齡的兩倍。2歲時(shí)2*2=4歲。年齡2歲,我更大。現(xiàn)40歲40-3歲時(shí),我的伴侶3*3=9歲。年齡20+6=26歲。26此表示范了少樣本CoT。提供一個(gè)期望的推理過(guò)程的示例,可以指導(dǎo)模型為新問(wèn)題遵循類似的結(jié)構(gòu)和邏輯,可能比單獨(dú)使用零樣本CoT產(chǎn)生更可靠或結(jié)構(gòu)化的推理1。思維鏈可用于各種用例。想想代碼生成,用于將請(qǐng)求分解為幾個(gè)步驟,并將這些步驟特定的代碼行?;蛘哂糜趧?chuàng)建合成數(shù)據(jù),當(dāng)您有某種種子時(shí),例如“產(chǎn)品名XYZ,編寫一個(gè)描述,引導(dǎo)模型完成您基于給定產(chǎn)品標(biāo)題會(huì)做出的假設(shè)。”通常,任何可以通過(guò)“逐步闡述”來(lái)解決的任務(wù)都適合使用思維鏈。如果您能解釋解決問(wèn)題的步驟,請(qǐng)嘗試思。請(qǐng)參考托管在GoogleCloudPlatformGithub存儲(chǔ)庫(kù)中的notebook1?,它將更詳細(xì)地介紹CoT提示1。(Sslfi-consistsncy)雖然大型語(yǔ)NLP任務(wù)中取得了令人矚目的成功,但它們的推理能力通常?視為一個(gè)僅靠增加模型大小無(wú)法克服的局限性。正如我們?cè)谇懊娴乃季S鏈提示部分所了解的,可以提示模型生成像人類解決問(wèn)題一樣的推理步驟。然而,oT使用簡(jiǎn)單的“貪婪解碼”策略,限制了其有效性。自我一致性(Self-onsiency)11結(jié)合了采樣和多數(shù)投票來(lái)生成多樣化的推理路徑,并選擇LLM生成響應(yīng)的準(zhǔn)確性和連貫。自我一致性利用了這樣一個(gè)觀點(diǎn):雖然單個(gè)推理路徑可能有缺陷,但正確答案很可能可以通過(guò)多個(gè)有效路徑達(dá)到。通過(guò)采樣多樣化的路徑并尋找共識(shí),它過(guò)濾掉了異常的推理,并增加了對(duì)最終答案的信心。它以計(jì)算成本換取了魯。它遵循以下步1:生成多樣LLM提供相同的提示。高溫度設(shè)置鼓勵(lì)模型生成不同從每個(gè)生成的響應(yīng)選擇最常見(jiàn)讓我們看一個(gè)電子郵件分類系統(tǒng)的例子,該系統(tǒng)將電子郵件分類為(IMPORANT)或(NTIMPORANT)。一個(gè)零樣本思維鏈提示將?多次發(fā)送LLM,以查看每次提交后響應(yīng)?否不同。請(qǐng)注意電子郵件中使用的友好語(yǔ)氣、措辭選擇和諷刺意味。所有這可能欺LLM。14(Anexampleofpromptingforselfconsistency)Wordpress。一個(gè)很棒的開(kāi)加截圖。注意我調(diào)用的JavaScript警報(bào)框。將以上郵件分類為重要(IMPORTANT)或不重要(NOTIMPORTANT)。讓我們一步一步地思考并解輸出(Output)-任意JavaScript代碼。這可能導(dǎo)致攻擊者能夠控T輸出(Output)-結(jié)論:不重要(NOT輸出(Output)-任意JavaScript代碼。這可能導(dǎo)致攻擊者能夠控T立此表完美地展示了自我一致性機(jī)制。它表明,?使使用CoT,單次運(yùn)行(尤其?在鼓勵(lì)徑并進(jìn)行多數(shù)投票(3次中有2次認(rèn)為?重要)提供了更穩(wěn)健的最終答案1。您可以使用上面的提示,嘗試看看它?否返回一致的分類。,它可能返回“重要”或“不重要”1通過(guò)生成許多思維鏈,并采納最常出現(xiàn)的答案(“重要”),我們可以從LLM獲得更一致正確的答案1。這個(gè)例子展示了如何使用自我一致性提示,通過(guò)考慮多個(gè)視角并選擇LLM響應(yīng)的準(zhǔn)確性1思(TrssofiThoughts-現(xiàn)在我們熟悉了思維鏈和自我一致性提示,讓我們回顧一下思維樹(shù)(TreeofThoughts,)12。它泛化了CoT提示的概念,因?yàn)樗蔐LM同時(shí)探索多個(gè)不同的推理路徑,而不?遵循單一的線性思維鏈。這在1中有所描1。ToT從線性或獨(dú)立的推理路徑轉(zhuǎn)向更仿更深思熟慮的人類解決問(wèn)題的方法1。1:左側(cè)為思維鏈提示可視化,右側(cè)為思維樹(shù)提示可視(Avisualizationofchainofthoughtpromptingontheleftversus.TreeofThoughtspromptingontheright)1這ToT特別適合需要探索的復(fù)雜任務(wù)。它的工作原理?維護(hù)一個(gè)思維樹(shù),其中中的不同節(jié)點(diǎn)分支出來(lái)探索不同的推理路徑1。有一個(gè)很棒的notebook,它更詳細(xì)地展示了基于論文《大型語(yǔ)言模型引導(dǎo)的思維樹(shù)》(LargeLanguageModelGuidedTree-of-Thought)?的思維樹(shù)(ToT)1。RsAct(推理與行-rsason&推理與行動(dòng)(Reasonandact,ReAct)13提示?一種范式,使LLM能夠通過(guò)將自然語(yǔ)言推理與外部工具(搜索、代碼解釋器等)相結(jié)合來(lái)解決復(fù)雜任務(wù),允LLM執(zhí)行某些操作,例如與外部API交互以檢索信息,這?邁向智能體建模的第一步1。ReAct從根本上擴(kuò)展了LLM的能力,允許它們與外部世界(或特定工具)交互以收集信息或執(zhí)行僅靠文本生成無(wú)法完成的操作。這將推理過(guò)程置于實(shí)時(shí)、外部數(shù)據(jù)的基礎(chǔ)之上1。ReAct模仿人類在現(xiàn)實(shí)世界中的運(yùn)作方式,因?yàn)槲覀冞M(jìn)行口頭推理并可以采取行動(dòng)獲取信息。ReAct在各種領(lǐng)域中相對(duì)于其他提示工程方法的表現(xiàn)良好1。ReAct提示通過(guò)將推理和行動(dòng)結(jié)合到一個(gè)思想-行動(dòng)循環(huán)中來(lái)工作。LLM首先對(duì)問(wèn)題進(jìn)行推理并生成行動(dòng)計(jì)劃。然后它執(zhí)行計(jì)劃中的行動(dòng)并觀察結(jié)果。接著,LLM使用觀察結(jié)果更新其推理并生成新的行動(dòng)計(jì)劃。這個(gè)過(guò)程持續(xù)進(jìn)行,直到LLM找到問(wèn)題的解決方案1。要看到實(shí)際效果,需要編寫一些代碼。在代碼片段1中,使用了Python的langchain,以及VertexAI(google-cloud-aiplatform)和google-search-resultspip包1要運(yùn)行此示例,必須從\hhflps:///manage-api-key創(chuàng)建一個(gè)(免費(fèi)的密?,并設(shè)置環(huán)境變量SERPAPI_API_KEY1接下來(lái)讓我們編寫一些Python代碼,任務(wù)?LLM找出:Metallica樂(lè)隊(duì)成員共有多少個(gè)孩子1。#代碼1LangChainVertexAI創(chuàng)ReActAgentfromlangchain.agentsimportload_toolsfromlangchain.agentsimportinitialize_agentfromlangchain.agentsimportAgentTypefromlangchain.llmsimportVertexAI#提示:Metallica樂(lè)隊(duì)成員prompt="HowmanykidsdothebandmembersofMetallica#初始化LLM(VertexAI),設(shè)置較低溫度以獲得更事實(shí)性的響llm=#加載工具(這里使用SerpAPI進(jìn)行網(wǎng)絡(luò)搜索tools=load_tools(["serpapi"],#agent=initialize_agent(tools, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,#代碼1LangChainVertexAI創(chuàng)ReActAgent(CreatingaReActAgentwithLangChainandVertexAI)1代碼片段2顯示了結(jié)果。注意ReAct進(jìn)行了一系列五次搜索。實(shí)際上,LLMGoogle搜索結(jié)果以找出樂(lè)隊(duì)成員的名字。然后,它將結(jié)果列為觀察結(jié)果,并將思想鏈代碼片段2:在終端執(zhí)行RsActAgsnt的輸進(jìn)入新的AgentExecutor鏈...思考:Metallica有4名成員。行動(dòng)輸入:JamesHetfield觀思考:1/4Metallica樂(lè)隊(duì)成員3個(gè)孩子行動(dòng)輸入:LarsUlrich觀思考:2/4Metallica樂(lè)隊(duì)成員6個(gè)孩子行動(dòng)輸入:KirkHammefl觀察:Hammefl自1998年以來(lái)與他的第二任妻子Lani結(jié)婚。他們Angel(2006929日)Vincenzo(2008628日)。思考:3/4Metallica樂(lè)隊(duì)成員8個(gè)孩子行動(dòng)行動(dòng)輸入:RobertTrujillo觀思考:4/4Metallica樂(lè)隊(duì)成員10個(gè)孩子退出AgentExecutor鏈代碼片段2:在終端執(zhí)行ReActAgent(ExecutingReActAgentintheterminal)代碼片段2找出了Metallica樂(lè)隊(duì)有四名成員。然后它搜索每個(gè)樂(lè)隊(duì)成員以請(qǐng)求孩子的答案在實(shí)踐中應(yīng)Rect提示需要理解,您必須持續(xù)地重新發(fā)送之前的提示/響應(yīng)(并對(duì)額成的內(nèi)容進(jìn)行修剪),以及使用適當(dāng)?shù)氖纠?指令來(lái)設(shè)置模型。請(qǐng)參考托管在GoogleCloudPltormGithub存儲(chǔ)庫(kù)nebook1?,它通過(guò)更詳盡的示例更詳細(xì)地展示了實(shí)際LLM輸入和輸。自動(dòng)(AutomaticPromptEnginssring-提示)豈不?很棒?嗯,有一種方法:自動(dòng)提示工程(AutomaticPromptEngineering,)。這種方法1?不僅減輕了人工輸入的需要,而且還提高了模型在各種任務(wù)1。代表了LLM的元級(jí)別應(yīng)用——使用它們來(lái)優(yōu)化它們自己或其他系統(tǒng)的輸入(提示)。這表明未來(lái)AI可能在與AI交互和控制的過(guò)程中提供重要輔助1。,可能修改好的提示。然后重復(fù)例如,可以使用自動(dòng)提示工程來(lái)幫助訓(xùn)練T恤網(wǎng)店的聊天機(jī)器人。我們想找出顧客可能用來(lái)訂購(gòu)樂(lè)隊(duì)商品T恤的所有不同表達(dá)方式1。編寫將生成輸出變體的提示。在此示例中,使用gemini-pro生成10條指令。見(jiàn)表表15:使用LLM生成提示(UseanLLMtogenerateprompts)MetallicaT恤,S碼”。生成10個(gè)變體,語(yǔ)義相同我想購(gòu)買MetallicaT恤,小我可以訂購(gòu)一件小碼MetallicaT恤我想買一件小碼MetallicaTMetallica襯衫,小碼,我想要一件小碼MetallicaT我想下單訂購(gòu)一件小碼MetallicaT小MetallicaT恤,一件,我在找一件小碼MetallicaT你能給我拿一件小碼MetallicaT恤Metallica小T恤,此表示范了APE的核心思想——使用LLM本身來(lái)為給定任務(wù)生成多樣化的措辭或指令,自動(dòng)化了提示設(shè)計(jì)或數(shù)據(jù)增強(qiáng)的部分創(chuàng)造性過(guò)程1。評(píng)估所有指令候通過(guò)根據(jù)選定的指標(biāo)對(duì)候選進(jìn)行評(píng)分來(lái)評(píng)BLEU(雙語(yǔ)評(píng)估替補(bǔ))或ROUGE(面向召回的要點(diǎn)評(píng)估替補(bǔ))1使用的最終提示。您也可以調(diào)整選定的提示并再次評(píng)估1。代碼(CodsGemini主要關(guān)注基于文本的提示,這也包括編寫用于返回代碼的提示。讓我們進(jìn)入VertexAIStudio并測(cè)試這些提示,看一些編碼示例1。編寫代碼(PromptsfiorwritingGemini也可以扮演開(kāi)發(fā)者的角色,幫助您用任何選擇的編程語(yǔ)言編寫代碼。作為開(kāi)發(fā)費(fèi)大量時(shí)間。您懂一點(diǎn)Bash,可以編寫一個(gè)腳本來(lái)自動(dòng)化這個(gè)過(guò)程,但這可能也需要一些時(shí)間。所以讓我們編寫一個(gè)提示。您可以在公共消費(fèi)者聊天機(jī)器人Gemini中編寫提示,或者如果您更關(guān)心保密性,可以在您的GoogleCloud帳戶中編寫這些提示并打開(kāi)VertexAIStudio。VertexAIStudio的優(yōu)勢(shì)在于您可以配置溫度等參數(shù)1。16Gemini編程代(UsingGeminitoprogramcode)編Bash中編寫代碼以重命名文件夾中的文件。(WriteaprompttowritecodeinBashtorenamefilesinafolder.)gemini-編寫一個(gè)Bash代碼片段,該片段詢問(wèn)文件夾名#詢問(wèn)文件夾readfolder_name#檢查文件夾if-d$folder_namethenecho"文件夾不存在。"exit1獲取文件夾files=("$folder_name"/*通過(guò)"draft_"forfilein"${files[@]}";#從完整路徑中提取基本文件名base_name=$(basename"$file")#構(gòu)建新的文件路徑#echo"文件重命名成功。此表提供了一個(gè)清晰的示例,說(shuō)明如何基于自然語(yǔ)LLM進(jìn)行代碼生成,展示了自動(dòng)化簡(jiǎn)單腳本任務(wù)的潛力1。這看起來(lái)?不錯(cuò)的代碼——甚至還有文檔!然而,由于LLM無(wú)法推理,并且會(huì)重復(fù)訓(xùn)練數(shù)據(jù),因此首先閱讀和測(cè)試您的代碼至關(guān)重要1。我們都期待的時(shí)刻,它真的有效讓我們先用一個(gè)只有幾個(gè)文件的測(cè)試文件夾來(lái)試試,這些文件需要從filename.txtdraft_filename.txt1復(fù)制表16的輸出(不包括bash文本包裝器),并將其粘貼到一個(gè)名“rename_files.sh”打開(kāi)一個(gè)終端窗口并輸入:.rename_files.sh。它會(huì)要求輸入文件夾名稱,例如test,當(dāng)您查看測(cè)試文件夾時(shí),會(huì)發(fā)現(xiàn)所有文件都已完美地重命名draft_filename.txt1。解釋代碼(Promptsfiorsxplaining作為開(kāi)發(fā)者,在團(tuán)隊(duì)中工作時(shí),您必須閱讀他人的代碼。Gemini也可以在這方面提供幫助。讓我們16的代碼輸出,移除注釋,并要求大型語(yǔ)言模型解釋發(fā)生了什么,見(jiàn)表17:解釋代碼的提示(Apromptforexplainingcode)編寫一個(gè)提示來(lái)解Bash代碼。(WriteaprompttoexplainBashcode)gemini-請(qǐng)向我解釋Bash代碼echo"輸入文件夾名稱:"readif-d$folder_namethenecho"文件夾不存在。"exit1forfilein"${files[@]}";base_name=$(basenameecho"文件重命名成功。這Bash腳本執(zhí)行以下任務(wù)1用戶輸(User-它使用echo和read命令提示用戶輸入文件夾名稱。輸入的文件夾名稱存儲(chǔ)folder_name變量2.文件夾存在性(FolderExistence-它使用[!-d"$folder_name"]條件檢查具有指1退出腳本。3.文件列表(Filefiles$folder_name"/*命令列出指定文件夾內(nèi)的所有文件。這將創(chuàng)建一個(gè)名files文件重命名(Filefor循環(huán)遍files數(shù)組base_name=$(basename"$file")提取基本文件”5.(SuccessLLM在代碼理解方面的效用。模型準(zhǔn)確地分解了腳本,并用自然語(yǔ)言解釋了每個(gè)命令塊的目的1。翻譯代碼(Promptsfiortranslating表16中的bash代碼似乎工作正常。然而,如果這個(gè)腳本能提示我輸入文件名,并且理想情況下能作為一個(gè)帶有UI的獨(dú)立應(yīng)用程序工作,那么它將真正具有可重用性。作為起點(diǎn),對(duì)于(Web)應(yīng)用程序來(lái)說(shuō),Python比Bash?更好的語(yǔ)言。LLM可以幫助將代碼從一種語(yǔ)言翻譯到另一種語(yǔ)言。參見(jiàn)表18中的示例1:表18:將代碼從Bash翻Python的提示(ApromptfortranslatingcodefromBashtoPython)1編寫一個(gè)提示,將Bash代碼翻譯成Python。(WriteaprompttotranslateBashcodetogemini-將下面的Bash代碼翻譯成Pythonecho"輸入文件夾名稱:"readif-d$folder_namethenecho"文件夾不存在。"exit1forfilein"${files[@]}";base_name=$(basenameecho"文件重命名成功。importos#從用戶獲取文件夾#檢查文件夾ifnotfiles=forfilein#創(chuàng)建帶有前"draft_"#new_file_name=##將文件移動(dòng)shutil.move(old_path,#此表展示了LLM的代碼翻譯能力,將功能從一種語(yǔ)言的習(xí)慣用法(Bash命令)映射到另一種語(yǔ)言(如Python的os、shutil庫(kù))1。閱讀并審查代碼。復(fù)制提示的輸出并將其粘貼到一個(gè)新文件:file_renamer.py。通過(guò)終端窗口并執(zhí)行以下命令來(lái)測(cè)試代碼:pythonfile_renamer.py1注意:在VertexAI的LanguageStudio中提示(Python)代碼時(shí),您必須單擊“Markdown”按鈕。否則,您將收到缺少正確行縮進(jìn)的純文本,這對(duì)于運(yùn)行Python代碼很重要1。調(diào)試和審查代碼的提示(Promptsfiordsbuggingandrsviswing讓我們手動(dòng)對(duì)18的代碼進(jìn)行一些編輯。它應(yīng)該提示用戶輸入文件名前綴,并將此前綴以大寫字符寫入。參見(jiàn)代碼片段3中的示例代碼,但真糟糕。它現(xiàn)在返回Python#代碼3:一個(gè)損Python腳本importosimport=prefix=input("輸入要添加到文件名前的前綴字符串:"#錯(cuò)誤:使用了未定義ifnotprint("文件夾不存在。files=forfilein#new_filename=#使用了未在循環(huán)中定義new_path=os.path.join(folder_name,shutil.move(old_path,new_path)代碼3:一個(gè)損Python(AbrokenPythonscript哎呀!看起來(lái)像個(gè)bug代碼片段4:Python代碼錯(cuò)誤以下Python代碼給出了錯(cuò)誤Traceback(mostrecentcallFile"/Users/leeboonstra/Documents/test_folder/rename_files.py",line7,in<module>text=toUpperCase(prefix)NameError:name'toUpperCase'isnot代碼4Python代(IbrokethePythoncode)讓我們看看?否可以要求大型語(yǔ)言模型調(diào)試和審查代碼。請(qǐng)1919:調(diào)試和Python代碼(ApromptfordebuggingandreviewingPythoncode)1編寫一個(gè)提示來(lái)調(diào)試和Python代碼。(WriteaprompttodebugandreviewPythoncode.)gemini-以下Python代碼給出了錯(cuò)誤Traceback(mostrecentcallame_files.py",line7,in<module>text=toUpperCase(prefix)NameError:name'toUpperCase'isnotimportosprefix=input("輸入要添加到文件名前的前綴字符串:")ifnotos.path.isdir(folder_name):files=os.listdir(folder_name)forfileinfiles:new_filename=shutil.move(old_path,代碼調(diào)用了toUpperCase函數(shù)將prefix轉(zhuǎn)換為大字符串類upper()方法,該方法將給定字符串轉(zhuǎn)importosprefix=input("輸入要添加到文件名前的前綴字符串:")textprefix.upper使用.upperifnotos.path.isdir(folder_name):files=os.listdir(folder_name)forfileinfiles:#注意:修復(fù)了變new_filename=shutil.move(old_path,importosprefix=input("輸入要添加到文件名前的前綴字符串:").upper()#直接轉(zhuǎn)大寫ifnotos.path.isdir(folder_name):files=print(f"正在重命名{folder_name}中的文件forfilein僅處理文件,跳過(guò)子目錄(如果需要)old_path=os.path.join(folder_name,file)ifos.path.isfile(old_path):#分離文件名和擴(kuò)name,ext=os.path.splitext(file)創(chuàng)建新的文件名(保留擴(kuò)展名)new_filename=#嘗試移動(dòng)print(f"'{file}'->'{new_filename}'")exceptExceptionase:print(f"移動(dòng)文件{file}時(shí)出錯(cuò):{此表有力地證明了LLM不僅可以修復(fù)特定錯(cuò)誤,還可以進(jìn)行主動(dòng)的代碼審查并提出溯以及代碼極大地幫助LLM定位問(wèn)題,使調(diào)試提示比僅提供代碼并說(shuō)“修復(fù)它”有效得多1。太棒了。它不僅告訴了我如何解決問(wèn)題,還找出了我的代碼有更多錯(cuò)誤那么,多模態(tài)(Whataboutmultimodal為代碼編寫提示仍然使用相同常規(guī)的大型語(yǔ)言模型。多模態(tài)提示?一個(gè)獨(dú)立的問(wèn)題,它指的?一種使用多種輸入格式(而不僅僅?依賴文本)來(lái)指導(dǎo)大型語(yǔ)言模型的技術(shù)。這括文本、圖像、音頻、代碼甚至其他格式的組合,具體取決于模型的能力和手頭的任。本節(jié)主要承認(rèn)多模態(tài)提示的存在,但明確將其排除在詳細(xì)討論之外,使白皮書(shū)專注于基于文本(包括代碼)。最佳實(shí)踐(Bsst找到正確的提示需要反復(fù)調(diào)試。VertexAI中的LanguageStudio?一個(gè)完美的場(chǎng)所,可以在其中試用您的提示,并能夠針對(duì)各種模型進(jìn)行1。提供示例(Providssxamplss)最重要的最佳實(shí)踐?在提示中提供(單樣本/少樣本)示例。這?非常有效的,因?yàn)樗洚?dāng)了強(qiáng)大的教學(xué)工具。這些示例展示了期望的輸出或類似的響應(yīng),使模型能夠從中學(xué)習(xí)并相應(yīng)地調(diào)整其自身的生成。這就像給模型一個(gè)參考點(diǎn)或目標(biāo),以提高其響應(yīng)的準(zhǔn)確性、風(fēng)格和調(diào)。這再次強(qiáng)調(diào)了之前看到的少樣本學(xué)習(xí)的有效性。明確稱其為“最重要”的實(shí)踐,突顯了它在各種任務(wù)。(Dssignwith提供不必要的信息1。有時(shí)少??多。雖然上下文?好的,但不必要的行話或過(guò)于復(fù)雜的句子結(jié)構(gòu)可能會(huì)混淆模型。直接、清晰的語(yǔ)言?首1。修改前我現(xiàn)在正在訪問(wèn)紐約,我想了解更多關(guān)于好地點(diǎn)的信息。我和兩個(gè)3歲的孩子在一起。我們假期重寫后(AFTER扮演游客的旅行指南。描述在紐約曼哈頓適合3歲孩子參觀的好地方。嘗試使用描述動(dòng)作的動(dòng)詞。以下?一些示例1:扮演(Act),分析(Analyze),分(Categorize),(Classify),對(duì)比(Contrast),比(Compare),創(chuàng)建(Create),描述(Describe),定(Define),評(píng)估(Evaluate),提取(Extract),查找(Find),生成(Generate),(Identify),列出(List),測(cè)量(Measure),(Organize),解析(Parse),挑選(Pick),(Predict),提供(Provide),排名(Rank),推薦(Recommend),返回(Return),檢索(Retrieve),重寫(Rewrite),(Select),顯示(Show),排序(Sort),(Summarize),翻譯(Translate),編寫(Write).具體說(shuō)明輸(Bsspscificaboutths關(guān)于期望的輸出要具體。簡(jiǎn)潔的指令可能不足以指導(dǎo)LLM,或者可能過(guò)于籠統(tǒng)。在提示中不要假設(shè)模型知道您想要什么。明確說(shuō)明約束條件,如長(zhǎng)度(“3段”)、內(nèi)容焦點(diǎn)(“排名前5生成一篇關(guān)于排名前5的視頻游戲機(jī)的3不推薦(DONOT):生成一篇關(guān)于視頻游戲使用指令而非約(UssInstructionsovsr指令和約束在提示中用于指LLM的輸1指令(instruction)提供關(guān)于響應(yīng)的期望格式、風(fēng)格或內(nèi)容的明確指示。它指導(dǎo)模型應(yīng)該做什么或產(chǎn)生什么1。約束(constraint)?對(duì)響應(yīng)的一組限制或邊界。它限制模型不應(yīng)該人類更喜歡積極指令而非一堆“不要做”列表的偏好相一致1。以積極的方式提出請(qǐng)求(生
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年計(jì)算機(jī)及外部設(shè)備維修服務(wù)項(xiàng)目提案報(bào)告
- 2025年塞克硝唑藥物項(xiàng)目申請(qǐng)報(bào)告
- 考古發(fā)掘保護(hù)現(xiàn)代承諾函7篇
- 法律文書(shū)草擬與合同審核流程模板
- 2025年古董收藏品項(xiàng)目提案報(bào)告范文
- 主動(dòng)擔(dān)責(zé)承諾書(shū)模板(6篇)
- 2025年護(hù)創(chuàng)敷料耗材項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告
- 多行業(yè)共同認(rèn)可的員工手冊(cè)編制規(guī)范
- 2025年威海市水產(chǎn)學(xué)校公開(kāi)招聘教師(7人)模擬試卷附答案詳解(黃金題型)
- 2025-2026學(xué)年陜西省漢中市高三上學(xué)期第一次校際聯(lián)考英語(yǔ)試題(解析版)
- 消防宣傳安全常識(shí)課件
- 宅基無(wú)償轉(zhuǎn)贈(zèng)協(xié)議書(shū)
- GB/T 1040.1-2025塑料拉伸性能的測(cè)定第1部分:總則
- 學(xué)校食堂食品安全風(fēng)險(xiǎn)管控清單
- DB54/T 0316-2024藏香生產(chǎn)技術(shù)規(guī)程
- 車間8s管理制度培訓(xùn)
- 電力行業(yè)職業(yè)健康衛(wèi)生管理制度
- 新22J01 工程做法圖集
- 口腔診所醫(yī)患溝通與糾紛處理預(yù)案
- 奮斗青春勇?lián)鷼v史使命
- 《數(shù)據(jù)中心鉛酸蓄電池應(yīng)用技術(shù)規(guī)程》
評(píng)論
0/150
提交評(píng)論