https://crfm.stanford.edu/2023/03/13/alpaca.html
https://crfm.stanford.edu/alpaca/
https://github.com/tatsu-lab/stanford_alpaca
https://github.com/tatsu-lab/stanford_alpaca/blob/main/generate_instruction.py
延伸:
https://github.com/wptoux/self-instruct-zh
我們介紹了Alpaca 7B,這是一個在52K指令上從LLaMA 7B模型微調而來的模型。在我們對單圈指令遵循的初步評估中,Alpaca的行為在質量上與OpenAI的text-davinci-003相似,同時體積小得驚人,易于復制/便宜(<600美元)。
概述
GPT-3.5(text-davinci-003)、ChatGPT、Claude和Bing Chat等指令遵循模型的功能越來越強大。現在,許多用戶定期與這些模型交互,甚至在工作中使用它們。然而,盡管指令遵循模型得到了廣泛部署,但仍有許多不足之處:它們會產生虛假信息,傳播社會刻板印象,并產生有毒語言。
為了在解決這些緊迫問題方面取得最大進展,學術界的參與至關重要。不幸的是,在學術界對指令遵循模型進行研究一直很困難,因為沒有一個易于訪問的模型在功能上接近OpenAI的text-davinci-003等閉源模型。
我們發布了一個名為Alpaca的指令遵循語言模型的研究結果,該模型是從Meta的LLaMA 7B模型中微調而來的。我們在52K指令上訓練Alpaca模型,隨后使用text-davinci-003以self-instruct生成演示。在self-instruct的評估集上,Alpaca表現出許多類似于OpenAI的text-davinci-003的行為,但它也出奇地小,易于復制/便宜。
我們正在發布我們的訓練配方和數據,并打算在未來發布模型權重。我們還舉辦了一個交互demo(https://crfm.stanford.edu/alpaca/),使研究社區能夠更好地了解Alpaca的行為。交互可能會暴露出意想不到的能力和失敗,這將指導我們對這些模型的未來評估。我們還鼓勵用戶在我們的網絡演示中報告任何相關行為,以便我們能夠更好地理解和緩解這些行為。由于任何發布都有風險,我們將在稍后的博客文章中討論我們對此次公開發布的思考過程。
我們強調,Alpaca僅用于學術研究,禁止任何商業用途。這個決定有三個因素:首先,Alpaca是基于LLaMA的,它有非商業許可證,所以我們必須繼承這個決定。其次,指令數據基于OpenAI的text-davinci-003,其使用條款禁止開發與OpenAI競爭的模型。最后,我們沒有設計足夠的安全措施,因此Alpaca還沒有準備好用于一般用途。
訓練配方
在學術預算下訓練高質量的instruction-following模型有兩個重要挑戰:強大的預訓練語言模型和高質量的instruction-following數據。Meta最新發布的LLaMA模型解決了第一個挑戰。對于第二個挑戰,?self-instruct建議使用現有的強語言模型來自動生成instruction數據。特別是,Alpaca是一個語言模型,根據OpenAI的text-davinci-003生成的演示,在52K指令上使用LLaMA 7B模型的監督學習進行微調。
下圖說明了我們是如何獲得Alpaca模型的。對于數據,我們在self-instruct方法的基礎上生成了instruction-following demonstrations?。我們從?self-instruct seed set中的175個人工編寫的指令輸出對開始(instruction-output pairs)。然后,我們提示text-davinci-003使用上下文示例中的種子集生成更多指令(We then prompted text-davinci-003 to generate more instructions using the seed set as in-context examples)。我們通過簡化生成管道(詳見https://github.com/tatsu-lab/stanford_alpaca#data-generation-process)對自學方法進行了改進,并顯著降低了成本。我們的數據生成過程產生了52K條獨特的指令和相應的輸出,使用OpenAI API的成本不到500美元。
有了這個instruction-following的數據集,我們利用Fully Sharded Data Parallel和混合精度訓練等技術,使用Hugging Face的訓練框架對LLaMA模型進行了微調。在我們的首次運行中,在8個80GB A100上微調7B LLaMA模型需要3個小時,這在大多數云計算提供商上的成本不到100美元。我們注意到,可以提高訓練效率以進一步降低成本。
初步評估
為了評估Alpaca,我們對?self-instruct evaluation set的輸入進行了人類評估(由5名學生作者進行)。該評估集由self-instruct作者收集,涵蓋了一系列面向用戶的指令,包括電子郵件寫作、社交媒體和生產力工具。我們對text-davinci-003和Alpaca 7B進行了盲配對比較,發現這兩種型號的性能非常相似:Alpaca以90:89贏過了text-davinci-003。
考慮到模型的小尺寸和少量的instruction following數據,我們對這個結果感到非常驚訝。除了利用這個靜態評估集,我們還一直在交互測試Alpaca模型,發現Alpaca在不同的輸入集上的行為通常與text-davinci-003類似。我們承認,我們的評估可能在規模和多樣性方面受到限制。因此,我們發布了一個關于Alpaca的互動演示,鼓勵讀者自己評估Alpaca并給我們反饋。
在本節的其余部分中,我們將包括幾個交互示例,以展示Alpaca的功能和局限性。
上面的例子表明,Alpaca的輸出通常寫得很好。我們注意到Alpaca反映了指令instruction-following集的一般風格。因此,Alpaca的回答通常比ChatGPT更短,這反映了text-davinci-003的輸出更短。
已知限制
Alpaca還表現出語言模型的幾種常見缺陷,包括幻覺、毒性和刻板印象。幻覺似乎尤其是Alpaca的常見故障模式,即使與text-davinci-003相比也是如此。
例如,在下圖中,Alpaca錯誤地說坦桑尼亞的首都是達累斯薩拉姆,達累斯薩拉姆是坦桑尼亞最大的城市。(直到1974年,這里才被多多馬取代。)
此外,Alpaca可以用來生成書寫良好的輸出,傳播錯誤信息,如以下示例所示。
Alpaca可能包含許多與底層語言模型和指令調優數據相關的其他限制。然而,我們相信該工件仍然對社區有用,因為它提供了一個相對輕量級的模型,作為研究重要缺陷的基礎。我們鼓勵用戶通過在網絡演示中標記故障來幫助我們識別新的故障類型。總的來說,我們希望Alpaca的發布能夠促進對指令遵循模型及其與人類價值觀一致性的進一步研究。
釋放的內容
我們今天發布以下內容:
演示:每個人都可以嘗試Alpaca的互動演示,https://crfm.stanford.edu/alpaca/
數據:52K演示用于微調Alpaca,https://github.com/tatsu-lab/stanford_alpaca#data-release
數據生成過程:用于生成數據的代碼,https://github.com/tatsu-lab/stanford_alpaca#data-generation-process
訓練代碼:用于使用Hugging FaceAPI對模型進行微調,https://github.com/tatsu-lab/stanford_alpaca#fine-tuning
我們打算在不久的將來釋放以下內容:
模型權重:我們已聯系Meta,以獲得關于發布7B Alpaca和更大LLaMA模型的微調版本的Alpaca模型重量的指導。
發布決定
我們相信,釋放上述內容將使學術界能夠按照語言模型對教學進行受控的科學研究,從而產生更好的科學,并最終產生新的技術來解決這些模型的現有缺陷。
與此同時,任何釋放都會帶來一些風險。首先,我們認識到,發布我們的訓練配方揭示了某些能力的可行性。一方面,這使更多的人(包括不良行為者)能夠創建可能造成傷害的模型(無論是有意還是無意)。另一方面,這種意識可能會激勵迅速的防御行動,尤其是學術界,他們現在有能力對這些模型進行更深入的安全研究。總的來說,我們認為這一特定版本對研究界的好處大于風險。
鑒于我們正在發布訓練配方,我們認為,鑒于配方的簡單性,發布數據、模型權重和訓練代碼所帶來的進一步風險最小。與此同時,發布這些內容對可復制科學有著巨大的好處,因此學術界可以使用標準數據集、模型和代碼進行受控比較并探索擴展。
為Alpaca部署交互式演示也會帶來潛在風險,例如更廣泛地傳播有害內容,降低垃圾郵件、欺詐或虛假信息的門檻。我們已經制定了兩種風險緩解策略。首先,我們使用OpenAI的內容審核API實現了一個內容過濾器,該過濾器根據OpenAI的使用策略過濾掉有害內容。其次,我們使用Kirchenbauer等人2023中描述的方法對所有模型輸出進行水印處理,以便其他人可以(以一定的概率)檢測輸出是否來自Alpaca 7B。最后,我們對使用演示有嚴格的條款和條件;它僅限于非商業用途和遵循LLaMA許可協議的用途。
我們知道,一旦我們發布模型權重,或者如果用戶按照模型訓練自己的指令,就可以規避這些緩解措施。然而,通過安裝這些緩解措施,我們希望推進最佳實踐,并最終制定負責任部署基礎模型的社區規范。
未來發展方向
我們對Alpaca帶來的研究機會感到興奮。未來有許多令人興奮的方向:
評估:我們需要更嚴格地評估Alpaca。我們將從HELM(語言模型的整體評估)開始,它有望發展到捕捉更具生成性的、遵循指令的場景。
安全:我們希望進一步研究Alpaca的風險,并使用自動紅隊、審計和自適應測試等方法提高其安全性。
理解:我們希望更好地理解能力是如何從訓練配方中產生的。您需要基本模型的哪些財產?當你擴大規模時會發生什么?需要指令數據的哪些財產?在text-davinci-003上使用自我指導的替代方案是什么?