上課筆記系列(3) — ChatGPT Prompt Engineering for Developers(3)推論/轉換

Martin Huang
May 10, 2023

--

課程由此

課程筆記索引:

(1) 簡介及互動基本指引
(2) 迭代和總結
(3) 推論和轉換 — 本篇
(4) 擴充和聊天機器人/結語

方便有興趣的朋友點閱。

推論

推論是一種理解文意的展現。例如:根據文字段落,判斷情緒;根據影評判斷正向/負向。在傳統的機器學習/深度學習裡,有很多模型或演算法可以解決這樣的問題,但必須蒐集資料、上標註,訓練模型,然後部署,中間必須花費很多時間精力來完成這個任務。如今,你可以用chatGPT搭配批次推論的方式,有效率的完成它。不需要標註資料、不需要訓練與部屬模型。

來看看這個例子:一個對於產品的回饋使用如下

回饋:我需要一盞檯燈,剛好在這裡找到一個有額外收納空間,可快速運達,又不貴的。檯燈在運送過程中破損了,但公司很快寄一盞新的來給我,只比預計晚了幾天而已。Y是一家很棒的公司!

請推論引號中這段留言的回饋為正向/負向情緒。 "{回饋}"

刻意按照程式裡的寫法照翻,目的是再提醒一次大家:可以用引號標註要模型處裡的文字段落,讓模型集中在這段,也避免injection。忘記的人可以再到第一篇看看囉。

模型很快就輸出了:

這段回饋是正向的。

若想要模型輸出只有「正向」或「負向」,以便程式後處理,可以在指示裡面加上:

輸出單字,正向或負向。

模型會輸出:

正向

我們也可以要求模型去揣摩情緒。例如同樣這段文字,我們改要求:

請列出一串代表這段文字的情緒。串列,長度不超過5。並將答案轉成小寫字,以頓號分開輸出。

輸出:

快樂、滿意、感恩、印象深刻、滿意

或者,希望模型關注特定情緒,例如憤怒:

請問這段文字有表現出憤怒嗎?回答有或無。

回饋:無。

以前,如果要用監督式學習完成這種任務,真的後面要花的時間遠大於此。(吳恩達感嘆著,我也跟著一起感嘆…XD)透過ChatGPT,你可以很有效率的節省時間。

抓取關鍵字

這個也是自然語言裡蠻常見的研究題目:事實上,從文字探勘(text mining)時代就已經很多這種嘗試了。給一段文字,要模型抓出指定的關鍵字。課堂上還是用剛剛那段檯燈的回饋為例:

請找出
— 購買的產品
— 公司名稱

輸出請以JSON格式,key為「產品」和「公司」。若資訊不存在,請輸出「不明」。內容越簡短越好。

模型輸出:

{
"產品":"檯燈";
"公司":"Y"
}

將上面綜合起來,其實可以在一個輸入指示就完成:

找出以上文字段落
— 回饋(正面或負面)
— 有表現出憤怒情緒嗎(有或無)
— 購買的產品
— 公司名稱

輸出請以JSON格式,key為「回饋」、「憤怒」、「產品」和「公司」。若資訊不存在,請輸出「不明」。內容越簡短越好。

輸出:

{
"回饋":"正面";
”憤怒”:"無";
“產品”:”有額外收納空間的檯燈”;
“公司”:”Y”
}

下標題

這是另一種推論展現的方式。給模型一段文字,要它下標題。其匙也不一定是下標題,可以是要求文字段落討論的主題。文字段落有時涉及不只一個主題,所以我們的輸入指示可以寬鬆一點:

請找出這段文字的五個主題,每個主題不超過兩個字。輸出以逗號分開。

然後,這些主題就可以變成分類標籤,用來幫助你將接下來的其他文章做分類標註。(天啊…這以前超曠日廢時的)

分類標註串=[a,b,c,d,e]
請確認文字段落是否含有以上分類標註串的主題。以0和1來表示。

輸出:

a : 1
b : 0
c : 0
d : 1
e : 1

然後再從裡面過濾標籤,篩出你要的文章。

綜合以上看起來,LLM模型對於文字探勘、語意分析的程度,稱得上是爐火純青,確實是目前所有其他種類自然語言模型所難以企及的。

轉換

這個算是我最早利用chatGPT拿來協助的工作項目了。改寫文字段落、找出文法或拼字錯誤、翻譯成另一種語言等等,都屬於轉換。其實前面提到,將輸出以特定格式呈現,也是轉換的一種。

翻譯

指示輸入很直觀,就是告訴模型翻成哪種語言(也可以同時翻譯多國語言、或批次把不同語言的文字翻譯成同一種語言)。你也可以問模型,這是哪種語言。甚至,它還可以告訴你,同一句話在同個語言裡,正式或非正式的說法(有些語言具備這種特性)。

語氣轉換

將一段文字用不同的方式書寫。例如:

將引號中的段落文字寫成商用郵件。"幫我確認一下立燈"

然後模型就會幫你寫成郵件了。這是秘書功能吧(誤)

格式轉換

例如:將JSON轉成HTML。覺得這對我可能有潛在價值,因為不用學前端就可以架網頁了(x

校錯

也很常用的功能。對於非母語的人而言具有相當實用性。利用python的redline package,還可以營造出刪改的效果:

出處:https://learn.deeplearning.ai/chatgpt-prompt-eng/lesson/6/transforming

也可以搭配格式轉換,要求模型以符合某些文章規範格式(如:期刊)書寫。這根本是為寫論文的人設計的,英修公司要氣到跳腳了!

下一篇,要來討論最後的部分,也是開發者比較有興趣的主題:擴充和問答機器人。

--

--

Martin Huang

崎嶇的發展 目前主攻CV,但正在往NLP的路上。 歡迎合作或聯絡:martin12345m@gmail.com