AIGC人工智慧生內容, 好康相報順手教, 日常生活那一集, 現代社會面面觀, 突然反省的那集

【揭秘】不用訓練模型,照樣讓ChatGPT聽你話!5個強化語言模型的絕招

今天心血來潮想要跟大家分享一些不訓練模型,就能夠強化語言模型能力的方法。這篇文章的重點不是教大家如何針對特定任務寫prompt,而是希望大家能夠把語言模型想像成一個剛認識你的新人助理,透過一些技巧,讓他在協助你的時候可以發揮更大的能力。

我大致從五個不同的面向,來跟大家分享這些強化語言模型的方法:

  1. 神奇的咒語
  2. 提供更多資訊
  3. In-Context Learning
  4. 叫模型思考和解釋
  5. 增強式學習找咒語

讓我們一個一個來看。

一、神奇的咒語

在這個世界上,有一些神奇的咒語可以強化模型的能力,雖然不一定對所有模型和任務都有效,但還是值得一試。比如:
•Chain of Thought(COT):叫模型「Let’s think step by step」,可以大幅提升數學問題的正確率。
•情緒勒索:跟模型說「這件事情真的對我的生涯很重要」,也能提升他的表現。
•有禮貌沒用,直接明確地告訴模型你要他做什麼,反而更有效。
•給小費或處罰的承諾,居然也有用。
•要求模型給出沒有偏見、不帶刻板印象的答案,也能影響結果。
我也推薦大家有空可以去讀一篇論文《Principal Instructions Are All You Need》,裡面收集了更多的咒語。不過他也提醒,隨著模型的進化,有些咒語的效果可能會減弱。比如叫GPT-3.5思考,對它的幫助就沒有對之前的模型那麼大了。

二、提供更多資訊

在這裡我來舉兩個例子來說明有時候模型沒辦法給出正確答案,是因為我們給的資訊不夠充分。
第一個例子是問「NTU是什麼的縮寫」。如果不說明是從台灣人或新加坡人的角度,模型就很難判斷NTU是指台灣大學還是南洋理工大學。

第二個例子是,如果我們想讓GPT-4列出歷代GPT模型的參數量和訓練資料,光靠它現有的知識可能不足以生成完整的表格。但如果我們把相關的論文資料提供給它,它就能正確地填寫出我們要的所有資訊了。

所以在使用語言模型的時候,多給一些背景資訊,有助於得到更精準的結果。

三、In-Context Learning

In-Context Learning 指的是 通過提供一些範例,來引導語言模型生成我們想要的答案。這個概念在 GPT-3 的論文裡就有提到。因此我在這舉了一個情感分析的例子:

如果我們想讓模型判斷一個句子是正面或負面的情感,就可以先給它一些例子:
•「今天天氣真好」→ 正面
•「今天運氣真差」→ 負面
•…

給了這些例子之後,模型就能夠按照我們的要求,對新的句子進行正面/負面的判斷。
不過我稍早文章也提到,在2022年,有研究認為模型其實沒有真正「理解」這些例子,提供例子之所以有效,可能只是因為例子限縮了模型輸出的範圍,而不是模型真的學會了。

但是在2023年,另一篇研究發現,更先進的大模型,比如 Google 的 PaLM,是真的能從例子中學到東西,對例子的「理解」已經相當不錯了。當例子中故意包含了錯誤的標註時,PaLM 的輸出也會跟著犯錯,證明它確實受到了例子的影響。

所以隨著模型變得越來越強,In-Context Learning 的效果也越來越真實了。

四、叫模型思考和解釋

有時候叫模型在給出答案的時候,也給出thinking process(思考過程)和explanation(釋例),往往能讓結果更準確。他舉了評改作文的例子:如果讓模型先說明為什麼要這樣打分,再給出分數,就能讓打分更接近人類老師。

不過李老師也坦言,這個技巧對某些模型的效果可能沒那麼明顯。比如對2022年的GPT-3而言,要求它解釋反而可能讓準確率下降。所以還是要因模型而異。

五、增強式學習找咒語

最後,我就想到來提出了一個有趣的想法:我們能不能用AI來幫我們找新的咒語呢?
但看過論文後,就知道這就要用到增強式學習(RL)了。具體來說,就是訓練一個 RL agent,讓它去嘗試各種咒語,看哪些咒語能讓目標模型的表現提升,然後再去優化那些咒語。

在論文中也舉了一個實驗的例子:如果我們想要讓GPT-3生成更長的回答,可以讓RL agent去尋找最佳的咒語。實驗發現,用「喂喂喂…」這樣毫無意義的咒語,居然就能把回答長度從18個字提高到34個字!
當然,我認為,這種無厘頭的咒語可能只對GPT-3有效,到了GPT3.5就未必管用了。不過這個例子說明,用AI來找咒語,有時能發現我們意想不到的魔法。

六、與其說1500字,不如說寫60句,每句平均25字

是否遇過常常GPT寫文章總達不到你的要求?那是因為GPT在辨別單位是使用”Tokens”來計算,但Tokens每個語言使用的轉換又不一,例如同樣是簡體中文和繁體中文我們都看得懂沒差,但是在GPT而言,使用簡體中文平均可以節省15~20%tokens,使用英文是消耗最少tokens的。因此要GPT說寫”1500個字”,依照上面所述給予充分資訊,你可能得說:”寫滿1500個簡體中文字,不包含標點符號”。

但也有個簡單的方法控制GPT寫文章的篇幅長度,GPT雖然不擅長計算字數,因為常常英文單字和中文單字的計算方法搞混,但是GPT對於有幾句話、然後要他每句話中算幾個中文字倒是挺在行;因此與其對GPT說這篇文章要給我寫滿1500個字,倒不如說:”這篇文章你要寫出60句,平均每句要有25個中文字”,這樣出來的結果相對就會在你預期範圍中了。

以上就是我跟大家分享的五個強化語言模型的方向。最後總結:
1.試試神奇的咒語,但不要太依賴它們
2.提供更多背景資訊,幫助模型理解任務
3.用例子來告訴模型你想要什麼樣的結果
4.讓模型解釋他的思路,可以提高準確性
5.用AI來幫你找到更厲害的咒語

我一直認為覺得,這些方法的共通之處,就是把語言模型當成一個可以溝通、可以學習的助手,而不只是一個單純的工具。因此鼓勵大家一起來挖掘語言模型的更多潛力吧!


發表迴響