01.23 速度×6,模型縮小20倍:華為&華科TinyBERT做搜索,性能達BERT90%

原作:Jack Pertschuk

魚羊 編譯整理

量子位 報道 | 公眾號 QbitAI

在各大NLP榜單大殺四方的BERT,自打正式加入搜索引擎中,用戶搜索體驗確實更絲滑了。

不過,強大往往也意味著複雜。

BERT對算力、內存要求很高,為了使其順利應對成百萬次的搜索,谷歌不得不搭建起專門的Cloud TPU來滿足其計算量。

那麼,問題來了。不像谷歌那樣財大氣粗,就用不上BERT搜索了唄?

不知道你是否聽說過,華為諾亞方舟實驗室和華中科技大學聯手打造的TinyBERT

現在,就有人用這個Transformer蒸餾方法,讓BERT搜索變快6倍,模型大小則只有原來的1/20

速度×6,模型縮小20倍:華為&華科TinyBERT做搜索,性能達BERT90%

TinyBERT搜索

首先,用微軟的MS Marco訓練三元組,在PyTorch中訓練一個基於BERT的教師網絡。

注:MS Marco:微軟機器閱讀理解數據集,由10萬個問答組成

然後,讓教師網絡訓練一個較小的學生BERT網絡,這個學生網絡只有4個隱藏層,而非標準的12層。

每一層的大小僅為312,以使模型更為輕巧。

在整個模型的最後,採用前饋二進制分類層來生成得分,進行搜索排名。

速度×6,模型縮小20倍:華為&華科TinyBERT做搜索,性能達BERT90%

模型的具體參數如下,加粗部分是與標準BERT不同的部分。

<code>{“ attention_probs_dropout_prob”:0.1,“單元格”:{},“ emb_size”:312,“ hidden_act”:“ gelu”,“ hidden_dropout_prob”:0.1,“ hidden_size”:312,“ initializer_range”:0.02,“ intermediate_size”:1200,“ max_position_embeddings”:512,“ num_attention_heads”:12,“ num_hidden_layers”:4,“ pre_trained”:“”,“ structure”:[],“ type_vocab_size”:2,“ vocab_size”:30522}/<code>

那麼,用TinyBERT來做搜索,效果如何呢?

作者用MS Marco數據集對其進行檢驗。這一數據集採集自Bing的實際使用情況,是最大的公共搜索引擎使用情況數據集。

速度×6,模型縮小20倍:華為&華科TinyBERT做搜索,性能達BERT90%

雖然在搜索效果的改進上,TinyBERT的性能只達到了BERT的90%,但速度提升了5倍,並且模型大小僅為BERT的1/20。

谷歌:用BERT做搜索

2019年10月底,谷歌將BERT加入到他們的搜索引擎當中。

谷歌搜索副總裁Pandu Nayak表示:

對於比較長、會話性比較強的查詢,或者在“for”、“to”這樣的介詞比較重要的語句中,使用了BERT的搜索引擎能夠更好地理解查詢中單詞的上下文。

比如,當輸入“2019 brazil traveler to usa need a visa”(2019年前往美國的巴西旅行者需要簽證)這樣一條查詢語句時,“to”這個詞起到了關鍵的聯繫作用(巴西人→美國)。

速度×6,模型縮小20倍:華為&華科TinyBERT做搜索,性能達BERT90%

BERT未加入前,搜索引擎的算法無法理解這種關聯,因此返回了有關前往巴西的美國公民(美國人→巴西)的結果。

而有了BERT,搜索引擎就能把握住其中細微而關鍵的差別了。

速度×6,模型縮小20倍:華為&華科TinyBERT做搜索,性能達BERT90%

TinyBERT

而針對BERT這樣的龐大模型難以部署到算力、內存有限的設備中的問題,華為諾亞方舟實驗室和華中科技大學合作開源了

TinyBERT

速度×6,模型縮小20倍:華為&華科TinyBERT做搜索,性能達BERT90%

應用知識蒸餾(knowledge distillation,KD)的方法,大型教師模型BERT中編碼的大量知識,能被很好地遷移到小型學生模型TinyBERT中。

研究人員還提出了一種專門用於TinyBERT的兩段式學習框架,分別在預訓練階段和特定任務學習階段進行transformer蒸餾。

這樣,就能確保TinyBERT可以獲取教師模型在通用和特定任務知識上的經驗。

速度×6,模型縮小20倍:華為&華科TinyBERT做搜索,性能達BERT90%

在GLUE基準上,TinyBERT的性能與BERT相當,僅下降了3個百分點。

速度×6,模型縮小20倍:華為&華科TinyBERT做搜索,性能達BERT90%

並且,模型大小不到不到BERT的1/7,推理速度是BERT的9.4倍。

速度×6,模型縮小20倍:華為&華科TinyBERT做搜索,性能達BERT90%

傳送門

博客:https://towardsdatascience.com/tinybert-for-search-10x-faster-and-20x-smaller-than-bert-74cd1b6b5aec

TinyBERT論文:https://arxiv.org/abs/1909.10351

TinyBERT開源地址:https://github.com/huawei-noah/Pretrained-Language-Model/tree/master/TinyBERT

— 完 —

量子位 QbitAI · 頭條號簽約

關注我們,第一時間獲知前沿科技動態


分享到:


相關文章: