FineWeb技術報告出爐!揭秘HuggingFace規模最大、質量最高預訓練數據集
大型語言模型(LLMs)的性能在很大程度上取決于它的預訓練數據集的質量和大小。
然而,像Llama 3和Mixtral這樣最先進的LLMs的預訓練數據集并不公開;關于它們是如何創建的,我們知之甚少。
近日,Hugging Face上的一個團隊發布了FineWeb數據集,這是一個用于LLM預訓練的新型大規模(15萬億個tokens,44TB磁盤空間)數據集。
同時,他們還通過技術報告詳細介紹了該數據集的加工決策過程:FineWeb源自96個CommonCrawl快照,它是如何通過縝密的去重和過濾策略,比其他開放預訓練數據集產生了表現更好的LLM的。
創建數據集的準備工作
開始創建數據集的第一步,需要考慮的問題是如何獲取到大規模的數據。
Common Crawl這個非營利組織自2007年以來一直在爬取網絡數據,并且每1到2個月發布一次新的爬取,包含200到400 TiB的文本內容。
于是,Common Crawl就作為了FineWeb數據集的起點。
其次,由于涉及的數據量巨大,需要一個模塊化且可擴展的代碼庫來快速迭代處理決策并適當地并行化工作負載,同時提供對數據的清晰洞察。
為此,該團隊開發了datatrove,這是一個開源數據處理庫,能夠將過濾和去重設置無縫擴展到數千個CPU核心。
在創建數據集時,需要考慮的主要問題是什么是“高質量”的數據。
一種常用的方法是在數據集的一個代表性子集上訓練小型模型,并在一組評估任務上評估它們。
研究者在兩個版本的數據集上訓練了兩個結構相同的模型,一個經過額外處理步驟,另一個沒有,以此來比較數據處理步驟對模型性能的影響。
他們選用了Commonsense QA、HellaSwag、OpenBook QA等基準測試來評估模型,并限制較長基準測試的樣本量以避免過度擬合,確保模型評估結果的可靠性和泛化能力。
數據集是怎么去重和過濾的
下圖概括了FineWeb數據集生成的主要步驟:
URL過濾→文本提取→語言過濾→Gopher過濾→MinHash去重→C4過濾器→自定義過濾器→PII(個人身份信息)移除
本文主要介紹去重和過濾的部分,因為對于創建高質量數據集來說,這兩個步驟對于提高模型性能、增加數據多樣性和清潔度方面至關重要。
數據去重
網絡中存在許多聚合器、鏡像站點或模板化頁面,這些都可能導致內容在不同域名和網頁上重復出現。
去除這些重復內容(去重)已被證明可以提高模型性能,并減少對預訓練數據的記憶,這有助于模型更好地泛化。
研究者采用了MinHash這種基于模糊哈希的去重技術,因為它可以有效地擴展到許多CPU節點,并可以調整相似性閾值(通過控制bucket的數量和大小)以及考慮的子序列長度(通過控制n-gram大?。?/span>
研究者拆分每個文檔為5-gram,使用112個哈希函數計算minhashes。
112個哈希函數被分成14個bucket,每個bucket有8個哈希,目的是定位至少75%相似的文檔。
在任何bucket中具有相同8個minhashes的文檔被認為是彼此的重復。
需要注意的是,研究者發現一個奇怪的現象:雖然去重后數據量少了很多(比如最舊的數據包,去重后只剩下了原來10%的內容),但用這些去重后的數據去訓練模型的時候,模型的表現并沒有變好,甚至比之前用沒有去重的數據訓練的模型還要差。
在所有數據包上進行去重并沒有提高性能
這說明,有時候去重去得太狠了,可能把一些有用的內容也給去除了,留下的那些內容反而質量不高。
這也提醒我們,需要找到一個平衡點,既要去除重復、低質量的數據,也要保留足夠的、有價值的信息。
為了改進去重方法,研究者嘗試了一種新策略:對每個單獨的數據包使用MinHash技術進行獨立的去重,而不是將所有數據包合并在一起去重。
通過這種方式,平衡了每個重復次數較多的集群和重復次數較少的集群之間的分布差異,讓去重更加的「溫和」。
數據過濾
首先介紹一下C4數據集,這是一個大型語言模型(LLM)訓練的常用數據子集,它在Hellaswag基準測試中表現十分出色。
FineWeb的研究者首先參照C4的過濾策略,先是匹配它的性能,然后是超越。
通過應用所有過濾規則(去除不以標點符號結尾的行、提及JavaScript和cookie通知,以及去除不在長度閾值內的文檔,包含“lorem ipsum”或花括號{}),他們能夠匹配C4在Hellaswag上的表現。
然后,通過多次的消融研究,研究者確定了三個自定義過濾器在綜合分數上顯示出最顯著的改進:
- 移除以標點符號結尾的行的比例≤0.12的文檔(移除了10.14%的token)
- 移除在重復行中字符的比例≥0.1的文檔(移除了12.47%的token)
- 移除短于30個字符的行的比例≥0.67的文檔(移除了3.73%的token)
當這三個過濾器一起應用時,大約22%的標記被移除。
這些過濾器使他們能夠進一步提高性能,并顯著地超過了C4數據集的性能,同時提供了一個更大的數據集。
FineWeb數據集的表現
通過與其他通常被認為是最高質量的公開可訪問的網絡規模數據集進行了消融比較,包括RefinedWeb(5000億個標記)、C4(1720億個標記)、Dolma v1.6(3萬億個標記)等, FineWeb(15萬億個標記)在允許訓練數萬億個標記的同時,帶來了目前最高的模型性能。
除此之外,該團隊還發布了FineWeb-Edu,FineWeb-Edu的開發采用了一種新方法,即利用合成數據來開發用于識別教育內容的分類器。
針對教育領域,通過增加教育質量評分的注釋和增加了單獨的評分系統,研究者創建了一個有效的分類器,可以在大規模數據集上識別和過濾出具有教育價值的內容。
FineWeb-Edu在教育基準測試如MMLU、ARC和OpenBookQA上取得了顯著改進,超過了 FineWeb和其他所有開放的網絡數據集。
同時,FineWeb-Edu的生成也證明了使用LLM注釋訓練的分類器在大規模數據過濾中的有效性。
在技術報告的最后,研究者表示,希望持續揭示高性能大型語言模型訓練的黑箱,并讓每個模型訓練者都能創建最先進的LLM。
他們也期待將FineWeb的經驗和學習應用到其他的非英文語言,使多語言的高質量網絡數據也能夠更容易地被獲取到。