RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AI對(duì)話魔法 Prompt Engineering 探索指南

京東云 ? 來源:京東物流 李雪婷 ? 作者:京東物流 李雪婷 ? 2024-11-07 10:11 ? 次閱讀

作者:京東物流 李雪婷

一、什么是 Prompt Engineering?

想象一下,你在和一個(gè)智能助手聊天,你需要說出非常清晰和具體的要求,才能得到你想要的答案。Prompt Engineering 就是設(shè)計(jì)和優(yōu)化與AI對(duì)話的“提示詞”或“指令”,讓AI能準(zhǔn)確理解并提供有用的回應(yīng)。

Prompt Engineering 主要包括以下幾個(gè)方面:

1.明確目標(biāo):希望AI完成什么任務(wù)。例如:寫一篇文章,回答一個(gè)問題,進(jìn)行一次對(duì)話?

2.設(shè)計(jì)提示詞:設(shè)計(jì)出具體的提示詞,提示詞應(yīng)該盡量簡(jiǎn)潔明了,包含所有必要的信息。比如:“寫一篇關(guān)于環(huán)境保護(hù)重要性的文章?!?/p>

3.優(yōu)化和測(cè)試:一開始的提示詞可能并不完美,所以需要不斷調(diào)整和優(yōu)化,測(cè)試不同的表達(dá)方式,嘗試找到最好的結(jié)果。

4.處理意外情況:有時(shí)候,AI可能會(huì)給出意外的回答,還需要預(yù)測(cè)這些意外情況,并設(shè)計(jì)出應(yīng)對(duì)策略。

二、Prompt Engineering 如何興起?

1)早期階段(2017年前)

?基本指令:早期的NLP模型中,用戶與AI的互動(dòng)主要是基于簡(jiǎn)單的指令和關(guān)鍵詞匹配。此時(shí)的AI系統(tǒng)主要依賴預(yù)定義的規(guī)則和有限的上下文理解能力。

?模板化問答:一些早期的聊天機(jī)器人和問答系統(tǒng)采用模板化的問答模式,用戶問題必須嚴(yán)格匹配預(yù)設(shè)的模板才能得到有效回應(yīng)。

2)初步探索(2017-2018)

?Seq2Seq 模型:Sequence-to-Sequence 模型的引入,使得AI能夠更好地處理輸入和輸出之間的關(guān)系,但仍然需要明確的指令和大量訓(xùn)練數(shù)據(jù)。

?預(yù)訓(xùn)練模型:2018年,OpenAI發(fā)布的GPT標(biāo)志著預(yù)訓(xùn)練語言模型的興起。盡管早期的GPT模型在理解和生成文本方面有了顯著進(jìn)步,但仍需要明確提示詞。

3)快速發(fā)展(2019-2020)

?GPT-2 發(fā)布(2019):GPT-2的發(fā)布使得語言模型在生成自然語言文本方面取得了重大突破。Prompt Engineering開始受到關(guān)注,研究人員開始探索如何通過設(shè)計(jì)提示詞來引導(dǎo)模型生成更相關(guān)的內(nèi)容。

?BERT和其他模型:Google發(fā)布BERT,進(jìn)一步提升了NLP模型的理解能力。Prompt Engineering開始利用這些模型的雙向理解能力來優(yōu)化提示詞。

4)成熟階段(2020-2021)

?GPT-3 發(fā)布(2020):GPT-3的發(fā)布帶來了更大規(guī)模的預(yù)訓(xùn)練模型,具備更強(qiáng)的生成和理解能力。Prompt Engineering變得更加重要,研究人員和開發(fā)者開始系統(tǒng)性地研究和優(yōu)化提示詞。

?Few-shot 和 Zero-shot 學(xué)習(xí):GPT-3支持Few-shot和Zero-shot學(xué)習(xí),這意味著模型可以通過少量甚至沒有示例的情況下完成任務(wù)。Prompt Engineering技術(shù)迅速發(fā)展,設(shè)計(jì)出有效的提示詞來最大化模型的性能。

5)技術(shù)手段演變(2021-2023)

?Prompt Tuning:研究人員開發(fā)了Prompt Tuning技術(shù),通過調(diào)整提示詞的參數(shù)來優(yōu)化模型的輸出。這種方法在提高模型性能方面表現(xiàn)出色,成為Prompt Engineering的重要手段之一。

?自動(dòng)化工具:為了簡(jiǎn)化Prompt Engineering的過程,出現(xiàn)了許多自動(dòng)化工具和框架,幫助開發(fā)者快速生成和測(cè)試提示詞。

?領(lǐng)域特定優(yōu)化:Prompt Engineering開始針對(duì)特定領(lǐng)域(如醫(yī)療、法律、教育等)進(jìn)行優(yōu)化,設(shè)計(jì)出更專業(yè)和精準(zhǔn)的提示詞。

6)現(xiàn)代階段(2024及以后)

?自適應(yīng)提示詞生成:隨著AI技術(shù)的進(jìn)一步發(fā)展,出現(xiàn)了自適應(yīng)提示詞生成技術(shù),模型可以根據(jù)上下文和用戶需求動(dòng)態(tài)調(diào)整提示詞。

?多模態(tài)提示詞:結(jié)合文本、圖像、音頻等多模態(tài)數(shù)據(jù)的提示詞設(shè)計(jì),使得Prompt Engineering在處理復(fù)雜任務(wù)時(shí)更加高效和靈活。

?人機(jī)協(xié)同優(yōu)化:通過人機(jī)協(xié)同的方式,結(jié)合用戶反饋和模型自我改進(jìn),進(jìn)一步提升Prompt Engineering的效率和效果。

三、Prompt Engineering 技術(shù)介紹

1)無擴(kuò)展訓(xùn)練技術(shù)(New Task Without Extensive Training)

Zero-shot和Few-shot是兩種最基礎(chǔ)的提示詞工程,主要注意Prompt的格式(比如分段落,用序號(hào)的方式展現(xiàn)你想表達(dá)內(nèi)容的邏輯順序等)和講述內(nèi)容就可以,同時(shí)根據(jù)對(duì)輸出結(jié)果的需求來調(diào)整參數(shù)。

① Zero-shot Prompting:直接給出任務(wù)和目標(biāo),注意prompt格式和參數(shù)調(diào)整。

② Few-shot Prompting:和Zero-shot相比就是多了幾個(gè)“shots”,給予模型少量樣本進(jìn)行實(shí)現(xiàn)上下文學(xué)習(xí);注意范例的挑選對(duì)模型表現(xiàn)很重要,不恰當(dāng)?shù)姆独x擇可能導(dǎo)致模型學(xué)習(xí)到不精確或有偏見的信息。

小工具:這個(gè)鏈接可以提供prompt模版,根據(jù)選擇不同的模版,幫你設(shè)計(jì)基礎(chǔ)的prompt內(nèi)容。

wKgZoWcsIbSADg9yAAKJVH91TJY986.png

基礎(chǔ)參數(shù):

temperature:控制生成文本的隨機(jī)性,范圍0到1;較低值使輸出更確定,較高值增加隨機(jī)性和多樣性
max_tokens:限制生成的最大標(biāo)記數(shù),一個(gè)標(biāo)記大是一個(gè)單詞或標(biāo)點(diǎn)符號(hào)
top_p:控制基于累積概率的采樣,較低值會(huì)使生成的文本更加確定(例如:top_p=0.1 意味著只會(huì)從概率最高的前10%的標(biāo)記中進(jìn)行采樣)
n=1:生成回復(fù)個(gè)數(shù),默認(rèn)1個(gè)
stop=None:不設(shè)置停止條件
presence_penalty:設(shè)置為0不懲罰重復(fù)內(nèi)容,較高值會(huì)鼓勵(lì)模型生成與上下文中已有內(nèi)容不同新內(nèi)容
frequency_penalty:設(shè)置為0不懲罰頻繁出現(xiàn)的內(nèi)容,較高值會(huì)減少模型生成重復(fù)詞語的可能性

2)推理與邏輯技術(shù)(Reasoning and Logic

推理與邏輯技術(shù)能使 LLM 更加深入與復(fù)雜的邏輯思考。如:Chain-of-Thought (CoT)、Automatic Chain-of-Thought (Auto-CoT)、Self-Consistency、Logical CoT等,都旨在促進(jìn)模型以更結(jié)構(gòu)化和邏輯性的方式處理信息,從而提高問題解決的準(zhǔn)確性和深度。

① Chain-of-Thought (CoT)

原理:為了克服LLM在處理復(fù)雜推理任務(wù)方面的限制,Wei et al. (2022) 提出了CoT,通過引入一種特殊的提示策略,促進(jìn)模型進(jìn)行連續(xù)和逐步的思考過程,連貫思考技術(shù)的主要貢獻(xiàn)在于能夠更有效地激發(fā)LLM產(chǎn)出結(jié)構(gòu)化且深入思考的回答。

示例說明:標(biāo)準(zhǔn)提示中,模型直接給出答案,而沒有解釋或展示其推理過程。在CoT提示中,模型不僅給出答案,還詳細(xì)展示了其推理過程。CoT通過在通過在提示中加入詳細(xì)的推理步驟,引導(dǎo)模型逐步解決問題。適用于需要復(fù)雜推理和多步驟計(jì)算的任務(wù)。

wKgaoWcsIbaAcWpPAAbvjUmTLMY000.png

② Automatic Chain-of-Thought (Auto-CoT) Prompting

原理:CoT是一種手動(dòng)的方式,過程耗時(shí)且效率低下,因此 Zhang et al. (2022) 提出了 Auto-CoT 技術(shù)。通過自動(dòng)生成“逐步思考”式的提示,幫助大模型實(shí)現(xiàn)推理鏈。通過多樣化的樣本生成來提升整體的穩(wěn)定性,能夠?qū)Χ喾N問題產(chǎn)生多個(gè)獨(dú)特的推理鏈,并將它們組合成一個(gè)終極范例集合。這種自動(dòng)化和多樣化的樣本生成方式有效地降低了出錯(cuò)率,提升了少樣本學(xué)習(xí)的效率,并避免了手工構(gòu)建CoT的繁瑣工作。

示例說明:左側(cè)展示了Auto-Cot的四個(gè)步驟(示例構(gòu)建、聚類、示例選擇和上下文推理)。首先,通過聚類算法將問題示例分組,然后從每個(gè)組中選擇具有代表性的示例,構(gòu)建一個(gè)包含詳細(xì)解答的示例集,最后,通過在上下文中提供這些示例,幫助LLM進(jìn)行推理并得出正確答案。

wKgZoWcsIbeAHav3AAqgN5AHS_g097.png

③ Self-Consistency

原理:Wang et al. (2022)提出了一種新型解碼策略,目標(biāo)在于取代鏈?zhǔn)剿伎继崾局惺褂玫奶煺尕澙方獯a。從語言模型的decoder中提取多條不同的推理路徑,從而生成多種可能的推理鏈,增加找到正確答案的可能性。

示例說明:不同于簡(jiǎn)單CoT的貪婪解碼方式,該技術(shù)先生成多個(gè)不同的推理路徑,不同路徑可能會(huì)得出不同答案,然后通過對(duì)所有生成的路徑進(jìn)行匯總,選擇最一致的答案為最終輸出。 第一步:模型生成多個(gè)推理路徑,得到不同的答案($18、$26、$18) 第二步:匯總推理路徑,選擇最一致的答案($18)

wKgaoWcsIbmAfDP4AArOebEoV9g886.png

④ Logical Chain-of-Thought (LogiCoT) Prompting

原理:Zhao et al. (2023)提出的 LogiCoT,與之前的逐步推理方法 (例如CoT) 相比,引入了一個(gè)全新的框架。該框架吸取了symbolic logic的精髓,以一種更加結(jié)構(gòu)化和條理清晰的方式來增強(qiáng)推理過程。采用了反證法這一策略,通過證明某一推理步驟若導(dǎo)致矛盾則該推理步驟錯(cuò)誤,從而來核查和糾正模型產(chǎn)生的推理步驟。

圖例說明:上方是CoT,推理過程是線性的,每一步都依賴于前一步,下方是LoT,推理過程是樹狀的,可以在某些步驟上進(jìn)行分支,每個(gè)節(jié)點(diǎn)仍代表一個(gè)推理步驟,但節(jié)點(diǎn)之間有更多的連接方式,形成了一個(gè)分支結(jié)構(gòu)。這種方法允許探索多個(gè)可能的推理路徑。圖中虛線框標(biāo)出了某些分支節(jié)點(diǎn),表示這些節(jié)點(diǎn)可以在不同的路徑上進(jìn)行組合和選擇。因此LoT方法能更靈活地處理復(fù)雜問題,允許同時(shí)考慮多個(gè)推理路徑,從而可能得到更全面和準(zhǔn)確的結(jié)果。

wKgZoWcsIbuADVBmAAPCPspR-F4048.png

⑤ Chain-of-Symbol (CoS) Prompting

原理:為了克服LLM依賴容易模糊且可能帶有偏見的自然語言的限制,Hu et al. (2023)提出了 CoS。這種方法不適用自然語言,而是采用簡(jiǎn)化的符號(hào)作為提示,優(yōu)勢(shì)在于使提示更加清晰簡(jiǎn)潔,提高模型處理空間關(guān)系問題能力,同時(shí)運(yùn)作原理更易使人理解。

示例說明:下圖展示了CoT和CoS在解決一個(gè)從一堆磚塊中取出特定磚塊的問題時(shí)的表現(xiàn)。CoT輸出A, E, D,結(jié)果錯(cuò)誤,沒有遵循正確移出順序。CoS通過將Prompt的結(jié)構(gòu)從文字轉(zhuǎn)換為符號(hào)(如下):

1.B/A/D/E/C

2.C/E

3.E/D

4.D

模型輸出:C, E, D

wKgaoWcsIbyAF9lHAAN9tXCBbug511.png

3)減少幻覺技術(shù)(Reduce Hallucination)

減少幻覺現(xiàn)象(幻覺是指你從大語言模型中得到錯(cuò)誤的結(jié)果,因?yàn)榇笳Z言模型主要基于互聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行訓(xùn)練,其中可能存在不一致的信息,過時(shí)的信息和誤導(dǎo)的信息)是LLM的一種挑戰(zhàn),技術(shù)如 RAG、ReAct Prompting、Chain-of-Verification (CoVe)等,都是為了減少LLM產(chǎn)生無依據(jù)或者不準(zhǔn)確輸出的情況。這些方法通過結(jié)合外部信息檢索、增強(qiáng)模型的自我檢查能力或引入額外的驗(yàn)證步驟來實(shí)現(xiàn)。

① RAG (Retrieval Augmented Generation)

原理:RAG的核心為“檢索+生成”,前者主要是利用向量數(shù)據(jù)庫的高效存儲(chǔ)和檢索能力,召回目標(biāo)知識(shí);后者則是利用大模型和Prompt工程,將召回的知識(shí)合理利用,生成目標(biāo)答案。

流程:完整的RAG應(yīng)用流程主要包含兩個(gè)階段。

?數(shù)據(jù)準(zhǔn)備階段:一般是離線過程,主要是將私域數(shù)據(jù)向量化后構(gòu)建索引并存入數(shù)據(jù)庫的過程。主要包括:數(shù)據(jù)提取、文本分割、向量化、數(shù)據(jù)入庫等。

?數(shù)據(jù)提取——>文本分割——>向量化(embedding)——>數(shù)據(jù)入庫

?應(yīng)用階段:根據(jù)用戶提問,通過高效的檢索方法,召回與提問最相關(guān)的知識(shí),并融入Prompt;大模型參考當(dāng)前提問和相關(guān)知識(shí),生成答案。關(guān)鍵環(huán)節(jié)包括:數(shù)據(jù)檢索(相似性檢索、全文檢索-關(guān)鍵詞)、注入Prompt(Prompt設(shè)計(jì)依賴個(gè)人經(jīng)驗(yàn),實(shí)際應(yīng)用中往往需要根據(jù)輸出進(jìn)行針對(duì)性調(diào)優(yōu))。

?用戶提問——>數(shù)據(jù)檢索(召回)——>注入Prompt——>LLM生成答案

② Chain-of-Verification (CoVe) Prompting

原理:Dhuliawala et al. (2023) 提出了一種稱為 CoVe 的方法,該方法主要有四個(gè)步驟:初步答案、規(guī)劃驗(yàn)證問題以檢驗(yàn)工作、獨(dú)立解答這些問題、根據(jù)驗(yàn)證結(jié)果來修正初步答案。該方法通過精心設(shè)計(jì)驗(yàn)證問題,模型能夠辨識(shí)自身的錯(cuò)誤并進(jìn)行修正,從而顯著提高了準(zhǔn)確率。

示例說明:下圖表展示了一個(gè)查詢和驗(yàn)證過程,目的是找出一些在紐約市出生的政治家。整個(gè)過程分為四個(gè)步驟,通過驗(yàn)證初步信息來確保最終響應(yīng)的準(zhǔn)確性。

1.初步響應(yīng):系統(tǒng)提供了一個(gè)初步的響應(yīng),列出了一些可能在紐約市出生的政治家:Hillary Clinton、Donald Trump、Michael Bloomberg。

2.計(jì)劃驗(yàn)證:系統(tǒng)決定驗(yàn)證初步響應(yīng)中的信息,提出了問題:Hillary Clinton 出生在哪里?Donald Trump 出生在哪里?Michael Bloomberg 出生在哪里?

3.執(zhí)行驗(yàn)證:系統(tǒng)查找并驗(yàn)證了這些政治家的出生地,Hillary Clinton 出生在伊利諾伊州芝加哥、Donald Trump 出生在紐約州紐約市皇后區(qū)、Michael Bloomberg 出生在馬薩諸塞州波士頓。

4.最終驗(yàn)證響應(yīng):根據(jù)驗(yàn)證結(jié)果,系統(tǒng)提供了一個(gè)修正后的列表,只包含在紐約市出生的政治家。Donald Trump - 前美國(guó)總統(tǒng)、Alexandria Ocasio-Cortez - 美國(guó)眾議院議員。

wKgZoWcsIb-AN5OaAAaraRMLG3s658.png

4)微調(diào)和優(yōu)化(Fine-Tuning and Optimization)

① Automatic Prompt Engineer (APE)

原理:Zhou et al. (2022)提出的APE技術(shù),其突破了手動(dòng)和固定提示的限制,能夠針對(duì)特定任務(wù)主動(dòng)生成并選擇輸出有效的提示。先分析用戶輸入,設(shè)計(jì)一系列候選指令,再透過強(qiáng)化學(xué)習(xí)選擇最優(yōu)提示,并能適應(yīng)不同情景。

示例說明:下圖展示了APE技術(shù)的幾個(gè)步驟。

1.Proposal(提議):使用LLM生成初始提示 “write the antonym of the word”。

2.Scoring(評(píng)分):對(duì)生成的提示進(jìn)行評(píng)分,評(píng)分的依據(jù)是提示的對(duì)數(shù)概率(不同提示分?jǐn)?shù)不一致,有0.26、0.28等)

3.High Score Candidates(高分候選項(xiàng)):保留得分較高的候選提示,丟棄得分較低的提示。例如,得分為-0.86和-1.08的提示被丟棄,得分為-0.26和-0.28的提示被保留。

4.(Optional)Resampling(重采樣):生成高分候選提示的變體,保持語義不變。例如,生成提示“write the opposite of the word given”。

5.Final Selection(最終選擇):選擇得分最高的提示作為最終使用提示。提示“write the opposite of the word given”得分為0.16,被選為最終提示。 通過這個(gè)流程,APE技術(shù)能夠自動(dòng)生成和優(yōu)化提示,確保選擇的提示能夠生成高質(zhì)量的輸出。

wKgaoWcsIcGAYahBAAbnc6y8UW8766.png

5)其他手段(Others Techniques)

以下四種Prompt Engineering手段個(gè)人認(rèn)為比較有意思,因此做簡(jiǎn)要介紹。

① Chain-of-Code (CoC) Prompting

原理:CoC 技術(shù)是Li et al. (2023)提出的,通過編程強(qiáng)化模型在邏輯與語義任務(wù)上的推理能力,將語義任務(wù)轉(zhuǎn)化為靈活的偽代碼。CoT主要用于解決需要邏輯推理、問題分解和逐步解決的任務(wù),如邏輯推理問題、文本分析等;CoC則專注于編程任務(wù),通過分步引導(dǎo)模型生成代碼解決編程問題。

示例說明:下圖展示了利用三種不同的方法來回答一個(gè)問題:“我去過多少個(gè)國(guó)家?我去過孟買、倫敦、華盛頓、大峽谷、巴爾的摩,等等?!?/p>

1.直接回答:直接給出了幾個(gè)可能的答案,32和29是錯(cuò)誤的,54是正確的。

2.思路鏈 (CoT):首先,將城市按國(guó)家分組,然后計(jì)算不同國(guó)家的數(shù)量。61和60是錯(cuò)誤的,54是正確的。

3.代碼鏈(CoC):首先,初始化一個(gè)包含城市名稱的列表和一個(gè)空的集合來存儲(chǔ)國(guó)家。然后遍歷每個(gè)城市,通過函數(shù) get_country(place) 獲取對(duì)應(yīng)的國(guó)家,并將其添加到集合中。最后計(jì)算集合的長(zhǎng)度,結(jié)果顯示,54是正確的。

總結(jié):直接回答法沒有解釋過程,容易出錯(cuò)。思路鏈法逐步解釋,但仍可能出錯(cuò)。代碼鏈法通過編程邏輯,確保了答案的準(zhǔn)確性,在三種方法中表現(xiàn)最好。

wKgZoWcsIcOAPS3GAAaIDNxhLNM928.png

② Contrastive Chain-of-Thought (CCoT) Prompting

原理:傳統(tǒng)CoT忽略了從錯(cuò)誤中學(xué)習(xí)的總要環(huán)節(jié),Chia et al. (2023)提出CCoT技術(shù)。這種技術(shù)通過同時(shí)提供正確和錯(cuò)誤的推理示例來要到模型。但是該種技術(shù)還是面臨一些挑戰(zhàn),即如何為不提供問題自動(dòng)生成對(duì)比示例。

示例說明:下圖展示了三種提示方法在回答數(shù)學(xué)問題時(shí)的表現(xiàn)。

?Prompt問題:James每周給兩個(gè)不同的朋友各寫一封3頁的信,每周寫兩次。他一年寫多少頁?

?待回答問題:James有30顆牙齒。他的牙醫(yī)鉆了其中的4顆,并且修復(fù)了比鉆的牙齒多7顆的牙齒。牙醫(yī)修復(fù)了James牙齒的百分比是多少?

1.標(biāo)準(zhǔn)提示:Prompt中回答直接給出答案,但沒有解釋過程,導(dǎo)致第二個(gè)問題答案:37.5%,回答錯(cuò)誤。

2.思維鏈(CoT):Prompt中加入了詳細(xì)的解釋過程,使得模型在輸出修復(fù)牙齒比例問題中能更準(zhǔn)確地思考,但是答案為36.67%,還是錯(cuò)誤。

3.對(duì)比思維鏈(Contrastive CoT):Prompt中加入了正確答案和錯(cuò)誤答案的詳細(xì)解釋說明。最終輸出答案50%正確。Contrastive CoT 不僅提供正確的解釋,還展示了錯(cuò)誤的解釋,幫助理解和驗(yàn)證答案的正確性。

wKgaoWcsIcWAdHSZAAgaLnwKbcw818.png

③ Managing Emotions and Tone

原理:Li et al. (2023) 提出了EmotionPrompt 技術(shù)。通過在提示中加入情感詞匯或情感上下文來引導(dǎo)模型更好地理解和回應(yīng)用戶的情感需求。 識(shí)別情感需求:識(shí)別出希望模型生成的響應(yīng)中包含的情感類型(如開心、悲傷、憤怒等)。 構(gòu)建情感提示詞:在原始提示中加入情感詞匯或上下文,以引導(dǎo)模型生成符合預(yù)期情感的響應(yīng)。 測(cè)試和調(diào)整:生成響應(yīng)后根據(jù)實(shí)際效果進(jìn)行測(cè)試和調(diào)整,確保模型生成的內(nèi)容符合預(yù)期的情感。

示例說明:下圖展示了不同類型的情感表達(dá)及其在不同理論框架下的分類和交叉關(guān)系。主要包含了三個(gè)理論框架:自我監(jiān)控、社會(huì)認(rèn)知理論和認(rèn)知情緒調(diào)節(jié),并列出了每個(gè)框架下的具體情感表達(dá)句子(EP01-EP11)。通過這種分類方式,可以看出不同情感表達(dá)在不同理論框架和維度下的交叉關(guān)系和應(yīng)用場(chǎng)景。這種分類有助于更好地理解和應(yīng)用情感表達(dá)在不同情境中的作用。右側(cè)展示了這些情感表達(dá)在不同社會(huì)效應(yīng)和自尊維度下的分類:

1.社會(huì)效應(yīng)(Social effect)包含:EP01, EP02, EP03, EP04, EP05, EP06(EP06是EP01, EP02, EP03的復(fù)合體)

2.自尊(Self-esteem)包含:EP07, EP08, EP09, EP10, EP11

3.備注:EP06 是EP01, EP02, 和EP03的復(fù)合體。

wKgZoWcsIceAZB3pAAvJ1-FAHts536.png

④ Rephrase and Respond (RaR) Prompting

原理:由于LLM經(jīng)常忽略了人類思維方式和LLM思維方式間的差異,Deng et al. (2023)提出了RaR技術(shù)。通過讓LLM在提示中重新表述和擴(kuò)展問題,從而提升模型對(duì)問題的理解和回答準(zhǔn)確性,改寫后的問題能夠更清晰地傳遞語意,減少問題模糊性。

示例說明:RaR 主要分為兩個(gè)步驟,通過對(duì) prompt 理解和重述,語言模型可以更好地理解和回答問題。

1.重述問題:首先給定一個(gè)原始問題,“取 Edgar Bob 中每個(gè)單詞的最后一個(gè)字母并將它們連接起來”。然后重述使其更清晰、更詳細(xì)。重述后的問題變成“你能識(shí)別并提取 Edgar Bob 中每個(gè)單詞的最后一個(gè)字母,然后按它們出現(xiàn)的順序?qū)⑺鼈冞B接起來嗎?”

2.回答重述后的問題:重述后的問題是“你能識(shí)別并提取 Edgar Bob 中每個(gè)單詞的最后一個(gè)字母,然后按它們出現(xiàn)的順序?qū)⑺鼈冞B接起來嗎?”回答為“Edgar Bob 中每個(gè)單詞的最后一個(gè)字母是 r 和 b,按出現(xiàn)順序連接起來是 rb”。

wKgZoWcsIcmAHU9RAAdVBEdiIsU544.png

四、Prompt Engineering 的應(yīng)用案例

1)項(xiàng)目背景

在京東物流的大件商品入庫環(huán)節(jié),采集人員需要根據(jù)產(chǎn)品制定的劃分標(biāo)準(zhǔn)人工判斷并錄入商品件型。然而,件型維護(hù)錯(cuò)誤會(huì)導(dǎo)致物流方面的收入損失、客戶投訴及調(diào)賬等問題。為了解決這些問題,我們通過技術(shù)手段對(duì)存量SKU進(jìn)行件型異常識(shí)別,并在前置環(huán)節(jié)實(shí)現(xiàn)件型推薦,對(duì)新入庫的SKU進(jìn)行件型錄入預(yù)警。件型的判斷高度依賴于商品品類,但由于大部分SKU為外單商品,其品類維護(hù)主要依賴于商家和銷售,超過40%的外單商品品類被歸為“其他服務(wù)”。因此,我們首先對(duì)這些品類進(jìn)行修正,再基于修正后的數(shù)據(jù)展開異常識(shí)別和件型推薦。

隨著大模型應(yīng)用的廣泛普及,針對(duì)第二階段件型判斷,我們通過引入大模型對(duì)文本識(shí)別技術(shù)方案難以覆蓋的SKU進(jìn)行補(bǔ)充識(shí)別(提升覆蓋率)。以下會(huì)嘗試上述介紹的幾種基礎(chǔ)Prompt Engineering手段,對(duì)空調(diào)品類的商品進(jìn)行件型判斷,并對(duì)比幾種提示詞工程在識(shí)別效果上的差異。

2)應(yīng)用舉例

識(shí)別目標(biāo):通過告訴大模型空調(diào)相關(guān)品類的件型判斷標(biāo)準(zhǔn),讓大模型判斷商品的件型。下面主要通過不同的提示詞工程手段,來調(diào)整prompt以提升輸出精確率。

樣本說明:數(shù)據(jù)總共包含7個(gè)字段(goods_code:商品編碼,goods_name:商品名稱, item_third_cate_name:修正后品類,weight:重量(kg), big_goods:件型編碼,big_goods_desc:件型中文,label:業(yè)務(wù)打標(biāo)的正確件型(檢驗(yàn)?zāi)P徒Y(jié)果的label)。

wKgZoWcsIc2APCuJAAOvD_OOI5o670.png

測(cè)試代碼:

① 基礎(chǔ)GPT調(diào)用Demo:主要設(shè)定了模型的角色和任務(wù),為了保證結(jié)果輸出的穩(wěn)定性,分別將參數(shù) temperature設(shè)置為0,同時(shí)件型最長(zhǎng)字符串不超過6個(gè),因此設(shè)置max_tokens=6,僅輸出一個(gè)結(jié)果,設(shè)置top_p=0.1。

def classify_product(row, rules_text):
    try:
        client = OpenAI(
            api_key=os.environ["OPENAI_API_KEY"],
            base_url=os.environ["OPENAI_API_BASE"]
        )
        
        # 輸入描述
        description = f"商品編碼:{row['goods_code']},描述:{row['goods_name']},重量:{row['weigth']}。"
   
        # 設(shè)定模型的角色和任務(wù)
        system_message = "你是物流行業(yè)的一位專家,請(qǐng)基于規(guī)則和商品描述,僅輸出該商品的件型,不要輸出其他任何信息。"
        
        # 用戶具體輸入
        user_message = (f"規(guī)則:n{rules_text}n"
                        f"商品描述:{description}n")
        
        # 請(qǐng)求模型
        response = client.chat.completions.create(
            model="gpt-4-1106-preview", 
            messages=[
                {"role": "system", "content": system_message},
                {"role": "user", "content": user_message}],
            temperature=0, # temperature 控制生成文本的隨機(jī)性,范圍為0到1。較低的值使輸出更確定和一致,而較高的值增加隨機(jī)性和多樣性。
            max_tokens=6, # 限制生成的最大標(biāo)記數(shù),一個(gè)標(biāo)記大約是一個(gè)單詞或標(biāo)點(diǎn)符號(hào)。
            top_p=0.1, # 數(shù)控制基于累積概率的采樣,較低的 top_p 值會(huì)使生成的文本更加確定,只會(huì)考慮累積概率達(dá)到較低閾值的標(biāo)記。
            n=1  # 生成一個(gè)回復(fù)
        )
        
        # 解析并返回結(jié)果
        return response.choices[0].message.content.strip()
    except Exception as e:
        return str(e)

Zero-shot:準(zhǔn)確率44.44%

prompt1 = """
件型的判斷和商品的細(xì)分品類、商品來源和商品參數(shù)有關(guān)。

細(xì)分分類為:
1. 掛機(jī)空調(diào):描述或型號(hào)中含“掛機(jī)空調(diào)”或“G”或“GW”。
2. 柜機(jī)空調(diào):描述或型號(hào)中含“柜機(jī)空調(diào)”或“L”或“LW”。
3. 家用空調(diào):描述中含“家用空調(diào)”或型號(hào)中含“KFR”。
4. 中央空調(diào)/天花機(jī)/風(fēng)管機(jī)/多聯(lián)機(jī)/移動(dòng)空調(diào)一體機(jī):描述或名稱中含“中央空調(diào)”、“天花機(jī)”、“風(fēng)管機(jī)”、“多聯(lián)機(jī)”或“移動(dòng)空調(diào)一體機(jī)”。
5. 其他類別空調(diào):不符合上述任何一個(gè)特定類型的空調(diào)。

商品來源分為自營(yíng)和外單兩種,商品編碼以“EMG”開頭為外單,否則為自營(yíng)。

件型包括:超小件、小件、中件-半件、中件、大件-半件、大件、超大件-半件、超大件。
件型規(guī)則如下:
1. 自營(yíng)掛機(jī)空調(diào):
   - 匹數(shù)≤3p或型號(hào)≤72為中件-半件
   - 匹數(shù)>3p或型號(hào)>72為大件-半件
2. 自營(yíng)柜機(jī)空調(diào):
   - 匹數(shù)≤2p或型號(hào)≤51為中件-半件
   - 2p3p或型號(hào)>72為超大件-半件
3. 自營(yíng)家用空調(diào):
   - 描述含“大2p”或型號(hào)≤51為中件-半件
   - 描述含“大3p”或5172為超大件-半件
4. 自營(yíng)及外單的家用中央空調(diào)、天花機(jī)、風(fēng)管機(jī)、多聯(lián)機(jī)及移動(dòng)空調(diào)一體機(jī):
   - 重量3p或型號(hào)>72或描述中提到“大3p”為超大件-半件
"""

Few-shots:在Zero-shot基礎(chǔ)上加了兩個(gè)示例說明,準(zhǔn)確率55.56%。

prompt2 = """
...同prompt1

舉例:
1. 編碼:100015885342,描述:酷風(fēng)(Coolfree)中央空調(diào)一拖多多聯(lián)機(jī) MJZ-36T2/BP3DN1-CF4,重量:21,件型是:小件。
2. 編碼:100014630039,描述:COLMO AirNEXT空氣主機(jī) 3匹 AI智能空調(diào)新一級(jí)全直流變頻空調(diào)立式柜機(jī) KFR-72LW/CE2 線下同款,重量:21,件型是:超大件-半件。
"""

Chain-of-Thought (CoT):和Few-shots的區(qū)別,將兩個(gè)示例分步驟展示,向模型說明進(jìn)行件型判斷的邏輯順序,準(zhǔn)確率66.67%。

prompt3 = """ 
...同prompt1 

舉例:
1. 編碼:100015885342,描述:酷風(fēng)(Coolfree)中央空調(diào)一拖多多聯(lián)機(jī) MJZ-36T2/BP3DN1-CF4,重量:21。
   - 第一步:判斷商品來源。商品編碼不以“EMG”開頭,因此商品來源為自營(yíng)。
   - 第二步:判斷細(xì)分品類。描述中含有“中央空調(diào)”以及“多聯(lián)機(jī)”,因此細(xì)分品類為中央空調(diào)。
   - 第三步:判斷件型。重量為21kg,滿足15≤重量

Automatic Chain-of-Thought (Auto-CoT) Prompting:使用prompt2,但是在調(diào)用的任務(wù)說明時(shí),告訴大模型判斷的順序?yàn)?,先判斷商品的?xì)分品類,再判斷商品來源,再判斷商品件型,最終精確率77.78%。

 system_message = "你是物流行業(yè)的一位專家,請(qǐng)基于規(guī)則和商品描述,建議先判斷商品的細(xì)分品類,再判斷商品來源,再判斷商品件型,請(qǐng)簡(jiǎn)要說明關(guān)鍵步驟,并在100個(gè)字內(nèi)判斷商品件型。"

Self-Consistency:依舊使用prompt2,但調(diào)整調(diào)用參數(shù)和解析邏輯,讓模型進(jìn)行多次輸出,取出現(xiàn)頻率最高的結(jié)果為最終結(jié)果,精確率為66.67%。

import random

def classify_product_self_consistency(row, rules_text):
    try:
        client = OpenAI(
            api_key=os.environ["OPENAI_API_KEY"],
            base_url=os.environ["OPENAI_API_BASE"]
        )
        
        description = f"商品編碼:{row['goods_code']},描述:{row['goods_name']},重量:{row['weigth']}。"
        
        system_message = "你是物流行業(yè)的一位專家,請(qǐng)基于規(guī)則和商品描述,僅輸出該商品的件型,不要輸出其他任何信息。"
        
        user_message = (f"規(guī)則:n{rules_text}n"
                        f"商品描述:{description}n")
        
        # 多次請(qǐng)求模型,獲取多個(gè)輸出
        responses = client.chat.completions.create(
            model="gpt-4-1106-preview",
            messages=[
                {"role": "system", "content": system_message},
                {"role": "user", "content": user_message}],
            temperature=0.1,
            max_tokens=20,
            top_p=0.1,
            n=5 # 生成5個(gè)不同的輸出
        )
        # print(responses)

        # 提取件型
        piece_type_options = []
        for response in responses.choices:
            piece_type_match = re.search(r"件型:(.+)", response.message.content)
            if piece_type_match:
                piece_type = piece_type_match.group(1)
                if piece_type not in piece_type_options:
                    piece_type_options.append(piece_type)
            else:
                piece_type = response.message.content
                if piece_type not in piece_type_options:
                    piece_type_options.append(piece_type)
        
        # 如果有多個(gè)不同的件型結(jié)論,返回一個(gè)隨機(jī)的件型結(jié)論
        if len(piece_type_options) > 1:
            return random.choice(piece_type_options)
        elif piece_type_options:
            return piece_type_options[0]
        else:
            return "無法確定件型,請(qǐng)檢查規(guī)則或商品描述。"
    
    except Exception as e:
        return str(e)

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    30728

    瀏覽量

    268885
  • Engineering
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    7017
  • prompt
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    2677
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    魔法光繪——可編程魔法

    `用Arduino制作的魔法光繪`
    發(fā)表于 12-16 20:43

    學(xué)AI的鯉躍龍門之路:AI探索技藝

    : 讓電腦自己去計(jì)算特徵值,並且電腦自己匯入特徵值,自動(dòng)訓(xùn)練其智能,是最棒的啦。 ==>詳細(xì)內(nèi)容3.AI探索與NN隱藏層(Hidden Layer)的比喻說明: AI有兩項(xiàng)重要的行為,就是:1
    發(fā)表于 11-30 17:11

    Engineering Mega-Systems

    Engineering Mega-Systems:British Library Cataloguing-in-Publication Data A catalogue record
    發(fā)表于 12-06 23:15 ?0次下載

    HTML DOM prompt()方法使用

    HTML DOM Window 對(duì)象 定義和用法 prompt() 方法用于顯示可提示用戶進(jìn)行輸入的對(duì)話框。 語法prompt(text,defaultText)參數(shù)描述 text 可選。要在
    發(fā)表于 11-28 15:06 ?4653次閱讀
    HTML DOM <b class='flag-5'>prompt</b>()方法使用

    視覺對(duì)話能力讓AI邁上新臺(tái)階

    擁有智能視覺對(duì)話能力的AI隨著技術(shù)的不斷突破,正在向我們走來。
    的頭像 發(fā)表于 07-02 16:39 ?2898次閱讀

    微信推出專屬對(duì)話AI機(jī)器人

    日前,世界人工智能大會(huì)(2019 WAIC)在上海召開,會(huì)上,微信AI團(tuán)隊(duì)推出了“微信對(duì)話開放平臺(tái)”和“騰訊小微”智能硬件兩大核心產(chǎn)品。在微信智言與微信智聆兩大技術(shù)的支持下,“微信對(duì)話開放平臺(tái)”將微信的
    的頭像 發(fā)表于 09-10 17:36 ?5283次閱讀

    揭秘Prompt的前世今生

    作者|閔映乾機(jī)構(gòu)|中國(guó)人民大學(xué)信息學(xué)院碩士方向 | 自然語言處理 來自 | RUC AI Box 導(dǎo)讀:本文目標(biāo)是對(duì)近期火爆異常的Prompt相關(guān)研究作一些追溯和展望,內(nèi)容主要參考論文
    的頭像 發(fā)表于 09-01 10:28 ?2817次閱讀
    揭秘<b class='flag-5'>Prompt</b>的前世今生

    Prompt范式你們了解多少

    卷友們好,我是rumor。 之前我學(xué)習(xí)Prompt范式的源起PET后就鴿了很久,相信卷友們已經(jīng)把Prompt的論文都追完了,把我遠(yuǎn)遠(yuǎn)地落在了后面。周末我不甘被卷,奮起直追,連刷三篇paper,希望能
    的頭像 發(fā)表于 09-10 10:22 ?2744次閱讀
    <b class='flag-5'>Prompt</b>范式你們了解多少

    NLP中Prompt的產(chǎn)生和興起

    導(dǎo)讀:本文目標(biāo)是對(duì)近期火爆異常的Prompt相關(guān)研究作一些追溯和展望,內(nèi)容主要參考論文《Pre-train, Prompt, and Predict: A Systematic Survey
    的頭像 發(fā)表于 09-12 14:52 ?2579次閱讀
    NLP中<b class='flag-5'>Prompt</b>的產(chǎn)生和興起

    什么樣的魔法棒,能讓AI魔法師一夜成名?

    當(dāng)人工智能成為改善人們生活的“魔法”,開發(fā)者就成為了將魔法帶給世界的魔法師。但將魔法帶給世界,并沒有想象中那么簡(jiǎn)單。AI開發(fā)者們面對(duì)著繁多的
    的頭像 發(fā)表于 12-29 19:30 ?541次閱讀
    什么樣的<b class='flag-5'>魔法</b>棒,能讓<b class='flag-5'>AI</b><b class='flag-5'>魔法</b>師一夜成名?

    promptAI中的翻譯是什么意思?

    promptAI中的翻譯是什么意思? PromptAI中是指給出指示或提示,用于引導(dǎo)AI系統(tǒng)執(zhí)行下一步任務(wù)或采取下一步行動(dòng)。在
    的頭像 發(fā)表于 08-22 15:59 ?2775次閱讀

    大模型數(shù)據(jù)集:揭秘AI背后的魔法世界

    一、引言 在人工智能的奇幻世界中,大模型數(shù)據(jù)集如同神秘的魔法書,蘊(yùn)藏著無盡的智慧與力量。它們?yōu)?b class='flag-5'>AI注入了生命,使其具備了理解和改變世界的能力。今天,就讓我們一起揭開大模型數(shù)據(jù)集的神秘面紗,探索其背后
    的頭像 發(fā)表于 12-07 17:33 ?555次閱讀

    如何從訓(xùn)練集中生成候選prompt 三種生成候選prompt的方式

    這個(gè)“gradient”怎么得到的了呢,這是個(gè)啥玩意,怎么還有梯度?注意,注意。人家是帶引號(hào)的!比喻成梯度。這玩意有什么用呢。 文章指出給定一批error samples(當(dāng)前prompt無法
    的頭像 發(fā)表于 01-12 11:29 ?1037次閱讀
    如何從訓(xùn)練集中生成候選<b class='flag-5'>prompt</b> 三種生成候選<b class='flag-5'>prompt</b>的方式

    榮耀發(fā)布MagicOS 8.0和魔法大模型

    榮耀近日舉辦了MagicOS 8.0發(fā)布會(huì),正式推出了自主研發(fā)的操作系統(tǒng)MagicOS 8.0,并宣布了其端側(cè)平臺(tái)級(jí)AI大模型——魔法大模型的誕生。
    的頭像 發(fā)表于 01-18 15:16 ?1005次閱讀

    常見AI大模型的比較與選擇指南

    在選擇AI大模型時(shí),明確具體需求、了解模型的訓(xùn)練數(shù)據(jù)、計(jì)算資源要求和成本,并考慮模型的可解釋性和社區(qū)支持情況等因素至關(guān)重要。以下是對(duì)常見AI大模型的比較與選擇指南: 一、模型功能與應(yīng)用場(chǎng)景 Kimi
    的頭像 發(fā)表于 10-23 15:36 ?713次閱讀
    RM新时代网站-首页