iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0
AI & Data

OpenAI 從提示工程(Prompt Engineering)到語義核心(Semantic Kernel)的實踐系列 第 7

提示工程(Prompt Engineering):Prompt 最佳實踐指引

  • 分享至 

  • xImage
  •  

前言

經過前面幾篇內容,將Prompt的技法從基本運用到目前幾個研究實驗論文所提出的進階技法,做了一番說明,本篇將引用OpenAI與Micrsoft官方推出的針對Prompt Engineering最佳實踐指引,做綜合性的匯總說明。

接下來的內容均以ChatGPT-4模型做為示範

Prompt 最佳實踐指引

  1. 將指令放在提示的開頭,並使用 ### 或 """ 將指令和上下文分開,另外Microsoft研究指出,在prompt開始時就告訴模型您希望它執行的任務,然後再共用其他上下文資訊或範例,模型可以生成更高品質的輸出。 (前面文章提到的基礎技法)

請寫一篇facebook貼文,主題是
"""
DDD理論與實務
"""

  1. 盡可能詳細提供上下文,並且對所需目標結果、長度、格式、風格等要具體指示 (前面文章提到的基礎技法)

請寫一篇facebook貼文,主題是
"""
DDD理論與實務
"""
字數500個左右,不需要過多的理論或名詞說明,可以適當的使用emoji符號

  1. 透過範例明確指定輸出格式 (前面文章提到的基礎技法)

請寫一篇facebook貼文,主題是
"""
DDD理論與實務
"""
字數500個左右,不需要過多的理論或名詞說明,可以適當的使用emoji符號
格式採用條列式,如下
1.xxxx
2.ooo
3.iiiiii
結論:.......

  1. 從Zero-shot開始,然後是Few-shot,當這2個效果都不好時,才考慮fine-tune。請注意在Few-shot的實作上,其實包含了使用embeddings方式。 (前面文章提到的進階技法)

  2. 不要使用過於模糊不精準的指示
    不好的用法

請用幾句話描述DDD是什麼

較好的用法

請用3~5點描述DDD是什麼

  1. 不要指示不該做什麼,而是要說該做什麼 ,呼應第2點的指引(前面文章提到的基礎技法)

請寫一篇facebook貼文,主題是
"""
DDD理論與實務
"""
貼文內容請滿足以下條件
1.500個字左右
2.不需要名詞解釋
3.請舉例說明
4.可以加入emoji符號

  1. 用於生成程式碼的情況,請用該語言的引討詞,其生成效果較好

請使用C#程式語言產生一個API 呼叫的範例
using

  1. 試著在prompt結束前,重覆主要任務的提示。

請寫一篇facebook貼文,主題是
"""
DDD理論與實務
"""
貼文內容請滿足以下條件
1.500個字左右
2.不需要名詞解釋
3.請舉例說明
4.可以加入emoji符號
好的,請開始創作facebook貼文

  1. 清楚的文字語法,在prompt裡使用清晰的語法,包括該有的標點符號、標題,會有助於傳達意圖,呼應第2,6點的指引

  2. 分解任務,將任務分解為較小的步驟,則模型通常表現的更好

  3. 調控 Temperature 及 Top_p parameters 參數
    Temperature 參數可以設置為0~2之間,數值愈高,則隨機產生更多的發散回應,較低的值則會更加穩定及具體,例如0.2,而Top_p參數與溫度相似,它也是控制著模型回應的隨機性,但它以不同的方式進行,一般建議擇一調整,而不是同時更改兩個參數。

#zh-tw,溫度=0.2
請寫一篇facebook貼文,主題是
"""
DDD理論與實務
"""
貼文內容請滿足以下條件
1.500個字左右
2.不需要名詞解釋

結語

以上這些實踐不外乎就是我們前幾篇的文章內容所告訴大家的技法具體實現,有些場景可能使用到組合技,而非單靠一招一式闖天下,才能駕馭LLM模型。接下來的文章就會開始進入到開發應用面,包含參數細節,以及不使用semantic kernel與使用semantic kernel的差異。

參考資料:
https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api
https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/advanced-prompt-engineering?pivots=programming-language-chat-completions

嗨,我是Ian,我喜歡分享與討論,今年跟2位朋友合著了一本ChatGPT主題書,如果你是一位開發者,這本書或許會有些幫助,https://www.tenlong.com.tw/products/9786263335189
這次的鐵人賽文章也會同時發佈於個人blog,歡迎關注我的blog : https://medium.com/@ianchen_27500


上一篇
提示工程(Prompt Engineering):Prompt 進階技法 Tree of Thoughts (ToT)
下一篇
Semantic Kernel的實踐:開發前準備-認識OpenAI與AOAI的模型
系列文
OpenAI 從提示工程(Prompt Engineering)到語義核心(Semantic Kernel)的實踐30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言