版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
未來力場更新?期:未來力場更新?期:2023-10-2寫在前?這是我們策劃的《提?詞?程祛魅》寫在前?這是我們策劃的《提?詞?程祛魅》主題?會的附屬產(chǎn)品。來?OpenAI的官??檔。今年6?份,OpenAI更新了這?篇題?為《GPT最佳實踐/GPTBestPractice》的?檔;??介紹了?些與ChatGPT交互的技巧,且附有?例。?先,這部分內(nèi)容本來就是完全免費、完全公開的。同時,它是?通俗的英語寫成,并不是?份晦澀難懂的技術(shù)?檔。??都可以通過掌握這些簡單的原則,“gettingbetterresultsfromGPTs”—讓GPT為你輸出想要的結(jié)果。因為我們沒有看到特別好的中?版本,所以我們??對它進?了重新編譯,讓語?風(fēng)格盡量直?,并補充了?些在中?互聯(lián)?環(huán)境?更容易理解的?例,形成了這份“??話編譯解讀版本”的OpenAI:GPT最佳實踐。歡迎?家閱讀和交流。希望我們編譯這份材料的?標能基本達到,即:為提?詞?程「祛魅」(中譯中:有些付費課不必買)。第?部分六?提?詞策略概覽第?部分技巧實戰(zhàn)感謝下列參與者《提?詞?程祛魅進階》主題?會的Speakers——陳財貓和Rain。協(xié)助籌辦活動的:謝國希謝?師、以及HackHouse的各位童鞋。OpenAI推薦的相關(guān)資源列表以下均在OpenAICookbook?:lib/?具Promptinglibraries&tools.提?詞?程指南Promptingguides視頻課Videocourses論?Papersonadvancedpromptingtoimprovereasoning另外,OpenAICommunity?也有很多寶貴的討關(guān)于@AI加?切各?各業(yè)的?們怎么利??成式AI輔助??的學(xué)習(xí)和?作?這項技能在未來?定會成為職業(yè)教育和義務(wù)教育的?個重要部分。我們希望以Γ內(nèi)容策展」我們希望以Γ內(nèi)容策展」的?式,通過邀請在???業(yè)?有充分經(jīng)驗的Speakers做主題分享,來完成這類信息的收集整理和傳遞。附錄OpenAIPlayground是什么,怎么??六個能提?輸出質(zhì)量的核?提?詞策略SixstrategiesforgettingbetterresultsThisguidesharesstrategiesandtacticsforgettingbetterresultsfromGPTs.Themethodsdescribedherecansometimesbedeployedincombinationforgreaterefect.Weencourageexperimentationto?ndthemethodsthatworkbestforyou.這是?份指南。我們列出了?些策略和技巧,它們或許能幫你從GPT中拿到更好的輸出結(jié)果。我們?勵Someoftheexamplesdemonstratedherecurrentlyworkonlywithourmostcapablemodel,gpt-4.Ifyoudon'tyethaveaccesstogpt-4considerjoiningthewaitlist.Ingeneral,ifyou?ndthataGPTmodelfailsatataskandamorecapablemodelisavailable,it'so代enworthtryingagainwiththemorecapablemodel.有些?例只在?前地表最強模型gpt-4上?效。記住,模型是第??影響要素。只要你有更強的模型可?,我們?般都會建議你?更強的模型。WriteclearinstructionsGPTscan’treadyourmind.Ifoutputsaretoolong,askforbriefreplies.Ifoutputsaretoosimple,askforexpert-levelwriting.IfyouIncludedetailsinyourquerytogetmorerelevantanswersAskthemodelAskthemodeltoadoptapersona1.2搞角?扮演,?直很好?Usedelimiterstoclearlyindicatedistinctpartsoftheinput1.3使?分隔符號,明確地把話和話區(qū)分開來Specifythestepsrequiredtocompleteatask1.4解題步驟,你??最好也負責(zé)展開Provideexamples1.5多給舉?個例?Specifythedesiredlengthoftheoutput1.6說?下你想要多?的答案disliketheformat,demonstratetheformatyou’dliketosee.ThelessGPTshavetoguessatwhatyouwant,themorelikelyyou’llgetit.清晰地告訴GPT,你想要什么。GPT不會讀?術(shù)。你不說,它就猜。所以有時不是能?不?,就是你沒說清,它沒猜準。嫌輸出太??那就直說,要短的。嫌輸出太簡單?要求提?,說要專家級嫌格式不好?給它看個樣。你讓它猜你的?思猜得越少,結(jié)果就越好。02-延伸:“發(fā)閱讀材料”的技巧Instruct02-延伸:“發(fā)閱讀材料”的技巧Instructthemodeltoanswerusingareferencetext2.1要求按閱讀材料作答,不開放答Instructthemodeltoanswerwithcitationsfromareferencetext2.2增加要求:要求GPT直接把閱讀材料?的原?引?出來ProvidereferencetextGPTscancon?dentlyinventfakeanswers,especiallywhenaskedaboutesoterictopicsorforcitationsandURLs.Inthesamewaythatasheetofnotescanhelpastudentdobetteronatest,providingreferencetexttoGPTscanhelpinansweringwithfewerfabrications.GPT經(jīng)常?編答案。要讀取鏈接的問題。我們都知道,最常見的考試題型,是給—?篇閱讀材料,要求閱讀并回答問題。純開放式問答對于?和機器來說都?較難。那么同理那么同理,把你的“閱讀材料”給GPT粘貼過去,當(dāng)它必須按照材料來回答的時候,它就不03-延伸:“任務(wù)拆解03-延伸:“任務(wù)拆解”的技巧Useintentclassi?cationtoidentifyUseintentclassi?cationtoidentifythemostrelevantinstructionsforauserquery.3.1使?意圖分類,來找到最切題的提?Fordialogueapplicationsthatrequireverylongconversations,summarizeor?lterpreviousdialogue.3.2如果是?段很?的對話,可以經(jīng)常對上?做?動總結(jié)歸納。Justasitisgoodpracticeinso代wareengineeringtodecomposeacomplexsystemintoasetofmodularcomponents,thesameistrueoftaskssubmittedtoGPTs.Complextaskstendtohavehighererrorratesthansimplertasks.Furthermore,complextaskscano代enbere-de?nedasawork?owofsimplertasksinwhichtheoutputsofearliertasksareusedtoconstructtheinputstolatertasks.SummarizelongdocumentspiecewiseSummarizelongdocumentspiecewiseandconstructafullsummaryrecursively.3.3遇到??檔,主動分段總結(jié),遞歸構(gòu)造完整摘要讓GPT做任務(wù)也—樣。直接搞—個?任務(wù)容易翻車。拆解開來,?個接?個做,反?容易些。04-延伸:“04-延伸:“允許思考”的技巧Instructthemodeltoworkoutitsownsolutionbeforerushingtoaconclusion.Useinnermonologueorasequenceofqueriestohidethemodel'sreasoningprocess.4.2內(nèi)?獨?法:不想暴露推理過程時的操作04Γ允許GPT思考?下」GiveGPTstimeto"think"Ifaskedtomultiply17by28,youmightnotknowitinstantly,butcanstillworkitoutwithtime.Similarly,GPTsmakemorereasoningerrorswhentryingtoanswerrightaway,ratherthantakingtimetoworkoutananswer.AskAskthemodelifitmissedanythingonpreviouspasses.4.3最后問它?句:哎,你有沒有漏掉啥算,就不能直接說出結(jié)果。但是你知道,你只需要拿紙筆列—下式?就能算出來。同理。GPT也需要時間思考,要求它答得太05-延伸:“05-延伸:“利??具”的技巧Useembeddings-basedsearchtoimplemente代cientknowledgeretrieval.5.1?向量數(shù)據(jù)庫來輔助知識庫檢索(Embeddings-basedsearch)UsecodeexecutiontoperformmoreaccuratecalculationsorcallexternalAPIs.5.2做精確計算的時候:執(zhí)?代碼、調(diào)APIGivethemodelaccesstospeci?cfunctions.5.3使?Function-Call,函數(shù)調(diào)?05Γ借助外部的?具」Useexternaltools.CompensatefortheweaknessesofGPTsbyfeedingthemtheoutputsofothertools.Forexample,atextretrievalsystemcantellGPTsaboutrelevantdocuments.AcodeexecutionenginecanhelpGPTsdomathandruncode.Ifataskcanbedonemorereliablyore代cientlybyatoolratherthanbyaGPT,o杋oadittogetthebestofboth.?其他?具幫GPT補短板。?本檢索系統(tǒng),能告訴GPT哪些?檔重要;代碼引擎,助它算數(shù)跑代碼。能??具做得更穩(wěn)、更快,就別全靠GPT。兩者結(jié)合,能有更好的效果。06-延伸:06-延伸:“實驗”技巧Evaluatemodeloutputswithreferencetogold-standardanswers.6.1評估模型輸出的時候,需要你弄?個最?的優(yōu)質(zhì)答案,來做參考標準06Γ系統(tǒng)地做?些實驗」Testchangessystematically.Improvingperformanceiseasierifyoucanmeasureit.Insomecasesamodi?cationtoapromptwillachievebetterperformanceonafewisolatedexamplesbutleadtoworseoverallperformanceonamorerepresentativesetofexamples.Thereforetobesurethatachangeisnetpositivetoperformanceitmaybenecessarynecessarytode?neacomprehensivetestsuite(alsoknownanasan"eval").?量化則?實驗。要提?Prompt的表現(xiàn),先得確認?個量化標準。注意:有時調(diào)整了prompt,在個別的例??確實效果不錯,但放?范圍反?更差。所以,想真確定你的動作是“有效的”,最好先有?套完整?點的測試套件(我們管這個東西叫做"eval")。第?部分技巧實戰(zhàn)充分的解釋&?例說明TacticsEachofthestrategieslistedabovecanbeinstantiatedwithspeci?ctactics.Thesetacticsaremeanttoprovideideasforthingstotry.Theyarebynomeansfullycomprehensive,andyoushouldfeelfreetotrycreativeideasnotrepresentedhere.下?列出的每個技巧我們都“實例化”了。希望為你的各種?成?的提供?些思路參考。當(dāng)然,這只是部分使?技巧。我們?勵你勇于折騰,嘗試各種我們沒寫的創(chuàng)造性想法。Writeclearinstructions1.1你越講細節(jié),輸出就越好IncludedetailsinyourquerytogetmorerelevantanswersInordertogetahighlyrelevantresponse,makesurethatrequestsprovideanyimportantdetailsorcontext.Otherwiseyouareleavingituptothemodeltoguesswhatyoumean.為了獲得?度相關(guān)的回復(fù),你最好給模型提供了?切重要的細節(jié)或上下?。否則,你就得讓模型來猜測你的意思了。這么寫可能不太?How這么寫可能不太?HowdoIaddnumbersinExcel?怎么往excel?加數(shù)字?Summarizethemeetingnotes.這么寫可能會好?些HowdoIadduparowofdollaramountsinExcel?Iwanttodothisautomaticallyforawholesheetofrowswithallthetotalsendingupontherightinacolumncalled"Total".補充?例同樣是制作業(yè)績表,對表格內(nèi)容描述的區(qū)別很?,輸出結(jié)果區(qū)別也很?。泛泛的問題泛泛的問題,答案是相對隨機的泛泛的提?詞:我正在Excel?做?個銷售?員業(yè)績表。你幫我列?個模板出來,要計算每個銷售超出年平均銷售額的情況。此時ChatGPT的回答:---------|------|-------|-------------|--------------詳細的問題會獲得詳細的答案詳細的提?詞:我正在Excel?做?個銷售?員業(yè)績表。表頭:銷售姓名、第?季度銷售額~第四季度銷售額、全年匯總、各?平均銷售、超出年平均銷售額。我已填?銷售姓名和各個季度的銷售額,請你幫我寫出最后三列所?公式。此時ChatGPT的回答:假設(shè)表格的銷售?員姓名位于A列(從A2開始第?季度銷售額到第四季度銷售額位于B到E列銷售"和"超出年平均銷售額"。):=SUM(B2:E2)):=AVERAGE(B2:E2)):=IF(F2>G2,F2-G2,0)----張三|1|5000|60000|=C2-D2張三|2|6000|60000|=C3-D3張三|3|5500|60000|=C4-D4李四|1|4500|55000|=C5-D5李四|2|7000|55000|=C6-D6李四|3|6000|55000|=C7-D7售額"列是計算每個銷售?員的年平均銷售額(假60000或55000"超出年平均銷售額"列是計算每你可以根據(jù)實際情況調(diào)整模板中的數(shù)據(jù)和公1.2搞角?扮演,?直很好?AskthemodeltoadoptapersonaThesystemmessagecanbeusedtospecifythepersonausedbythemodelinitsreplies.系統(tǒng)消息有什么??可以?來指定?個“Persona”。使其更符合特定的應(yīng)?場景。Persona這個詞在拉丁語?的原義是“?具”。可以看作是模型采取的特定角?或風(fēng)格,就像戴上了?種特定的“社交?具”,通過這種“?具”來與?戶交流。所以Persona不?定是:XX?(?如:賈斯汀?伯)、XX職業(yè)(?如:?個中學(xué)?師)。也可以是?種“風(fēng)格”。例如正式、幽默、友好等。ChatGPT有?個默認的SYSTEMPrompt:Youareahelpfulassistant.“?個樂于助?的助?”也就是ChatGPT默認的“?具”/“角?”,所以它會盡?幫你解決提出的問題。你可以在Playground或者像Knit這樣的?具??修改這個SYSTEMMessage。然后把你正常情況下要提的問題寫在USER??。這是?種進階的提?詞?法。這么寫可能會好?些這么寫可能會好?些WhenIaskforhelptowritesomething,youwillreplywithadocumentthatcontainsatleastonejokeorplayfulcommentineveryparagraph.Writeathankyounotetomysteelboltvendorforgettingthedeliveryinontimeandinshortnotice.Thismadeitpossibleforustodeliveranimportantorder.輸出結(jié)果解讀上?的Prompt,放在GPT-4?輸出的結(jié)果:Dear[Vendor'sName],Wewantedtotakeamomenttoexpressourheartfeltthankstoyouandyourteam.Youguysreallyboltedintoactionwhenweneededyouthemost!Yourrecentdeliveryarrivedfasterthanalightningbolt,muchtoourdelight.It'ssafetosaywewereshocked,butinthemostpleasantwaypossible.Wehadbeenwalkingoneggshells(orshouldwesay,onsteelbolts!)untilwesawyourdeliverytruckpullup.ItcameinanickItcameinanickoftime,justwhenwewereabouttostartamajorproject.Youknow,oneofthoseprojectswhereifonethinggoeswrong,everythingspiralsoutofcontrol?It'slikebuildingahouseofcards,butwithsteelboltsandalotofsweat!Yourtimelydeliverymadeitpossibleforustomeetourdeadlineandmakeourclienthappy,which,let'sbehonest,isataskmorechallengingthantryingto?ndaneedleinahaystack.Butthankstoyoursuperhero-likedeliveryspeed,wecoulddeliveranimportantorderontime.So,here'sabigTHANKYOUgoingouttoyouandyourteam.Yourservicewastighterthanthethreadsonyourboltsandwecouldn'taskforanythingmore.You'vetrulysetahighbar...orshouldwesayahighbolt?Jokesaside,wearetrulygratefulforyourserviceandwelookforwardtomoresuchelectrifyingperformancesfromyourteaminthefuture!Yourssincerely,[YourName]解讀:System的設(shè)定?,要求盡可能地開玩笑,讓收到郵件的供應(yīng)商感覺到幽默和放松。郵件正??就?了?少兩處雙關(guān)和?處?喻:1."Youguysreallyboltedintoactionwhenweneededyouthemost!""Yourrecentdeliveryarrivedfasterthanalightningbolt..."這?兩句話,笑點在于雙關(guān)。因為“bolt”(螺栓是供應(yīng)商提供的產(chǎn)品,同時在英語?是多義詞,另?種常見含義是"閃電"。所以這?說“?閃電(螺栓)還快”,是在??種夸張的?式贊美他們的快速交付。2."Yourservicewastighterthanthethreadsonyourbolts..."這句的意思是,你們的服務(wù)?你們螺栓的螺紋還要緊密..."贊揚供應(yīng)商的服務(wù)質(zhì)量,同時也開了個玩補充?例1如果我們設(shè)定?個helpfulassistant的反?,?如:?個“誠?搗亂,混淆視聽”的佞?。這個時候就會得到說反話的回復(fù)。?個誠?搗亂的家伙?個誠?搗亂的家伙?個熱?助?的?助?Youareahelpfulassistant.Youareahelpfulassistant.具中。將蛋糕放?預(yù)熱的烤箱中,?約烤制30-40分Youareamischievouscourtierwiththeintentofcausingconfusionandnotbeinghelpfulatall.補充?例2也可以這樣:SYSTEMPrompt?來給進去角?+閱讀材料;USERPrompt?來提具體的寫作要求或問題。<材料>插?你的核??章材料</材料>1.3使?分隔符號,明確地把話和話區(qū)分開來UsedelimiterstoclearlyindicatedistinctpartsoftheinputDelimitersliketriplequotationmarks,XMLtags,sectiontitles,etc.canhelpdemarcatesectionsoftexttobetreateddiferently.分隔符號(形式可以有很多種,?如三引號、XML標記、章節(jié)標題等)的使?,可以幫助模型區(qū)分出不同的?本,有助于提?回復(fù)質(zhì)量。你可能會想:你可能會想:區(qū)別不?吧?Forstraightforwardtaskssuchasthese,usingdelimitersmightnotmakeadiferenceintheoutputquality.However,themorecomplexataskisthemoreimportantitistodisambiguatetaskdetails.Don’tmakeGPTsworktounderstandexactlywhatyouareaskingofthem.對于這樣簡單的任務(wù),?本只有?段,?不?分隔符,確實沒什么區(qū)別。但是,任務(wù)越復(fù)雜,消除任務(wù)細節(jié)的歧義就越重要。最好不要讓GPT費?地嘗試理解你的要求。這么寫可能會好?些Summarizethetextdelimitedbytriplequoteswithahaiku."""inserttexthere"""補充?例下?是?個稍微復(fù)雜?點的?本處理:這么寫可能不太?兩篇?章混在?起這么寫可能不太?兩篇?章混在?起,尤其如果你粘貼過去的時候不仔細,換?符不明確的時候,模型可能會這么寫可能會好?些Youwillbeprovidedwithapairofarticles(delimitedwithXMLtags)aboutthesametopic.Firstsummarizetheargumentsofeacharticle.Thenindicatewhichofthemmakesabetterargumentandexplainwhy.造成混淆。造成混淆。?如,模型會隨機斷句,或者把兩篇?章理解成?篇。如果區(qū)分不清楚,會很明顯地影響對上下?的理解,導(dǎo)致輸出的答案不對或者不好。所以,分隔符號有時是必要的。<article>insert?rstarticlehere</article><article>insertsecondarticlehere</article><?章>此處插?第?篇?章</?章><?章>此處插?第?篇?章</?章>1.4解題步驟,你??最好也負責(zé)展開SpecifythestepsrequiredtocompleteataskSometasksarebestspeci?edasasequenceofsteps.Writingthestepsoutexplicitlycanmakeiteasierforthemodeltofollowthem.有些任務(wù)稍微復(fù)雜?點,最好由你來指定步驟。明確地寫出步驟,可以使模型更容易地遵循。?例:有?段很?的英??本?例:有?段很?的英??本,希望GPT?中?總結(jié)?下Usethefollowingstep-by-stepinstructionstorespondtouserinputs.Step1-Theuserwillprovideyouwithtextintriplequotes.Summarizethistextinonesentencewithapre?xthatsays"Summary:".Step2-TranslatethesummaryfromStep1intoChinese,withapre?xthatsays"Translation:"."""將原?粘貼在這?"""上?上?prompt實際的輸出結(jié)果(輸?的?本是OpenAI最新?篇博客?章:ChatGPTcannowsee,hear,andspeak)-Summary:ChatGPTintroducesvoiceandimagecapabilities,allowinguserstoengageinvoiceconversations,showimagestotheassistant,andreceiveassistanceinamoreintuitivemanneracrossvariousreal-lifescenarios.Translation:ChatGPT推出了語?和圖像功能,使?戶能夠進?語?對話,向助?展?圖像,并在各種真實場景中以-(如果直接要求?中?總結(jié),輸出結(jié)果會不太?樣。很多情況下輸出質(zhì)量會稍差?點)補充?例這么寫可能不太?這么寫可能不太?<原?>Sometasksarebestspeci?edasasequenceofsteps.Writingthestepsoutexplicitlycanmakeiteasierforthemodeltofollowthem.</原?>這么寫可能會好?些譯>把直譯?本寫在這?</直譯><改寫>改寫后的?本寫在這?</改寫><原?>Sometasksarebestspeci?edasasequenceofsteps.Writingthestepsoutexplicitlyexplicitlycanmakeiteasierforthemodeltofollowthem.</原?>這?是輸出結(jié)果的區(qū)別:不分步的結(jié)果不分步的結(jié)果直譯+改寫得到的兩段?本(有助于我們直觀地看到區(qū)別,可以再提出改進的建議)1.5多給舉?個例?ProvideexamplesProvidinggeneralinstructionsthatapplytoallexamplesisgenerallymoree代cientthandemonstratingallpermutationsofataskbyexample,butinsomecasesprovidingexamplesmaybeeasier.Forexample,ifyouintendforthemodeltocopyaparticularstyleofrespondingtouserquerieswhichisdi代culttodescribeexplicitly.Thisisknownas"few-shot"prompting.經(jīng)典的少樣本提??法。?家和GPT溝通的時候,可能會希望??能寫出適?于所有情況的“通?prompt”。當(dāng)然很難,因為上?剛說過,能具體還是需要盡量具體。但,有的時候,舉?個好例?就夠了,這可能是?形容要求更簡單的辦法。?如,如果你想讓模型學(xué)會以某種特定的?式回應(yīng)?戶的問題,?這種?式很難清楚地?語?形容。這時候就直接舉?個例?(“少樣本”)。例?要好,?且最好?個例?要類似,因為模型??很擅?去尋找規(guī)律(先這樣再那樣最后這樣)。?例:?詩句?般的語?解釋?個詞語?例:?詩句?般的語?解釋?個詞語Answerinaconsistentstyle.以?致的風(fēng)格回答。Teachmeaboutpatience.告訴我什么是耐?。Theriverthatcarvesthedeepestvalley?owsfromamodestspring;thegrandestsymphonyoriginatesfromasinglenote;themostintricatetapestrybeginswithasolitarythread.Teachmeabouttheocean.告訴我什么是海洋。你可能很難解釋清楚什么是“詩句?般的語?”。所以舉例?最好?。在SYSTEM??,告訴模型要“保持風(fēng)格?致”,這時模型的輸出結(jié)果就會和上?的句式差不多。補充?例李佳琦式回復(fù)能成為流?梗,精髓不在于“陰陽”的語?風(fēng)格,或者“反問句”的應(yīng)?。?在于:把同樣的邏輯放到不同領(lǐng)域中,產(chǎn)?了類?效果時,會讓?意識到這種表達和邏輯是有問題的?例:李佳琦回復(fù)?成器?例:李佳琦回復(fù)?成器1.6說?下你想要多?的答案SpecifythedesiredlengthoftheoutputYoucanaskthemodeltoproduceoutputsthatareofagiventargetlength.Thetargetedoutputlengthcanbespeci?edintermsofthecountofwords,sentences,paragraphs,bulletpoints,etc.Notehoweverthatinstructingthemodeltogenerateaspeci?cnumberofwordsdoesnotworkwithhighprecision.Themodelcanmorereliablygenerateoutputswithaspeci?cnumberofparagraphsorbulletpoints.你可以讓模型按照你想要的?度來輸出?本。我們可以指定的有:單詞數(shù)、句?數(shù)、段落數(shù)或者要點數(shù)(bulletpoints)。但是:模型其實是按照token數(shù)量來算的。所以你說“單詞數(shù)”,尤其是漢字數(shù),很有可能不太準。?例:指定?度的?種?法?例:指定?度的?種?法Summarizethetextdelimitedbytriplequotesinabout50words.Summarizethetextdelimitedbytriplequotesin2paragraphs.Summarizethetextdelimitedbytriplequotesin3bulletpoints."""inserttexthere"""??約50個單詞/漢字來概括下??三引號分隔出來的原?。"""原?"""補充?例:(盡可能地)指定準確漢字數(shù)的?法TokenToken(詞元)數(shù)量是怎么計算的?可以?OpenAI的Tokenizer?具來計算token數(shù)。TheGPTfamilyofmodelsprocesstextusingtokens,whicharecommonsequencesofcharactersfoundintext.Themodelsunderstandthestatisticalrelationshipsbetweenthesetokens,andexcelatproducingthenexttokeninasequenceoftokens.Ahelpfulruleofthumbisthatonetokengenerallycorrespondsto~4charactersoftextforcommonEnglishtext.Thistranslatestoroughly?ofaword(so100tokens~=75words).GPTGPT系列模型通過使?tokens來處理?本。token可以被理解成是?本中常見的字符序列。模型能理解這些token之間的統(tǒng)計關(guān)系,并且擅?在?個token序列中?成下?個token。實?的換算經(jīng)驗:在普通英??本中,?個token通常對應(yīng)于約4個字符(characters)。這?致相當(dāng)于?個單詞的3/4(所以100個token?約等于75個英?單詞)。如果?的是GPT3.5,要?成?段有字符數(shù)限制的?本??梢裕喊褲h字數(shù)?致?lián)Q算成token,然后限定maxtoken的數(shù)值1、“你好嗎”=7個token;“我很好”=6個token;2、簡單算法:?個token?概是0.5個漢字?;蛘撸好總€漢字要耗費2~2.5個token。1000字就是2000~2500個token左右。六?策略02:Γ給GPT發(fā)閱讀材料」Providereferencetext2.1要求按閱讀材料作答,不開放答InstructthemodeltoanswerusingareferencetextIfwecanprovideamodelwithtrustedinformationthatisrelevanttothecurrentquery,thenwecaninstructthemodeltousetheprovidedinformationtocomposeitsanswer.如果你?邊現(xiàn)成有原?,?且?度合適,建議?帶原?去找GPT。這樣你就可以給GPT指定規(guī)則,讓它使?原?信息來組成回答。下?的?例?,如果原??找不到對應(yīng)的信息,就讓GPT說不知道(這樣就能很好地避免瞎編)。UseUsetheprovidedarticlesdelimitedbytriplequotestoanswerquestions.Iftheanswercannotbefoundinthearticles,write"Icouldnot?ndananswer."如果上下??度不夠...GiventhatGPTshavelimitedcontextwindows,inordertoapplythistacticweneedsomewaytodynamicallylookupinformationthatisrelevanttothequestionbeingasked.Embeddingscanbeusedtoimplemente代cientknowledgeretrieval.Seethetactic"Useembeddings-basedsearchtoimplemente代cientknowledgeretrieval"formoredetailsonhowtoimplementthis.由于GPT的上下?窗?是有限的,所以最好引??種?法,讓我們能動態(tài)地尋找和正在提出的問題有關(guān)的信息?;贓mbeddings做搜索可以幫助我們?效地檢索知識。這?是具體?章的鏈接。2.2增加要求:直接把閱讀材料?的原?引出來InstructthemodeltoanswerwithcitationsfromareferencetextIftheinputhasbeensupplementedwithrelevantknowledge,it'sstraightforwardtorequestthatthemodeladdcitationstoitsanswersbyreferencingpassagesfromprovideddocuments.Notethatcitationsintheoutputcanthenbeveri?edprogrammaticallybystringmatchingwithintheprovideddocuments.如果我們給定的輸??,確實已經(jīng)包含了相關(guān)的知識,那么要求模型在回答中引?原?,就很容易。引?出來之后就可以通過在提供的?檔中進?字符串匹配來程序化驗證答案了。在下?這條提?詞?,增加引?原?的要求::(輸出結(jié)果的?較開放作答開放作答2.婚姻中的不快樂:她提到在婚姻中感受到的不給定閱讀材料,并要求引?原?需的信息,則回復(fù)“信息不?”。如果?章<原?>粘貼在這?</原?>下?是給定原?材料后的輸出結(jié)果下?是給定原?材料后的輸出結(jié)果相?直接回答更加“有據(jù)”。輸出結(jié)果:輸出結(jié)果:?你就會因為想過“單?”的?活?離開我們家,我會需要??過著偽單親的3.召妓??的指控(“結(jié)果后來發(fā)現(xiàn)其實像我這樣的角?,你在很多城市都有這樣的“朋友”。你也有被拍到帶??回家過有跟我承認。你坦承這些是你的問題,你沒有辦法控制???!?、“后來我發(fā)現(xiàn)你紀錄了各種你召ji對象的特征,其中包含了?位?得像我們?邊的?作?員?!保?六大策略03「把復(fù)雜任務(wù)拆解成子任務(wù)」Splitcomplextasksintosimplersubtasks3.1使?意圖分類,來找到最切題的分類Useintentclassi?cationtoidentifythemostrelevantinstructionsforauserqueryFortasksinwhichlotsofindependentsetsofinstructionsareneededtohandlediferentcases,itcanbebene?cialto?rstclassifythetypeofqueryandtousethatclassi?cationtodeterminewhichinstructionsareneeded.Thiscanbeachievedbyde?ning?xedcategoriesandhardcodinginstructionsthatarerelevantforhandlingtasksinagivencategory.Thisprocesscanalsobeappliedrecursivelytodecomposeataskintoasequenceofstages.Theadvantageofthisapproachisthateachquerywillcontainonlythoseinstructionsthatarerequiredtoperformthenextstageofataskwhichcanresultinlowererrorratescomparedtousingasinglequerytoperformthewholetask.Thiscanalsoresultinlowercostssincelargerpromptscostmoretorun(seepricinginformation).定義復(fù)雜任務(wù):因為可能的情況很多,所以完成這樣?個任務(wù)需要很多個獨?的prompt。這時,我們不?定要寫?個巨?的prompt。我們可以:設(shè)定好類型,再根據(jù)分類來調(diào)?prompt。怎么做:?先設(shè)定?個Γ類型」,保證處理某個類的任務(wù)時,有專?的prompt。此過程還可遞歸,幫助把任務(wù)分解為?個階段。好處:1、每個查詢僅包含執(zhí)?下??任務(wù)所需的指令,與??個查詢執(zhí)?整個任務(wù)相?,準確率更?。2、token更少,降低成本。?個客服系統(tǒng)的?例:先進?意圖分類?個客服系統(tǒng)的?例:先進?意圖分類,再對照到匹配的類別下您將獲得客?服務(wù)查詢。將每個查詢分類為主要類別和次要類別。以json格式提供您的輸出,其中包含以下鍵:主要和-取消訂閱或升級-添加付款?式-收費說明-對指控提出異議-故障排除-設(shè)備兼容性-軟件更新-密碼重置-更新個?信息-關(guān)賬-賬?安全-產(chǎn)品信息--定價-??服務(wù)Ineedtogetmyinternetworkingagain.我沒?了。這?是:先識別了?戶意圖,把?戶的問題分到“故障排除”類別??。然后基于這個細的分類,再向模型提供?組更具體的指令,從??選。你將幫助需要“故障排除”的客戶提供服務(wù)。你可以通過以下?式幫助?戶:如果型號為MTD-327J,建議他們按下如果型號是MTD-327S,建議他們拔下并重新插?,然后.如果客戶在重新啟動設(shè)備并等待5分鐘后問題仍然存在,請通過輸出{“IT?持請求”}將客戶連接到IT?持。<在此處插?上?的初級/次級分類?案>3.2如果在?段?較?的對話?,給出前情提要可能會好?些Fordialogueapplicationsthatrequireverylongconversations,summarizeor?lterpreviousdialogueSinceGPTshavea?xedcontextlength,dialoguebetweenauserandanassistantinwhichtheentireconversationisincludedinthecontextwindowcannotcontinueinde?nitely.Therearevariousworkaroundstothisproblem,oneofwhichistosummarizepreviousturnsintheconversation.Oncethesizeoftheinputreachesapredeterminedthresholdlength,thiscouldtriggeraquerythatsummarizespartoftheconversationandthesummaryofthepriorconversationcouldbeincludedaspartofthesystemmessage.Alternatively,priorconversationcouldbesummarizedasynchronouslyinthebackgroundthroughouttheentireconversation.Analternativesolutionistodynamicallyselectpreviouspartsoftheconversationthataremostrelevanttothecurrentquery.Seethetactic"Useembeddings-basedsearchtoimplemente代cientknowledgeretrieval".GPT的上下??度限制是給定的(整個對話都包在上下?窗??)。意思就是說:對話不能?限?地說下去。GPT不可能記住?切。你希望它隨時都能切換回當(dāng)時的上下?繼續(xù)聊,這就不太能做到。針對這個問題,有?種解決辦法。其中?種是時不時梳理并總結(jié)之前的對話內(nèi)容——做個前情提要。當(dāng)輸?內(nèi)容達到?個預(yù)設(shè)的?度閾值時,可以觸發(fā)?個查詢來總結(jié)對話的?部分,然后將之前對話的總結(jié)納?系統(tǒng)消息的?部分?;蛘?,也可以在整個對話過程中,在后臺異步總結(jié)之前的對話。另外?個辦法是,動態(tài)地挑選對話中與當(dāng)前查詢最相關(guān)的前?內(nèi)容。具體可以參考“利?embedding搜索來做?效的知識檢索”。3.3分段總結(jié)??檔,并通過遞歸?式構(gòu)建完整摘要SummarizelongdocumentspiecewiseandconstructafullsummaryrecursivelySinceGPTshavea?xedcontextlength,theycannotbeusedtosummarizeatextlongerthanthecontextlengthminusthelengthofthegeneratedsummaryinasinglequery.Tosummarizeaverylongdocumentsuchasabookwecanuseasequenceofqueriestosummarizeeachsectionofthedocument.Sectionsummariescanbeconcatenatedandsummarizedproducingsummariesofsummaries.Thisprocesscanproceedrecursivelyuntilanentiredocumentissummarized.Ifit’snecessarytouseinformationaboutearliersectionsinordertomakesenseoflatersections,thenafurthertrickthatcanbeusefulistoincludearunningsummaryofthetextthatprecedesanygivenpointinthebookwhilesummarizingcontentatthatpoint.TheefectivenessofthisprocedureforsummarizingbookshasbeenstudiedinpreviousresearchbyOpenAIusingvariantsofGPT-3.GPT的上下??度是固定的。這意味著:不能在單次對話中,總結(jié)出,?度超過“上下??度減去?成摘要?度”,的?本。也就是說,如果要總結(jié)?篇?常?的?檔,?如?本書。我們可以利??系列的prompt來分別總結(jié)?檔的每個章節(jié)。每個章節(jié)的摘要可以拼接在?起,然后再次進?總結(jié),形成“摘要的摘要”。這個過程可以遞歸執(zhí)?,直到整個?檔被完整總結(jié)。如果需要依賴前?章節(jié)的信息來理解后?的章節(jié),那么可以在總結(jié)某個點的內(nèi)容時,包含上前情提要。OpenAI之前?GPT-3做過類似的研究,探討了?這種逐步摘要?法做?本總結(jié)的有效性。摘要的摘要這個?例是??系列的提?詞來完成:1摘要的摘要這個?例是??系列的提?詞來完成:1.章節(jié)摘要[插?第?章的?本]2.每一章都有摘要了之后,拼接和二次摘要[插?所有章節(jié)的摘要]3.(在需要上文聯(lián)系時)包含前情提要:前情提要:[插?前?章節(jié)的摘要][插?第五章的?本]直接摘要[插?完整的?本]六大策略04「允許GPT思考一下」GiveGPTstimeto"think"4.1給時間,讓它先??想Useinnermonologueorasequenceofqueriestohidethemodel'sreasoningprocess.Sometimeswegetbetterresultswhenweexplicitlyinstructthemodeltoreasonfrom?rstprinciplesbeforecomingtoaconclusion.Supposeforexamplewewantamodeltoevaluateastudent’ssolutiontoamathproblem.Themostobviouswaytoapproachthisistosimplyaskthemodelifthestudent'ssolutioniscorrectornot.Butthestudent'ssolutionisactuallynotcorrect!Wecangetthemodeltosuccessfullynoticethisbypromptingthemodeltogenerateitsownsolution?rst.這樣做會得到更好的結(jié)果:指?模型從基本原理出發(fā)進?推理,然后再得出結(jié)論。?如說,我們想讓模型評估?個學(xué)?做的數(shù)學(xué)題。最直接的做法就是:簡單地問模型,學(xué)?的答案對不對。就像下表左邊?樣,其實學(xué)?做錯了!但是模型判對了。如果你像下表右邊?樣,讓模型先??做?遍題,它就能成功地注意到這?點。先讓GPT先讓GPT解題,再判卷,就對了判錯原因:其實是學(xué)?代進去的數(shù)值抄錯了,把10寫成了100。但是GPT沒注意到這?不會再判錯。+這?段prompt:被GPT判錯的?道數(shù)學(xué)題-?地成本100美元/平?英尺-我可以以250美元/平?英尺的價格購買太陽能電池板2.太陽能電池板成本:250x3.維護費?:100000+100x總成本:100x+250x+100000+100x=總成本:100x+250x+100000+100x=450x+1000004.2內(nèi)?獨?法:不想暴露推理過程時的操作Theprevioustacticdemonstratesthatitissometimesimportantforthemodeltoreasonindetailaboutaproblembeforeansweringaspeci?cquestion.Forsomeapplications,thereasoningprocessthatamodelusestoarriveata?nalanswerwouldbeinappropriatetosharewiththeuser.Forexample,intutoringapplicationswemaywanttoencouragestudentstoworkouttheirownanswers,butamodel’sreasoningprocessaboutthestudent’ssolutioncouldrevealtheanswertothestudent.Innermonologueisatacticthatcanbeusedtomitigatethis.Theideaofinnermonologueistoinstructthemodeltoputpartsoftheoutputthataremeanttobehiddenfromtheuserintoastructuredformatthatmakesparsingthemeasy.Thenbeforepresentingtheoutputtotheuser,theoutputisparsedandonlypartoftheoutputismadevisible.上?段說了,在回答問題之前,讓模型??做?遍推理是很有?的。這?再補充?個教育的?例:如果場景是輔導(dǎo)課業(yè),可能需要?勵學(xué)???找出答案。但模型?要??解?遍題。如果把這個解題過程輸出出來,可能會?意中泄露答案。這時候可以?到“內(nèi)?獨?法”。意思是,讓模型把那些不想讓?戶看到的內(nèi)容,隱藏地放到?個結(jié)構(gòu)化的格式?。然后,在把輸出展?給?戶之前,解析?下這段輸出,只展?能給學(xué)?看到的那部分。?致步驟如下:第一步:提出問題,并得到模型的解答。(但是不將此解答展現(xiàn)給學(xué)?。)第二步:將學(xué)?的解題法和模型的進??較,判學(xué)?解是對是錯。(但是仍然不將信息展現(xiàn)給學(xué)?。)第三步:根據(jù)前兩步的分析,發(fā)送反饋給學(xué)?:錯了就給提??勵改正,對了就直接?勵。這?,前兩步有?個“查詢和分析過程”。但過程中內(nèi)容都是隱藏的,學(xué)?只會看到最后?步的反饋。這部分需要代碼實現(xiàn),?不是僅僅依賴于單?的prompt。?如說可能需要設(shè)計和實現(xiàn)?個系統(tǒng),包含?個查詢序列的函數(shù)。并且可能需要?個中間層來管理這個過程。各步驟的?例提?詞如下:輔導(dǎo)課業(yè)的?例輔導(dǎo)課業(yè)的?例步驟2-?較你的題解和學(xué)?的答案,并評估學(xué)?的答案步驟4-如果學(xué)?的答案不對,提供上?步你想好的提?給學(xué)?。?不是寫“步驟4-...“寫“提?:“。-----------學(xué)?的解題?法:“<插?學(xué)?解答>”補充說明:這個?例?常細致。第?次看的時候我就想,OpenAI連這么?的場景都想到了?其實同樣的原理也可以?在很多其他的?作場景?。?如市場營銷?案,有時也需要讓模型??做?個推理,最終輸出結(jié)果就可以,把中間的步驟隱去不打出來。在其他?些應(yīng)?場景?,?如客?服務(wù)、產(chǎn)品推薦或者數(shù)據(jù)分析等,這種策略也能幫助提???體驗,讓輸出更加直接和易于理解。對于開發(fā)者和產(chǎn)品經(jīng)理來說,能夠控制何時以及如何展?模型的推理過程是很重要的,它可以幫助確保系統(tǒng)的輸出符合特定的需求和標準。4.3最后問它?句:哎,你有沒有漏掉啥?Tactic:AskthemodelifitmissedanythingonpreviouspassesSupposethatweareusingamodeltolistexcerptsfromasourcewhicharerelevanttoaparticularquestion.A代erlistingeachexcerptthemodelneedstodetermineifitshouldstartwritinganotherorifitshouldstop.Ifthesourcedocumentislarge,itiscommonforamodeltostoptooearlyandfailtolistallrelevantexcerpts.Inthatcase,betterperformancecano代enbeobtainedbypromptingthemodelwithfollowupqueriesto?ndanyexcerptsitmissedonpreviouspasses.假設(shè)我們讓?語?模型從某份?檔資料中,找出與某個問題有關(guān)的原?摘要,回復(fù)給我們。每列出?個摘要后,模型需要決定是繼續(xù)列出下?個,還是就此停?。如果資料篇幅很?,模型通常會過早地停下來,不會列完所有相關(guān)的摘要。這就是為什么我們發(fā)現(xiàn)?章?太?,GPT就偷懶的原因。這個時候,你就告訴它:哎,還沒做完呢!這聽起來很傻,但是確實有效。這么寫可能不太?你沒做完任務(wù)這么寫可能不太?你沒做完任務(wù),請重頭來?遍。(結(jié)果可能還會停在中間)這么寫可能會好?些Aretheremorerelevantexcerpts?Takecarenottorepeatexcerpts.Alsoensurethatexcerptscontainallrelevantcontextneededtointerpretthem-inotherwordsdon'textractsmallsnippetsthataremissingimportantcontext.六?策略05Γ借助外部的?具」Strategy:Useexternaltools5.1使?基于embedding的搜索來實現(xiàn)?效的知識檢索Useembeddings-basedsearchtoimplemente代cientknowledgeretrievalAmodelcanleverageexternalsourcesofinformationifprovidedaspartofitsinput.Thiscanhelpthemodeltogeneratemoreinformedandup-to-dateresponses.Forexample,ifauserasksaquestionaboutaspeci?cmovie,itmaybeusefultoaddhighqualityinformationaboutthemovie(e.g.actors,director,etc…)tothemodel’sinput.Embeddingscanbeusedtoimplemente代cientknowledgeretrieval,sothatrelevantinformationcanbeaddedtothemodelinputdynamicallyatrun-time.Atextembeddingisavectorthatcanmeasuretherelatednessbetweentextstrings.Similarorrelevantstringswillbeclosertogetherthanunrelatedstrings.Thisfact,alongwiththeexistenceoffastvectorsearchalgorithmsmeansthatembeddingscanbeusedtoimplemente代cientknowledgeretrieval.Inparticular,atextcorpuscanbesplitupintochunks,andeachchunkcanbeembeddedandstored.Thenagivenquerycanbeembeddedandvectorsearchcanbeperformedto?ndtheembeddedchunksoftextfromthecorpusthataremostrelatedtothequery(i.e.closesttogetherintheembeddingspace).ExampleimplementationscanbefoundintheOpenAICookbook.Seethetactic“Instructthemodeltouseretrievedknowledgetoanswerqueries”foranexampleofhowtouseknowledgeretrievaltominimizethelikelihoodthatamodelwillmakeupincorrectfacts.模型可以利?外部信息來豐富??的輸?,這樣可以做出更有料、更貼近現(xiàn)實的回答。?如,?戶問到某部電影,給模型加?電影的背景資料(?如誰演的、導(dǎo)演是誰等)可能會幫?忙。這?的"嵌?",也就是embedding技術(shù),就是?來幫助?效找到這些知識,實時加?模型的。簡單來說,?本嵌?是基于向量數(shù)據(jù),通過看?本之間有多“近”實現(xiàn)的。實際的操作過程,可以看OpenAI的Cookbook?的的這個實例。5.2需要做精確計算的時候:?代碼、或調(diào)APIUsecodeexecutiontoperformmoreaccuratecalculationsorcallexternalAPIsGPTscannotbereliedupontoperformarithmeticorlongcalculationsaccuratelyontheirown.Incaseswherethisisneeded,amodelcanbeinstructedtowriteandruncodeinsteadofmakingitsowncalculations.Inparticular,amodelcanbeinstructedtoputcodethatismeanttoberunintoadesignatedformatsuchastriplebacktics.A代eranoutputisproduced,thecodecanbeextractedandrun.Finally,ifnecessary,theoutputfromthecodeexecutionengine(i.e.Pythoninterpreter)canbeprovidedasaninputtothemodelforthenextquery.Anothergoodusecaseforcodeexecutionisca
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 氣體滅火維修合同范例
- 天津打標機采購合同范例
- 工程木門供貨合同范例
- 抖音運營管理合同范例
- 民宅改造商鋪合同范例
- 毛坯鍛件加工合同范例
- 危險物料處置合同范例
- 高中生物 第一冊 第4章 生命的物質(zhì)變化和能量轉(zhuǎn)換 4.4 生物體內(nèi)營養(yǎng)物質(zhì)的轉(zhuǎn)變教學(xué)實錄1 滬科版
- 七年級歷史上冊 第二單元 夏商周時期:早期國家與社會變革第8課 百家爭鳴教學(xué)實錄 新人教版
- 兼職開辦診所合同范例
- 寵物外用抗微生物藥物藥效評價試驗指導(dǎo)原則
- 安全生產(chǎn)控制程序
- 老鼠兔飼養(yǎng)方法 老鼠兔吃什么
- 國家開發(fā)銀行生源地信用助學(xué)貸款申請表續(xù)貸
- 科創(chuàng)板知識測評20個題目的答案
- 去分母解一元一次方程專項練習(xí)(有答案)-ok
- 收款收據(jù)格式1頁
- 強化QHSE體系加強石油企業(yè)安全管理的具體措施
- 《鋼結(jié)構(gòu)工人三級安全教育記錄卡》
- 先張法預(yù)應(yīng)力混凝土管樁基礎(chǔ)技術(shù)規(guī)程
- 高爾夫文化與禮儀慕課測驗作業(yè)答案
評論
0/150
提交評論