微軟開放3.1T token高質量數據!通用/代碼/數學/問答,全領域超越開源
過去幾年,大型語言模型(LLMs)已經成為人工智能研究的一個關鍵領域,從大規模的自然語言數據中學習,使其能夠以極高的準確率執行各種與語言相關的任務。
得益于模型擴展性方面的進展,研究人員能夠創建具有前所未有復雜度的模型。
當前的研究趨勢是致力于構建更大、更復雜的模型,具有數百/數千億個參數,但大型語言模型的訓練需要海量的訓練數據,尤其隨著模型參數量的上升,對于優質數據數量的要求也將進一步加大,優質數據量的缺乏極大限制了模型能力的進一步增長。
RedStone是一個高效構建大規模指定領域數據的處理管道,結合了目前主流的數據處理工具以及自定義的處理模塊,進一步優化發展而來。
通過RedStone,研究人員構建了包括RedStone-Web、RedStone-Code、RedStone-Math以及RedStone-QA等多個數據集,均在各類任務中超越了目前開源的數據集,能夠為大模型的預訓練以及后訓練提供堅實的數據支撐。
論文地址:https://arxiv.org/abs/2412.03398
倉庫鏈接:https://github.com/microsoft/RedStone
受限于公司的開源策略,RedStone僅開源了數據索引以及所有處理代碼以供社區復現。不過隨著受社區關注度的逐漸提高,目前已有社區復現版本的RedStone,依據github中項目描述,該復現的數據集在規模和質量上與RedStone內部數據類似。
圖1 RedStone概覽圖
如圖1所示,RedStone以Common Crawl為原始數據源,旨在使用同一的數據處理框架清洗各類目標數據。
RedStone-Web為大規模通用的預訓練數據,為模型注入全世界通用知識。
RedStone-Code和RedStone-Math為網絡中的各類代碼/數學相關數據,與其他開源的code、math類型數據不同的是,網頁中的code/math天然具有純文本和code/math交錯的形式,例如代碼教程、題目講解等等。
因此模型可以像人類一樣借助code/math上下文中的純文本來進一步深刻理解code/math。此外RedStone還構建了RedStone-QA,這是一個大規模的QA數據集,最簡單直接的方式為模型注入各類知識。
對于RedStone-Web,RedStone認為對于高質量數據的定義至關重要,早期社區認為文本的流暢度等指標代表了數據的質量,近期越來越多研究人員認為含有教育意義的數據代表了高質量數據。
RedStone則是在其中找了一個平衡點,包含知識且文本流暢的,被定義為高質量數據。其中知識可以是任何形式的,只要其中包含的內容可以讓模型對世界的認識得到進一步發展。
因此在RedStone-web的構建上,主要處理框架參考了refinedweb和redpajama,但刪除了原有的過濾模塊,使用新構建的過濾系統,最終獲得了總共3.1T token的高質量通用預訓練數據。各個其各個步驟以及對應的數據量如圖2所示。
圖2 RedStone-Web處理步驟
除了RedStone-Web這一通用領域的高質量數據集以外,RedStone認為網絡是一個蘊含豐富寶藏的礦藏之地,足以挖掘各類在通用領域之外被遺漏的各類數據(例如對于RedStone-Web而言有些頁面整體質量不高,但其中的某個片段在特定領域屬于高質量),隨后構建了RedStone-Code、RedStone-Math以及RedStone-QA等專有數據。
其核心仍然是過濾,RedStone提出了多層過濾系統,分別對應不同的數據規模。例如采用fasftext對所有網頁進行統一快速過濾,隨后使用更高性能模型精細過濾以及片段抽取。論文指出RedStone支持構建其他類型的專有數據,只需自定義好過濾器即可。通用領域和特定領域的數據構建代碼都已開源。
圖3展示了最終各個數據集的規模。
圖3 數據集規模
為了驗證各個數據集的質量,作者分別使用這些數據對模型進行訓練,并與開源數據集比較。如圖4所示。RedStone-Web在大部分任務中都顯著高于其他所有開源數據集,并且在平均分指標上得到了第一的成績。這說明RedStone-Web可以顯著提升模型性能,并且使得模型的訓練更為高效。
圖4 RedStone-Web與開源預訓練數據集的比較
圖5 RedStone-Code結果展示
考慮到RedStone-Code是來源于網頁,數據是文本與代碼交錯的形式,目前社區中并無此類數據集開源,因此在RedStone-Web基礎上增加RedStone-Code進行了實驗。
可以看到在并沒有顯示添加例如github等純代碼的數據情況下,所有數據均只來自網頁,RedStone-Code同樣可以顯著提升模型在代碼方面的能力,說明RedStone-Code能夠給模型注入足夠的代碼知識,對于代碼數據已經被耗盡的社區來說,這是一個能顯著進一步擴展代碼領域數據的數據集。
圖6 RedStone-Web與開源數據比較
圖6展示了RedStone-Math與社區開源數據OpenWebMath的比較,結果顯示在同樣的設置和步數下,RedStone-Math在得分上高于OpenWebMath,盡管OpenWebMath同樣來源于網絡,但得益于構建了更好的過濾器,最終能夠得到更高的數據質量。
圖7 RedStone-QA與開源數據比較
在沒有依賴更多的QA數據下,只從網絡中爬取QA對,RedStone-QA就可以讓模型相對與其他開源QA數據集得到顯著的提升(例如MMLU提升了大約10個點),這更說明了網絡是一個蘊含豐富寶藏的礦藏之地。
除了以上這些領域外,RedStone的使用幾乎不受領域的限制,任何人都可以使用開源代碼對特定領域進行爬取。
通過圖4至圖7的結果可以看到,RedStone構建的數據在LLM預訓練以及后訓練中展現了有前景的能力,使其成為構建LLM各類訓練數據的多功能、實用pipeline。