延續上週提到的,「有哪些不訓練模型的情況下,能夠強化語言模型的能力」,其中第 3 個方法是屬於「把複雜任務進行拆解」
當今天想要讓語言模型幫忙處理一項複雜的任務,例如直接說:「做一份關於生成式 AI 的報告。」但對於複雜的任務,可能模型回答的效果不會很好,因此可以透過拆解任務的方式。
以這個例子來說,就是讓語言模型先列出,這一份報告的大綱(如:語言模型的種類、方法等等),有了大綱的產出,再將文字做摘要,進一步問說這份報告的內文,可以增加語言模型回答的品質。
這個方法與上週提到,「跟模型說一步步執行(step by step)」會增加效果的原理類似,因為同樣是讓他把一個大問題去做一步步執行,而單就這個方法的話,是比較適用於舊的模型,因為較新的模型漸漸會預設去對問題一步步執行了。
如果把模型最初的回答,再回傳給模型說「幫我檢查這個回答是否正確」,模型有可能會發覺到自己的回答錯誤並進行修正,以人類的行為來說,就是「語言模型可以自我反省」,這是因為對於一些問題來說,檢查的能力比解決問題的能力還要容易(如:雞兔同籠問題)
這邊老師示範詢問 GPT-4 「請介紹台大玫瑰花節」(註:台大只有杜鵑花節),結果發現 GPT-4 會順著提問來掰出介紹,這是因為大型語言模型主要是在做文字接龍,所以會產生出不存在的東西。
接著再詢問「請檢查上述資訊是否正確」,發現他能夠找到原先回答的錯誤,並進行修正。
這邊老師好奇說,會不會每次詢問他都會承認自己錯,而不是真的知道自己錯,因此這邊就再讓他檢查一次。結果發現他知道自己提供的資訊是對的,只是有地點誤植了,看起來是真的有辦法去檢查錯誤。
但這項能力比較出現在較新的模型(GPT-4),這邊用同樣方式問了 GPT-3.5 ,同樣是瞎掰了一個故事,但讓他檢查的時候,發現他只是口是心非的道歉,接著還是以同樣的答案來進行回覆。
接著老師提到的這篇 paper 我覺得很有趣,透過詢問語言模型一個違反道德的問題,如果讓語言模型去檢查自己的回答,最終可以讓他產出一個比較符合道德規範的答案。中間這段過程,也就是 AI 一開始的回答人類(使用者)是看不到的,只有在最後看到經過檢查修正後的結果。
至於這篇 paper 的 Constitutional AI 是如何在自我反省中學習,又是另外一個故事了,這邊老師就沒有再深入。(註:這篇 paper 是近期很紅的 Claude 團隊所發表的)
前面有提到,語言模型其實就是在做「文字接龍」,依序輸入的字來產生出下一個字的機率,接著再擲一個骰子決定下一個字為何。正是因為會擲骰子的關係,讓每一次回答的答案並不一樣
因此有一個方法叫做 Self-Consistency,透過將同一個問題詢問多次,產出多次的結果,這些結果有可能不一樣,最後取出現次數最多的結果作為最佳答案。
前面提到的這三個方法可以組合在一起,這邊就舉了一個例子,假設要解決一個複雜的任務
前面提到,語言模型就是在做「文字接龍」,這也就會導致語言模型容易掰出一個自己的答案,像是讓 GPT-3.5 做算術,可能答案並不正確。或是請他介紹 OpenAI 新發表的 Sora,如果他並沒有連網的話也是瞎掰出結果。
為了優化這點,如同人類的發展一樣,可以透過工具來強化能力。這邊介紹 搜尋引擎、寫程式、文字生圖 AI (DALL-E) 與 GPT Plug-in (不過 Plug-in 著墨較少,沒有特別記)
透過語言模型上網搜尋到的資訊,結合自身的文字接龍能力,可以讓他的回答較為客觀、正確,並且附上資料來源
透過讓語言模型寫程式的方式來回答問題,就不用只依賴文字接龍的能力。以雞兔同籠的問題來說,GPT-4 會直接寫程式並執行以解決這個問題;還有上一次的請求「請說”哈哈哈”一百次」,GPT-4 也是直接使用程式來解決這個問題。
現在語言模型可以使用 DALL-E 來產生圖片,如 GPT-4,老師在去年曾經使用 ChatGPT (當時是 GPT-3.5) 結合 Midjourney,來進行文字冒險遊戲,不過現在已經可以直接使用 GPT-4 來完成了。
其實也一樣是使用文字接龍,在其中引入了呼叫工具的能力,想要深入了解的話,可以看老師去年的其中一節課〈能夠使用工具的 AI〉
上個月發表的這篇論文有提到,如何讓語言模型把各個工具使用到極致,同樣也是把各種技巧給組合起來,這邊老師就沒有再深入討論。而下一堂要講的為最後第 5 個「不訓練模型能夠強化語言模型的能力」的方法。
-
這裡也找的到我歐👇
Instagram: ezra.share.injoy
Matters: ezra.share.injoy