0
| 本文作者: AI研習社-譯站 | 2018-11-16 10:59 |
本文為 AI 研習社編譯的技術博客,原標題 :
Google Open Sources BERT to Train Natural Language Models Without Breaking the Bank
作者 | Jesus Rodriguez
翻譯 | micah壹路向北 校對 | 醬番梨
整理 | 菠蘿妹
原文鏈接:
https://towardsdatascience.com/google-open-sources-bert-to-train-natural-language-models-without-breaking-the-bank-813ef38018fc
谷歌開源BERT不費吹灰之力輕松訓練自然語言模型
KK
目前自然語言處理模型是人工智能的前沿科技,他們是很多AI系統(tǒng)與用戶交互的接口。NLP 發(fā)展的主要阻礙來自于模型對于高質量標記數據的依賴。由于語言是一個任何事物都可以應用的普遍交流的機制,這也意味著很難找到一個特定領域的注解數據去訓練模型。針對這個挑戰(zhàn), NLP 模型 決定先使用大量的沒有標簽的數據訓練語言原理。非常有名的預訓練模型包括 Word2Vec,Glove 或者FasText。然而 預訓練模型有自己的挑戰(zhàn),對于大量數據的上下文關系的表達常常失敗。最近來自GOOGLE AI 語言團隊的研究者們開放了 BERT項目的源代碼,一個為預訓練語言表達而生的庫,并且其訓練結果達到了很不錯的效果。
Bidirectional Encoder Representations from Transformers (BERT) 起源于Google內部的一篇研究,提出了一種在大量上下文相關的語言的預訓練模型中獲取數據的不同方法。這些表達方式可以被用于特定領域的NLP 任務,類似于問答式語句,情感分析。開源項目的發(fā)布,既是論文中提出的 TensorFlow 技術的實施, 也是一系列的預訓練模型。
現在 你可能會想知道BERT與其他預訓練模型不同的地方。理論上,NLP 預訓練技術可以是上下文無關的,也可以是上下文互相檢索的。上下文無關的模型,像 word2vec 或者 GloVegenerate 是以單個詞匯嵌入詞匯表的表達方式。例如,“足球”這個單詞在以下語句中有相同的語義“我去了足球比賽”,“我遇到了一些來自皇家馬德里的足球球員”。
上下文檢索的模型并非由單個詞匯生成表達語句,而是根據這句話不同方向上的其他其他單詞來生成表達句。在我們的例子中,上下文檢索式的模型中“足球”的含義根據短語“我去..”或者“我遇到了...”而生成 而不是根據“比賽”“皇家馬德里的球員”。本質上,預訓練模型可以是上下文無關的也可以是上下文檢索式的,更深入的,可以是單向性的也可以是雙向性的。
BERT 通過根據前后單詞的意思創(chuàng)建上下文檢索表達語義, 延伸了之前的預訓練模型方法,豐富了語言模型。在NLP模型中達成雙向的,上下文檢索的語義表達并不像聽起來那么容易。雙向性最大的困難在于,在訓練模型中 不能簡單的將單詞的前一個和后一個單詞作為上下文,可能會讓單詞間接的在多層模型中尋找 “自己 “。Google BERT 使用了非常聰明的架構來應對這一挑戰(zhàn)。
BERT 的模型架構基于多層雙向轉換解碼 ,與 tensor2tensor library 中的原理十分相似。BERT 有著與其他預訓練模型 OpenAI GPT 或者 ELMo十分相似的網絡架構。但是在轉換器之間有著如下圖所示的雙向連接。
BERT 最大的貢獻在于使用了兩個 奇異的非監(jiān)督預測任務來解決之前提到的挑戰(zhàn)。使得讓單詞在文章上下文里“認出自己”變?yōu)榭赡?。BERT解決這個挑戰(zhàn)使用了多種不同的預訓練任務:屏蔽和下一句預測。第一個預處理模型遮蔽約15%的輸入單詞,在深度雙向轉換解碼中運行整個語句,并且只預測被遮蔽的單詞,例如:
第二個預處理任務通過語料庫中隨機生成的簡單語句,學習語句之間的聯(lián)系。
給出兩個語句A 和B, B是A之后的語句嗎?還是B 只是語料庫中隨機抽取的一句話?
這兩個預處理任務的結合使得 BERT在幾乎所有的NLP任務中 得到了更加豐富的,雙向的語義表達。
使用BERT有兩個階段:預訓練 和 微調
預訓練:相當的昂貴(在 4~ 16 個 云 TPUs 上跑4天),但是對于每一個語言,只用跑一次。為了減緩任務的嚴峻性, Google 發(fā)布了好幾款可以用于NLP 場景的預訓練模型。
微調:很便宜,所有在紙上可以完成的工作都可以在一個云端TPU的一小時之內完成,或者使用GPU 的話需要幾個小時的時間。從相同的預訓練模型開始。
Google以BERT 作為其他優(yōu)秀的NLP 系統(tǒng)的基準,取得了引人矚目的成就。 最重要的是,BERT 取得的所有的結果不需要根據任務改變神經網絡的結構。
在 SQuAD v1.1 ,BERT 取得了93.2% 的F1 分數(精準度計算的分數),超越了之前模型的91.6%和人工翻譯的91.2%。
BERT 也提高了 GLUE benchmark 的基準的 7.6%, 一個9種的自然語言理解(NLU)集合任務。
語言模型的遷移學習近期帶來了大量的經驗性提升表明了大量的,無監(jiān)督的預訓練模型是眾多語言理解系統(tǒng)中的重要組成部分。BERT 表明了在NLP預處理模型中獲取雙向的,上下文語言的表達是可能的。目前實施BERT的TensorFlow 允許開發(fā)者將這個前沿技術應用于他們的NLP 場景的同時維護可管理的計算成本。雷鋒網雷鋒網雷鋒網
想要繼續(xù)查看該篇文章相關鏈接和參考文獻?
長按鏈接點擊打開:
http://ai.yanxishe.com/page/TextTranslation/1212
AI研習社每日更新精彩內容,觀看更多精彩內容:
等你來譯:
雷峰網原創(chuàng)文章,未經授權禁止轉載。詳情見轉載須知。