傅瑞明
中博信息技術(shù)研究院有限公司
隨著人工智能技術(shù)的快速發(fā)展,生成式人工智能(Generative AI)已成為備受關(guān)注的研究方向。借助大量數(shù)據(jù)和強大的算力,生成式人工智能可以學(xué)習(xí)數(shù)據(jù)中的聯(lián)合概率分布,并根據(jù)用戶的輸入或提示生成全新的內(nèi)容。這種技術(shù)在文學(xué)、音樂、圖像、視頻、游戲等領(lǐng)域展現(xiàn)出了強大的能力和潛力,為數(shù)字內(nèi)容生產(chǎn)帶來了革命性的變化。
語言模型是生成式人工智能的關(guān)鍵技術(shù)之一,在自然語言處理(NLP)中扮演著重要角色,可以應(yīng)用于機器翻譯、文本摘要、問答系統(tǒng)等任務(wù)。近年來,隨著深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的發(fā)展,預(yù)訓(xùn)練語言模型也取得了顯著進步。其中,GPT(Generative Pre-trained Transformer)是一種基于Transformer架構(gòu)的自回歸語言模型,具有強大的生成能力和多技能特性。
然而,要充分利用大語言模型的潛力并不容易。由于市面上大語言模型能力參差不齊,邏輯推理能力普遍較弱,其輸出也可能存在錯誤、偏差、不一致或不合理的情況。因此,如何與模型進行有效交互,通過設(shè)計合適的輸入或提示,引導(dǎo)模型生成期望的內(nèi)容或完成特定的任務(wù),成為一個重要而具有挑戰(zhàn)性的問題。
提示工程師(Prompt Engineer)的角色應(yīng)運而生。提示工程師需要通過深入研究AI 技術(shù)和NLP 領(lǐng)域,掌握大模型的工作原理和機制,分析所要解決的問題,并設(shè)計合適的輸入或提示,使模型生成期望的內(nèi)容或完成特定的任務(wù)。如何將業(yè)務(wù)工作流與模型的生成能力結(jié)合,將會成為從事模型研究人員和懂業(yè)務(wù)人員的工作重點。
大語言模型行業(yè)落地需要的是將企業(yè)業(yè)務(wù)邏輯與模型能力結(jié)合,但目前模型很難具備該方面的能力。因此,尋找到高效快捷、具備性價比的模型落地方式是企業(yè)的當(dāng)務(wù)之急。
本文旨在探討提示工程師的工作方法,從而提高與大模型的交互效率和生成結(jié)果的質(zhì)量,避開模型訓(xùn)練微調(diào)這種大資源投入的方式,也為企業(yè)落地大模型應(yīng)用提供更簡單、低成本的思路。本文介紹的提示工程師的工作流程和方法,包括輸入設(shè)計、Prompt 編寫、輸出分析等環(huán)節(jié),并結(jié)合案例對提示語編寫進行分析和說明。最后,本文將對未來的研究方向進行展望,并提出一些建議,以便更好地應(yīng)用生成式人工智能技術(shù)。本文的研究意義在于,通過深入研究提示工程師的工作方法,可以幫助人們更好地理解生成式人工智能技術(shù),運用到日常文案編寫、決策推斷等工作中,低成本發(fā)掘適用于企業(yè)自身的應(yīng)用場景。
輸入設(shè)計是ChatGPT 模型生成內(nèi)容的重要前提,直接決定了輸出結(jié)果。在此階段,工程師需明確生成內(nèi)容的目標(biāo)和預(yù)期效果,并選擇適當(dāng)?shù)妮斎胄问胶徒Y(jié)構(gòu)。首先,確定生成內(nèi)容的類型和風(fēng)格,如文本、圖像、音頻等,考慮使用場景和目標(biāo)受眾。其次,設(shè)計問題式或情境式輸入,以便引導(dǎo)模型生成相應(yīng)內(nèi)容。注意輸入簡潔、準(zhǔn)確,避免冗余信息和歧義。充分考慮用戶需求和背景,提供詳盡信息。同時,激發(fā)模型生成能力和想象力,給予創(chuàng)意和啟發(fā)性地輸入。
Prompt 編寫是提示工程師的核心技能之一,它直接關(guān)系到ChatGPT 生成內(nèi)容的質(zhì)量和效果。Prompt 是指一段描述或指令,用于引導(dǎo)模型生成特定的內(nèi)容。編寫過程需要充分理解模型的結(jié)構(gòu)和運作原理,同時考慮到生成內(nèi)容的語境和風(fēng)格,以設(shè)計出高效、精準(zhǔn)的提示詞。在編寫過程中,提示工程師需要注意以下幾點:首先,提示詞需要具有一定的啟發(fā)性和創(chuàng)意,可以通過隨機性、模糊性、對比性等手段,激發(fā)大語言模型的創(chuàng)造力和想象力;其次,需要考慮到生成內(nèi)容的多樣性和適應(yīng)性,通過增加變量、增強上下文等手段,提高生成內(nèi)容的質(zhì)量和可用性;最后,提示詞需要避免歧義和誤導(dǎo),確保生成內(nèi)容符合用戶的期望和要求。
在Prompt 編寫過程中,提示工程師可以借助一些工具和使用一些技巧,如模板式Prompt、抽象式Prompt、可調(diào)節(jié)Prompt 等。其中,模板式是指根據(jù)不同任務(wù)和場景設(shè)計出的固定格式的提示詞,如“給我寫一篇介紹某個主題的文章”;抽象式是指通過給出一些關(guān)鍵詞或描述,讓模型自行生成相應(yīng)的內(nèi)容,如“生成一篇關(guān)于旅游的文章”;可調(diào)節(jié)是指通過調(diào)整提示詞中的變量和參數(shù),來控制生成內(nèi)容的多樣性和適應(yīng)性,如“生成一篇關(guān)于食品安全的文章,其中關(guān)鍵詞為__,語氣為__”。
輸出分析是評估和優(yōu)化大語言模型生成內(nèi)容的關(guān)鍵步驟,以提升內(nèi)容質(zhì)量和效率。在此階段,工程師需對生成內(nèi)容進行人工評估,優(yōu)化其質(zhì)量和適用性。評估包括語法、語義正確性,相關(guān)性、準(zhǔn)確性以及流暢性和可讀性。評估可借助人工、自動和A/B 測試等方法。人工評估利用專家或用戶反饋調(diào)整生成內(nèi)容;自動評估則運用自然語言處理工具和算法,如語言模型評估、語義相似度等;A/B 測試則對比不同版本的內(nèi)容,結(jié)合數(shù)據(jù)分析和用戶反饋,選出最佳生成策略和模型參數(shù)。
綜上所述,輸入設(shè)計、Prompt 編寫和輸出分析是提示工程師工作流程的三個核心步驟,他們需要充分理解大模型的結(jié)構(gòu)和運作原理,同時考慮到生成內(nèi)容的語境和風(fēng)格,以設(shè)計出高效、精準(zhǔn)的Prompt 和生成策略,從而提高生成內(nèi)容的質(zhì)量和效率。這些步驟需要不斷地進行迭代和調(diào)整,以逐步優(yōu)化和改善生成內(nèi)容的質(zhì)量和可用性。除此之外,還需要考慮用戶的隱私和安全問題,確保生成內(nèi)容不會泄露敏感信息或?qū)τ脩粼斐蓚ΑR虼耍谠O(shè)計和使用模型時,需要遵循相關(guān)的倫理和法律規(guī)定,保護用戶的權(quán)益和利益。
提示詞工程的核心是提示詞編寫,提示詞作為模型輸入可以很大程度上影響最終生成的效果,在文生圖方面尤為明顯。在與大語言模型交互的時候通常有兩種方式:一種是基于預(yù)訓(xùn)練的大語言模型的能力,通過預(yù)測下一個最高概率出現(xiàn)的詞生成內(nèi)容;另一種是要求大語言模型遵循指令產(chǎn)出內(nèi)容。前者適用于生成單輪問答以及文本創(chuàng)作;后者生成內(nèi)容的質(zhì)量往往取決于模型預(yù)訓(xùn)練語料的質(zhì)量,如果在語料中沒有進行思維鏈引導(dǎo),那模型的邏輯性和推理能力會較弱,就可以通過提示詞來引導(dǎo)模型進行推理。提示詞在挖掘模型能力上呈現(xiàn)出通用性,可制作成為模板供用戶選擇,從而覆蓋大多數(shù)任務(wù)。
提示詞編寫具備一定的技巧,這種技巧來源于訓(xùn)練語料的特點以及模型算法設(shè)計,可以總結(jié)為兩個書寫原則。
第一個原則是要書寫清晰而具體的指令。注意這里的清晰不等于簡短,因為通常情況下更長的提示會包含更清晰的模型背景,這些將會影響輸出內(nèi)容的細(xì)節(jié)性和相關(guān)性。為了能夠?qū)懗龇锨逦唧w原則的提示,可以利用以下4 種策略:
策略1:使用分隔符和標(biāo)點符號。符號可以是:```,""", < >, <標(biāo)簽>,</標(biāo)簽>,“”,‘’。如圖1 所示。

圖1 符號劃分待處理文字的范圍
需要注意,被處理的文本中不能出現(xiàn)矛盾的指令,否則處理結(jié)果將無法正常輸出。如圖2 所示。

圖2 指令沖突
策略2:要求生成結(jié)構(gòu)化輸出。輸出格式可以是HTML、JSON等,這樣可以方便讀取并寫入字典或列表中。如圖3所示。
策略3:檢查是否滿足條件。通過設(shè)置條件來檢查文本是否符合特定要求,這在模型分析方案可行性中十分重要。如圖4、圖5 所示。

圖4 步驟歸納

圖5 識別是否存在步驟
從圖4、圖5 結(jié)果中可以看出模型能夠自主判斷文本中是否存在步驟流程,該功能可以用于檢查步驟上是否存在缺失或邏輯錯誤。該部分邏輯判斷能力源自訓(xùn)練語料中包含的邏輯文本,若語料中含有邏輯鏈結(jié)構(gòu),則模型本身推理能力較好。
策略4:少樣本提示。通過給出正確的示例來指導(dǎo)模型如何工作。如圖6 所示。

圖6 學(xué)習(xí)樣本
第二個原則是給模型時間去“思考”。如果模型因為某些缺乏相關(guān)性的過程而給出錯誤結(jié)論,則需要重新構(gòu)造思維鏈來幫助模型得出最終結(jié)論。另外一個導(dǎo)致模型給出不準(zhǔn)確結(jié)論的原因是給模型處理的問題過于復(fù)雜,并且要求在短時間內(nèi)或以少量字?jǐn)?shù)生成,這樣會導(dǎo)致模型做出錯誤的推測。同理人類,如果向一個人提出一個復(fù)雜的數(shù)學(xué)問題,并且僅給出少量時間來解題,很難保證答案的準(zhǔn)確率。
以下是遵循這個原則的2 種策略:
策略1:指定步驟完成任務(wù)。如圖7 所示。

圖7 分步驟完成指定任務(wù)
策略2:在獲得最終結(jié)論前指導(dǎo)模型給出自己的結(jié)論。模型通常會在解決數(shù)學(xué)問題時不列出步驟而直接給出答案,這些答案往往是錯誤的。如圖8 所示,問題的正確答案為“360x+100000”,但是對于“450x+100000”的答案,模型給

圖8 模型直接給出錯誤答案
出的是正確評價,但這個問題在圖9中通過步驟引導(dǎo)得以解決。
按照步驟進行問題解決是目前挖掘AI 能力的有效方法。通過分析問題并逐步執(zhí)行相關(guān)步驟,我們可以有效地解決復(fù)雜的任務(wù)和挑戰(zhàn)。科學(xué)設(shè)計步驟往往基于兩個關(guān)鍵方面:
累積經(jīng)驗:經(jīng)驗是指在實踐中積累的知識和見解。通過不斷嘗試和實踐,我們可以發(fā)現(xiàn)哪些步驟和方法在解決問題時更加有效。經(jīng)驗可以來自個人經(jīng)歷、領(lǐng)域?qū)<业慕ㄗh以及先前解決類似問題的案例研究。通過反思和總結(jié)過去的經(jīng)驗,我們可以識別出成功的模式和實踐,從而更好地設(shè)計步驟。
明文規(guī)定:明文規(guī)定是基于先前的知識和指導(dǎo)準(zhǔn)則來制定的詳細(xì)步驟說明。這些規(guī)定可以包括行業(yè)標(biāo)準(zhǔn)、最佳實踐、操作手冊或培訓(xùn)材料等。明文規(guī)定提供了一種統(tǒng)一和標(biāo)準(zhǔn)化的方法,幫助我們規(guī)范和系統(tǒng)化地設(shè)計解決問題的步驟。這些規(guī)定可以是通用的,也可以是特定領(lǐng)域或任務(wù)的定制指導(dǎo)。
在科學(xué)設(shè)計步驟時,經(jīng)驗和明文規(guī)定相互補充。經(jīng)驗提供了實踐中獲得的直覺和洞察力,而明文規(guī)定提供了系統(tǒng)和結(jié)構(gòu)化的指導(dǎo)。通過結(jié)合兩者,我們可以設(shè)計出更加全面、可靠和有效的解決問題的步驟。
迭代式開發(fā)提示語是將一個主意從構(gòu)想到落地的主要途徑,主要包含的周期依次是:提出主意、完成提示(代碼或數(shù)據(jù))編寫、實驗獲得結(jié)果以及錯誤分析。如圖10 所示。

圖10 迭代式提示開發(fā)
首先寫出清晰具體的提示供模型生成結(jié)果,再分析生成結(jié)果是否達(dá)到預(yù)期,往往第一次生成內(nèi)容只能達(dá)到預(yù)期的30%。根據(jù)結(jié)果中不滿意的地方進行方案設(shè)計的完善以及提示語優(yōu)化,最終重復(fù)整個過程數(shù)次,直至達(dá)到方案的應(yīng)用要求。圖11 為根據(jù)一個椅子產(chǎn)品的概況建立產(chǎn)品描述的過程。

圖11 產(chǎn)品描述
若生成的內(nèi)容篇幅過于冗長,不符合簡潔描述要求,那么可以通過提示限制輸出內(nèi)容長度來獲得更高的概括水平,例如要求輸出精簡到50 字,結(jié)果如圖12 所示。

圖12 生成50 字描述
接著讓模型模擬生成其他兩種型號的椅子,如圖13 所示。

圖13 模擬生成
將三款椅子進行應(yīng)用場景指向型比較,選擇出最佳產(chǎn)品并給出選擇緣由,如圖14 所示。

圖14 產(chǎn)品比較
這種利用AI 來進行輔助決策的方法,適用于在給定條件下在多種方案中做出選擇,這需要建立評判標(biāo)準(zhǔn)來保證一定的公平性,通常需要將大量相關(guān)語料給模型進行訓(xùn)練,獲得相對垂直的生成能力。雖然可能會引發(fā)一系列社會層面問題,如在醫(yī)療、法律、金融領(lǐng)域的垂直應(yīng)用中可能出現(xiàn)安全問題,但是樂觀來看,這有利于幫助非專業(yè)人群從專業(yè)角度做出決策。
通過使用提示語書寫來指導(dǎo)模型執(zhí)行重復(fù)勞動、做出決策和進行模擬實驗,這種方法將對未來各行各業(yè)的生產(chǎn)方式產(chǎn)生深遠(yuǎn)影響。提示語書寫將為企業(yè)業(yè)務(wù)邏輯與模型能力結(jié)合提供了一種方式,具有很高的價值,通過固化提示詞模板來與模型交互,一定程度上也簡化了用戶操作,也有助于數(shù)據(jù)的合理使用。未來的編程語言很可能會變成人們?nèi)粘υ挼恼Z言,只需要通過語言描述,人工智能就能將項目轉(zhuǎn)化為現(xiàn)實。
本文旨在探討提示工程師如何通過Prompt 書寫來改進工作效率和生成內(nèi)容質(zhì)量。我們討論了輸入設(shè)計的重要性,強調(diào)了輸出分析的關(guān)鍵作用,同時通過深入研究和實踐,我們發(fā)現(xiàn)提示詞書寫是提高大語言模型性能和響應(yīng)能力的有效方法。未來,隨著技術(shù)的進一步發(fā)展和普及,提示工程師將在不斷優(yōu)化和創(chuàng)新的過程中發(fā)揮更重要的作用。這將為自然語言處理和人工智能領(lǐng)域帶來更多機遇和挑戰(zhàn)。我們鼓勵研究者和工程師們在提示工程中持續(xù)探索,以推動這一領(lǐng)域的進步和應(yīng)用。