大語言模型預訓練數據——數據采樣方法介紹以GPT3為例
- 一、數據采樣核心邏輯
- 二、各列數據含義
一、數據采樣核心邏輯
這是 GPT - 3 訓練時的數據集配置,核心是非等比例采樣——不按數據集原始大小分配訓練占比,而是人工設定不同數據集在訓練中被抽取的概率(Weight in training mix ),讓小數據集也能被多次學習,大數據集適當降低重復度,平衡模型學習廣度與深度。
二、各列數據含義
- Dataset:訓練 GPT - 3 用到的數據集,像 Common Crawl 是網頁抓取數據,Wikipedia 是維基百科內容,Books1/2 是書籍文本等,覆蓋不同來源、不同類型的語料。
- Quantity (tokens):每個數據集的token總量 ,比如 Common Crawl (filtered) 有 4100 億 token,代表該數據集文本轉成模型可處理的 token 后,總數量是這么多。
- Weight in training mix:訓練時,從該數據集抽取樣本的概率占比 。比如 Common Crawl 占 60%,意味著每一輪訓練選樣本,60%的概率從它這里選,和數據集本身大小無嚴格比例關系,是人為調的“采樣權重”。
- Epochs elapsed when training for 300B tokens:當整體訓練到 3000 億 token 時,該數據集被“完整過幾遍(Epoch )”。計算邏輯是:
- 先算訓練 3000 億 token 時,從該數據集實際用了多少 token:
3000 億 × 該數據集權重
- 再用“實際用的 token 量 ÷ 該數據集總 token 量”,得到被訓練的輪次(Epoch )。
- 舉個例子,以 Wikipedia 為例:
- 按權重,訓練 3000 億 token 時,用了
3000 億×3% = 90 億 token
- Wikipedia 總 token 是 30 億,所以
Epoch = 90 億÷30 億 = 3.4
,即被完整學習約 3.4 遍;同理,Common Crawl 是3000 億×60% = 1800 億 token
,除以 4100 億總 token,得到約 0.44 輪。
- 按權重,訓練 3000 億 token 時,用了
- 先算訓練 3000 億 token 時,從該數據集實際用了多少 token:
簡單說,就是通過“自定義采樣權重”打破數據集大小限制,讓不同數據按需被模型學習多輪,最終“Epochs”體現的是:在 3000 億總訓練量下,單個數據集被重復學習的次數 ,背后是“權重×總訓練量÷數據集自身大小”的計算邏輯。