如何寫好大模型提示詞(基礎)_2024-05-21

本系列文章介紹了作者在新加坡首屆 GPT-4 Prompt Engineering 大賽中使用的策略技巧

1.使用 CO-STAR 框架構建提示語
2.使用分隔符(delimiters)將提示語分段
3.使用 LLM guardrails 創建 system prompts
("guardrails" 指的是一種保護機制或限制,用于確保大語言模型生成的內容符合特定標準或要求,防止產生不準確、不合適或有害的信息。)
4.僅使用 LLM(無需插件或代碼)分析數據集——將介紹一個使用 GPT-4 分析真實 Kaggle 數據集的實踐示例

01 使用 CO-STAR 框架構建提示語

  • (C)Context:提供任務的背景信息

    有助于 LLM 理解正在討論的具體語境,確保其回答是相關的。

  • (O)Objective:確定希望 LLM 執行的任務是什么

    明確目標任務有助于 LLM 將其回答重點放在實現某一特定任務上。

  • (S)Style:指明希望 LLM 使用的寫作風格

    可以設置為某位著名人物的寫作風格,也可以是某個專業領域的專家,比如商業分析專家或首席執行官。這樣能夠引導 LLM 以符合用戶需求的方式和用詞做出回答。

  • (T)Tone:需要確定大模型回答用戶提示詞的態度

    這樣可確保 LLM 的回答與所需的情感或語境相呼應。例如,正式、幽默、感同身受等。

  • (A)Audienc:確定回答的對象

    根據回答對象的身份(如某一領域的專家、初學者、兒童等)量身定制 LLM 的回答,確保其在所需的語境中是恰當和可以理解的。

  • (R)Response:提供 LLM 回答的格式

    該功能可以讓 LLM 以下游任務所需的準確格式輸出。例如,列表、JSON(JavaScript Object Notation)、專業報告等。對于大多數以編程方式在下游操作 LLM 回答的 LLM 應用程序來說,JSON輸出格式是最理想的。

1.1 實際案例

假設您是一名社交媒體經理(social media manager),需要幫助起草一則 Facebook 帖子,以宣傳公司的新產品。

沒有使用 CO-STAR 的提示語(prompt)結果很垃圾,不展示了。

用CO-STAR:

#CONTEXT#

I want to advertise my company’s new product. My company’s name is Alpha and the product is called Beta, which is a new ultra-fast hairdryer.

#OBJECTIVE#

Create a Facebook post for me, which aims to get people to click on the product link to purchase it.

#STYLE#

Follow the writing style of successful companies that advertise similar products, such as Dyson.

#TONE#

Persuasive

#AUDIENCE#

My company’s audience profile on Facebook is typically the older generation. Tailor your post to target what this audience typically looks out for in hair products.

#RESPONSE#

The Facebook post, kept concise yet impactful.

02 使用分隔符(delimiters)將提示語分段

分隔符(Delimiters)是一種特殊的 tokens ,LLM 通過分隔符(Delimiters)將提示語分成不同的部分,以便確定哪些部分構成一個意義單元。這一點很重要,因為整個提示語(prompt)是以一長串 tokens 的形式到達 LLM 的。分隔符通過將提示語(prompt)的特定部分劃分開再以不同的方式對待,為整個 tokens 序列提供了合理的結構

值得注意的是,對于簡單的任務,分隔符可能不會對 LLM 的回答質量產生影響。然而,任務越復雜,使用分隔符對 LLM 回答的影響就越大。

2.1 將特殊字符作為分隔符

分隔符可以是任何通常不會一起出現的特殊字符序列,例如

  • ###
  • ===
  • >>>

所選特殊字符的數量和類型并不重要,只要它們足夠獨特,能讓 LLM 將其理解為內容分隔符而非普通標點符號即可。

下面舉例說明如何在提示語(prompt)中使用此類分隔符:

Classify the sentiment of each conversation in <<<CONVERSATIONS>>> as

‘Positive’ or ‘Negative’. Give the sentiment classifications without any other preamble text.

EXAMPLE CONVERSATIONS

[Agent]: Good morning, how can I assist you today?

[Customer]: This product is terrible, nothing like what was advertised!

[Customer]: I’m extremely disappointed and expect a full refund.

[Agent]: Good morning, how can I help you today?

[Customer]: Hi, I just wanted to say that I’m really impressed with your

product. It exceeded my expectations!

EXAMPLE OUTPUTS

Negative

Positive

<<<

[Agent]: Hello! Welcome to our support. How can I help you today?

[Customer]: Hi there! I just wanted to let you know I received my order, and

it’s fantastic!

[Agent]: That’s great to hear! We’re thrilled you’re happy with your purchase.

Is there anything else I can assist you with?

[Customer]: No, that’s it. Just wanted to give some positive feedback. Thanks

for your excellent service!

[Agent]: Hello, thank you for reaching out. How can I assist you today?

[Customer]: I’m very disappointed with my recent purchase. It’s not what I expected at all.

[Agent]: I’m sorry to hear that. Could you please provide more details so I can help?

[Customer]: The product is of poor quality and it arrived late. I’m really

unhappy with this experience.

>>>

上述案例使用分隔符 ### 進行分隔,分隔內容的標題 EXAMPLE CONVERSATIONS(示例對話)和 EXAMPLE OUTPUTS(示例輸出)用大寫字母與其他內容進行區分。需要進行情感分析的對話被劃分在<<<CONVERSATIONS>>>內,這些對話隨后在提示語(prompt)的底部直接提供給LLM,沒有任何解釋性文本,但由于分隔符 <<< 和 >>> 的存在,LLM 知道這些是它應該進行情感分析的對話

以下是來自 GPT-4 的輸出結果,直接輸出情感分析結果,沒有其他亂七八糟的內容,就是我們要求的那樣。

Positive

Negative

2.2 將 XML 標簽作為分隔符

使用 XML 標簽作為分隔符是另一種使用分隔符的方法。XML 標簽是用尖括號括起來的標簽,包括開始標簽和結束標簽。例如,<tag>和</tag>。這種方法是比較有效的,因為大語言模型(LLM)已經在許多 XML 格式的 Web 內容上進行了訓練,并學會了理解這種格式。不舉例了,因為XML我不熟。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,646評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,595評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,560評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,035評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,814評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,224評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,301評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,444評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,988評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,804評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,998評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,544評論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,237評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,665評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,927評論 1 287
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,706評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,993評論 2 374

推薦閱讀更多精彩內容