iT邦幫忙

2023 iThome 鐵人賽

DAY 20
0
Software Development

軟體工程師必備的AI工具力—— 全方位實戰應用X核心Mindset養成系列 第 20

Prompt的精進之道(3):進階技巧全攻略,專業玩家必修!

  • 分享至 

  • xImage
  •  

我們進行製作自己的Prompt模版前需要知道有哪些設定,因此,如果你已經在其它地方看過類似的文章,強烈建議你還是把段落小標快速掃過一遍。(雖然我也看過很多次了,但我也會努力💪💪)

.

一眼秒懂的「提問」 馬上見效的4個秘技!

我們曾在《Prompt的精進之道(1):如何提一個好問題?》歸納出「好問題」的三個要素:

1. 充分告知必要的背景資訊
2. 告知目的、想解決的目標
3. 分段引導提出問題(如果問題過於複雜)

然而對較為不善表達的人來說,這些原則需要一點時間摸索。因此,這裡想分享我平常會使用的提問技巧,只要你願意跟著做,一定會有肉眼可見的改善!

.

1. 舉例

舉例是最好讓對方知道你想要什麼的溝通方式之一了!

不曉得大家有沒有跟設計溝通網站Mockup初稿的經驗?通常設計師會希望對方可以提供一些網站、範例畫面當作參考,盡量避免畫出來的設計稿和我們想像落差太大。這其實就是舉例所帶來的好處——可以更明確提供對方想要的東西、降低雙方認知的差距!


【圖】「舉例」的潛台詞應該就是這個意思XD (圖片來源
.

以我最近的例子來說,因為要寫鐵人賽的關係,我很常請ChatGPT幫我想標題。我通常會先給一個很白話的版本,再請它幫我優化並且多想幾個吸引人的標題。由於ChatGPT因為從初版標題知道該段落的關鍵字是什麼,因此給出來的標題會比較接近我想要的。

給出了一個樣板,讓ChatGPT會朝這個方向去思考、模仿,這樣可以大大提升回答的命中率。這是我遇到比較複雜的問題時,最常使用的技巧之一。
.
.

2. 跟 ChatGPT 做 Double Check

大家應該都有去過麥當勞吧?不管再忙,服務員在結帳前一定會復誦一次你點了什麼,最後才按結帳。這其實就是很簡單的「Double Check」。

我自己平常在和PM/後端對規格,或是和同事討論程式碼的解法,我通常也會在最後「用自己的話總結一下結論」。請注意,一定要用「自己的話」講一遍讓對方確認。這樣才能確保雙方的認知是一樣的。

我最常跟 ChatGPT 做 Double Check 是在實作卡關問 ChatGPT 的時候,通常這類問題會一來一往很多個回合,所以很常發生我已經在講E的情境,但ChatGPT突然回我B情境要做的調整(然後我不知道它在回B,因此雙方雞同鴨講了一陣子orz)。

跌過幾次跤後,我學聰明了,會適時地請它告訴我目前情況是如何,或是我在打指令的時候會特別強調背景資訊。此外,接收到來自ChatGPT的新知但我又似懂非懂的時候,我也會以我的話複述一遍,確保我真的理解了。

一起試著當個「確認控」吧!
.
.

3. 回饋很重要!

大家應該有聽過類似的說法:「讚美ChatGPT會提升它的表現!」

這句話說對了一半。

這種說法似乎讓人以為ChatGPT像人一樣愛慕虛榮,所以你要多講好聽的話讓它高興,它才會給你更精確、更完整的回覆。我們要知道,我們與ChatGPT的新視窗都是一個新的對話,在這個對話裡ChatGPT會根據一來一往的對話中去調整、去學習。

因此,並不是你讚美了ChatGPT所以提升了它的表現。而是因為你給予了「正向回饋」,ChatGPT透過學習更了解你的需求、你的情境,因此更能夠提供符合你期待的回覆給你。相反的,當ChatGPT給了不符你預期的東西,你也要直接給予反饋給它,才能適時的調整。這就像我們聽課的時候,講師都希望台下的學員可以多給一點反應,這兩個是相同的道理。


(圖片來源)

.
.
.


掌握Prompt的進階設定:風格、用途、多元格式

1. 風格:

(1) 語調、特定人物

比方說,你可以指定ChatGPT以比較嚴肅、詼諧的風格來回答問題,也可以指定模仿知名人物的說話口吻。身為工程師,這個設定對我們來說比較少用到。但我們總是有需要產出文字的時候,比方現在我們要分享技術文章的時候!

之前提過我會請ChatGPT幫我潤飾文章,或是想標題。剛開始會覺得有點怪,有些句子會有英文寫作的影子——英文的文法、語句再直譯過來。所以後來,我會在指令特別備註「請用台灣人的口吻」。產出來的版本好多了!我們看一下下面的例子:

https://ithelp.ithome.com.tw/upload/images/20231004/20136292LaCHNCvL2H.png

【優化標題(一般)】

  1. 如何用Custom Instructions讓Prompt更智能:一勞永逸,不再重複角色指令
  2. 掌握Custom Instructions:讓你的Prompt更高效,不再手動重複
  3. 運用Custom Instructions優化Prompt:告別繁瑣的角色指令

VS

【優化標題(指定以台灣人的口吻)】

  1. 一招搞定!用Custom Instructions讓Prompt更聰明,不再手忙腳亂
  2. 再也不用每次都敲角色指令!Custom Instructions教你省時又省力
  3. Custom Instructions大解密:不再煩躁,讓Prompt聽你的話

.

(2) Tempature設定

講到風格不得不提到Tempature設定。如果你有裝一些外掛,應該很常在客製化的設定看到這個字眼。

https://ithelp.ithome.com.tw/upload/images/20231005/20136292FiunYsrg5k.png

https://ithelp.ithome.com.tw/upload/images/20231005/20136292NUTL0rLn25.png

Tempature是一個介於0-1的值,用來控制大型語言模型回答的隨機性。當愈趨向0的時候,它會選擇機率最高的詞彙,這使得它的答案有較高的正確性,但同時語調也會比較嚴肅、嚴謹。反之,到愈趨向1的時候,回答的口吻會比較活潑,它的回答會具有較高的多樣性,但與此同時正確性也會降低。

目前在ChatGPT的使用者介面沒有開放這個設定,你必須使用GPT API才能在傳值的參數去控制它。除此之外,一些外接大型語言模型API的外掛也可能提供Tempature的設定。

.
.

2. 用途

前面我們提到,不同用途會影響ChatGPT提供的資訊。假設你正在寫技術文章,你可以在這裡的「用途設定」,告知ChatGPT你是寫技術部落格,這樣它提供給你的文字會比較有趣。當然,你也可以說你正在寫一篇學術論文,它就會給你看起來很正式的文案。

常見的用途,你還可以指定:求職信、履歷、工作報告、企劃書、新聞報導、廣告文案......等等。所以,下次當你要找新工作的時候,就不用再為履歷、自傳等等絞盡腦汁啦!先寫一個大概的版本,再請ChatGPT幫你做優化,可以事半功倍。

.
.

3. 格式

(1) 善用特定格式 整理資訊一把罩

比方說列點式、表格、流程圖......等等都是格式的一種。

我用ChatGPT進行研究特定的知識點的時候,我習慣會在對話的最後請它整理一份列點式的摘要給我,方便我直接貼到數位筆記本上,後續翻閱。以下就以我查詢tempature的定義做示範:

https://ithelp.ithome.com.tw/upload/images/20231005/20136292NCk2eQK7zl.png
.

當然,用表格來呈現也會更一目了然:

https://ithelp.ithome.com.tw/upload/images/20231005/20136292x2HpYAoVHT.png
.

(2) 圖形溝通的媒介——Mermaid

大家有沒有碰過需要跟ChatGPT「以圖形來溝通」的情況?

例如你想請ChatGPT幫你粗估工時(但你希望它以甘特圖的方式回覆給你),又或者你想以圖形的方式告訴ChatGPT你現在的網站架構,這種時候就可以用Mermaid這個語法來進行。

https://mermaid.js.org/assets/Gantt-excluded-days-within.3ac81246.png
(圖片來源)
.

什麼是Mermaid呢?

Mermaid是一種專門用來描述圖表的語言,因為它高度跟Markdown兼容,可以在不需要引入任何外部服務的情況下,靠著自己特有的文字符號規則轉換成圖表。所以很適合在Markdown文件插入Mermaid來呈現圖表,例如:甘特圖、流程圖、心智圖、時間軸等等。

我先前曾在《新手必看的詠唱魔法(2):同場加映SiteMap、技術可行性評估》的時候展示過網站Sitemap,它其實就是用Mermaid產生的圖表。給大家看一下原生語法和呈現出來的圖表:

【原生語法】
https://ithelp.ithome.com.tw/upload/images/20231005/20136292ehMd7jtlqf.png

【在Markdown的圖表呈現樣式】

【圖】備註一下,因為IT邦幫忙的文字編輯器不能使用mermaid,所以我是用截圖來呈現在Markdown文件下會呈現的樣子

.
如果你有興趣可以到官網看看更多圖表的Mermaid寫法。

.
.
.


為什麼你還在手打角色指令?一步到位的Custom Instructions攻略

其實提升模型表現還有一個很常見的設定——「角色扮演(Role Play)」。用法就是在最一開始為它指定角色,像下面這樣:

你是一位資深前端工程師,你的目標是幫助我解決工作上的問題,
同時會考慮到程式碼的可讀性、維護的難易度。
以下我不會再重複這個指令

.

但是,每開一個新視窗就要重打Role Play指令,實在很麻煩。這時候你就可以利用ChatGPT內建的「Custom Instructions」,去做一次性的設定。

【設定的位置】
https://ithelp.ithome.com.tw/upload/images/20231005/20136292SUvxoVcY5I.png

【Custom Instructions視窗】
https://ithelp.ithome.com.tw/upload/images/20231005/20136292hH8aCdU0Uf.png
【圖】如果大家沒什麼想法,可以先按照ChatGPT的提示去寫喔
.

Custom Instructions的設定有兩題:

  1. 您希望ChatGPT了解哪些關於您的資訊,以便提供更好的回答?
  2. 您希望 ChatGPT 如何回覆?

由於我最近很常用ChatGPT幫我優化文章,因此我在第一個問題寫:「我正在寫一個技術部落格,主題聚焦在如何應用AI工具在軟體開發工作上。」以此省去我每當一個新視窗都要做「背景資訊」的描述,並且在第二題告訴它:「當我問你有關寫作的問題時,請以怎麼寫較能吸引人的方式給我建議。」這樣ChatGPT在幫我潤稿的時候,會知道我預期的優化方向——讓我的文字更吸引人。

.
.
.


今日回顧

希望今天的介紹對大家有收穫:)


上一篇
Prompt的精進之道(2):「Prompt愈短愈好」的長度迷思?
下一篇
Prompt的精進之道(4):建立自己的Prompt模板,讓你的工作更有效率!
系列文
軟體工程師必備的AI工具力—— 全方位實戰應用X核心Mindset養成30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
金金
iT邦新手 1 級 ‧ 2023-10-05 10:00:02

很實用!這樣就不用每次都重複打prompt了

我要留言

立即登入留言