目錄
文 | 裴有恆 AIoT物聯網顧問與數位轉型教練
自從2022年11月30日OpenAI開放使用ChatGPT,生成式人工智慧的浪潮吸引了大家的目光,ChatGPT通過學習大量的文本數據,生成具有上下文語義的自然語言文本,使用者問它什麼,它都會回答。這種問它與跟它交流的文字,被稱為提示(Prompt),而提示不好,它回答的也不好,這往往得不到好的結果。特別是現在很多人都有使用ChatGPT,但是也會發現,它常常會一本正經的胡說八道。
提示工程的起始關鍵「提出好問題」
提出好的問題,也就是提示,讓ChatGPT這類的大語言模型給出需要的適合答案的工程方法,就是提示工程。關於提示工程,針對大語言模型,可以透過角色扮演,清楚指令、限制,並且清楚說明輸入與輸出,得出不錯的內容。提示的格式做法如下例:
- #說明:角色扮演,以及想要模型執行的特定任務或指令。
- #限制:包含外部信息或額外的明確上下文信息,幫助大語言模型理解問題的背景與前提,好引導語言模型更好地反應。提出「該」做什麼,而非使用「不該」做什麼。
- #輸入文字:用戶輸入的內容或問題。
- #輸出語句:明確指定輸出的類型、風格,或格式。可以要求模型以列表形式回答,或使用正式措辭或專業術語。透過範例明確指定輸出格式,輸出結果會更精確。
以下舉出ChatGPT針對此格式的案例:
結果:
提示工程要先設計提示,而這是一個透過迭代來獲得最佳結果的過程。一開始可以就自己知道的填入元素,接下來透過回饋來添加更多的元素和上下文調整,迭代來接近目標。
而因為大語言模型是用使用出現機率條件做文字接龍的方式,所以傾向使用常見詞彙及答案,如果要引導其生成創新和多樣化的答案,可以在提示中要求大語言模性「提供非傳統的解決方案」,或是「進行更深入的思考或推理」。也因為ChatGPT等國外的大語言模型大部分的中文資料是用簡體中文訓練的,很容易看到回答的答案是簡體中文。所以我們可以一開始就跟它要求「請用繁體中文回答」,不然就是多一步「請翻譯成繁體中文」。
延伸閱讀:Work Smart新時代:善用生成式AI創造工作高效能
「逐步推理」強化邏輯思維
另外,以分步驟逐步要求是不錯的作法。針對自然語言的的提示工程,透過「思維鏈」方法可以強化其邏輯性。
什麼是思維鏈呢?思維鏈是透過引導使用模仿思路的推理步驟,進而提高推理能力,這個方法有助於大型語言模型來做一些需要邏輯思維或多個步驟來解決的推理任務,例如ChatGPT一開始出來時,很快就被發現其在數學運算的回答正確率不佳,根本原因是ChatGPT做為語言模型就是擅長語言的接龍,邏輯運算並非強項,而利用思維鏈技法,就能有效改善其邏輯運算正確率。
最簡單的作法就是在提示中要求輸出時「請一步接一步地思考」。 談到「思維鏈」的起源,可以追溯到古希臘時期的蘇格拉底式問答法,這種方法透過一系列問答深入探討主題。這也類似Toyota強調用5個Why來獲得根因的作法。而「思維鏈」的特色,包括連貫性、深入性,以及靈活性,一一解釋如下:
- 連貫性:問題之間具有邏輯連貫性,而每一個問題都建立在前一個問題的答案之上。
- 深入性:透過一系列的問答,深入探索一個問題的多個層面。
- 靈活性:思維鏈的方法對大型語言模型可以應用於幾乎所有類型的問題上,不受主題或領域的限制。
又如我們使用了符合以上4部分的格式的提示作為第一步之後,接下來可以針對大語言模型做迭代回饋,也可以一次要求一些,以多步驟獲得清楚答案,而一步步要求,可以讓大語言模型了解每次提示的重點。底下顯示作法例:
- 第一步:先用4部分的格式作法問出第一回的答案。
- 第二步:針對第一回的回覆,追問差別或是步驟。
- 第三步:針對第二回的回覆,追問條件或是資源。
- 第四步:針對第三回的回覆,請它提供可⾏的做法與選擇。
- 第五步及以後步驟:針對之後回覆,再提供更多元素讓它改寫,多次迭代後會得到不錯的答案。
將目標「拆解成多步驟」提升計劃效率
接下來我們討論進階用法:用樹狀結構來做多階段思考,作法如下圖。
這個作法就是把要得到結果以步驟發展成多個步驟才得到最後的輸出,先把達成目標的方法一一拆解成多個步驟,這每個步驟都可以請ChatGPT等大語言模型回答出多個可能性的結果,然後我們再從這些可能性去選擇比較好的結果,再由這個結果為出發點問問題,來得到下一步驟的多個結果,然後在此下一步驟中選擇,這樣在每個步驟都可以由ChatGPT提供的多個方法中選擇。
例如慶祝情人節的方式,我請ChatGPT提供建議:
看完這10個方法,我選擇了在台南的浪漫之旅,再請ChatGPT給我10個在台南適合的浪漫地點。
接下來我要選擇住宿地點,決定在赤崁樓附近住,請ChatGPT提供10個建議。
這樣一個渡過情人節的浪漫計畫就出爐了。當然這個例子,只選擇了一個答案就往下了,而也可以選擇多個答案,再一一發展,最後找出自己最喜歡的方案。
生成式人工智慧在去年大放異彩,現在在圖文方面都有很不錯的發展,對程式設計也有很不錯的發展,今年很可能會在影片發展上有很不錯的突破,但是最重要的是,相關的工作效率大大提升,例如我準備上課的內容,時間就只要花到原來的1/10-1/3。效率之高,令人訝異!
不過生成式人工智慧是從已經發佈在網路上的大量資料去學習,運作時找出機率最高的,再根據使用者的回饋去調整權重,做出文字接龍或算圖,所以得到的結果是眾人智慧中機率最高的拼合,這樣在基礎的部分會有很好的表現,但是不能期望它能夠做到非常傑出。
而應用生成式人工智慧提高工作效率已經是現在進行式,而應用提示工程可以讓大語言模型產出想要的結果,如果企業擔心使用公開的大語言模型會有洩密的問題,可以跟微軟租用Azure OpenAI服務。就如一開始所說的:會使用生成式AI強化效率的人,將取代不會生成式AI的人,而全公司的人都不使用生成式AI,相關效率必然低落,這也代表公司的競爭力低落,不可不慎。