現代大語言模型訓練數據集的奧祕何在?
發表於 2023-03-07 08:50 作者: 阿法兔研究筆記
對於訓練當代Transformer大型語言模型的數據集而言,本文可能是最全面的整合分析內容(截止2022年初)。在主要數據源不透明的情況下,本次研究主要從二級和三級來源收集數據,並經常需要假定來確定最終估計值。隨着研究人員要處理千萬億個token(1,000萬億)和數千TB的數據(1,000TB),確保詳細披露數據集組成的文檔變得越來越重要。
隨着語言模型不斷發展並更廣泛地滲透到人們的生活中,確保數據集的詳細信息公开透明、所有人都可訪問且易於理解是有用、緊迫和必要的。
一個問題:ChatGPT的核心算法Transformer最初是由Google提出的,並且在大模型技術上的積累可以說不弱於OpenAI,當然他們也不缺算力和數據,但爲什么依然會被ChatGPT打的措手不及?
其實,對互聯網大廠之外的團隊來說,剩下最大的挑战在於高質量訓練數據集。本文作者整理分析了2018年到2022年初從GPT-1到Gopher的相關大型語言模型的所有數據集相關信息,希望幫助有志於开發“類ChatGPT”模型的團隊少走一步彎路。
一些研究人員的報告稱,通用人工智能(AGI)可能是從我們當前的語言模型技術進行演進[1],預訓練Transformer語言模型爲AGI的發展鋪平了道路。雖然模型訓練數據集日漸增大,但缺乏基本指標文檔,包括數據集大小、數據集token數量和具體的內容細節。
盡管業內提出了數據集組成和整理文檔的標准[2],但幾乎所有重點研究實驗室在揭示模型訓練數據集細節這方面都做得不夠。這裏整合的研究涵蓋了2018年到2022年初從GPT-1到Gopher的精選語言模型的所有數據集(包括主要數據集:Wikipedia和Common Crawl)的綜合視圖。
概述
圖 1. 主要數據集大小的可視化匯總。未加權大小,以GB爲單位。
2018年以來,大語言模型的开發和生產使用呈現出爆炸式增長。一些重點研究實驗室報告稱,公衆對大語言模型的使用率達到了驚人高度。2021年3月,OpenAI宣布[3]其GPT-3語言模型被“超過300個應用程序使用,平均每天能夠生成45億個詞”,也就是說僅單個模型每分鐘就能生成310萬詞的新內容。
值得注意的是,這些語言模型甚至還沒有被完全理解,斯坦福大學的研究人員[4]最近坦言,“目前我們對這些模型還缺乏認知,還不太了解這些模型的運轉模式、不知道模型何時會失效,更不知道這些模型的突現性(emergent properties)能產生什么效果”。
隨着新型AI技術的快速發展,模型訓練數據集的相關文檔質量有所下降。模型內部到底有什么祕密?它們又是如何組建的?本文綜合整理並分析了現代大型語言模型的訓練數據集。
因爲這方面的原始文獻並不對外公开,所以本文搜集整合了二、三級研究資料,在必要的時候本文會採用假設的方式來推算最終結果。
在本文中,我們會將原始論文中已經明確的特定細節(例如token數量或數據集大小)歸類爲“公开的(disclosed)”數據,並作加粗處理。
多數情況下,適當地參考二、三級文獻,並採用假設的方式來確定最終結果是很有必要的。在這些情況下,token數量和數據集大小等細節是“確定的(determined)”,並以斜體標記。
模型數據集可分爲六類,分別是:維基百科、書籍、期刊、Reddit鏈接、Common Crawl和其他數據集。
表1. 主要數據集大小匯總。以GB爲單位。公开的數據以粗體表示。確定的數據以斜體表示。僅原始訓練數據集大小。
1.1. 維基百科
維基百科是一個免費的多語言協作在线百科全書,由超過300,000名志愿者組成的社區編寫和維護。截至2022年4月,英文版維基百科中有超過640萬篇文章,包含超40億個詞[5]。維基百科中的文本很有價值,因爲它被嚴格引用,以說明性文字形式寫成,並且跨越多種語言和領域。一般來說,重點研究實驗室會首先選取它的純英文過濾版作爲數據集。
1.2. 書籍
故事型書籍由小說和非小說兩大類組成,主要用於訓練模型的故事講述能力和反應能力,數據集包括Project Gutenberg和Smashwords (Toronto BookCorpus/BookCorpus)等。
1.3. 雜志期刊
預印本和已發表期刊中的論文爲數據集提供了堅實而嚴謹的基礎,因爲學術寫作通常來說更有條理、理性和細致。這類數據集包括ArXiv和美國國家衛生研究院等。
1.4. Reddit鏈接
WebText是一個大型數據集,它的數據是從社交媒體平台Reddit所有出站鏈接網絡中爬取的,每個鏈接至少有三個贊,代表了流行內容的風向標,對輸出優質鏈接和後續文本數據具有指導作用。
1.5. Common Crawl
Common Crawl是2008年至今的一個網站抓取的大型數據集,數據包含原始網頁、元數據和文本提取,它的文本來自不同語言、不同領域。重點研究實驗室一般會首先選取它的純英文過濾版(C4)作爲數據集。
1.6. 其他數據集
不同於上述類別,這類數據集由GitHub等代碼數據集、StackExchange 等對話論壇和視頻字幕數據集組成。
2
常用數據集
2019年以來,大多數基於Transformer的大型語言模型 (LLM) 都依賴於英文維基百科和Common Crawl的大型數據集。在本節中,我們參考了Jesse Dodge和AllenAI(AI2)[8]團隊的綜合分析,按類別對英文維基百科作了高級概述,並在Common Crawl數據集[7]的基礎上,用谷歌C4[6] (Colossal Clean Crawled Corpus)在Common Crawl中提供了頂級域(domains)。
2.1. 維基百科(英文版)分析
下面按類別[9]列出了維基百科的詳細信息,涵蓋了2015年抽樣的1001篇隨機文章,研究人員注意到隨時間推移文章傳播的穩定性。假設一個11.4GB、經過清理和過濾的維基百科英文版有30億token,我們就可以確定類別大小和token。
表2. 英文維基百科數據集類別。公开的數據以粗體表示。確定的數據以斜體表示。
2.2 Common Crawl分析
基於AllenAI (AI2)的C4論文,我們可以確定,過濾後的英文C4數據集的每個域的token數和總體百分比,該數據集爲305GB,其中token數爲1560億。
表3. C4:前23個域(不包括維基百科)。公开的數據以粗體表示,確定的數據以斜體表示。
3
GPT-1數據集
2018年,OpenAI發布了1.17億參數的GPT-1。在論文中,OpenAI並沒有公布模型訓練數據集的來源和內容[10],另外,論文誤將‘BookCorpus’拼寫成了‘BooksCorpus’。BookCorpus以作家未出版的免費書籍爲基礎,這些書籍來自於Smashwords,這是一個自稱爲“世界上最大的獨立電子書分銷商” 的電子書網站。這個數據集也被稱爲Toronto BookCorpus。經過幾次重構之後,BookCorpus數據集的最終大小確定爲4.6GB[11]。
2021年,經過全面的回顧性分析,BookCorpus數據集對按流派分組的書籍數量和各類書籍百分比進行了更正[12]。數據集中有關書籍類型的更多詳細信息如下:
表4. BookCorpus書籍類型。公开的數據以粗體表示,確定的數據以斜體表示。
在隨後的數據集重構中,BookCorpus數據集進一步過濾掉了書籍中的“吸血鬼”類別、降低了言情類書籍的百分比、增加了“歷史”類書籍,增加了收集的書籍數量。
3.1. GPT-1數據集總結
GPT-1最終的數據集總結分析如下:
表5.GPT-1數據集總結。以GB爲單位。公开的數據以粗體表示,確定的數據以斜體表示。
4
GPT-2數據集
2019年,OpenAI發布了擁有15億參數的語言模型GPT-2。GPT-2論文闡明了所用訓練數據集的大小[13],不過並未說明其內容。而GPT-2模型卡(model card)(在GPT-2 GitHub倉庫中)說明了模型內容[14]。
我們可以從GPT-3論文中得到token數量,該論文使用了WebText擴展版本來表示190億token。據推測,2020年推出的WebText擴展版本擁有12個月的額外數據(additional data),因此它可能比2019年推出的GPT-2版本大25%左右[15]。GPT-2最終的token數量確定爲150億左右。
如GPT-2論文所述,假設模型卡顯示鏈接數時,每個鏈接都可以被4500萬鏈接總數所除,那WebText的內容在數據集中所佔的百分比的詳細信息就可以確定。
然後可以使用確定的150億token數量來查找每個域的token數量。請注意,在可用的前1,000個域中,此處僅顯示前50個域。
表6. WebText: 前50個域。 公开的數據以粗體表示,確定的數據以斜體表示。
4.1. GPT-2數據集總結
GPT-2模型最終的數據集總結分析如下:
表7. GPT-2數據集總結。 公开的數據以粗體表示,確定的數據以斜體表示。
5
GPT-3數據集
GPT-3模型由OpenAI於2020年發布。論文闡明了所用訓練數據集的token數量[16],但訓練數據集的內容和大小尚不清楚(Common Crawl的數據集大小除外[17])
表8. GPT-3數據集。 公开的數據以粗體表示,確定的數據以斜體表示。
5.1. GPT-3:關於Books1和Books2數據集的分析
特別值得關注的是,在OpenAI的GPT-3論文中,並未公开Books1數據集(120億token)和Books2數據集(550億token)的大小和來源。關於這兩個數據集的來源人們提出了幾個假設,包括來自LibGen18和Sci-Hub的類似數據集,不過這兩個數據集常以TB爲計,大到無法匹配。
5.2. GPT-3:Books1
GPT-3使用的Books1數據集不可能與GPT-1使用的BookCorpus數據集相同,原因在於Books1的數據集更大,達120億token。在一篇引用的論文[19]中就提及GPT-1使用的BookCorpus數據集擁有9.848億個詞,但這可能只相當於13億token(984.8字x 1.3字的token乘數)。
通過標准化項目古騰堡語料庫(SPGC),Books1有可能與古騰堡項目保持一致性。SPGC是一種开放式科學方法,被用於古騰堡項目完整的PG數據的精選(curated)版本。SPGC包含120億個token[20],大約爲21GB[21]。
5.3. GPT-3:Books2
Books2(550億token)可能與Bibliotik保持一致,並由EleutherA收集該來源的數據,組成數據集,使其成爲The Pile v1的一部分。Bibliotik版本爲100.96GB[22],其確定的token數僅爲250億,低於Books2公开的550億。然而,使用SPGC的‘每字節token數’比率(大約爲1:1.75),Bibliotik的token數和大小將更接近於Books2。
5.4. GPT-3數據集總結
附錄A概述了使用Wikipedia + CommonCrawl + WebText數據集的頂級資源列表。GPT-3模型的最終數據集總結分析如下:
表9.GPT-3數據集總結。公开的數據以粗體表示,確定的數據以斜體表示。
6
The Pile v1(GPT-J和GPT-NeoX-20B)數據集
The Pile v1數據集由EleutherAI於2021年發布,該數據集已被用於訓練包括GPT-J、GPT-NeoX-20B在內的多種模型,並作爲包括MT-NLG在內的其他模型的部分數據集。The Pile v1論文闡明了所用訓練數據集的來源和大小。隨着token數量的增加,The Pile v1論文應被用作未來數據集文檔的黃金標准。
有關token數量的更多詳情,可以使用本文提供的信息來確定,參見表1(大小以GB爲單位)和表7(token/每字節)[23]。
表10. The Pile v1數據集。公开的數據以粗體表示,確定的數據以斜體表示。
6.1. The Pile v1分組數據集(Grouped Datasets)
爲了確定如‘Books’、‘Journals’和‘CC’這類數據集的大小,筆者對數據集進行了分組,如下表所示。
表11. The Pile v1分組數據集(不包括Wikipedia、CC 和 WebText)。公开的數據以粗體表示,確定的以斜體表示。
6.2. The Pile v1數據集總結
The Pile v1數據集與GPT-J和GPT-NeoX-20B模型的最終數據集總結分析如下:
表 12. Pile v1 數據集總結。 公开的數據以粗體表示,確定的數據以斜體表示。
7
Megatron-11B和RoBERTa數據集
2019年,Meta AI(當時稱之爲Facebook AI)和華盛頓大學聯合發布了擁有1.25億參數的RoBERTa模型。次年,Meta AI發布了擁有110億參數的Megatron-11B模型。Megatron-11B使用的訓練數據集與RoBERTa相同。RoBERTa[24]論文闡明了所用訓練數據集的內容,不過必須參考引用的論文(BERT[25]和toryes[26])來確定最終的數據集大小。
BookCorpus: 確定的數據集爲4.6GB,如上面的GPT-1部分所示。
維基百科:公开的數據集爲“16GB(BookCorpus加上英文維基百科)”。在減去BookCorpus數據集(4.6GB,如上面的GPT-1部分所述)後,維基百科數據集確定爲11.4GB。
CC-News:(經過濾後)公开的數據集爲76GB。
OpenWebText: 公开的數據集爲38GB。
Stories: 公开的數據集爲31GB。請注意,此數據集是“基於常識推理任務問題”的Common Crawl內容,不屬於本文的‘Books’類別。相反,將Stories與CC-News數據集(76GB)相結合,Common Crawl的總數據集則爲107GB。
7.1. Megatron-11B和RoBERTa的數據集總結
Megatron-11B和RoBERTa最終的數據集總結分析如下:
表13. Megatron-11B和RoBERTa的數據集總結。 公示的數據以粗體表示,確定的數據以斜體表示。
8
MT-NLG數據集
2021年,英偉達和微軟發布了擁有5300億參數的語言模型MT-NLG。MT-NLG是微軟Turing NLG(擁有170億參數)和英偉達Megatron-LM(擁有83億參數)的“繼任者”。MT-NLG論文闡明了所用訓練數據集的來源和token數量,不過沒有明確指出數據集的大小。
如前所述,有關數據集大小的更多詳情,可以使用The Pile v1論文中提供的信息來確定。雖然使用的組件相同,但注意的是,MT-NLG和The Pile v1中報告的組件大小卻各不相同,這是由於來自Eleuther AI (The Pile v1數據集)和Microsoft/NVIDIA (MT-NLG模型)的研究人員採用了不同的數據過濾和去重方法。
8.1. MT-NLG中的Common Crawl數據集
Pile-CC:公开的數據集爲498億token,確定的數據爲227.12GB左右,參見上述Pile v1部分
CC-2020-50: 公开的數據集爲687億token,假設token的每字節率(per byte rate)爲0.25 TpB=274.8GB。
CC-2021-04:公开的數據集爲826億token,假設token的每字節率爲0.25 TpB=330.4GB
RealNews(來自RoBERTa/Megatron-11B):顯示爲219億token。根據RealNews論文[27],數據集確定爲120GB。
CC-Stories(來自RoBERTa/Megatron-11B):公开的數據集爲53億token,如上述RoBERTa部分所示,數據集確定爲31GB。
根據以上來源,可確認Common Crawl的總數據量爲983.32GB,共計2283億token。
8.2. MT-NLG分組數據集(Grouped Datasets)
表14. MT-NLG 分組數據集。公开的數據以粗體表示,確定的數據以斜體表示。
8.3. MT-NLG數據集總結
MT-NLG模型最終的數據集總結分析如下:
表15. MT-NLG數據集總結。 公示的數據以粗體表示,確定的數據以斜體表示。
9
MT-NLG 數據集Gopher數據集
Gopher模型由DeepMind於2021年發布,有2800億參數。該論文清楚地說明了所使用訓練數據集所包含的高級token數量和大小[28],但沒有說明詳細內容。
表16. 公开的Gopher數據集 (MassiveText)。公开的數據以粗體表述,確定的數據以斜體表示。
有趣的是,據Gopher論文披露:其Books數據集中包含一些超過500年歷史(1500-2008)的書籍。
9.1. MassiveWeb數據集分析
DeepMind於2014年被谷歌收購,並在創建MassiveText時獲得了海量數據。雖然Gopher論文中沒有進一步詳細描述MassiveWeb,但第44頁附錄中的表A3b注明了MassiveWeb中出現的前20個域[29]。根據披露的每個域所佔的百分比,我們可以使用MassiveWeb的總token數(5060億token)和總原始大小(1900GB)來確定每個域的token數量和大小。
表17. MassiveWeb:前20個域。公开的數據以粗體表示,確定的數據以斜體表示。
9.2. Gopher:關於維基百科數據集的分析
維基百科數據集的總規模很難確定。在Gopher論文中,研究人員指出維基百科沒有進行數據去重[30]。然而,論文中列出的不同大小數據集(12.5GB MassiveWeb Wikipedia與1GB MassiveText Wikipedia)可能是由於失誤而造成的,誤將“10GB”寫成了“1GB”。無論如何,本文僅使用MassiveWeb數據集版本 (12.5GB)。
9.3. Gopher:不包括WebText
Gopher數據集的組成部分不包括Reddit外鏈的WebText數據集。爲了清楚起見,盡管Reddit是MassiveWeb中的頂級域,但該數據集僅抓取Reddit域內的Reddit鏈接。根據定義,WebText[31]由“所有Reddit的外鏈”組成(即指向Reddit域外的鏈接)。
9.4. Gopher分組數據集
MassiveWeb被認爲是MassiveText的子組件,並被集成到Gopher的數據集匯總中,其分組基於以下列出的可用信息:
表18. Gopher分組數據集。公开的數據以粗體表示,確定的數據以斜體表示。
9.5. Gopher數據集總結
Gopher是本文中最大的數據集,大小爲10.5TB。Gopher模型的最終數據集總結分析爲:
表19. Gopher數據集總結。公开的數據以粗體表示,確定的數據以斜體表示。
10
結論
對於訓練當代Transformer大型語言模型的數據集而言,這可能是最全面的整合分析內容(截止2022年初)。在主要數據源不透明的情況下,本次研究主要從二級和三級來源收集數據,並經常需要假定來確定最終估計值。隨着研究人員要處理千萬億個token(1,000萬億)和數千TB的數據(1,000TB),確保詳細披露數據集組成的文檔變得越來越重要。
特別值得關注的是,基於大型語言模型的強大AI系統產生的冗長而匿名的輸出正在迅速發展,其中許多數據集的細節內容幾乎沒有文檔說明。
強烈建議研究人員使用突出顯示的“數據集的數據表(Datasheet for Datasets)”論文中提供的模板,並在記錄數據集時使用最佳實踐論文(即Pile v1論文,包括token數量)。數據集大小(GB)、token數量(B)、來源、分組和其他詳細信息指標均應完整記錄和發布。
隨着語言模型不斷發展並更廣泛地滲透到人們的生活中,確保數據集的詳細信息公开透明、所有人都可訪問且易於理解是有用、緊迫和必要的。
擴展閱讀及腳注(請上下滑動)
考慮到簡潔和可讀性,本文使用了腳注而非文本/括弧式引文。主要參考文獻如下,或者參見http://lifearchitect.ai/papers/,獲取大語言模型領域的主要基礎論文。以下論文按本文順序顯示。
Datasheets for Datasets Gebru, T., Morgenstern, J., Vecchione, B., Vaughan, J., Wallach, H., Daumé III, H., & Crawford, K. (2018). Datasheets for Datasets. https://arxiv.org/abs/1803.09010
GPT-1 paper Radford, A., & Narasimhan, K. (2018). Improving Language Understanding by Generative Pre-Training. OpenAI. https://cdn.openai.com/research-covers/language-unsupervised/language_understan ding_paper.pdf
GPT-2 paper Radford, A., Wu, J., Child, R., Luan, D., Amodei, D. & Sutskever, I. (2019). Language Models are Unsupervised Multitask Learners. OpenAI. https://cdn.openai.com/better-language-models/language_models_are_unsupervised _multitask_learners.pdf
GPT-3 paper Brown, T., Mann, B., Ryder, N., Subbiah, M., Kaplan, J., & Dhariwal, P. et al. (2020). OpenAI. Language Models are Few-Shot Learners. https://arxiv.org/abs/2005.14165
The Pile v1 paper Gao, L., Biderman, S., Black, S., Golding, L., Hoppe, T., & Foster, C. et al. (2021). The Pile: An 800GB Dataset of Diverse Text for Language Modeling.
EleutherAI. https://arxiv.org/abs/2101.00027
GPT-J announcement Komatsuzak, A., Wang, B. (2021). GPT-J-6B: 6B JAX-Based Transformer. https://arankomatsuzaki.wordpress.com/2021/06/04/gpt-j/
GPT-NeoX-20B paper Black, S., Biderman, S., Hallahan, E. et al. (2022). EleutherAI. GPT-NeoX-20B: An Open-Source Autoregressive Language Model. http://eaidata.bmk.sh/data/GPT_NeoX_20B.pdf
RoBERTa paper Liu, Y., Ott, M., Goyal, N., Du, J., Joshi, M., & Chen, D. et al. (2019). RoBERTa: A Robustly Optimized BERT Pretraining Approach. Meta AI. https://arxiv.org/abs/1907.11692
MT-NLG paper Smith, S., Patwary, M., Norick, B., LeGresley, P., Rajbhandari, S., & Casper, J. et al. (2021). Using DeepSpeed and Megatron to Train Megatron-Turing NLG 530B, A Large-Scale Generative Language Model. Microsoft/NVIDIA. https://arxiv.org/abs/2201.11990
Gopher paper Rae, J., Borgeaud, S., Cai, T., Millican, K., Hoffmann, J., & Song, F. et al. (2021). Scaling Language Models: Methods, Analysis & Insights from Training Gopher. DeepMind. https://arxiv.org/abs/2112.11446
Appendix A: Top 50 Resources: Wikipedia + CC + WebText (i.e. GPT-3)
附錄 A:前50個資源:Wikipedia + CC + WebText(即 GPT-3)
基於本文內容,尤其是每個數據集中每個資源的token數量,我們可以對將Wikipedia + Common Crawl + WebText數據集的組合,作爲其整體訓練數據集的一部分模型進行資源或域的排序。爲清楚起見,這包括以下模型:OpenAI GPT-3、EleutherAI GPT-J、EleutherAI GPT-NeoX-20B、Meta AI Megatron-11B和RoBERTA,以及 Microsoft/NVIDIA MT-NLG等。
請注意,展示的排名基於數據集中可用的未加權總token,每個數據集的主觀權重由研究人員在模型預訓練之前計算得出。其中有一些重復(例如,《紐約時報》既出現在有1.11億token的WebText中,也出現在過濾後有1億token的Common Crawl中)。
標題:現代大語言模型訓練數據集的奧祕何在?
地址:https://www.coinsdeep.com/article/11093.html
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。