GPT-4終結(jié)人工標注!AI標注比人類標注效率高100倍,成本僅1/7
大模型滿天飛的時代,AI行業(yè)最缺的是什么?毫無疑問一定是算(xian)力(ka)。
老黃作為AI掘金者唯一的「鏟子供應商」,早已賺得盆滿缽滿。
除了GPU,還有什么是訓練一個高效的大模型必不可少且同樣難以獲取的資源?
高質(zhì)量的數(shù)據(jù)。OpenAI正是借助基于人類標注的數(shù)據(jù),才一舉從眾多大模型企業(yè)中脫穎而出,讓ChatGPT成為了大模型競爭中階段性的勝利者。
但同時,OpenAI也因為使用非洲廉價的人工進行數(shù)據(jù)標注,被各種媒體口誅筆伐。
時代周刊報道OpenAI雇傭肯尼亞廉價勞動力標注
而那些參與數(shù)據(jù)標注的工人們,也因為長期暴露在有毒內(nèi)容中,受到了不可逆的心理創(chuàng)傷。
衛(wèi)報報道肯尼亞勞工指責數(shù)據(jù)標注工作給自己帶來了不可逆的心理創(chuàng)傷
總之,對于數(shù)據(jù)標注,一定需要找到一個新的方法,才能避免大量使用人工標注帶來的包括道德風險在內(nèi)的其他潛在麻煩。
所以,包括谷歌,Anthropic在內(nèi)的AI巨頭和大型獨角獸,都在進行數(shù)據(jù)標注自動化的探索。
谷歌最近的研究,開發(fā)了一個和人類標注能力相近的AI標注工具
Anthropic采用了Constitutional AI來處理數(shù)據(jù),也獲得了很好的對齊效果
除了巨頭們的嘗試之外,最近,一家初創(chuàng)公司refuel,也上線了一個AI標注數(shù)據(jù)的開源處理工具:Autolabel。
Autolabel:用AI標注數(shù)據(jù),效率最高提升100倍
這個工具可以讓有數(shù)據(jù)處理需求的用戶,使用市面上主流的LLM(ChatGPT,Claude等)來對自己的數(shù)據(jù)集進行標注。
refuel稱,用自動化的方式標注數(shù)據(jù),相比于人工標注,效率最高可以提高100倍,而成本只有人工成本的1/7!
就算按照使用成本最高的GPT-4來算,采用Autolabel標注的成本只有使用人工標注的1/7,而如果使用其他更便宜的模型,成本還能進一步降低
采用Autolabel+LLM的標注方式之后,標注效率更是大幅提升
對于LLM標注質(zhì)量的評估,Autolabel的開發(fā)者創(chuàng)立了一個基準測試,通過將不同的LLM的標注結(jié)果和基準測試中不同數(shù)據(jù)集中收納的標準答案向比對,就能評估各個模型標注數(shù)據(jù)的質(zhì)量。
當Autolabel采用GPT-4進行標注時,獲得了最高的準確率——88.4%,超過了人類標注結(jié)果的準確率86.2%。
而且其他比GPT-4便宜得多的模型的標注準確率,相比GPT-4來說也不算低。
開發(fā)者稱,在比較簡單的標注任務中采用便宜的模型,在困難的任務中采用GPT-4,將可以大大節(jié)省標注成本,同時幾乎不影響標注的準確率。
Autolabel支持對自然語言處理項目進行分類,命名實體識別,實體匹配和問答。
支持主流的所有LLM提供商:OpenAI、Anthropic 和 Google Palm 等,并通過HuggingFace為開源和私有模型提供支持。
用戶可以嘗試不同的提示策略,例如少樣本和思維鏈提示。只要簡單更新配置文件即可輕松估計標簽置信度。
Autolabel免除了編寫復雜的指南,無盡地等待外部團隊來提供數(shù)據(jù)支持的麻煩,用戶能夠在幾分鐘內(nèi)開始標注數(shù)據(jù)。
可以支持使用本地部署的私有模型在本地處理數(shù)據(jù),所以對于數(shù)據(jù)隱私敏感度很高的用戶來說,Autolabel提供了成本和門檻都很低的數(shù)據(jù)標注途徑。
如何用AI進行評論有害性標注
所以,不論是律所想要通過GPT-4來對法律文檔進行分類,還是保險公司想要用私有模型對敏感的客戶醫(yī)療數(shù)據(jù)進行分類或者篩查,都可以使用Autolabel進行高效地處理。
Autolabel提供了一個簡單的案例來展示了如何使用它進行評論有害性的標注過程。
假設用戶是一個社交媒體的內(nèi)容審核團隊,需要訓練分類器來確定用戶評論是否有毒。
如果沒有Autolabel,用戶需要首先收集幾千個示例,并由一組人工注釋者對它們進行標注,可能需要幾周的時間——熟悉標注方針,從小數(shù)據(jù)集到大數(shù)據(jù)集進行幾次迭代,等等。
而如果使用Autolabe可以在分鐘內(nèi)就對這個數(shù)據(jù)集進行標注。
Autolabel安裝
首先安裝所有必要的庫:
pip install 'refuel-autolabel[openai]'
現(xiàn)在,將OpenAI密鑰設置為環(huán)境變量。
下載和查看數(shù)據(jù)集
將使用一個名為Civil Comments的數(shù)據(jù)集,該數(shù)據(jù)集可通過Autolabel獲得。你可以在本地下載它,只需運行:
from autolabel import get_data
get_data('civil_comments')
輸出為:
Downloading seed example dataset to "seed.csv"...
100% [..............................................................................] 65757 / 65757
Downloading test dataset to "test.csv"...
100% [............................................................................] 610663 / 610663
標注例子:
使用自動標簽貼標分為三個步驟:
首先,指定一個標簽配置(參見下面的config對象)并創(chuàng)建一個LabelingAgent。
接下來,通過運行agent.plan,使用config中指定的LLM對的數(shù)據(jù)集進行一次標注
最后,使用agent.run運行標簽
實驗1:嘗試簡單的標簽指南
定義下面的配置文件:
config = {
"task_name": "ToxicCommentClassification",
"task_type": "classification", # classification task
"dataset": {
"label_column": "label",
},
"model": {
"provider": "openai",
"name": "gpt-3.5-turbo" # the model we want to use
},
"prompt": {
# very simple instructions for the LLM
"task_guidelines": "Does the provided comment contain 'toxic' language? Say toxic or not toxic.",
"labels": [ # list of labels to choose from
"toxic",
"not toxic"
],
"example_template": "Input: {example}\nOutput: {label}"
}
}
如果要創(chuàng)建自定義配置,可以使用CLI或編寫自己的配置。
現(xiàn)在,用agent.plan進行預演:
from autolabel import LabelingAgent, AutolabelDataset
agent = LabelingAgent(config)
ds = AutolabelDataset('test.csv', config = config)
agent.plan(ds)
┌──────────────────────────┬─────────┐
│ Total Estimated Cost │ $4.4442 │
│ Number of Examples │ 2000 │
│ Average cost per example │ $0.0022 │
└──────────────────────────┴─────────┘
───────────────────────────────────────────────── Prompt Example ──────────────────────────────────────────────────
Does the provided comment contain 'toxic' language? Say toxic or not toxic.
You will return the answer with just one element: "the correct label"
Now I want you to label the following example:
Input: [ Integrity means that you pay your debts.]. Does this apply to President Trump too?
Output:
最后,進行數(shù)據(jù)標注:
ds = agent.run(ds, max_items=100)
┏━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓
┃ support ┃ threshold ┃ accuracy ┃ completion_rate ┃
┡━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩
│ 100 │ -inf │ 0.54 │ 1.0 │
└─────────┴───────────┴──────────┴─────────────────┘
輸出結(jié)果為54%的準確率不是很好,進一步改進的具體方法可以訪問以下鏈接查看:
https://docs.refuel.ai/guide/overview/tutorial-classification/
技術細節(jié):標注質(zhì)量Benchmark介紹
在對Autolabel的基準測試中,包含了以下數(shù)據(jù)集:
表1:Autolabel標注的數(shù)據(jù)集列表
使用了以下LLM:
表2:用于評估的LLM提供者與模型列表
本研究在三個標準上對LLM和人工標注進行評估:
首先是標簽質(zhì)量,即生成的標簽與真實標簽之間的一致性;
其次是周轉(zhuǎn)時間,即以秒為單位時,生成標簽所花費的時間;
最后是以分為單位,生成每個標簽的成本。
對于每個數(shù)據(jù)集,研究人員都將其拆分為種子集和測試集兩部分。
種子集包含200個示例,是從訓練分區(qū)中隨機采樣構(gòu)建的,用于置信度校準和一些少量的提示任務中。
測試集包含2000個示例,采用了與種子集相同的構(gòu)建方法,用于運行評估和報告所有基準測試的結(jié)果。
在人工標注方面,研究團隊從常用的數(shù)據(jù)標注第三方平臺聘請了數(shù)據(jù)標注員,每個數(shù)據(jù)集都配有多個數(shù)據(jù)標注員。
此過程分為三個階段:
研究人員為數(shù)據(jù)標注員提供了標注指南,要求他們對種子集進行標注。
然后對標注過的種子集進行評估,為數(shù)據(jù)標注員提供該數(shù)據(jù)集的基準真相作為參考,并要求他們檢查自己的錯誤。
隨后,為數(shù)據(jù)標注員解釋說明他們遇到的標簽指南問題,最后對測試集進行標注。
結(jié)果
標簽質(zhì)量
標簽質(zhì)量衡量的是生成的標簽(由人類或LLM標注者生成)與數(shù)據(jù)集中提供的基準真相的吻合程度。
對于SQuAD數(shù)據(jù)集,研究人員用生成標簽與基準真相之間的F1分數(shù)來衡量一致性,F(xiàn)1是問題解答的常用指標。
對于SQuAD以外的數(shù)據(jù)集,研究人員用生成標簽與基準真相之間的精確匹配來衡量一致性。
下表匯總了各個數(shù)據(jù)集標簽質(zhì)量的結(jié)果:
表3:各種NLP任務中的標簽質(zhì)量(與基準真相的一致率),每列中的最高數(shù)字以綠色標出
可以看到,與熟練的人工數(shù)據(jù)標注員相比,最先進的LLM已經(jīng)可以在相同甚至更好的水平上標注文本數(shù)據(jù)集,并且做到開箱即用,大大簡化了繁瑣的數(shù)據(jù)標注流程。
GPT-4在一系列數(shù)據(jù)集中的標簽質(zhì)量都優(yōu)于人類數(shù)據(jù)標注員。其他幾個LLM的表現(xiàn)也在80%左右,但調(diào)用API的價格僅為GPT-4的十分之一。
但由于LLM是在大量數(shù)據(jù)集上訓練出來的,所以在評估LLM的過程中存在著數(shù)據(jù)泄露的可能。
研究人員對此進行了例如集合的額外改進,可以將表現(xiàn)最好的的LLM(GPT-4、PaLM-2)與基準真相的一致性從89%提高到95%以上。
置信度估計
對LLM最大的詬病之一就是幻覺。因此,當務之急是用一種與標簽正確的可能性相關的方式來評估標簽的質(zhì)量。
為了估計標簽置信度,研究人員將LLM輸出的token級日志概率平均化,而這種自我評估方法在各種預測任務中都很有效。
對于提供對數(shù)概率的LLM(text-davinci-003),研究人員使用這些概率來估計置信度。
對于其他LLM,則使用FLAN T5 XXL模型進行置信度估計。
標簽生成后,查詢FLAN T5 XXL模型以獲得生成的輸出標注的概率分布,但前提是輸入的提示信息與用于標簽的信息相同。
表4:同一數(shù)據(jù)集上gpt-3.5-turbo和gpt-4的標簽質(zhì)量與完成率
在校準步驟中,研究人員利用估計置信度來了解標簽質(zhì)量和完成率之間的權衡。
即研究人員為LLM確定了一個工作點,并拒絕所有低于該工作點閾值的標簽。
例如,上圖顯示,在95%的質(zhì)量閾值下,我們可以使用GPT-4標注約77%的數(shù)據(jù)集。
添加這一步的原因是token級日志概率在校準方面的效果不佳,如GPT-4技術報告中所強調(diào)的那樣:
GPT-4模型的校準圖:比較預訓練和后RLHF版本的置信度和準確性
使用上述置信度估算方法,并將置信度閾值設定為95%的標簽質(zhì)量(相比之下,人類標注者的標簽質(zhì)量為86%),得到了以下數(shù)據(jù)集和LLM的完成率:
95%與基準真相一致的完成率
相比之下,人類標注者與基準真相的一致性為86.6%。
從上圖可以看到在所有數(shù)據(jù)集中,GPT-4的平均完成率最高,在8個數(shù)據(jù)集中,有3個數(shù)據(jù)集的標注質(zhì)量超過了這一質(zhì)量閾值。
而其他多個模型(如text-bison@001、gpt-3.5-turbo、claude-v1和flan-t5-xxl)也實現(xiàn)了很好的性能:
平均至少成功自動標注了50%的數(shù)據(jù),但價格卻只有GPT-4 API成本的1/10以下。
未來更新的方向
在接下來的幾個月中,開發(fā)者承諾將向Autolabel添加大量新功能:
支持更多LLM進行數(shù)據(jù)標注。
支持更多標注任務,例如總結(jié)等。
支持更多的輸入數(shù)據(jù)類型和更高的LLM輸出穩(wěn)健性。
讓用戶能夠試驗多個LLM和不同提示的工作流程。