千億引數大模型時代,QQ瀏覽器團隊十億級小模型「摩天」登頂CLUE,極致壓榨網路效能

机器之心發表於2021-06-24
今年以來,中文 NLP 圈陸續出現了百億、千億甚至萬億引數的預訓練語言模型,煉大模型再次延續了「暴力美學」。但 QQ 瀏覽器搜尋團隊選擇構建十億級別引數量的「小」模型,提出的預訓練模型「摩天」登頂了 CLUE 總排行榜以及下游四個分榜。

2021 年,自然語言處理(NLP)領域技術關注者一定聽說過預訓練的大名。隨著以 BERT 為代表的一系列優秀預訓練模型的推出,先基於預訓練,再到下游任務的微調訓練正規化也已經成為一種主流,甚者對於產業界來說,某種意義上打破了之前語義理解的技術壁壘。 

一個壁壘的打破,從另一個角度往往也代表著另一個新的試煉戰場的形成,即自研預訓練模型。2021 年初,各大網際網路公司先後推出了自家的預訓練模型,在反哺自身業務的同時紛紛在 CLUE 榜單(中文語言理解評測集合)不斷重新整理成績和排名。

近期,QQ 瀏覽器搜尋語義團隊產出的摩天預訓練模型在 6 月 15 日登頂 CLUE 總排行榜單(包括共計 10 個語義類任務),登頂下游 4 個分榜(分類、閱讀理解、自然語言推理和 NER)。本文將介紹 QQ 瀏覽器搜尋語義團隊在預訓練模型的前沿探索及技術實踐。

千億引數大模型時代,QQ瀏覽器團隊十億級小模型「摩天」登頂CLUE,極致壓榨網路效能

注:HUMAN 為人類標註成績,非模型效果,不參與排名

背景

語義技術是傳統搜尋的核心能力。從BERT論文發表(2018)至今,預訓練+微調的模式是取得語義模型最優效果的必經之路。

對於搜尋而言,大多數下游任務場景涉及到query、title以及document這類文字內容,開源的預訓練模型在語料上沒有應用自身業務資料,直接使用會存在一個bias,無法做到Domain-Adaptive Pretraining;同時,搜尋所具有的豐富資料和知識,也能為預訓練效果帶來很大的助力。因此,QQ瀏覽器搜尋語義團隊進行了預訓練模型(摩天)的自研,以提升搜尋效果的天花板。

從業界看,CLUE作為中文模型的一個最大的benchmark,自20-21年以來越來越多的公司、模型在此打榜。摩天為了進一步驗證模型的效果,希望與業界開源的各大預訓練模型進行效果對比,取長補短,在效果對比的過程中不斷打磨自身硬實力,得到技術沉澱。

摩天預訓練模型

QQ 瀏覽器搜尋語義團隊隨著自身業務快速發展,積累了海量優質資源,一個很自然的想法是利用這些資料構建預訓練模型,進一步提升 QQ 瀏覽器搜尋、知識圖譜應用等方面的效果,為 QQ 瀏覽器搜尋提供更準確、更智慧的結果提供一份力量。

在產業界專案落地上,一個適配自身業務的領域內(Domain-Adaptive Pretraining)的預訓練模型對業務的幫助是顯著的 [2]。基於當前主流的訓練正規化:pretrain + finetune + distill,更好的預訓練模型可以提高下游各個任務 finetune 後的 Teacher 模型效果,從而提升效果的天花板,也透過蒸餾一個線上可應用的 Student 模型獲得更好的效果。

QQ 瀏覽器搜尋語義團隊秉持小步快跑的打法,沒有瞄準百億、千億級別引數量的預訓練模型,而構建十億級別引數的「小」模型。這裡一方面是希望充分「壓榨」預訓練網路中每個層、每個引數的效能,做到極致;另一方面是希望模型可以快速、方便在搜尋場景下以可控的成本落地。

摩天模型的特點如下:
  • 收集了多型別、大量的資料並清洗出 1TB 高價值資料;

  • 最佳化 Masked language model 遮蔽方案,消除預訓練階段和微調階段不一致的問題,引入了搜尋點曝任務;

  • 自研一種相對位置編碼方案,更敏感捕捉短文字位置資訊契合搜尋場景;

  • 兩階段訓練流程;

  • 大規模 / 大 batch 預訓練模型訓練能力最佳化:Pre-LN、混合精度計算、梯度聚集、進一步最佳化 LAMB optimizer;

  • 使用了有限資源,約 100 張 V100 顯示卡。

下文會分別從資料、模型結構 & 訓練任務、位置編碼、兩階段訓練、計算加速這幾個方面來介紹摩天。

資料

RoBETA、T5 等論文均對預訓練模型的訓練語料大小、質量進行過實驗分析。通常需要幾十到幾百 GB 的無監督資料。隨著預訓練模型引數的不斷擴大,現階段也出現了吃幾 TB,甚至幾十 TB 資料的預訓練模型。

千億引數大模型時代,QQ瀏覽器團隊十億級小模型「摩天」登頂CLUE,極致壓榨網路效能

千億引數大模型時代,QQ瀏覽器團隊十億級小模型「摩天」登頂CLUE,極致壓榨網路效能

QQ 瀏覽器搜尋語義團隊語料的收集的標準主要有以下三個:規模大、質量高和覆蓋廣。QQ 瀏覽器搜尋場景下,涉及到的 Document 語料非常豐富,包括企鵝號、小說、各類百科、新聞、社群問答等內容。最終我們得到了近 1TB 資料,並在此基礎上完成了資料清洗與低質過濾。

模型結構 & 訓練任務

Pre-trained Models(PTMs)可以從 4 個方面 Representation Types、Architectures、Pre-training Task Types、Extensions 來進行分類。

千億引數大模型時代,QQ瀏覽器團隊十億級小模型「摩天」登頂CLUE,極致壓榨網路效能

表達資訊角度來看,第一代的預訓練模型,比如 Skip-Gram 和 GloVe,通常是一些淺層模型, 用來學習一個比較不錯的 word embeddings,儘管包含了一些語義知識,但通常也是上下文無關的,也就沒有辦法進一步捕捉更高階的概念。第二代的預訓練模型,比如 CoVe、ELMoOpenAI GPT 和 BERT 則可以捕捉到上下文資訊。

從模型結構解讀來看(見下圖):

千億引數大模型時代,QQ瀏覽器團隊十億級小模型「摩天」登頂CLUE,極致壓榨網路效能

預訓練任務來看:可以分為監督學習(Supervised learning)、無監督學習(Unsupervised learning)和自監督學習(Self-Supervised learning)。

這裡包括了最常見的 NLP 無監督任務語言模型(Language Modeling, LM),以及由 Taylor 提出的掩碼語言模型(Masked language modeling, MLM),之後 Devlin 把 MLM 進一步應用到預訓練模型中來克服 LM 的缺陷(只有單向)。但是 MLM 的方式也同樣帶來了另一個問題,即預訓練階段與微調階段存在一個 mismatch。排列語言模型(Permuted Language Modeling, PLM)應用而生,進一步解決了 MLM 遺留下來的 mismatch 問題。

其他任務:降噪自編碼器(Denoising autoencoder, DAE)透過破壞部分輸入訊號,之後透過模型恢復原始的輸入;還有對比學習(Contrastive Learning, CTL) ,其中包含了 NSP、SOP、RTD 等任務。

在摩天上,採用了更符合搜尋特色的預訓練模型,預訓練階段任務分為兩個:一是 MLM,另一個是搜尋點選曝光任務。兩個預訓練任務運用 Multi-Task 的方式同時訓練,透過衡量任務的不確定性(Uncertainty)去表示兩個任務的 loss 權重

千億引數大模型時代,QQ瀏覽器團隊十億級小模型「摩天」登頂CLUE,極致壓榨網路效能

在預訓練任務 MLM 上。擴充套件了 Whole Word Mask(WWM)為 Phrase + 詞級別結合的 Mask 方案,迫使模型去透過更長的上下文資訊去預測被 Mask 的連續字元,而不僅僅是根據詞或短語片段中的字共現資訊去完成預測。

另一方面,BERT 存在預訓練任務與下游微調任務時不一致的問題,即預訓練階段的 [MASK]token 在下游微調中並不出現。為緩解這個問題,BERT 原始論文中對需要 Mask 的 token 按照 8:1:1 的比例替換為 [MASK],隨機詞,保留。

針對這個問題,我們進行了多種不同方案的實驗,目的是加強預訓練與微調階段的一致性,比如按照全隨機詞替換的方式、以一定機率分佈的隨機詞、近義詞替換等。同時實驗也證明以一定機率分佈的近義詞替換的效果更好。

千億引數大模型時代,QQ瀏覽器團隊十億級小模型「摩天」登頂CLUE,極致壓榨網路效能

在搜尋點選曝光任務上,QQ 瀏覽器搜尋語義團隊利用自有海量的點選曝光日誌構建了搜尋點選曝光任務來輔助訓練。這樣保證可以進一步提高下游句對任務的效果。另一方面也是一種隱式的 DAPT 方案,進一步保證預訓練模型可以更加適應自有搜尋業務場景。

位置編碼

早期 RNN 模型,後一時刻的輸入依賴前一時刻的輸出,這樣的結構天然捕捉了自然語言中 term 的先後順序。而自然語言中的序列資訊通常又是非常關鍵的。對於 Transformer block 計算的元件,為了引入不同位置 Token 的資訊,選擇在輸入層引入位置資訊的 Embedding,從而保證了 Attention 元件可以捕捉自然語言語序資訊。

在探究 Transformer 位置資訊的引入方式上可以大體分成兩種,第一種是絕對位置編碼,第二種是相對位置編碼

絕對位置編碼是一種比較常見的位置編碼方案,比如 BERT、RoBERTa、AlBERT、ERNIE 等均是採用這種編碼方案。這種編碼方案的優勢是直接、樸素,即每一個絕對位置表達為一個特定的 Embedding 表示,這種 Embedding 表示的形式又可以細分為可訓練的或者函式式的。

其中可訓練的絕對位置 Embedding 隨著模型訓練而得到更新,函式式的絕對位置則是 Attention is all you need 中提出 Sinusoidal 位置編碼。

千億引數大模型時代,QQ瀏覽器團隊十億級小模型「摩天」登頂CLUE,極致壓榨網路效能

我們對以上兩種絕對位置編碼方案進行實驗。預訓練資料量足夠大的時候,可學習的位置編碼 Embedding 會取得更好的實驗結果;相反,Sinusoidal 位置編碼方案效果會相對好一些。另外 Sinusoidal 編碼方案在對於超過預訓練時指定的最大長度時候,會有更好的外延性

整體來看絕對位置編碼的方案,不管是可學習的位置編碼方案還是 Sinusoidal 位置編碼方案都可以完成對位置資訊的編碼這個任務。

同時這裡延伸出另一個問題,即原生的絕對位置編碼資訊是否隱含了相對位置編碼資訊。要解答這個問題,可以關注 Attention 模組是如何應用位置編碼資訊的:

千億引數大模型時代,QQ瀏覽器團隊十億級小模型「摩天」登頂CLUE,極致壓榨網路效能

其中:

千億引數大模型時代,QQ瀏覽器團隊十億級小模型「摩天」登頂CLUE,極致壓榨網路效能

這裡對 QK 進行展開,一共有 4 項。其中第 1 項不包含位置資訊,第 2、3 項是位置資訊和 token 資訊互動,也不包含位置資訊,只有第 4 項存在兩個絕對位置資訊的互動。那麼如果模型能透過絕對位置編碼資訊間接捕捉到相對位置資訊基本上只可能在這。

仔細觀察第 4 項,如果去掉中間的兩個引數矩陣,單獨看兩個位置編碼的乘法(以 Sinusoidal 的表示方法為例)只和兩個位置的相對差值有關,所以是包含了相對位置資訊的。但是第 4 項中有兩個不可省略的引數矩陣,在經過這兩個引數矩陣的對映,是否還包含相對位置資訊?從理論上如果兩個對映矩陣經過學習,只有在相乘結果剛好是單位矩陣 E 的情況下,才會隱含著包含相對位置資訊。

同時,從自然語言的特點去理解,更多的時候關注的是 term 和 term 之間的相對位置,而不是絕對位置。比如短文字:北京到深圳,北京、深圳的相對位置要比絕對位置蘊含更多的語義知識,所以摩天考慮透過更加直接的方案引入相對位置編碼。

結合當前 NEZHA、XLNET、T5、DeBERTa 等相當位置編碼方案,提出了一種相對位置編碼方案,更敏感捕捉短文字位置資訊契合搜尋場景。在實驗中發現,在使用這種相對位置編碼方案之後,預訓練模型的 PPL 在相同配置下可以壓的更低,同時在下游多個任務上也均有不同程度的提升(百分位 1 個點)。

兩階段訓練

BERT 家族針對超長的文字的處理一直是一個研究方向。其中也有很多基於不同角度的解決方案,比如 Transformer-XL、稀疏注意力機制、層次分解位置編碼等。

對於 BERT、RoBERTa、ERNIE 等最多能處理 512 個 token 的問題。演算法上的原因是在預訓練的時候使用了可學習的絕對位置編碼方案,所以最多隻能處理 512 個 token。在工程上,Attention block 的計算時間複雜度和句子長度成平方關係,這導致了在資源相對受限的情況下,預訓練模型訓練過程中很難承受非常大的句子長度。

針對第一個問題,上文提到的相對位置編碼方案可以比較好地解決。

針對第二個問題,我們引入了兩階段的訓練方式,即第一階段以 max_seq_len=128 的配置完成第一階段的預訓練。第二階段以一階段產出模型熱啟動,之後以 max_seq_len=512 的配置完成第二階段的預訓練,進一步壓低 PPL,併產出最終模型。這種方案可以在訓練資源相對受限的情況下,儘可能的兼顧長文字訓練效率與效果。

透過第二階段訓練,模型效果在下游任務上有千分位的效果提升。另外對於長句任務,收斂性得到比較大的改善。

千億引數大模型時代,QQ瀏覽器團隊十億級小模型「摩天」登頂CLUE,極致壓榨網路效能

計算加速

從 18 年 BERT 論文發表至今,預訓練模型的效果不斷的被更大的模型持續重新整理,且目前還未看到天花板。通常一個預訓練模型需要幾十張 V100/A100 顯示卡,不過隨著預訓練模型引數量的不斷擴大,Google、Facebook、Nvidia 等企業更是先後用上千張 GPU 卡訓練了百億、千億引數的 GPT、BERT 模型。在中文預訓練模型上也不斷有百億、千億引數量的預訓練模型被髮布。這些不斷向我們揭示了大規模預訓練的成功,以及算力的重要性。

千億引數大模型時代,QQ瀏覽器團隊十億級小模型「摩天」登頂CLUE,極致壓榨網路效能

QQ 瀏覽器搜尋語義團隊在基礎建設方面搭建了百張卡的大規模訓練叢集用於訓練預訓練模型。採用基於 Horovod 的多機多卡並行方案,同時為了進一步提搞訓練效率,使用了混合精度計算、梯度聚集、重計算等演算法加速計算、節省視訊記憶體。

這裡需要特別指出,梯度聚集演算法相當於在訓練過程中引入了超大的 batch_size,甚至在模型調研中曾一度使用了 64k~128k 的超大 batch_size。為保證模型的收斂,我們借鑑了 LAMB 演算法,並在此基礎上引入梯度正則進一步保證最佳化器更關注梯度的方向,而不是梯度的大小;另一方面對動量和衝量進行修偏,保證模型在迭代初期的收斂

另一方面,摩天大模型升級了 Post-LN 為 Pre-LN 提升預訓練模型效果、並進一步保證模型收斂

千億引數大模型時代,QQ瀏覽器團隊十億級小模型「摩天」登頂CLUE,極致壓榨網路效能

團隊簡介

QQ 瀏覽器搜尋團隊以 QQ 瀏覽器為主要陣地,依託騰訊內容生態,致力於打造年輕人愛用、愛玩的瀏覽器產品。使用者在瀏覽器搜尋內可享受到文章、圖片、小說、長短影片、便捷服務等眾多形態的搜尋體驗。透過使用者研究驅動產品創新,拉動使用者增長,提升搜尋商業變現能力,使瀏覽器搜尋成為新一代搜尋引擎的代表。在搜尋演算法方面,以 NLP、深度學習、富媒體內容理解、知識圖譜等技術為基礎,建設內容處理、Query 理解、相關性計算模型、搜尋推薦、搜尋增長等技術方向,吸收業界先進的技術成果,打造更優秀的搜尋體驗。在搜尋工程方面,建設搜尋技術中臺工業化系統,打磨高併發、高可用、低延時的百億級檢索系統,併為騰訊 PCG 各個內容業務的搜尋場景提供基礎的搜尋引擎服務;當前服務已經支援 QQ 瀏覽器,QQ 看點,快報,騰訊影片,騰訊新聞,騰訊微視等 PCG 重要產品線。

參考文獻

[1]Pre-trained Models for Natural Language Processing: A Survey
[2]Don’t Stop Pretraining: Adapt Language Models to Domains and Tasks
[3]LARGE BATCH OPTIMIZATION FOR DEEP LEARNING: TRAINING BERT IN 76 MINUTES
[4]TENER: Adapting Transformer Encoder for Named Entity Recognition
[5]RoBERTa: A Robustly Optimized BERT Pretraining Approach
[6]Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
[7]Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics
[8]BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
[9]Attention is All You Need
[10]Self-Attention with Relative Position Representations
[11]Revisiting Pre-Trained Models for Chinese Natural Language Processing
[12]SpanBERT: Improving Pre-training by Representing and Predicting Spans
[13]Rethinking Positional Encoding in Language Pre-training
[14]NEZHA: Neural Contextualized Representation for Chinese Language Understanding
[15]DeBERTa: Decoding-enhanced BERT with Disentangled Attention
[16]Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity
[17]On Layer Normalization in the Transformer Architecture

相關文章