- 文獻閱讀:AnnoLLM: Making Large Language Models to Be Better Crowdsourced Annotators
- 1. 文章簡介
- 2. 方法介紹
- 3. 實驗考察
- 1. 實驗結果
- 2. 消解實驗
- 3. Consistency & Stability
- 4. 結論 & 思考
- 文獻鏈接:https://arxiv.org/abs/2303.16854
1. 文章簡介
這一篇文章是我司的另一篇關于GPT模型的Prompt工程調優的文章,不過這篇文章的方法挺有啟發意義的,而且這篇文章的工作本身也和我最近在做的工作比較契合,因此打算在這里對這篇文章進行一下整理。
這篇文章的核心工作如前所述,是一個prompt調優的工作,用于使得GPT任務在分類任務的標注上獲取更好的效果。
而這篇文章的核心思路其實還是對齊,他在文章中引入了一個叫做explain-then-annotate
的方法,算是一個few-shot的變體,不過不同于few-shot的直接給答案或者人工給一些答案,文中采用的方式是先給模型一些人工標注的ground-truth,然后要求模型對此生成explanation來作為few-shot的內容。
用這種方式,某種意義上可以強制LLM對齊任務的判斷標準與人的標準相同,從而使得模型在標注任務當中能夠收獲更好的效果。
2. 方法介紹
下面,我們來具體看一下文中的prompt的具體構造方法以及給出一個具體的prompt例子。
首先,我們來看一下AnnoLLM的整體的設計,這個可以用文中的圖表進行展示:
其中,左側是人工標注的流程,而右側則是AnnoLLM的過程。
可以看到,其主要是包含了兩個步驟:
- 給出task description以及一些標注數據,讓模型來說明標注這些label的理由;
- 將上述task description,樣例數據以及模型回答的理由作為few-shot prompt輸入給模型,然后要求模型回答目標問題。
其具體的一個樣例如下表所示:
其中,粗體的部分就是預先給到LLM答案之后由LLM自己生成的explanation,其具體的prompt如下:
通過這種方式,我們就可以迫使模型去對齊ground truth當中人類的判斷標準,從而獲得一個更好的效果表達。
3. 實驗考察
下面,我們來看一下文中給出具體實驗結果。
1. 實驗結果
文中實驗主要使用了如下三個數據集:
其中:
- QK數據集是一個query與keyword的relevance判斷問題;
- BoolQ數據集是一個針對doc以及question的是非判斷問題;
- WiC數據集則是判斷同一個詞在兩個sentence當中是否有相同的語義;
給出三個數據集下的實驗結果如下:
-
QK
-
BoolQ
-
WiC
可以看到:
- 在三個任務當中,模型都獲得了很好的效果。
2. 消解實驗
為了驗證這個CoT方法的有效性,文中還給出了消解實驗的實驗結果如下:
我們首先來看一下各組實驗都是什么:
- baseline,先用label生成explanation,然后在explanation之后拼上label進行強調;
- 先用label生成explanation,然后刪掉句首的label內容,只保留explanation,但是在句尾拼上label的內容;
- 先用label生成explanation,然后只將explanation拼到label之后;
- 和1在格式上保持一致,但是在生成explanation時并不事先告訴模型ground truth,而是讓模型自由發揮,然后在模型自由生成的explanation之后拼上ground truth;
- 和4在格式和內容上保持一致,但是對explanation通過一些簡單的過濾規則進行一些后處理,去除掉那些和ground truth不一致的解釋。
可以看到:
- 實驗2,3主要是在考察格式對結果的影響;
- 實驗4,5主要是在考察explanation的生成方式對結果的影響;
結論來說:
- 比較1和2,可以看到,句首的grouth truth對于模型的理解有很重要的作用,刪除會對模型效果有所影響,即使句末會給到真實的ground truth也一樣;
- 比較1和3,我們注意到句末的ground truth label的拼接對于模型效果的影響是比較微弱的;
- 比較1和4,我們發現,如果不使用label讓模型生成explanation,事實上并沒有起到標準對齊的效果,模型infer的效果下降會很明顯;
- 比較4和5,我們注意到即使通過一些規則過濾掉一些明顯與ground truth不一致的explanation的情況下,模型效果依然無法恢復到baseline的水平,這可能由于某些問題模型自身始終無法給到正確的explanation,因此無法通過簡單規則過濾得到ground truth對應的解釋。
3. Consistency & Stability
最后,文章中還考察了一下這一方法的一致性和穩定性,具體來說,就是以下兩個點:
- 一致性:生成的不同explanation作為prompt是否都能獲得較好的效果;
- 穩定性:不同的few-shot上面CoT是否都能穩定的獲得收益;
給出文中的具體實驗結果圖如下:
可以看到:
- CoT的提升效果是穩定且一致的。
4. 結論 & 思考
綜上,這篇文章依然還是一個prompt調優的工作,不過確實感覺很有啟發意義。
且核心的思路根據我的理解依然還是在于對齊,雖然文中稱之為CoT,不過我個人覺得不是特別合適,因為并沒有看出來Chain的效果,更多的感覺還是一個個單例來迫使模型對齊了標準,從而提升了模型判斷與人類判斷的一致性。
而另一個好的點在于這篇文章的方法論事實上是比較泛化的,基本上可以無縫銜接到所有的分類問題當中,而且實現上也非常簡單,倒是可以在我們自己的工作中也試試看,應該可以獲得比較好的效果。