用大模型最佳化大模型預訓練資料,節省20倍計算量,實現顯著效能提升!

机器之心發表於2024-09-27
圖片

AIxiv專欄是機器之心釋出學術、技術內容的欄目。過去數年,機器之心AIxiv專欄接收報導了2000多篇內容,覆蓋全球各大高校與企業的頂級實驗室,有效促進了學術交流與傳播。如果您有優秀的工作想要分享,歡迎投稿或者聯絡報導。投稿郵箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com


生成式人工智慧研究實驗室(GAIR,主頁:https://plms.ai/)是國內首個聚焦於生成式人工智慧的高校研究組。匯聚了來自於 CMU、復旦、交大(ACM 班、IEEE 試點班等)等頂尖高校的年輕本碩博人才。實驗室專注於三大核心領域:大模型基礎研究、對齊系統和社會影響,致力於培養頂尖人工智慧人才(具有原創、批判精神等)、開發尖端的生成式人工智慧技術,賦能人類解決複雜問題,提升人類生活質量。

Program-Every-Example (ProX) 是上海交通大學生成式人工智慧實驗室 (GAIR Lab) 、上海人工智慧實驗室、新加坡 Sea AI Lab 聯合研究的一個用於提升大規模預訓練語料質量的資料最佳化框架。

1. 背景介紹

在大模型研發過程中,資料質量是決定模型成功與否的關鍵因素之一,而大規模預訓練資料則是構建強大語言模型的基礎。業界的實踐通常是抓取網際網路上的海量的網頁資料,然後由人類專家設計專門的規則來進行資料清洗,這些規則雖然能夠在處理數千億甚至上萬億 token 級別的語料時保持較高的效率,但其侷限性也逐漸顯現。資料的清洗效果往往決於規則是否全面,然而這些規則並不能理解文件中的上下文語境,同時也很難為每一個文件去定製規則,故此面對多樣化的樣本需求,這些靜態規則難以靈活應對,導致語料質量提升空間有限,制約了模型的進一步突破。

為此,上海交通大學生成式人工智慧實驗室 (GAIR Lab)、上海人工智慧實驗室以及新加坡 Sea AI Lab 聯合提出了 Program-Every-Example (ProX) 框架。ProX 透過採用語言模型而非人類規則進行自動化的資料最佳化,靈活應對多樣化的樣本特徵,顯著提升了預訓練語料的質量,為大規模預訓練模型的效能突破提供了一種可能的資料最佳化思路
圖片
  • 論文: https://huggingface.co/papers/2409.17115

團隊還以開源的方式為社群提供了:
  • 程式碼框架: https://github.com/GAIR-NLP/ProX

  • 預訓練實驗的全實驗細節和模型: https://huggingface.co/gair-prox

  • 超過 100B 的高質量通用語料和 5B 的高質量數學語料: https://hf.co/collections/gair-prox/prox-dataset-66e81c9d560911b836bb3704

2. 用語言模型提升語言模型 「自己」 的資料質量

傳統的預訓練資料清洗和最佳化方法主要依賴人工設計的規則,雖然這些規則能夠有效過濾低質量資料,但無法針對每個樣本進行更細粒度的處理。這種方式難以處理複雜的多樣化資料,最終可能導致模型效能的瓶頸。Program-Every-Example (ProX) 的出現旨在改變這一局面,它透過利用語言模型自動生成最佳化程式,能夠對每個資料樣本進行個性化處理,提升資料的整體質量。ProX 不僅可以識別低質量的文字,還能進行更精準的最佳化和清理,如字串標準化、噪聲行刪除等操作,確保每個樣本都能以最佳狀態進入預訓練過程。
圖片
圖:ProX 總體框架,利用語言模型生成程式 + 執行,提升資料質量。

3. 如何兼顧效率和質量?Program-Every-Example!

在利用語言模型提升資料質量的同時,如何提高資料處理的成本和效率也是研究中的一大挑戰,特別是考慮到預訓練所需要的語料往往突破了數萬億級別 (TB) token。

近期,業界和各個研究團隊(如 meta 的 llama 團隊,阿里千問團隊)也在積極研究直接利用大語言模型來選擇和過濾語料,這些方法主要應用於文件級別的資料過濾和選擇,能夠有效識別低質量的文件並加以排除,提升整體資料集的質量。然而,這類方法潛在的侷限性在於其精細化處理能力不足,通常只停留在文件的選擇層面,可能沒有進一步對文件內的細節進行更深入的最佳化和清理,例如字元級別的規範化處理、噪聲行的刪除等操作,從而限制了資料最佳化的效果。

同時,直接的資料合成方法正在成為另一個研究熱點。該方法透過大語言模型(LLM)基於種子資料或特定話題,主動生成新的高質量資料。這種合成技術儘管展示了生成多樣化、豐富語料的潛力,但其挑戰在於需要極大的計算資源支援,特別是在大規模生成時,計算代價非常高。此外,LLM 生成的資料還面臨幻覺問題,即生成內容與事實不符,無法保證訓練資料的真實性和一致性。這些問題給直接資料合成方法的實際應用帶來了很大挑戰,特別是在需要高精度和高可信度的領域。

於是在 ProX 中,研究者們提出了 Program-Every-Example 的設計。 他們透過使用較小的語言模型(如 0.3B 的超小規模模型)來執行資料最佳化任務,並且將資料最佳化的過程轉變為呼叫特定的 python 函式,對每個文件都生成特定的函式呼叫。ProX 框架會再透過執行這些程式,來對語料進行文件級別的過濾和噪聲行、字元級別的處理。

這樣簡單的 Program 設計,大大節省了輸出端的 token 數量,相比較於依賴於大語言模型資料合成方法(通常依賴於 7B 甚至 70B 規模的模型)顯著減少了計算成本,同時又做到了簡單過濾方法無法實現的精細化操作
圖片
圖:ProX 設計的函式介面,覆蓋了文件級別過濾、噪聲行去除、字串清洗等操作。

4. 如何構造資料最佳化模型?

如何構造這樣的資料最佳化模型呢?是否要對不同 domain 都有不同的構造方法呢?在這裡,ProX 採用了一種統一的構造思路,無需對特定領域進行額外設計就可以廣泛適用。首先,針對資料最佳化的粒度,ProX 將最佳化分為兩個階段:文件級別和子文件 / 塊級別 (將文件切分成更小的視窗),分別對應文件級別的過濾和更細粒度的塊內最佳化如行級別和字元級別的最佳化。

由於直接讓模型,尤其是較小的模型生成這樣上述設計的函式呼叫是較為困難的,因此 ProX 合成了對應的微調資料,以便對基座模型進行微調以處理和最佳化真實的語料。在文件級別操作中,ProX 借鑑了近期紐約大學的 Self-Rewarding 以及 Hugginface 的 FineWeb-Edu 中所採用的評分機制,對數萬個隨機取樣的種子文件進行了教育價值評分、文件格式評分,並構建出保留高分文件、去除低分文件的最佳化程式。在子文件 / 塊級別級別的操作中,ProX 利用了 Llama-3 和少樣本提示的方法,構造了對於多種噪聲的函式呼叫,並對這些離散的函式呼叫進行語法檢查和正確性分析,篩選然後合併為一個較為複雜的程式。

最終,ProX 對兩個最佳化階段,分別構建了適用於通用領域的約 50K 函式呼叫資料集,並以相同的方法針對數學領域生成了同等規模的資料集。ProX 隨後透過 SFT(監督微調) 在一個小模型上進行訓練,模型快速收斂,且成功應用於真實的大規模語料處理任務中,在後續的大量實驗中展示了其高效的最佳化能力與廣泛的適用性
圖片
圖:ProX 構造 SFT 資料和資料最佳化模型的流程示意圖。

5. 在廣泛資料集上得以驗證

那麼 ProX 得到的資料效果到底如何?

超越人工規則,超越此前的基於語言模型的資料選擇方法

初步實驗發現,ProX 在小於 1B 規模的模型訓練中超越了此前多個人工設計的規則過濾方法,並且在多數的標準化測試資料集中穩定達到更高的表現。

圖片

圖片
表:ProX 和人工規則的對比,表現出穩定且大幅度的增長。

ProX 還和此前利用語言模型選擇預訓練資料的方法進行了比較。團隊僅採用了文件級別的最佳化,以保持和資料選擇方法較為公平的最佳化粒度,仍然在 8 個下游資料集上,大幅度提升了之前的利用語言模型進行資料選擇方法 ( > 2.0%)。
圖片
表:Prox 和現有的利用語言模型進行資料選擇方法對比,超越了所有基準方法。

更大規模的實驗:50B 語料訓練媲美 3T 效能?

團隊在 1.7B 模型上訓練了 50B ProX 最佳化後的資料,發現其表現已經接近於甚至超越一些用超過數百 B 甚至 TB 級別語料訓練的語言模型,例如 OLMo、Pythia、TinyLlama 等等。且訓練後的模型和現有的利用超大模型直接資料合成語料上訓練更充足的模型,表現也非常接近。這充分說明了 ProX 最佳化資料質量的有效性。
圖片
圖:ProX 和原始資料、Tinyllama (3T token)、OLMo (2T token)、Pythia (300B token) 的訓練代價及效能表現對比。

在這些對比的模型中,Inst-LM 實際採用了更大規模的經過重構的下游資料集 + 微調的 Mistral-7B 模型,合成了更多的 100B tokens;Cosmo 則採用了更大規模的 Mistral-8x7B 模型合成了 25B tokens,並重複訓練了 180B 總 tokens;Sheared-Llama 則是透過模型剪枝演算法,從 Llama-2-7B 中剪枝並且繼續訓練 50B tokens 得到。相比於 ProX 僅用了 0.3B 的最佳化模型和 50B tokens 的訓練代價,這些模型的資料開發和訓練成本都要大得多。而 ProX 取得了和他們十分接近的資料集表現,也進一步反應了 ProX 的高效和節省計算量。
圖片
圖:ProX 和 LLama-2 模型剪枝方法、其他合成語料訓練的模型之間的效能比較。

透過對 FLOPs 的定量分析,團隊發現隨著訓練模型引數量的擴大,ProX 的資料最佳化的推理成本佔訓練成本的比例在不斷下降,達到相同下游表現的總訓練成本也在大幅下降。並且相比於利用大模型,直接進行大規模資料合成高質量語料所需要的代價要小得多。圖片
圖:達到相同效能,使用 / 不使用 ProX 所需的總計算量成本。

特定領域預訓練 :無需額外設計,大幅提升數學效能

ProX 在數學語料上也有相似的提升。ProX 對現有最好的開源數學文字語料 Open-Web-Math 進行最佳化,得到了約 5B 高質量的資料。在對 7B 模型 (如,CodeLlama,Llama,Mistral)經過了 10B~15B 的預訓練後,模型在 9 個數學相關榜單上最高提升 20% 的效能。注意到 ProX 僅用了約 1/20 的訓練代價,就得到了效果堪比現有的使用開源資料訓練 50B 甚至 200B 的專用數學大模型,再次證明了資料質量對於模型的重要性。

值得注意的是,ProX 並未對數學領域的資料最佳化模型、最佳化函式、資料收集進行額外的設計;他們直接使用了和通用領域相同的提示詞、函式實現、構建策略,就得到了出色的效果;這也極大降低了定製化垂類大模型的開發成本。
圖片
圖:ProX 在數學語料上的續訓練以及在 9 個數學任務上的平均效能表現。

6. 未來展望

ProX 可以怎麼樣幫助社群做下一步的研究?他們在論文的最後還構想中瞭如下幾點:

  • 設計出更靈活的介面,以覆蓋多樣化的資料最佳化需求,進一步提升資料質量。
  • 將 ProX 發展到更多專用 domain:例如程式碼領域、多語言語料上,促進領域大模型的發展。
  • 透過進一步減小模型尺寸、和其他加速手段,減小推理代價,使清洗 TB 級別文件不再遙遠。

最後,隨著近期 openai o1 模型的釋出,test time scaling 成為研究者們和業界關心的話題。對此,ProX 團隊也懷有相同的期待:在資料最佳化階段投入更多的計算量來最佳化資料,或許同樣能夠成為模型突破瓶頸、邁向通用人工智慧(AGI)的重要技術手段之一。

相關文章