中文巨量模型“源1.0”:語料質量清洗與資料分析方法

作者:浪潮人工智慧研究院

2021 年,浪潮人工智慧研究院釋出了中文巨量模型“源 1。0”,其引數規模為 2457 億,訓練採用的中文資料集達 5TB,超越美國 OpenAI 組織研發的 GPT-3 模型。“源 1。0”在語言智慧方面表現優異,獲得中文語言理解評測基準 CLUE 榜單的零樣本學習(zero-shot)和小樣本學習(few-shot)兩類總榜冠軍。測試結果顯示,人群能夠準確分辨人與“源 1。0”作品差別的成功率低於 50%。

“源 1。0”訓練採用的 5TB 高質量中文資料集是從約 860TB 的網際網路資料中獲取的,本文將介紹這一過程使用的方法和取得的效果。

1、語料質量清洗的必要性

大規模、高質量的預訓練語料可以讓模型學習更多的知識表達,更好地理解詞的各種表徵含義,從而更加智慧。我們期望預訓練所使用的資料足夠多,並像百科詞條一樣語義通順,且文字中包含一定的知識。但是事實上,百科詞條極其有限,真正的大規模語料存在於各類網際網路網頁中。

透過網路爬蟲可獲得大量網際網路語料,但是質量參差不齊。如表 1 所示的常見的低質量網際網路語料,只使用關鍵詞/規則過濾方法無法有效去除。

表 1 常見低質量網際網路語料

中文巨量模型“源1.0”:語料質量清洗與資料分析方法

2、語料質量清洗

網際網路語料基本上可以分為 3 大類:高質量語料(語句通順且包含一定知識)、低質量語料(語句不通順)、廣告語料(語句通順但重複率過高,如廣告、網站說明、免責宣告等)。為了給“源 1。0”模型提供高質量的預訓練資料集,浪潮人工智慧研究院使用 Bert 訓練了一個語料質量三分類模型。整個方案包括資料取樣、語料標註、模型訓練和效果評估四部分。

2。 1 資料取樣

在“源 1。0”訓練時,由於爬取的網際網路語料非常龐大,即便經過敏感資訊過濾、文章去重,資料集仍在 TB 級別。如此大規模的資料集難以直接進行處理、分析,需要進行取樣。

將經過粗略過濾之後的資料,以文章為單位進行取樣,再將所有采樣資料分別寫入到 2 個檔案中,其中一個用來標註訓練集語料(構建訓練集,稱之為“訓練集”),另外一個則用來驗證分類模型的效果(稱之為“測試集”)。另外,為了使取樣資料具有充分的代表性,在整個資料集內採用均勻取樣。

2。 2 語料標註

資料取樣後,使用迴圈迭代標註方法以提高標註速度,如圖 1 所示:

中文巨量模型“源1.0”:語料質量清洗與資料分析方法

如圖所示,先使用“訓練集”中的部分資料自動構建訓練語料,然後使用分類模型進行訓練,最後在剩餘取樣資料(“驗證集”)上進行評估,並將得分較高的低質量語料和廣告語料加入到標註資料中,如此迴圈多次。

另外,需要注意的是,網際網路語料中大部分段落都比較短,多為單句,為方便敘述,下面統一將“段落”表述為“句子”。

採用 PPL(困惑度)、關鍵詞密度篩選、句向量聚類和人工標註等方法,從取樣資料中篩選出低質量語料和廣告語料,預設剩下的語料為高質量文字。下面簡單介紹下這幾個方法:

針對語句不通順的句子

網際網路語料中含有較多的語義不通順、有特殊符號的語料,為低質量資料。

本文使用困惑度(perplexity,簡稱 PPL)來評估語句的合理性,其基本思想是,計算一句話出現的機率,並取 -冪,其公式如下:

中文巨量模型“源1.0”:語料質量清洗與資料分析方法

其中,。。。。。代表一句話中N個 token(token 對應語言模型中的詞典,對於中文而言,可能為一個字或者詞)。

由上述公式可知,使用 PPL 排序,其分值越大,說明這句話出現的機率越低,表明質量越差。一句話的機率可根據如下公式計算:

其中,給定前k個詞,第k+1 個詞的機率可以透過 GPT 模型來計算。

計算每條語料的 PPL 值,從高到低排序,人工評估之後,確認前多少條資料為語句不通順的語料。

值得注意的是,此方法需要大量的計算資源,且需要有訓練好的中文 GPT 模型。

假設模型經過 softmax 之後的輸出為對應的條件機率,則 PPL 的計算在某種程度上等價於 loss(交叉熵損失函式)的計算。

中文巨量模型“源1.0”:語料質量清洗與資料分析方法

2。 針對知識表達不充分的句子

網際網路語料中存在較多的短文字,如網站導航、目錄結構等,為低質量資料。

我們使用了關鍵詞密度篩選方法,根據關鍵詞數量(最多 30)和文字長度,希望篩選剔除掉關鍵詞少於 10 但文字很長的詞條,以及文字長度小於 10 的短句。

設關鍵詞數量為,文字長度為l,設計如下指標:

中文巨量模型“源1.0”:語料質量清洗與資料分析方法

其中,m為重要性提升閾值,當>1 時,r的增長速率更快(指數函式),從而拉開不同質量資料的得分。的取值最大為 30,經過實驗,這裡m的取值為9。最後 min (l,50) 是為了保證當詞條長度超過關鍵詞可表示的範圍時,高質量詞條的得分不因詞條長度過長而下降。其中的 10 為語義表示的最小字數閾值,當文字長度小於 10 時,r為0。對於長文字而言,該數值可以進一步增大。值得注意的是,r在二倍閾值時取得最大值。上式表明,當提取相同數量關鍵詞時,用的字數越多,文字的得分越低。

使用小樣本統計的指標分佈圖如下圖所示。建議r的拆分閾值設定為 0。015。

中文巨量模型“源1.0”:語料質量清洗與資料分析方法

中文巨量模型“源1.0”:語料質量清洗與資料分析方法

另外,使用 jieba 分詞的 TextRank 演算法進行關鍵詞的篩選。其主要思想是根據視窗大小,統計組合共現詞和頻率,使用頻率代表共現權重,以此進行關鍵詞抽取。

3。 針對頻繁出現的句子

網際網路語料中含有大量的網站說明、產品/公司廣告介紹等,以及重複的廣告、網站資訊,會對語言模型產生誤導,為廣告資料。

我們使用句向量聚類的方法,對含義相近的句子進行聚類,如果超過指定閾值的句子數量達到一定比例,即認定為廣告資料。其主要步驟有:

(1)獲取句向量。將每條句子去重之後再進行編碼,然後將句子輸入到 BERT 中,使用第一個 token(

)作為句子向量,並將句子編碼、句向量寫入到磁碟中。

(2)根據句子向量,構建 annoy 高維向量索引;

(3)遍歷所有句子,透過 annoy 索引,統計相似度超過給定閾值的句子數量。

(4)對每個句子的相似問題數量進行排序,相似問題數量越高,其為頻繁出現低質量語料的機率更大。

注意,由於樣本數量足夠龐大,在得到句子向量表徵之後,如果計算一個句子的語義相近句子,使用暴力檢索的方式遍歷所有語句計算相似度,是非常耗時的。因此,我們使用了 Annoy 演算法進行索引構建以加快檢索速度。Annoy 是一種高維向量的近似索引演算法,透過建立高維向量的二叉樹表示,能夠在較短的時間內找到任何查詢點的最近點,在精度允許的條件下透過犧牲準確率來換取比暴力搜尋快得多的搜尋速度。

4。 其他

採用人工規則或人工標註方法。

2。 3 訓練質量分類模型

將經過 PPL、關鍵詞密度篩選得到的語料歸為低質量語料,將經過語義聚類篩選得到的語料歸為廣告類語料,預設未被去除的為高質量語料,使用 BERT 進行有監督的三分類訓練調優,並使用“驗證集”進行評估。人工分析在“驗證集”上的低質量文字中是否有被錯分的,如果文字質量較高,則將其加入到高質量訓練集中。並分析在“驗證集”上的高質量文字中是否有被漏刪的,將明顯不合理的資料加入到低質量語料或廣告語料中。重複幾遍,不斷擴充訓練集、訓練最佳化 BERT 模型,直至文字質量分類模型達到預期效果。

“達到預期”指的是大部分的高質量文字被保留,明顯的低質量文字被去除。換句話說,我們並不期望模型能夠十分準確地區分高質量語料和低質量語料,只期望模型能夠將明顯的低質量文字去除,對於剩餘的高質量文字能有一個機率預估,文字質量越高的語句,得分越高,文字質量越低的語句,得分越低。

2。 4 效果評估

與粗過濾相比,文字質量清洗後去除了約 2TB 的資料,其中 50% 被識別為廣告。考慮到廣告也可能包含完整的語義資訊,手動評估它們以確定是否需要召回。由於資料集分散在 36 臺伺服器上,為了避免人類偏見,在每臺伺服器上取樣兩組,每組由不同的評審員評估。部分統計結果見下表:

中文巨量模型“源1.0”:語料質量清洗與資料分析方法

表 2 不同伺服器上廣告中高質量資料的百

從表 2 可以看出,樣本 1 和樣本 2 的高質量資料百分比是相似的,這說明評審人員在評估資料時具有高度一致性。廣告中高質量資料的比例相當小,丟棄這部分資料是合理的。人工審查發現高質量語料的重複率約為 2。4%,而廣告語料重複率為 12。6%,由此可見,該分類模型對高質量資料進行了一定程度的重複資料消除和廣告過濾。

3。 總結

為了給“源 1。0”提供高質量的預訓練資料集,我們採用了一種海量網際網路語料的質量清洗和分析方法。首先對海量文字資料進行取樣,透過 PPL、關鍵詞密度篩選、聚類等方法自動篩選出低質量語料,然後使用分類模型在標註資料上進行訓練,經過不斷調優得到最終的文字質量分類模型。這一方法可以極大減少人工標註成本,從語義層面更加充分地去除各類低質量文字,有效提高預訓練語言模型的理解能力。

關於“源 1。0”的更多資訊,大家可以參閱浪潮人工智慧研究院釋出在 arxiv 上的論文:

https://arxiv。org/abs/2110。04725。