JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

打造網路規模的語料庫

模型的好壞,取決於它讀了什麼。跟著原始網頁走一趟旅程:從爬蟲的傾倒物,到一個乾淨、去重複、達數兆詞元的訓練集。

對文字的胃口

現代基礎模型是在網路規模語料庫(web-scale corpus)上訓練的:不是數百萬,而是數個詞元,比任何人窮盡千次人生都讀不完的文字還要多上數百倍。訓練資料是決定成品模型懂什麼、寫得多好的最大槓桿。再聰明的架構,餵它垃圾也只會產出垃圾;再樸素的架構,餵它一個乾淨、多元的語料庫,也能表現出色。

语料库中的每个网页最终都会被切分成词元——这里以万亿计数的正是它们。

示意图:原始文本被切分为词元,映射为词元 ID,再转换为嵌入向量。

因此語料團隊的工作不只是「收集」文字——而是要「策展」它。整條流程有四個大階段:收集原始資料、清洗、移除重複、決定每個來源該佔多少比重。少了任何一個,訓練都會受害。我們會逐一走過。

原始文字從何而來

多數公開語料庫的骨幹是 Common Crawl——一個非營利組織,多年來爬遍開放網路,每月釋出數十億頁的快照,任何人都能免費下載。它無比龐大,卻也是一片沼澤:在維基百科與新聞之外,你會撈到垃圾郵件、壞掉的 HTML、導覽選單、成人內容,以及重複了上百萬次、一模一樣的 cookie 同意橫幅。

團隊會用更可信的來源補強爬蟲資料:程式碼倉庫、書籍、學術論文、經過篩選的問答網站、參考工具書。這些來源較小,但每個詞元都乾淨得多,能把模型拉向謹慎、結構良好的語言。來源的搭配是一個刻意的選擇,我們稍後會回頭談。

清洗:把沼澤變成語料庫

資料清洗(data cleaning)是一疊過濾器,每一個都便宜好跑,每一個都剔除一類垃圾。其中的藝術在於:要夠果決地拉高品質,又不能誤殺珍稀的好文字。一條典型的流程長這樣:

  1. 語言過濾:用快速的語言偵測器評分,只保留你打算訓練的語言。
  2. 品質啟發式規則:剔除字數太少、符號太多、句子破碎,或標點與數字比例可疑的頁面。
  3. 樣板移除:去掉重複的選單、頁首、頁尾、cookie 橫幅等不帶資訊的內容。
  4. 安全與個資過濾:移除最嚴重的有害內容,並洗去電子郵件、電話等明顯的個人資料(PII)。
  5. 模型式過濾:訓練一個小型分類器來辨認「看起來像教科書/優質維基百科」的文字,保留它高分的頁面。

每個過濾器都是一種取捨。過濾太溫和,模型就泡在垃圾裡;過濾太嚴苛,你會抹掉方言、冷門主題,以及那條讓模型變得有趣的知識長尾。團隊會藉由訓練小模型、觀察哪一種配方能在留存的可信文字上得到最低損失,來調校這些門檻。

去重複:別把同一頁讀兩遍

網路的重複程度令人吃驚。同一篇文章被數十個網站鏡像;授權條款與名言佳句出現上百萬次。去重複(deduplication)會移除這些副本,是整條流程中報酬率最高的步驟之一。為什麼影響這麼大?重複的文字會被過度加權:模型一遍又一遍地看到它,浪費容量去背它,也更可能逐字吐出原文——這同時引發了隱私與著作權的疑慮。

去重複在兩個粒度上進行。精確去重會對整份文件做雜湊,丟掉一模一樣的;模糊去重則抓出近似重複——同一篇文章只是頁首換了則廣告——通常用一種叫 MinHash 的技術,在不逐字比對的情況下估算兩份文件的重疊程度。

J(A,B)=\dfrac{|A\cap B|}{|A\cup B|}

模糊去重用 Jaccard 相似度来衡量近似重复——即两篇文档词元集合的重叠程度。

before dedup:  2.4T tokens  (raw, cleaned web)
after exact:   1.9T tokens  (-21%, identical copies gone)
after fuzzy:   1.3T tokens  (-32%, near-duplicates gone)
# nearly half the corpus was redundant
去重複造成的典型縮減——清洗後的網路語料庫,往往有 40–60% 是冗餘的。

從多個來源到單一資料流

現在你有了好幾堆乾淨、去重複的資料——網頁、程式碼、書籍、論文。但模型只在一條資料流上訓練,所以你必須決定每一堆貢獻多少比例的訓練詞元。這個選擇就是資料混合加權(data mixture weighting),而它的威力出乎意料:把程式碼加權,模型就更會寫程式;把某種語言加權,它就說得更流利。它如此關鍵,以致下一篇指南有一部分專門談它,並一併談你究竟該訓練多少個詞元。

神经网络的缩放定律解释了配比为何重要:在模型规模固定时,更干净的数据比单纯堆量更快地压低损失曲线。

对数坐标图:随着模型、数据和算力规模的增大,训练损失随之下降。