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