機器之心編譯
編譯:杜偉、澤南
開源的力量正在源源不斷地影響著整個 AI 社區(qū),無論是 LLM 還是數(shù)據(jù)集。本文作者 Sebastian Raschka 對相關資源進行了匯總,并分享了自己的洞見。
前段時間,谷歌泄露的內(nèi)部文件表達了這樣一個觀點,雖然表面看起來 OpenAI 和谷歌在 AI 大模型上你追我趕,但真正的贏家未必會從這兩家中產(chǎn)生,因為有一個第三方力量正在悄然崛起。這個力量就是「開源」。
圍繞 Meta 的 LLaMA 開源模型,整個社區(qū)正在迅速構(gòu)建與 OpenAI、谷歌大模型能力類似的模型,而且開源模型的迭代速度更快,可定制性更強,更有私密性。
近日,前威斯康星大學麥迪遜分校助理教授、初創(chuàng)公司 Lightning AI 首席 AI 教育官 Sebastian Raschka 表示,對于開源而言,過去一個月很偉大。
不過,那么多大語言模型(LLM)紛紛出現(xiàn),要緊緊把握住所有模型并不容易。所以,Sebastian 在本文中分享了關于最新開源 LLM 和數(shù)據(jù)集的資源和研究洞見。
論文與趨勢
過去一個月出現(xiàn)了很多研究論文,因此很難從中挑選出最中意的幾篇進行深入的探討。Sebastian 更喜歡提供額外洞見而非簡單展示更強大模型的論文。鑒于此,引起他注意力的首先是 Eleuther AI 和耶魯大學等機構(gòu)研究者共同撰寫的 Pythia 論文。
論文地址:https://arxiv.org/pdf/2304.01373.pdf
Pythia:從大規(guī)模訓練中得到洞見
開源 Pythia 系列大模型真的是其他自回歸解碼器風格模型(即類 GPT 模型)的有趣平替。論文中揭示了關于訓練機制的一些有趣洞見,并介紹了從 70M 到 12B 參數(shù)不等的相應模型。
Pythia 模型架構(gòu)與 GPT-3 相似,但包含一些改進,比如 Flash 注意力(像 LLaMA)和旋轉(zhuǎn)位置嵌入(像 PaLM)。同時 Pythia 在 800GB 的多樣化文本數(shù)據(jù)集 Pile 上接受了 300B token 的訓練(其中在常規(guī) Pile 上訓練 1 個 epoch,在去重 Pile 上訓練 1.5 個 epoch )。
下面為一些從 Pythia 論文中得到的洞見和思考:
在重復數(shù)據(jù)上的訓練(即訓練 epoch>1)會不會有什么影響?結(jié)果表明,數(shù)據(jù)去重不會改善或損害性能;
訓練命令會影響記憶嗎?遺憾的是,結(jié)果表明并不會。之所以說遺憾,是因為如果影響的話,則可以通過訓練數(shù)據(jù)的重新排序來減輕討厭的逐字記憶問題;
batch 大小加倍可以將訓練時間減半但不損害收斂。
開源數(shù)據(jù)
對于開源 AI,過去一個月特別令人興奮,出現(xiàn)了幾個 LLM 的開源實現(xiàn)和一大波開源數(shù)據(jù)集。這些數(shù)據(jù)集包括 Databricks Dolly 15k、用于指令微調(diào)的 OpenAssistant Conversations (OASST1)、用于預訓練的 RedPajama。這些數(shù)據(jù)集工作尤其值得稱贊,因為數(shù)據(jù)收集和清理占了真實世界機器學習項目的 90%,但很少有人喜歡這項工作。
Databricks-Dolly-15 數(shù)據(jù)集
Databricks-Dolly-15 是一個用于 LLM 微調(diào)的數(shù)據(jù)集,它由數(shù)千名 DataBricks 員工編寫了超過 15,000 個指令對(與訓練 InstructGPT 和 ChatGPT 等系統(tǒng)類似)。
OASST1 數(shù)據(jù)集
OASST1 數(shù)據(jù)集用于在由人類創(chuàng)建和標注的類 ChatGPT 助手的對話集合上微調(diào)預訓練 LLM,包含了 35 種語言編寫的 161,443 條消息以及 461,292 個質(zhì)量評估。這些是在超過 10,000 個完全標注的對話樹中組織起來。
用于預訓練的 RedPajama 數(shù)據(jù)集
RedPajama 是一個用于 LLM 預訓練的開源數(shù)據(jù)集,類似于 Meta 的 SOTA LLaMA 模型。該數(shù)據(jù)集旨在創(chuàng)建一個媲美大多數(shù)流行 LLM 的開源競爭者,目前這些 LLM 要么是閉源商業(yè)模型要么僅部分開源。
RedPajama 的大部分由 CommonCrawl 組成,它對英文網(wǎng)站進行了過濾,但維基百科的文章涵蓋了 20 種不同的語言。
LongForm 數(shù)據(jù)集
論文《The LongForm: Optimizing Instruction Tuning for Long Text Generation with Corpus Extraction》介紹了基于 C4 和 Wikipedia 等已有語料庫的人工創(chuàng)作文檔集合以及這些文檔的指令,從而創(chuàng)建了一個適合長文本生成的指令調(diào)優(yōu)數(shù)據(jù)集。
論文地址:https://arxiv.org/abs/2304.08460
Alpaca Libre 項目
Alpaca Libre 項目旨在通過將來自 Anthropics HH-RLHF 存儲庫的 100k + 個 MIT 許可演示轉(zhuǎn)換為 Alpaca 兼容格式,以重現(xiàn) Alpaca 項目。
擴展開源數(shù)據(jù)集
指令微調(diào)是我們從類 GPT-3 預訓練基礎模型演化到更強大類 ChatGPT 大語言模型的關鍵方式。Databricks-Dolly-15 等開源人工生成指令數(shù)據(jù)集有助于實現(xiàn)這一點。但我們?nèi)绾芜M一步擴展呢?是否可以不收集額外數(shù)據(jù)呢?一種方法是從自身的迭代中bootstrap 一個 LLM。雖然 Self-Instruct 方法在 5 個月前提出(以如今標準來看過時了),但它仍是一種非常有趣的方法。值得強調(diào)的是,由于 Self-Instruct 一種幾乎不需要注釋的方法,因而可以將預訓練 LLM 與指令對齊。
如何運作呢?簡而言之可以分為以下四個步驟:
首先是具有一組人工編寫指令(本例中為 175)和樣本指令的種子任務池;
其次使用一個預訓練 LLM(如 GPT-3)來確定任務類別;
接著給定新指令,使預訓練 LLM 生成響應;
最后在將指令添加到任務池之前收集、修剪和過濾響應。
在實踐中,基于 ROUGE 分數(shù)的工作會比較有效、例如 Self-Instruct 微調(diào)的 LLM 優(yōu)于 GPT-3 基礎 LLM,并可以在大型人工編寫指令集上預訓練的 LLM 競爭。同時 self-instruct 也可以使在人工指令上微調(diào)過的 LLM 收益。
但是當然,評估 LLM 的黃金標準是詢問人類評分員?;谌祟愒u估,Self-Instruct 優(yōu)于基礎 LLM、以及以監(jiān)督方式在人類指令數(shù)據(jù)集上訓練的 LLM(比如 SuperNI, T0 Trainer)。不過有趣的是,Self-Instruct 的表現(xiàn)并不優(yōu)于通過人類反饋強化學習(RLHF)訓練的方法。
人工生成 vs 合成訓練數(shù)據(jù)集
人工生成指令數(shù)據(jù)集和 self-instruct 數(shù)據(jù)集,它們兩個哪個更有前途呢?Sebastian 認為兩者皆有前途。為什么不從人工生成指令數(shù)據(jù)集(例如 15k 指令的 databricks-dolly-15k)開始,然后使用 self-instruct 對它進行擴展呢?論文《Synthetic Data from Diffusion Models Improves ImageNet Classification》表明,真實圖像訓練集與 AI 生成圖像相結(jié)合可以提升模型性能。探究對于文本數(shù)據(jù)是否也是這樣是一件有趣的事情。
論文地址:https://arxiv.org/abs/2304.08466
最近的論文《Better Language Models of Code through Self-Improvement》就是關于這一方向的研究。研究者發(fā)現(xiàn)如果一個預訓練 LLM 使用它自己生成的數(shù)據(jù),則可以改進代碼生成任務。
論文地址:https://arxiv.org/abs/2304.01228
少即是多(Less is more)?
此外,除了在越來越大的數(shù)據(jù)集上預訓練和微調(diào)模型之外,又如何提高在更小數(shù)據(jù)集上的效率呢?論文《Distilling Step-by-Step! Outperforming Larger Language Models with Less Training Data and Smaller Model Sizes》中提出使用一種蒸餾機制來管理任務特定的更小模型,它們使用更少的訓練數(shù)據(jù)卻超越了標準微調(diào)的性能。
論文地址:https://arxiv.org/abs/2305.02301
追蹤開源 LLM
開源 LLM 的數(shù)量呈爆炸式增長,一方面是非常好的發(fā)展趨勢(相較于通過付費 API 控制模型),但另一方面追蹤這一切可能很麻煩。以下四種資源提供了大多數(shù)相關模型的不同摘要,包括它們的關系、底層數(shù)據(jù)集和各種許可信息。
第一種資源是基于論文《Ecosystem Graphs: The Social Footprint of Foundation Models》的生態(tài)系統(tǒng)圖網(wǎng)站,提供如下表格和交互式依賴圖(這里未展示)。
這個生態(tài)系統(tǒng)圖是 Sebastian 迄今為止見過的最全面的列表,但由于包含了很多不太流行的 LLM,因而可能顯得有點混亂。檢查相應的 GitHub 庫發(fā)現(xiàn),它已經(jīng)更新了至少一個月。此外尚不清楚它會不會添加更新的模型。
論文地址: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》中繪制精美的進化樹,該論文側(cè)重于最流行的 LLM 和它們的關系。
雖然讀者看到了非常美觀和清晰的可視化 LLM 進化樹,但也有一些小的疑惑。例如不清楚為什么底部沒有從原始 transformer 架構(gòu)開始。此外開源標簽并不是非常的準確,例如 LLaMA 被列為開源,但權重在開源許可下不可用(只有推理代碼是這樣的)。
論文地址: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)點在于包含了模型尺寸和許可信息。如果你計劃在任何項目中采用這些模型,則該表格會非常有實用性。
博客地址: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 總覽表,它提供了有關微調(diào)方法和硬件成本的額外信息。
總覽表地址:https://github.com/shm007g/LLaMA-Cult-and-More/blob/main/chart.md
利用 LLaMA-Adapter V2 微調(diào)多模態(tài) LLM
Sebastian 預測本月會看到更多的多模態(tài) LLM 模型,因此不得不談到不久前發(fā)布的論文《LLaMA-Adapter V2: Parameter-Efficient Visual Instruction Model》。先來回顧一下什么是 LLaMA-Adapter?它是一種參數(shù)高效的 LLM 微調(diào)技術,修改了前面幾個 transformer 塊并引入一種門控機制來穩(wěn)定訓練。
論文地址:https://arxiv.org/abs/2304.15010
使用 LLaMA-Adapter 方法,研究人員能夠在 52k 個指令對上僅用 1 小時(8 塊 A100 GPU)來微調(diào)一個 7B 參數(shù)的 LLaMA 模型。雖然僅對新添加的 1.2M 參數(shù)(adapter 層)進行了微調(diào),但 7B LLaMA 模型仍處于凍結(jié)(frozen)狀態(tài)。
LLaMA-Adapter V2 的重點在多模態(tài),即構(gòu)建一個可以接收圖像輸入的視覺指令模型。最初的 V1 雖然可以接收文本 token 和圖像 token,但在圖像方面沒有得到充分探索。
LLaMA-Adapter 從 V1 到 V2,研究人員通過以下三個主要技巧來改進 adapter 方法。
早期視覺知識融合:不再在每個 adapted 層融合視覺和 adapted 提示,而是在第一個 transformer 塊中將視覺 token 與單詞 token 連接起來;
使用更多參數(shù):解凍(unfreeze)所有歸一化層,并將偏置單元和縮放因子添加到 transformer 塊中每個線性層;
具有不相交參數(shù)的聯(lián)合訓練:對于圖文字幕數(shù)據(jù),僅訓練視覺投影層;針對指令遵循的數(shù)據(jù)僅訓練 adaption 層(以及上述新添加的參數(shù))。
LLaMA V2(14M)比 LLaMA V1 (1.2 M) 的參數(shù)多了很多,但它仍是輕量級,僅占 65B LLaMA 總參數(shù)的 0.02%。特別令人印象深刻的是,通過僅對 65B LLaMA 模型的 14M 參數(shù)進行微調(diào),得到的 LLaMA-Adapter V2 在性能上媲美 ChatGPT(當使用 GPT-4 模型進行評估)。LLaMA-Adapter V2 還優(yōu)于使用全微調(diào)方法的 13B Vicuna 模型。
遺憾的是,LLaMA-Adapter V2 論文省略了 V1 論文中包含的計算性能基準,但我們可以假設 V2 仍然比全微調(diào)方法快得多。
其他開源 LLM
大模型的發(fā)展速度奇快,我們無法一一列舉,本月推出的一些著名的開源 LLM 和聊天機器人包括 Open-Assistant、Baize、StableVicuna、ColossalChat、Mosaic 的 MPT 等。此外,下面是兩個特別有趣的多模態(tài) LLM。
OpenFlamingo
OpenFlamingo 是 Google DeepMind 去年發(fā)布的 Flamingo 模型的開源復制版。OpenFlamingo 旨在為 LLM 提供多模式圖像推理功能,讓人們能夠交錯輸入文本和圖像。
MiniGPT-4
MiniGPT-4 是另一種具有視覺語言功能的開源模型。它基于 BLIP-27 的凍結(jié)視覺編碼器和凍結(jié)的 Vicuna LLM。
NeMo Guardrails
隨著這些大語言模型的出現(xiàn),許多公司都在思考如何以及是否應該部署它們,安全方面的擔憂尤為突出。目前還沒有好的解決方案,但至少有一個更有前途的方法:英偉達開源了一個工具包來解決 LLM 的幻覺問題。
簡而言之,它的工作原理是此方法使用數(shù)據(jù)庫鏈接到硬編碼的 prompt,這些 prompt 必須手動管理。然后,如果用戶輸入 prompt,該內(nèi)容將首先與該數(shù)據(jù)庫中最相似的條目相匹配。然后數(shù)據(jù)庫返回一個硬編碼的 prompt,然后傳遞給 LLM。因此,如果有人仔細測試硬編碼 prompt,就可以確保交互不會偏離允許的主題等。
這是一種有趣但不是開創(chuàng)性的方法,因為它沒有為 LLM 提供更好的或新的能力,它只是限制了用戶可以與 LLM 交互的程度。盡管如此,在研究人員找到減輕 LLM 中的幻覺問題和負面行為的替代方法之前,這可能是一種可行的方法。
guardrails 方法還可以與其他對齊技術相結(jié)合,例如作者在上一期 Ahead of AI 中介紹的流行的人類反饋強化學習訓練范例。
一致性模型
談論 LLM 以外的有趣模型是一個不錯的嘗試,OpenAI 終于開源了他們一致性模型的代碼:https://github.com/openai/consistency_models。
一致性模型被認為是擴散模型的可行、有效的替代方案。你可以在一致性模型的論文中獲得更多信息。
原文地址:https://magazine.sebastianraschka.com/p/ahead-of-ai-8-the-latest-open-source
聯(lián)系客服