大語言模型涉及數(shù)據(jù)的通常有有多個(gè)階段(Aligning language models to follow instructions [1]):pre-train、sft(supervised finetune)、rlhf(optional). State of GPT:大神 Andrej 揭秘 OpenAI 大模型原理和訓(xùn)練過程。
supervised finetune 一般在 base model 訓(xùn)練完成后,使用 instruction 以及其他高質(zhì)量的私域數(shù)據(jù)集來提升 LLM 在特定領(lǐng)域的性能;而 rlhf 是 openAI 用來讓model 對(duì)齊人類價(jià)值觀的一種強(qiáng)大技術(shù);pre-training dataset 是大模型在訓(xùn)練時(shí)真正喂給 model 的數(shù)據(jù),從很多 paper 能看到一些觀點(diǎn)比如:1. 提高預(yù)訓(xùn)練數(shù)據(jù)的質(zhì)量能讓大模型的性能表現(xiàn)更好;2. LLM 要想要更加強(qiáng)大,除了繼續(xù)加大模型參數(shù)量之外,給模型準(zhǔn)備更多成比例的更大量的高質(zhì)量數(shù)據(jù)也很關(guān)鍵。
經(jīng)過初步調(diào)研發(fā)現(xiàn)在英文世界的大模型,預(yù)訓(xùn)練數(shù)據(jù)都來自互聯(lián)網(wǎng)爬取的全網(wǎng)數(shù)據(jù),在英文世界有 Common crawl 這樣的組織來維護(hù)這類全網(wǎng)爬蟲數(shù)據(jù)集;也有 huggingface 這種非常好的社區(qū),組織起 NLP 領(lǐng)域的模型 datasets 分享。
而在中文世界,似乎沒有特別公開的大規(guī)模語料數(shù)據(jù)集,huggingface、github 上也沒有找到特別多組織的很有體系的中文語料數(shù)據(jù)集。另一方面,近期中國國內(nèi)公布的一些大模型,也主要以評(píng)估分結(jié)果作為輸出,很少有針對(duì) pre-training 數(shù)據(jù)展開詳細(xì)介紹的信息。
本文旨在總結(jié)一些開源的英文大模型的 pre-training dataset,通過分析 gpt3、llama、falcon 等開源 LLM 的 paper 上提到的 dataset 部分邏輯,以及深入調(diào)研一些比如 C4、The Pile、RefinedWeb 數(shù)據(jù)集,希望能總結(jié)一些規(guī)律,給期望了解 pre-train 數(shù)據(jù)集對(duì) LLM 最終效果有何影響的人能有更加直觀的認(rèn)知。
先來看看業(yè)界大模型的公開dataset資料
先分別簡單總結(jié)一下 GPT-3、llama、falcon 的 paper 里 dataset 部分的描述。然后我們重點(diǎn)展開 falcon 模型的 dataset refinedWeb,這是因?yàn)?falcon-40B 在 2023-07 這個(gè)時(shí)間點(diǎn)打榜到了 huggingface 的第一名,且 falcon 論文中著重提到了他們的 pre-train dataset:tiiuae/falcon-refinedweb。Datasets at Hugging Face [2],是公開的 paper 中講 pre-train 講的比較詳細(xì)的一篇,且 falcon 聲稱是數(shù)據(jù)讓他們的 model 效果這么好,那我們就展開了解一下。
1.1 先看openai的GPT系列
GPT3: Language Models are Few-Shot Learners [3] (GPT3 paper)
GPT4: (GPT-4 [4]) 就沒有再公開 pre-training 的 dataset 了
GPT3 的 paper 是 2020 年 5 月發(fā)布的,大概是 3 年前。使用的 pre-training dataset 在目前看來也比較簡單,主要來源就是 web 數(shù)據(jù)、書、維基百科這 3 個(gè),不能算很豐富。尤其沒有包含很多垂直 industry 的數(shù)據(jù)。但在 3 年前用這些數(shù)據(jù)來驗(yàn)證模型的性能隨模型大小變化的趨勢(shì),以及做常識(shí)性評(píng)估邏輯是非常合適了。
很多人都說 openAI 的核心競爭力之一就在數(shù)據(jù),但很遺憾 GPT4 的 paper 中確實(shí)沒有再公開當(dāng)前的數(shù)據(jù)細(xì)節(jié)了。這么看 elon musk 噴 openAI 變成了closeAI 好像也有點(diǎn)道理。哈哈哈 。。
這里引用一堆廢紙:GPT 模型成功的背后用到了哪些以數(shù)據(jù)為中心的人工智能(Data-centric AI)技術(shù)?[5] 文章總結(jié)的 openAI GPT 系列數(shù)據(jù)變化圖。
GPT3 的數(shù)據(jù)加工主要有 filter & deduplication:
filter:
用 WebText(Papers with Code - WebText Dataset [6]、openwebtext [7])作為高質(zhì)量數(shù)據(jù)集訓(xùn)練了一個(gè)分類器。使用分類器去過濾 Common crawl 的 documents。filter 時(shí)使用了一個(gè)公式,會(huì)使用 document_score。會(huì)有一個(gè) α 參數(shù),他能把大部分不符合要求的數(shù)據(jù)過濾掉同時(shí)保留一部分質(zhì)量不高的數(shù)據(jù)。文章里居然也說到這樣做能提高性能。
deduplication:
使用fuzzy deduplicate做去重。提到了使用spark的minHashLSH實(shí)現(xiàn)來做hash。
Question1:為什么 LLM 的 pre-training dataset 要這么關(guān)注 deduplication 呢?
Answer1:
“Deduplicating Training Data Makes Language Models Better”.Katherine Lee et al. ACL 2022.[8]
minHash:
是一個(gè)對(duì)比文檔相似度的技術(shù)。wikipedia 給出的 minhash 中 K 個(gè) hash function 的錯(cuò)誤率為:。這里關(guān)鍵注意 GPT3 使用了 10 hashes。錯(cuò)誤率還是相對(duì)比較高的。后面也關(guān)注下其他 LLM 的這個(gè)取值。
▲ wikipedia 上 minHash 中 k 個(gè) hash 帶來的錯(cuò)誤率
數(shù)據(jù)量:
300Billion token.
1.2 facebook llama & llama2
###updated at 20230719###
facebook 發(fā)布了 llama2 版本:https://ai.meta.com/research/publications/llama-2-open-foundation-and-fine-tuned-chat-models/
pre-trainning 數(shù)據(jù)的主亮點(diǎn):
-
使用了 2trillion tokens,相比 llama1 的 1.4T token 提高了 40%
-
llama2 并沒有使用 facebook 的自己產(chǎn)品的數(shù)據(jù)
- 在做 filter 時(shí)干掉了包含 private personal information 多的數(shù)據(jù)。
其他亮點(diǎn):
提供了pre-train數(shù)據(jù)的一些insight分析,比如下圖,感興趣還是自己看paper吧。
###end of updated at 20230719###
LLaMA: Open and Efficient Foundation Language Models
https://arxiv.org/abs/2302.13971
llama 整體的 pre-training dataset與GPT3 相比,多的部分有:
1. 使用了更豐富的數(shù)據(jù)源。比如 Github,ArXiv ,StackExchange 等??傮w占比有 10%。這些高質(zhì)量的數(shù)據(jù)源里有核心代碼、高質(zhì)量論文、高質(zhì)量問答數(shù)據(jù)。這些高質(zhì)量數(shù)據(jù)對(duì) LLM suppose 是有很大的幫助。
Question2:不同數(shù)據(jù)源的比例對(duì) LLM 的最終 performance 有影響么?
2.還是用了C4這個(gè)數(shù)據(jù)集。類似于WebText。
再看看 filter、deduplication 的細(xì)節(jié)
llama 針對(duì) common crawl 的處理
-
在行級(jí)別做了 deduplication,llama paper 沒有講具體細(xì)節(jié),但在 ccnet paper 有講(CCNet: Extracting High Quality Monolingual Datasets from Web Crawl Data [9])后續(xù)專門展開講一下。
-
使用了 fastText 做文本語言分類,刪掉非英語。
-
使用了 ngram 做低質(zhì)量 filter。
- 訓(xùn)練了一個(gè) model,把網(wǎng)頁分成被 wikipedia 引用和普通網(wǎng)頁,這里主要也是區(qū)分質(zhì)量。
數(shù)據(jù)量:
1.4T token.
1.3 facebook CCNet pipeline分析
原始論文:
https://arxiv.org/abs/1911.00359
CCNet 是 facebook 開發(fā)的針對(duì) common crawl 的一系列數(shù)據(jù) ETL pipeline。
▲ ccNet pipeline
deduplication:
▲ dedup-1▲dedup-2
ccnet 的亮點(diǎn):
-
提出了針對(duì) raw common crawl data,要先做 dedup 在做語言分類鑒別,最終效果更好,尤其對(duì)小語種。
-
在對(duì) common crawl 做 filter 時(shí),使用了數(shù)據(jù)分級(jí),并沒有把 tail 數(shù)據(jù)全刪掉。他分了 head middle tail,分級(jí)是使用另外訓(xùn)練的 model 來做的,比如head:先使用了 wikipedia 的數(shù)據(jù)來訓(xùn)練出model,然后看每一個(gè) paragraph 的數(shù)據(jù)過這個(gè) model 算出來 perplexity score 高的就算 head。
- 有按照不同語種分類,包含了小語種數(shù)據(jù)。
ccnet 的待提升:
-
facebook 的 deduplication 并沒有使用 minhash,而是直接采用的 SHA-1 做傳統(tǒng)的 hash 去重。
- 沒有更多 line 級(jí)別的嚴(yán)格 filter。
來自迪拜的falcon以及其refinedweb數(shù)據(jù)集
本文下面重點(diǎn)調(diào)研下 falcon,falcon 是 dubai 的一家研究機(jī)構(gòu)訓(xùn)練的 LLM,他不但開源了自己的 7B,40B 版本的模型,還著重開源了他的 pre-training dataset [10]。本文詳細(xì)展開看一看。
論文原文:
https://arxiv.org/pdf/2306.01116.pdf
2.1 重要論點(diǎn):只用web數(shù)據(jù)做預(yù)訓(xùn)練,LLM效果也能很好
僅使用互聯(lián)網(wǎng)的 web 數(shù)據(jù),把filter 和 deduplicate做好,也能訓(xùn)練處性能比使用精加工的數(shù)據(jù)集訓(xùn)練出來的 state-of-the-art 模型。我覺得這個(gè)論點(diǎn)挺猛的,這給了很多 LLM 創(chuàng)業(yè)團(tuán)隊(duì)打了很大的雞血,即使起步晚一點(diǎn),沒有特別多的數(shù)據(jù)積累,似乎在大模型質(zhì)量上也不一定會(huì)落后。
美中不足的是,完整版本的 refinedWeb 數(shù)據(jù)集有 5Trillion tokens,但 falcon 在 huggingface 開源的版本只有 600billion tokens,是用在訓(xùn)練 1.3B/7B 參數(shù)的模型上的,而不是 40B 最大的模型。在開源的時(shí)候,也保留自己的一部分核心競爭力。重點(diǎn)看看他們的數(shù)據(jù)清洗邏輯,可能對(duì)從業(yè)者處理中文互聯(lián)網(wǎng)有幫助。
▲ RefinedWeb 在 Web 數(shù)據(jù)的 filter、deduplication 上做了很重的工作。
NSFW :Not Safe/Suitable For Work
2.2 RefinedWeb詳細(xì)加工過程
加工總原則
1. Scale first|規(guī)模第一
這個(gè)數(shù)據(jù)集是為了加工 40B~200B 參數(shù)的 LLM 設(shè)計(jì)的,因此需要 trillion 級(jí)別的 tokens。因此重點(diǎn)放在從 commoncrawl 的原始數(shù)據(jù)加工上準(zhǔn)備數(shù)據(jù),而不是耗費(fèi)大量人力去處理垂直領(lǐng)域的數(shù)據(jù)集。
2. Strict deduplication|嚴(yán)格去重。
同時(shí)使用了 exact 和 fuzzy 去重,比其他論文報(bào)告的刪除率更高。
3. Neutral filtering|中性過濾
也使用了基于模型的語言鑒定,使用了很多啟發(fā)式的規(guī)則,后面會(huì)詳細(xì)介紹。這一切都是為了避免 pre-training 數(shù)據(jù)當(dāng)中包含 biased 數(shù)據(jù)。
總體流程
下圖為總體數(shù)據(jù)清晰 pipeline,包含了每一步刪除的文本數(shù)量,下面分步驟詳細(xì)展開講
▲ falcon datapipeline 及每一步保留的數(shù)據(jù)量
▲falcon pipeline 里每一步操作背后的基本思想
2.3 URL filtering
在重度去重、過濾等任務(wù)之前,先對(duì)整體做了基于 URL 的過濾。主要目標(biāo)是過濾掉一些欺詐、成人網(wǎng)站。這里有兩個(gè)基本規(guī)則:1)一個(gè) 4.6M 個(gè)域名的黑名單 2)URL 分,基于內(nèi)容中單詞的嚴(yán)格打分。falcon 發(fā)現(xiàn)單單基于一些 common 的黑名單還是會(huì)犯假陽性錯(cuò)誤,比如過濾掉很多 popular 的博客平臺(tái)和好的的文化網(wǎng)站。然后很多基于單詞規(guī)則的規(guī)則數(shù)據(jù)集加工邏輯(比如 C4)會(huì)很容易把一些醫(yī)學(xué)、法律類的網(wǎng)頁給 block 了。
falcon 的 URL filtering 專注于找到可能對(duì)用戶有害的成人內(nèi)容相關(guān)的域名,或者包含了很多非結(jié)構(gòu)化內(nèi)容的域名,比如類似百度網(wǎng)盤這種存文件的。首先,在 4.6M 個(gè)黑名單中的域名,直接顯示的 ban 了;然后,構(gòu)建了一個(gè) URL 打分體系,基于使用匹配一系列精選單詞。這些精選單詞列表是手工維護(hù)的,也是使用 ToxicBERT 標(biāo)注出來的 toxicity 單詞。
url 打分部分提到的分級(jí)操作很精細(xì):
Strict 級(jí)別:子單詞匹配
URL 包含的內(nèi)容中,單詞里哪怕 substring 里匹配上了也會(huì)被直接過濾。比如很多欺詐網(wǎng)站會(huì)用很多特殊表情放在很多命中黑名單的單詞中間來 hack 整個(gè)單詞級(jí)別的過濾。
Hard級(jí)別:整個(gè)單詞匹配
整個(gè)單詞命中才會(huì)被過濾
Soft級(jí)別:單詞匹配
至少 2 個(gè)單詞 match 才會(huì)過濾,這里的規(guī)則我覺得是可以調(diào)整的。soft 級(jí)別包含了一些單詞是受懷疑的單詞,單個(gè)單詞并不一定有足夠的理由是有害的,但是多個(gè)懷疑的詞同時(shí)出現(xiàn)才會(huì)有害。這讓我們能保留一些醫(yī)學(xué)、法律方面的內(nèi)容不會(huì)被過濾掉。比如(e.g., 但一個(gè)單詞 dick)。
2.4 Text extraction
只想抽取網(wǎng)頁的主要內(nèi)容,把 menu,header,footer,以及廣告都給去掉。其他論文發(fā)現(xiàn) trafilatura 是最好的非商用 library 去從做這件事。然后把 doc 內(nèi)容中的 url 都刪掉。
2.5 Language identification
使用了 CCNet 中使用到的 fastText 來做文本的語言分類,這個(gè)是 document 粒度的。他使用了字符 n-gram 模型,這個(gè)模型使用 Wikipedia 數(shù)據(jù)訓(xùn)練出來,支持 176 中語言。我們把主語言低于 0.65 分的文檔直接刪掉了。
falcon 只 focus 在英語上,經(jīng)過這一步處理后的數(shù)據(jù)叫 RW-RAW。
整個(gè) refinedweb 數(shù)據(jù)處理 pipeline 是可以應(yīng)用在其他語言上的,但從 common crawl 的數(shù)據(jù)分布看,中文數(shù)據(jù)是明顯不符合中文的人口分布的。中國應(yīng)該是世界第二大語言,但 common crawl 里中文的數(shù)據(jù)只排第 6.. 我覺得這就是說做中文的 LLM 以及相關(guān)的語料數(shù)據(jù)整理,做得好肯定還得靠我們中國人自己(吾輩加油)
2.6 Filtering: document-wise and line-wise
Repetition removal.
因?yàn)榕老x的錯(cuò)誤或者低質(zhì)量的數(shù)據(jù)源存在,網(wǎng)頁包含重復(fù)內(nèi)容也很常見,這肯定對(duì) LLM 不好。我們肯定可以在 deduplication 階段處理,但在更早的文檔級(jí)別去做些處理是更輕量級(jí)的。我們刪掉了大量的存在 line、paragraph、ngram能識(shí)別出來的重復(fù)的文檔。
Document-wise filtering.
及其生成的垃圾文檔占比也不低。他們往往使用了不少特殊關(guān)鍵字、無聊文檔等,這些都不適合用來訓(xùn)練 LLM。
這里有個(gè)好玩的問題:幾年后當(dāng) LLM 產(chǎn)生的內(nèi)容充斥整個(gè)互聯(lián)網(wǎng)時(shí),又該怎么去過濾取舍 LLM 的 pre-trainning 數(shù)據(jù)呢?可以關(guān)注下這個(gè)話題:如果以后全網(wǎng)都是 AI 生成的質(zhì)量不高的內(nèi)容這些 AI 大模型再用這些數(shù)據(jù)訓(xùn)練那么這些大模型會(huì)不會(huì)越來越差?[11]
主要參考了 Rae et al.(2021)paper 里的一些質(zhì)量過濾啟發(fā)邏輯。他們主要 focus 在刪掉一些異常值比如:總體文本長度,符號(hào)和單詞比例,以及一些用于鑒定文檔是真正自然語言的一些標(biāo)準(zhǔn)。我們注意到這些過濾器應(yīng)該是在語言級(jí)別去使用的,這些過濾器從英語直接遷移到其他語言,會(huì)有過擬合的現(xiàn)象。
這里值得詳細(xì)展開去看看 Rae et al.(2021)paper
Line-wise filter.
盡管在使用 trafilatura 庫后已經(jīng)有了不錯(cuò)的效果提升,很多網(wǎng)頁文檔還是遺留下來了一些不太符合預(yù)期的 line,比如社交網(wǎng)絡(luò)的 likes 啊,點(diǎn)贊,反對(duì)按鈕之類的。鑒于此,我們開發(fā)了一個(gè) line 級(jí)別的矯正 filter,目標(biāo)就是去糾正這些不符合預(yù)期的 line。如果這些矯正器刪除了一個(gè) doc 里大于 5% 的內(nèi)容,我們就把整個(gè) doc 刪掉。
falcon 開發(fā)了一個(gè) line 級(jí)別的 filter 策略,手工檢查行級(jí)別數(shù)據(jù):
-
如果主要由大寫字母組成(刪掉)
-
如果只有數(shù)字組成(刪掉)
-
如果是點(diǎn)贊、反對(duì)等這些東西(刪掉);
-
如果一行只有一個(gè)單詞(刪掉);
-
如果內(nèi)容很短(≤ 10 words),且匹配到一些 pattern(持續(xù)更新):
-
– 在這行的開始;
-
– 在這行的結(jié)束(e.g. 閱讀更多.....);
-
最終,如果被標(biāo)記 line 的單詞量超過了整個(gè)文檔的 5%,整個(gè) doc 都刪掉。我們是通過人工檢查數(shù)據(jù)發(fā)現(xiàn)的這些邏輯,在處理不同語言的預(yù)料時(shí),也需要有個(gè)性化的做更多特殊處理。
在經(jīng)歷了 URL filter、text extraction、language identification、以及 doc/line級(jí)別的 filter 之后,common crawl 整體上只剩下了 23% 的數(shù)據(jù)。
整個(gè) filter 過程后,common crawl 剩下 23% 的數(shù)據(jù)
2.7 Deduplication: fuzzy, exact, and across dumps
Fuzzy deduplication|模糊去重
falcon 做模糊去重也使用了 minhash,但 falcon 使用了 9000 個(gè) hash function。這相比與 GPT3 的 10 個(gè) hash function 會(huì)帶來巨大的精度提升,但也帶來了計(jì)算量的巨大消耗。文中說到如果使用不夠激進(jìn)的設(shè)置,比如類似 The Pile 數(shù)據(jù)集使用的 10 個(gè) hash function,會(huì)帶來很低的去重比率和更差的模型性能。falcon 使用 minhash 去在 web 語料中大范圍的找到近似的重復(fù)文檔。這項(xiàng)技術(shù)讓我們能鑒別出通過精確去重方法鑒別不出來的長度比較小的重復(fù)內(nèi)容(比如比 50 個(gè) token 還要小的內(nèi)容)。
開始先從對(duì)內(nèi)容進(jìn)行規(guī)范化處理做起:刪掉標(biāo)點(diǎn)符號(hào),把文本全部做小寫處理,NFD 正則化,口音都會(huì)被刪掉,空格都會(huì)被標(biāo)準(zhǔn)化處理。然后使用 GPT2 的 tokenizer 做了分詞,以及為每個(gè) doc 獲取了單獨(dú)的 n-grams。然后就用標(biāo)準(zhǔn)的 minhash 做重復(fù)度檢查。最終在所有的 bucket 當(dāng)中,如果 doc A and B 在一個(gè) bucket 相似,B and C 在另一個(gè) bucket 相似,則 A-B-C 就變成了一個(gè) cluster。最后在 cluster 當(dāng)中隨機(jī)挑一個(gè)保留下來。
Exact deduplication|精確去重
使用 substring 在句子級(jí)別,而不是文檔級(jí)別去,找到 token-by-token 的字符串匹配。如果連續(xù)超過 50 個(gè) token 是相同的,就做刪除處理。這樣抽取子字符串去做 match 后的刪除內(nèi)容做會(huì)改變文檔內(nèi)容,因此還實(shí)驗(yàn)了刪掉整個(gè) doc 或者針對(duì)這些內(nèi)容做 loss-masking 處理,而不是直接刪掉他們,但這些嘗試似乎沒有給 LLM 的訓(xùn)練帶來明顯的性能增長。
falcon 使用了 Lee et al.(2022)論文中的 EXACTSUBSTR 實(shí)現(xiàn)去做精確文本匹配。精確去重作用在 minhash 的模糊去重后的數(shù)據(jù)上,進(jìn)一步減少了近 40% 的數(shù)據(jù)量。EXACTSUBSTR 會(huì)找到跨 doc 的長子字符串,是通過字符粒度逐個(gè)檢查實(shí)現(xiàn)的。這些子字符串可能比較小沒有占到 doc 的足夠大的部分,以至于沒有在 minhash 的模糊去重階段被去掉,或者因?yàn)?minhash 的相似度檢查就是沒有找出來。
在精確去重中,文中還提到了發(fā)現(xiàn) duplication span 后的幾種策略:
? EXACTSUBSTR-CUT|把 span 直接刪了:比如不到 20 個(gè) token 的
? EXACTSUBSTR-MASK|給 span 加上 musk
? EXACTSUBSTR-DROPPARTIAL:如果重復(fù)部分超過 doc 的 20%,直接把 doc 刪了
? EXACTSUBSTR-DROPANY:只要發(fā)現(xiàn)有 duplicate 的 span,整個(gè) doc 都刪了
EXACTSUBSTR-CUT 把中間的 span 刪了可能會(huì)導(dǎo)致 doc 內(nèi)語義的不連貫;EXACTSUBSTRMASK 不會(huì)有前者的問題;EXACTSUBSTR-DROP 在文檔很大時(shí),可能還會(huì)保留 duplicate 的內(nèi)容,而 EXACTSUBSTR-DROPANY 就是更加激進(jìn)的做法了。
URL deduplication|URL去重
因?yàn)橛?jì)算量的限制,在整個(gè) RW-Filtered 數(shù)據(jù)集粒度直接做全局去重是不可能的。因此,把 CommonCrawl 分成 100 份,在每一份數(shù)據(jù)中做去重。大部分的重復(fù)都其實(shí)是能在這些分片內(nèi)的去重完成的,但是我們也發(fā)現(xiàn)了在分片之間會(huì)有顯著的一些 overlap,這是因?yàn)榕老x對(duì)部分 URL 訪問爬取了多次。因此,又保留了在分片內(nèi)發(fā)現(xiàn)過的做過去重操作的 URL 清單,在后續(xù)的每個(gè)分片上看到都直接做刪除處理。
精加工數(shù)據(jù)集調(diào)研:WebText、The Pile 、C4 的調(diào)研分析
3.1 WebText
WebTextDataset Replication:https://openwebtext2.readthedocs.io/en/latest/replication/
▲ WebText數(shù)據(jù)集的
數(shù)據(jù)集特殊點(diǎn):
-
做 filter 時(shí)使用了 Reddit score
-
數(shù)據(jù)集和加工數(shù)據(jù)的代碼完全開源,目前 eleutherAI 也在實(shí)現(xiàn)openwebtext2
評(píng)價(jià):
感覺 webText 比較局限,reddit 相關(guān)并不能 cover 很多內(nèi)容。目前(202307)&未來并不適合作為大模型的 common crawl 數(shù)據(jù)基礎(chǔ)。
3.2 The Pile
原論文:
https://arxiv.org/abs/2101.00027
The Pile 是 EleutherAI(EleutherAI)這個(gè)組織精加工的專門為 NLP 大模型訓(xùn)練用的數(shù)據(jù)集。
EleutherAI is a non-profit AI research lab that focuses on interpretability and alignment of large models.
在處理 common crawl 的互聯(lián)網(wǎng)數(shù)據(jù)時(shí),有提到使用 well-designed extraciton 和 filter。
More Effective Boilerplate Removal-the GoldMiner Algorithm [13] 用到了這篇論文的方法。
評(píng)價(jià):
-
數(shù)據(jù)種類很豐富,涵蓋了非常多垂類的高質(zhì)量數(shù)據(jù)。
-
但總體數(shù)據(jù) token 量比較小,尤其處理 common crawl 部分。
3.3 C4
C4 是 google 針對(duì) common crawl 數(shù)據(jù)進(jìn)行精加工數(shù)據(jù)集:
https://www.tensorflow.org/datasets/catalog/c4
數(shù)據(jù)集特殊點(diǎn):
1. 最初只能使用 google cloud 的 beam 代碼做加工。
2. 而后有一些開源實(shí)現(xiàn)。比如:c4 · Datasets at Hugging Face [14],C4 Dataset Script[15]
評(píng)價(jià):
個(gè)人沒有詳細(xì)看開源版本的 C4 加工邏輯,github repo 的文檔里加工邏輯寫的也不夠清晰。使用時(shí)相對(duì)比較黑盒子。
個(gè)人思考
falcon 的 refinedWeb paper [16] 是一篇把基于爬蟲爬取數(shù)據(jù)的處理講的這么詳細(xì)的 paper 之一,后續(xù)我會(huì)再精讀 The Pile,C4 等其他數(shù)據(jù)集,總結(jié)出更多的爬蟲爬取的網(wǎng)頁數(shù)據(jù)的 pre-training data 處理方法。
在對(duì) LLM dataset 調(diào)研的過程中,我發(fā)現(xiàn)中文的 NLP 大型語料真的很少,除開沒有 common crawl 這樣大型公立的互聯(lián)網(wǎng)數(shù)據(jù)之外,也缺乏人工整理的高精 curated dataset,在 github 和 huggingface 都很少看到。
github 里搜索 chinese corpus 最高的兩個(gè) repo,也都很久沒有更新了。https://github.com/brightmart/nlp_chinese_corpushttps://github.com/SophonPlus/ChineseNlpCorpus
不過隨著中國搞 LLM 的玩家越來越多,以及整個(gè)基于 LLM 的垂類應(yīng)用越來越多,更多的人也在基于 base model 做 finetune,各個(gè)公司其實(shí)都會(huì)越來越重視整理自己的垂直語料庫,希望大家未來長期都能慢慢把一些沒有那么高壁壘的數(shù)據(jù)貢獻(xiàn)在 github、huggingface,或者參考 falcon 的方式,貢獻(xiàn)自己語料庫當(dāng)中的一部分。
我也建議搞中文的 LLM 廠家不要只分享打榜結(jié)果,如果打榜效果好的話可以適當(dāng)放出一些 insight,比如用了什么數(shù)據(jù),怎么處理數(shù)據(jù)的,尤其是高??蒲斜尘暗难芯繖C(jī)構(gòu)可以更多的做公立性質(zhì)的貢獻(xiàn)。
參考文獻(xiàn)
?[1] https://openai.com/research/instruction-following
[2] https://huggingface.co/datasets/tiiuae/falcon-refinedweb
[3] https://arxiv.org/abs/2005.14165
[4] https://openai.com/research/gpt-4
[5] https://zhuanlan.zhihu.com/p/617057227
[6] https://paperswithcode.com/dataset/webtext
[7] https://huggingface.co/datasets/openwebtext
[8] https://arxiv.org/abs/2107.06499
[9] https://arxiv.org/abs/1911.00359
[10] https://huggingface.co/datasets/tiiuae/falcon-refinedweb
[11] https://www.zhihu.com/question/608053796
[12] https://github.com/EleutherAI/openwebtext2
[13] https://www.scielo.org.mx/scielo.php?script=sci_arttext&pid=S1870-90442013000200011
[14] https://huggingface.co/datasets/c4
[15] https://github.com/shjwudp/c4-dataset-script
[16] https://arxiv.org/pdf/2306.01116.pdf
原文標(biāo)題:大語言模型(LLM)預(yù)訓(xùn)練數(shù)據(jù)集調(diào)研分析
文章出處:【微信公眾號(hào):智能感知與物聯(lián)網(wǎng)技術(shù)研究所】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2909文章
44640瀏覽量
373441
原文標(biāo)題:大語言模型(LLM)預(yù)訓(xùn)練數(shù)據(jù)集調(diào)研分析
文章出處:【微信號(hào):tyutcsplab,微信公眾號(hào):智能感知與物聯(lián)網(wǎng)技術(shù)研究所】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論