大模型迎來(lái)「開(kāi)源季」,盤(pán)點(diǎn)過(guò)去一個(gè)月那些開(kāi)源的 LLM 和數(shù)據(jù)集

2023-05-16 13:20:18來(lái)源:ZAKER科技  

選自 Ahead of AI


(資料圖片)

機(jī)器之心編譯

編譯:杜偉、澤南

開(kāi)源的力量正在源源不斷地影響著整個(gè) AI 社區(qū),無(wú)論是 LLM 還是數(shù)據(jù)集。本文作者 Sebastian Raschka 對(duì)相關(guān)資源進(jìn)行了匯總,并分享了自己的洞見(jiàn)。

前段時(shí)間,谷歌泄露的內(nèi)部文件表達(dá)了這樣一個(gè)觀點(diǎn),雖然表面看起來(lái) OpenAI 和谷歌在 AI 大模型上你追我趕,但真正的贏家未必會(huì)從這兩家中產(chǎn)生,因?yàn)椤?/p>

圍繞 Meta 的 LLaMA 開(kāi)源模型,整個(gè)社區(qū)正在迅速構(gòu)建與 OpenAI、谷歌大模型能力類似的模型,而且開(kāi)源模型的迭代速度更快,可定制性更強(qiáng),更有私密性。

近日,前威斯康星大學(xué)麥迪遜分校助理教授、初創(chuàng)公司 Lightning AI 首席 AI 教育官 Sebastian Raschka 表示,對(duì)于開(kāi)源而言,過(guò)去一個(gè)月很偉大

不過(guò),那么多大語(yǔ)言模型(LLM)紛紛出現(xiàn),要緊緊把握住所有模型并不容易。所以,Sebastian 在本文中分享了關(guān)于最新開(kāi)源 LLM 和數(shù)據(jù)集的資源和研究洞見(jiàn)。

論文與趨勢(shì)

過(guò)去一個(gè)月出現(xiàn)了很多研究論文,因此很難從中挑選出最中意的幾篇進(jìn)行深入的探討。Sebastian 更喜歡提供額外洞見(jiàn)而非簡(jiǎn)單展示更強(qiáng)大模型的論文。鑒于此,引起他注意力的首先是 Eleuther AI 和耶魯大學(xué)等機(jī)構(gòu)研究者共同撰寫(xiě)的 Pythia 論文。

論文地址:https://arxiv.org/pdf/2304.01373.pdf

Pythia:從大規(guī)模訓(xùn)練中得到洞見(jiàn)

開(kāi)源 Pythia 系列大模型真的是其他自回歸解碼器風(fēng)格模型(即類 GPT 模型)的有趣平替。論文中揭示了關(guān)于訓(xùn)練機(jī)制的一些有趣洞見(jiàn),并介紹了從 70M 到 12B 參數(shù)不等的相應(yīng)模型。

Pythia 模型架構(gòu)與 GPT-3 相似,但包含一些改進(jìn),比如 Flash 注意力(像 LLaMA)和旋轉(zhuǎn)位置嵌入(像 PaLM)。同時(shí) Pythia 在 800GB 的多樣化文本數(shù)據(jù)集 Pile 上接受了 300B token 的訓(xùn)練(其中在常規(guī) Pile 上訓(xùn)練 1 個(gè) epoch,在去重 Pile 上訓(xùn)練 1.5 個(gè) epoch )。

下面為一些從 Pythia 論文中得到的洞見(jiàn)和思考:

在重復(fù)數(shù)據(jù)上的訓(xùn)練(即訓(xùn)練 epoch>1)會(huì)不會(huì)有什么影響?結(jié)果表明,數(shù)據(jù)去重不會(huì)改善或損害性能;

訓(xùn)練命令會(huì)影響記憶嗎?遺憾的是,結(jié)果表明并不會(huì)。之所以說(shuō)遺憾,是因?yàn)槿绻绊懙脑挘瑒t可以通過(guò)訓(xùn)練數(shù)據(jù)的重新排序來(lái)減輕討厭的逐字記憶問(wèn)題;

batch 大小加倍可以將訓(xùn)練時(shí)間減半但不損害收斂。

開(kāi)源數(shù)據(jù)

對(duì)于開(kāi)源 AI,過(guò)去一個(gè)月特別令人興奮,出現(xiàn)了幾個(gè) LLM 的開(kāi)源實(shí)現(xiàn)和一大波開(kāi)源數(shù)據(jù)集。這些數(shù)據(jù)集包括 Databricks Dolly 15k、用于指令微調(diào)的 OpenAssistant Conversations ( OASST1 ) 、用于預(yù)訓(xùn)練的 RedPajama。這些數(shù)據(jù)集工作尤其值得稱贊,因?yàn)閿?shù)據(jù)收集和清理占了真實(shí)世界機(jī)器學(xué)習(xí)項(xiàng)目的 90%,但很少有人喜歡這項(xiàng)工作。

Databricks-Dolly-15 數(shù)據(jù)集

Databricks-Dolly-15 是一個(gè)用于 LLM 微調(diào)的數(shù)據(jù)集,它由數(shù)千名 DataBricks 員工編寫(xiě)了超過(guò) 15,000 個(gè)指令對(duì)(與訓(xùn)練 InstructGPT 和 ChatGPT 等系統(tǒng)類似)。

OASST1 數(shù)據(jù)集

OASST1 數(shù)據(jù)集用于在由人類創(chuàng)建和標(biāo)注的類 ChatGPT 助手的對(duì)話集合上微調(diào)預(yù)訓(xùn)練 LLM,包含了 35 種語(yǔ)言編寫(xiě)的 161,443 條消息以及 461,292 個(gè)質(zhì)量評(píng)估。這些是在超過(guò) 10,000 個(gè)完全標(biāo)注的對(duì)話樹(shù)中組織起來(lái)。

用于預(yù)訓(xùn)練的 RedPajama 數(shù)據(jù)集

RedPajama 是一個(gè)用于 LLM 預(yù)訓(xùn)練的開(kāi)源數(shù)據(jù)集,類似于 Meta 的 SOTA LLaMA 模型。該數(shù)據(jù)集旨在創(chuàng)建一個(gè)媲美大多數(shù)流行 LLM 的開(kāi)源競(jìng)爭(zhēng)者,目前這些 LLM 要么是閉源商業(yè)模型要么僅部分開(kāi)源。

RedPajama 的大部分由 CommonCrawl 組成,它對(duì)英文網(wǎng)站進(jìn)行了過(guò)濾,但維基百科的文章涵蓋了 20 種不同的語(yǔ)言。

LongForm 數(shù)據(jù)集

論文《The LongForm: Optimizing Instruction Tuning for Long Text Generation with Corpus Extraction》介紹了基于 C4 和 Wikipedia 等已有語(yǔ)料庫(kù)的人工創(chuàng)作文檔集合以及這些文檔的指令,從而創(chuàng)建了一個(gè)適合長(zhǎng)文本生成的指令調(diào)優(yōu)數(shù)據(jù)集。

論文地址:https://arxiv.org/abs/2304.08460

Alpaca Libre 項(xiàng)目

Alpaca Libre 項(xiàng)目旨在通過(guò)將來(lái)自 Anthropics HH-RLHF 存儲(chǔ)庫(kù)的 100k + 個(gè) MIT 許可演示轉(zhuǎn)換為 Alpaca 兼容格式,以重現(xiàn) Alpaca 項(xiàng)目。

擴(kuò)展開(kāi)源數(shù)據(jù)集

指令微調(diào)是我們從類 GPT-3 預(yù)訓(xùn)練基礎(chǔ)模型演化到更強(qiáng)大類 ChatGPT 大語(yǔ)言模型的關(guān)鍵方式。Databricks-Dolly-15 等開(kāi)源人工生成指令數(shù)據(jù)集有助于實(shí)現(xiàn)這一點(diǎn)。但我們?nèi)绾芜M(jìn)一步擴(kuò)展呢?是否可以不收集額外數(shù)據(jù)呢?一種方法是從自身的迭代中 bootstrap 一個(gè) LLM。雖然 Self-Instruct 方法在 5 個(gè)月前提出(以如今標(biāo)準(zhǔn)來(lái)看過(guò)時(shí)了),但它仍是一種非常有趣的方法。值得強(qiáng)調(diào)的是,由于 Self-Instruct 一種幾乎不需要注釋的方法,因而可以將預(yù)訓(xùn)練 LLM 與指令對(duì)齊。

如何運(yùn)作呢?簡(jiǎn)而言之可以分為以下四個(gè)步驟:

首先是具有一組人工編寫(xiě)指令(本例中為 175)和樣本指令的種子任務(wù)池;

其次使用一個(gè)預(yù)訓(xùn)練 LLM(如 GPT-3)來(lái)確定任務(wù)類別;

接著給定新指令,使預(yù)訓(xùn)練 LLM 生成響應(yīng);

最后在將指令添加到任務(wù)池之前收集、修剪和過(guò)濾響應(yīng)。

在實(shí)踐中,基于 ROUGE 分?jǐn)?shù)的工作會(huì)比較有效、例如 Self-Instruct 微調(diào)的 LLM 優(yōu)于 GPT-3 基礎(chǔ) LLM,并可以在大型人工編寫(xiě)指令集上預(yù)訓(xùn)練的 LLM 競(jìng)爭(zhēng)。同時(shí) self-instruct 也可以使在人工指令上微調(diào)過(guò)的 LLM 收益。

但是當(dāng)然,評(píng)估 LLM 的黃金標(biāo)準(zhǔn)是詢問(wèn)人類評(píng)分員。基于人類評(píng)估,Self-Instruct 優(yōu)于基礎(chǔ) LLM、以及以監(jiān)督方式在人類指令數(shù)據(jù)集上訓(xùn)練的 LLM(比如 SuperNI, T0 Trainer)。不過(guò)有趣的是,Self-Instruct 的表現(xiàn)并不優(yōu)于通過(guò)人類反饋強(qiáng)化學(xué)習(xí)(RLHF)訓(xùn)練的方法。

人工生成 vs 合成訓(xùn)練數(shù)據(jù)集

人工生成指令數(shù)據(jù)集和 self-instruct 數(shù)據(jù)集,它們兩個(gè)哪個(gè)更有前途呢?Sebastian 認(rèn)為兩者皆有前途。為什么不從人工生成指令數(shù)據(jù)集(例如 15k 指令的 databricks-dolly-15k)開(kāi)始,然后使用 self-instruct 對(duì)它進(jìn)行擴(kuò)展呢?論文《Synthetic Data from Diffusion Models Improves ImageNet Classification》表明,真實(shí)圖像訓(xùn)練集與 AI 生成圖像相結(jié)合可以提升模型性能。探究對(duì)于文本數(shù)據(jù)是否也是這樣是一件有趣的事情。

論文地址:https://arxiv.org/abs/2304.08466

最近的論文《Better Language Models of Code through Self-Improvement》就是關(guān)于這一方向的研究。研究者發(fā)現(xiàn)如果一個(gè)預(yù)訓(xùn)練 LLM 使用它自己生成的數(shù)據(jù),則可以改進(jìn)代碼生成任務(wù)。

論文地址:https://arxiv.org/abs/2304.01228

少即是多(Less is more)?

此外,除了在越來(lái)越大的數(shù)據(jù)集上預(yù)訓(xùn)練和微調(diào)模型之外,又如何提高在更小數(shù)據(jù)集上的效率呢?論文《Distilling Step-by-Step! Outperforming Larger Language Models with Less Training Data and Smaller Model Sizes》中提出使用一種蒸餾機(jī)制來(lái)管理任務(wù)特定的更小模型,它們使用更少的訓(xùn)練數(shù)據(jù)卻超越了標(biāo)準(zhǔn)微調(diào)的性能。

論文地址:https://arxiv.org/abs/2305.02301

追蹤開(kāi)源 LLM

開(kāi)源 LLM 的數(shù)量呈爆炸式增長(zhǎng),一方面是非常好的發(fā)展趨勢(shì)(相較于通過(guò)付費(fèi) API 控制模型),但另一方面追蹤這一切可能很麻煩。以下四種資源提供了大多數(shù)相關(guān)模型的不同摘要,包括它們的關(guān)系、底層數(shù)據(jù)集和各種許可信息。

第一種資源是基于論文《Ecosystem Graphs: The Social Footprint of Foundation Models》的生態(tài)系統(tǒng)圖網(wǎng)站,提供如下表格和交互式依賴圖(這里未展示)。

這個(gè)生態(tài)系統(tǒng)圖是 Sebastian 迄今為止見(jiàn)過(guò)的最全面的列表,但由于包含了很多不太流行的 LLM,因而可能顯得有點(diǎn)混亂。檢查相應(yīng)的 GitHub 庫(kù)發(fā)現(xiàn),它已經(jīng)更新了至少一個(gè)月。此外尚不清楚它會(huì)不會(huì)添加更新的模型。

論文地址:https://arxiv.org/abs/2303.15772

生態(tài)系統(tǒng)圖網(wǎng)站地址:https://crfm.stanford.edu/ecosystem-graphs/index.html?mode=table

第二種資源是最近論文《Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond》中繪制精美的進(jìn)化樹(shù),該論文側(cè)重于最流行的 LLM 和它們的關(guān)系。

雖然讀者看到了非常美觀和清晰的可視化 LLM 進(jìn)化樹(shù),但也有一些小的疑惑。例如不清楚為什么底部沒(méi)有從原始 transformer 架構(gòu)開(kāi)始。此外開(kāi)源標(biāo)簽并不是非常的準(zhǔn)確,例如 LLaMA 被列為開(kāi)源,但權(quán)重在開(kāi)源許可下不可用(只有推理代碼是這樣的)。

論文地址:https://arxiv.org/abs/2304.13712

第三種資源是 Sebastian 同事 Daniela Dapena 繪制的表格,出自于博客《The Ultimate Battle of Language Models: Lit-LLaMA vs GPT3.5 vs Bloom vs …》。

雖然下述表格比其他資源要小,但其優(yōu)點(diǎn)在于包含了模型尺寸和許可信息。如果你計(jì)劃在任何項(xiàng)目中采用這些模型,則該表格會(huì)非常有實(shí)用性。

博客地址:https://lightning.ai/pages/community/community-discussions/the-ultimate-battle-of-language-models-lit-llama-vs-gpt3.5-vs-bloom-vs/

第四種資源是 LLaMA-Cult-and-More 總覽表,它提供了有關(guān)微調(diào)方法和硬件成本的額外信息。

總覽表地址:https://github.com/shm007g/LLaMA-Cult-and-More/blob/main/chart.md

利用 LLaMA-Adapter V2 微調(diào)多模態(tài) LLM

Sebastian 預(yù)測(cè)本月會(huì)看到更多的多模態(tài) LLM 模型,因此不得不談到不久前發(fā)布的論文《LLaMA-Adapter V2: Parameter-Efficient Visual Instruction Model》。先來(lái)回顧一下什么是 LLaMA-Adapter?它是一種參數(shù)高效的 LLM 微調(diào)技術(shù),修改了前面幾個(gè) transformer 塊并引入一種門(mén)控機(jī)制來(lái)穩(wěn)定訓(xùn)練。

論文地址:https://arxiv.org/abs/2304.15010

使用 LLaMA-Adapter 方法,研究人員能夠在 52k 個(gè)指令對(duì)上僅用 1 小時(shí)(8 塊 A100 GPU)來(lái)微調(diào)一個(gè) 7B 參數(shù)的 LLaMA 模型。雖然僅對(duì)新添加的 1.2M 參數(shù)(adapter 層)進(jìn)行了微調(diào),但 7B LLaMA 模型仍處于凍結(jié)(frozen)狀態(tài)。

LLaMA-Adapter V2 的重點(diǎn)在多模態(tài),即構(gòu)建一個(gè)可以接收?qǐng)D像輸入的視覺(jué)指令模型。最初的 V1 雖然可以接收文本 token 和圖像 token,但在圖像方面沒(méi)有得到充分探索。

LLaMA-Adapter 從 V1 到 V2,研究人員通過(guò)以下三個(gè)主要技巧來(lái)改進(jìn) adapter 方法。

早期視覺(jué)知識(shí)融合:不再在每個(gè) adapted 層融合視覺(jué)和 adapted 提示,而是在第一個(gè) transformer 塊中將視覺(jué) token 與單詞 token 連接起來(lái);

使用更多參數(shù):解凍(unfreeze)所有歸一化層,并將偏置單元和縮放因子添加到 transformer 塊中每個(gè)線性層;

具有不相交參數(shù)的聯(lián)合訓(xùn)練:對(duì)于圖文字幕數(shù)據(jù),僅訓(xùn)練視覺(jué)投影層;針對(duì)指令遵循的數(shù)據(jù)僅訓(xùn)練 adaption 層(以及上述新添加的參數(shù))。

LLaMA V2(14M)比 LLaMA V1 ( 1.2 M ) 的參數(shù)多了很多,但它仍是輕量級(jí),僅占 65B LLaMA 總參數(shù)的 0.02%。特別令人印象深刻的是,通過(guò)僅對(duì) 65B LLaMA 模型的 14M 參數(shù)進(jìn)行微調(diào),得到的 LLaMA-Adapter V2 在性能上媲美 ChatGPT(當(dāng)使用 GPT-4 模型進(jìn)行評(píng)估)。LLaMA-Adapter V2 還優(yōu)于使用全微調(diào)方法的 13B Vicuna 模型。

遺憾的是,LLaMA-Adapter V2 論文省略了 V1 論文中包含的計(jì)算性能基準(zhǔn),但我們可以假設(shè) V2 仍然比全微調(diào)方法快得多。

其他開(kāi)源 LLM

大模型的發(fā)展速度奇快,我們無(wú)法一一列舉,本月推出的一些著名的開(kāi)源 LLM 和聊天機(jī)器人包括 Open-Assistant、Baize、StableVicuna、ColossalChat、Mosaic 的 MPT 等。此外,下面是兩個(gè)特別有趣的多模態(tài) LLM。

OpenFlamingo

OpenFlamingo 是 Google DeepMind 去年發(fā)布的 Flamingo 模型的開(kāi)源復(fù)制版。OpenFlamingo 旨在為 LLM 提供多模式圖像推理功能,讓人們能夠交錯(cuò)輸入文本和圖像。

MiniGPT-4

MiniGPT-4 是另一種具有視覺(jué)語(yǔ)言功能的開(kāi)源模型。它基于 BLIP-27 的凍結(jié)視覺(jué)編碼器和凍結(jié)的 Vicuna LLM。

NeMo Guardrails

隨著這些大語(yǔ)言模型的出現(xiàn),許多公司都在思考如何以及是否應(yīng)該部署它們,安全方面的擔(dān)憂尤為突出。目前還沒(méi)有好的解決方案,但至少有一個(gè)更有前途的方法:英偉達(dá)開(kāi)源了一個(gè)工具包來(lái)解決 LLM 的幻覺(jué)問(wèn)題。

簡(jiǎn)而言之,它的工作原理是此方法使用數(shù)據(jù)庫(kù)鏈接到硬編碼的 prompt,這些 prompt 必須手動(dòng)管理。然后,如果用戶輸入 prompt,該內(nèi)容將首先與該數(shù)據(jù)庫(kù)中最相似的條目相匹配。然后數(shù)據(jù)庫(kù)返回一個(gè)硬編碼的 prompt,然后傳遞給 LLM。因此,如果有人仔細(xì)測(cè)試硬編碼 prompt,就可以確保交互不會(huì)偏離允許的主題等。

這是一種有趣但不是開(kāi)創(chuàng)性的方法,因?yàn)樗鼪](méi)有為 LLM 提供更好的或新的能力,它只是限制了用戶可以與 LLM 交互的程度。盡管如此,在研究人員找到減輕 LLM 中的幻覺(jué)問(wèn)題和負(fù)面行為的替代方法之前,這可能是一種可行的方法。

guardrails 方法還可以與其他對(duì)齊技術(shù)相結(jié)合,例如作者在上一期 Ahead of AI 中介紹的流行的人類反饋強(qiáng)化學(xué)習(xí)訓(xùn)練范例。

一致性模型

談?wù)?LLM 以外的有趣模型是一個(gè)不錯(cuò)的嘗試,OpenAI 終于開(kāi)源了他們一致性模型的代碼:https://github.com/openai/consistency_models。

一致性模型被認(rèn)為是擴(kuò)散模型的可行、有效的替代方案。你可以在一致性模型的論文中獲得更多信息。

原文地址:https://magazine.sebastianraschka.com/p/ahead-of-ai-8-the-latest-open-source

THE END

投稿或?qū)で髨?bào)道:content@jiqizhixin.com

關(guān)鍵詞:

責(zé)任編輯:hnmd003

相關(guān)閱讀

相關(guān)閱讀

精彩推送

推薦閱讀