0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

是什么讓BERT與眾不同?如何使用BERT?

Tensorflowers ? 來源:未知 ? 作者:李倩 ? 2018-11-08 15:46 ? 次閱讀

缺少訓(xùn)練數(shù)據(jù)是自然語言處理(Natural Language Processing, NLP)面臨的最大挑戰(zhàn)之一。由于 NLP 是一個具備不同任務(wù)的多樣化領(lǐng)域,因此大多數(shù)任務(wù)特定數(shù)據(jù)集僅包含幾千或幾十萬個人類標(biāo)簽的訓(xùn)練樣例。然而,基于深度學(xué)習(xí)的 NLP 模型可以從更大量的數(shù)據(jù)中獲益,在數(shù)百萬或數(shù)十億的帶標(biāo)簽的訓(xùn)練樣例中學(xué)習(xí)得到改善。為了幫助縮小在數(shù)據(jù)方面的差距,研究人員開發(fā)了各種技術(shù),使用網(wǎng)絡(luò)上無標(biāo)簽的文本訓(xùn)練一個通用的語言表示模型(稱為預(yù)訓(xùn)練)。用預(yù)訓(xùn)練模型在小數(shù)據(jù)的NLP 任務(wù)(如問答和情感分析)上進(jìn)行微調(diào),與從頭開始訓(xùn)練相比,可以顯著提高準(zhǔn)確度。

本周我們開源了一種NLP 預(yù)訓(xùn)練新技術(shù)BidirectionalEncoderRepresentations fromTransformers(BERT)(https://github.com/google-research/bert)。此次發(fā)布的版本中,世界上任何人都可以在一個云 TPU上花費(fèi)大約 30 分鐘,或使用單個 GPU 在幾個小時內(nèi)訓(xùn)練他們自己最先進(jìn)的問答系統(tǒng)(或各種其他模型)。該版本包括在 TensorFlow之上構(gòu)建的源代碼和許多預(yù)先訓(xùn)練的語言表示模型。在我們的相關(guān)論文中,展示了包括斯坦福問答數(shù)據(jù)集(SQUAD v1.1)在內(nèi) 11 個 NLP 任務(wù)的最新結(jié)果。

是什么讓 BERT 與眾不同?

BERT 建立在最新的預(yù)訓(xùn)練與上下文相關(guān)的語言表示的工作之上 — 包括Semi-supervised Sequence Learning、Generative Pre-Training、ELMo和ULMFit。然而,與以前的模型不同,BERT 是第一個深度、雙向、無監(jiān)督的語言表示模型,僅使用無標(biāo)簽的文本語料庫(在本例中為維基百科)進(jìn)行預(yù)訓(xùn)練。

為什么這很重要?預(yù)訓(xùn)練表示可以是與上下文無關(guān)的或與上下文相關(guān)的。與上下文相關(guān)的表示又可以分成單向(只跟上文或下文相關(guān))或雙向的 (同時考慮上文和下文)。與上下文無關(guān)模型諸如word2vec或GloVe之類的對每個單詞生成一個詞嵌入表示,所以在這些模型下 “bank” 一詞在 “bank account” 和 “bank of the river” 中會具有相同的表示。而與上下文相關(guān)模型則基于句子中其他單詞來生成每個詞的表示。例如,在句子 “I accessed the bank account” 中,一個單向的上下文相關(guān)模型表示 “bank” 會基于上文 “I accessed the” 而非下文 “account”。 然而,BERT 表示 “bank” 會同時使用它的上文和下文— “I accessed the ... account” — 從深層神經(jīng)網(wǎng)絡(luò)的最底層開始,成為雙向的表示。

與先前工作中領(lǐng)先的上下文預(yù)訓(xùn)練方法相比,BERT 神經(jīng)網(wǎng)絡(luò)架構(gòu)的示意圖如下所示。箭頭表示從一個層到下一個層的信息流。圖示中頂部的綠色框?qū)?yīng)每個輸入詞最終的上下文表示:

雙向的力量

如果雙向如此強(qiáng)大,為什么以前沒有這樣實(shí)現(xiàn)?在訓(xùn)練單向模型時,預(yù)測詞時必須只能基于句子中上文的單詞。然而,想要直接讓模型同時根據(jù)上文和下文來預(yù)測詞是不可能的,因?yàn)檫@將允許被預(yù)測的單詞會隨著多層模型間接地 “看見自己”。

為了解決這個問題,我們使用直接的蒙版技術(shù)來掩蓋輸入中的一些單詞,然后模型就能同時根據(jù)上文和下文來預(yù)測被掩蓋的單詞。例如:

雖然這個想法由來已久,但是 BERT 首次把它成功應(yīng)用到預(yù)訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)中。

BERT 還學(xué)習(xí)如何建模句子之間的關(guān)系,通過預(yù)訓(xùn)練對任何文本語料庫都可生成的一個很簡單的任務(wù)來實(shí)現(xiàn):給定兩個句子 A和 B,判斷 B 是在語料庫中 A之后實(shí)際出現(xiàn)的下一個句子,或者只是一個隨意的句子?例如:

使用云 TPU 進(jìn)行訓(xùn)練

到目前為止,我們所描述的所有內(nèi)容看起來都相當(dāng)直觀,那么還需要什么才能使 BERT 運(yùn)行得如此良好?云 TPU。云 TPU 使我們可以自由地快速試驗(yàn)、調(diào)試和優(yōu)化我們的模型,這對于我們超越現(xiàn)有的預(yù)訓(xùn)練技術(shù)至關(guān)重要。由 Google 的研究人員于 2017 年開發(fā)的Transformer 模型架構(gòu)也為我們提供了使 BERT 成功所需的基礎(chǔ)。Transformer 在我們的開源版本以及tensor2tensor 庫中實(shí)現(xiàn)。

注:Transformer 模型架構(gòu) 鏈接

https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html

開源版本 鏈接

https://github.com/google-research/bert

tensor2tensor 庫 鏈接

https://github.com/tensorflow/tensor2tensor

BERT 的結(jié)果

為了評估性能,我們將 BERT 與其他最先進(jìn)的 NLP 系統(tǒng)進(jìn)行了比較。需要注意的是,在我們的實(shí)驗(yàn)中,我們幾乎沒有針對特定任務(wù)而對神經(jīng)網(wǎng)絡(luò)架構(gòu)進(jìn)行更改。在SQuAD v1.1上,BERT 獲得了93.2% 的 F1 分?jǐn)?shù)(一種準(zhǔn)確度的衡量指標(biāo)),超過了之前最高水準(zhǔn)的分?jǐn)?shù) 91.6% 和人類分?jǐn)?shù) 91.2%:

BERT 還在極具挑戰(zhàn)性的GLUE 基準(zhǔn)測試中將準(zhǔn)確性的標(biāo)準(zhǔn)提高了 7.6%。這個基準(zhǔn)測試包含 9 種不同的自然語言理解(NLU)任務(wù)。在這些任務(wù)中,具有人類標(biāo)簽的訓(xùn)練數(shù)據(jù)跨度從 2,500 個樣本到 400,000 個樣本不等。BERT 在所有任務(wù)中都大大提高了準(zhǔn)確性。

如何使用 BERT?

我們發(fā)布的模型可以在幾個小時或更短的時間內(nèi)在各種 NLP 任務(wù)上進(jìn)行微調(diào)。開源版本還包括運(yùn)行預(yù)訓(xùn)練的代碼,我們相信大多數(shù)使用 BERT 的 NLP 研究人員永遠(yuǎn)不需要從頭開始訓(xùn)練他們自己的模型。我們最初發(fā)布的 BERT 模型主要為英語模型?;谏鐓^(qū)反饋,在開源代碼和英語模型之后,我們發(fā)布了支持中文以及多語言的預(yù)訓(xùn)練基礎(chǔ)模型BERT-Base,更好地幫助世界各國的研究人員和開發(fā)者解決相應(yīng)的自然語言處理問題。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標(biāo)題:BERT 現(xiàn)已開源:最先進(jìn)的 NLP 預(yù)訓(xùn)練技術(shù),支持中文和更多語言

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    BERT原理詳解

    BERT原理詳解
    發(fā)表于 07-02 16:45

    串行BERT軟件安裝指南

    7G / 13.5G 串行 BERT 固化軟件和 GUI 軟件的文檔。
    發(fā)表于 09-10 11:05

    串行BERT用戶指南

    A guide on using the Serial BERT
    發(fā)表于 09-23 11:01

    串行BERT編程指南

    A guide on programming the Serial BERT
    發(fā)表于 09-24 17:15

    J-BERT N4903A高性能串行BERT手冊

    Brochure for the Keysight J-BERT N4903A High-Performance Serial BERT: 4 pages
    發(fā)表于 09-26 12:17

    回收M8040A 64 Gbaud 高性能 BERT

    回收M8040A 64 Gbaud 高性能 BERT曾S:***;Q號:3140751627;M8040A 64 Gbaud 高性能 BERTM8030A 多通道比特誤碼率測試儀M8062A
    發(fā)表于 07-03 11:08

    BERT中的嵌入層組成以及實(shí)現(xiàn)方式介紹

    , therefore I am第一個“I”不應(yīng)該與第二個“I”具有相同的向量表示。實(shí)現(xiàn)BERT被設(shè)計(jì)用來處理長度為512的輸入序列。作者通過BERT學(xué)習(xí)每個位置的向量表示來包含輸入序列的順序特征。這
    發(fā)表于 11-02 15:14

    BERT模型的PyTorch實(shí)現(xiàn)

    BertModel是一個基本的BERT Transformer模型,包含一個summed token、位置和序列嵌入層,然后是一系列相同的self-attention blocks(BERT-base是12個blocks, BERT
    的頭像 發(fā)表于 11-13 09:12 ?1.4w次閱讀

    XLNet vs BERT,對比得明明白白!

    訓(xùn)練語料庫:Wikipedia + BooksCorpus,在處理Wikipedia時使用了與BERT repo相同的工具,但出于某種原因,我們的Wiki語料庫僅有20億單詞,BERT使用了25億單詞,因此XLNet的訓(xùn)練數(shù)據(jù)略少于BE
    的頭像 發(fā)表于 07-27 07:14 ?4287次閱讀
    XLNet vs <b class='flag-5'>BERT</b>,對比得明明白白!

    一篇BERT用于推薦系統(tǒng)的文章

    今天給大家介紹一篇BERT用于推薦系統(tǒng)的文章,題目是《BERT4Rec: Sequential Recommendation with Bidirectional Encoder
    的頭像 發(fā)表于 11-03 17:11 ?3008次閱讀
    一篇<b class='flag-5'>BERT</b>用于推薦系統(tǒng)的文章

    圖解BERT預(yù)訓(xùn)練模型!

    BERT的發(fā)布是這個領(lǐng)域發(fā)展的最新的里程碑之一,這個事件標(biāo)志著NLP 新時代的開始。BERT模型打破了基于語言處理的任務(wù)的幾個記錄。在 BERT 的論文發(fā)布后不久,這個團(tuán)隊(duì)還公開了模型的代碼,并提供了模型的下載版本
    的頭像 發(fā)表于 11-24 10:08 ?3581次閱讀

    如何優(yōu)雅地使用bert處理長文本

    這是今年清華大學(xué)及阿里巴巴發(fā)表在NIPS 2020上的一篇論文《CogLTX: Applying BERT to Long Texts》,介紹了如何優(yōu)雅地使用bert處理長文本。作者同時開源了
    的頭像 發(fā)表于 12-26 09:17 ?8682次閱讀
    如何優(yōu)雅地使用<b class='flag-5'>bert</b>處理長文本

    什么是BERT?為何選擇BERT?

    由于絕大多數(shù) BERT 參數(shù)專門用于創(chuàng)建高質(zhì)量情境化詞嵌入,因此該框架非常適用于遷移學(xué)習(xí)。通過使用語言建模等自我監(jiān)督任務(wù)(不需要人工標(biāo)注的任務(wù))訓(xùn)練 BERT,可以利用 WikiText 和 BookCorpus 等大型無標(biāo)記數(shù)據(jù)集
    的頭像 發(fā)表于 04-26 14:24 ?4211次閱讀

    總結(jié)FasterTransformer Encoder(BERT)的cuda相關(guān)優(yōu)化技巧

    FasterTransformer BERT 包含優(yōu)化的 BERT 模型、高效的 FasterTransformer 和 INT8 量化推理。
    的頭像 發(fā)表于 01-30 09:34 ?2132次閱讀
    總結(jié)FasterTransformer Encoder(<b class='flag-5'>BERT</b>)的cuda相關(guān)優(yōu)化技巧

    NLP入門之Bert的前世今生

    對于每個詞只能有一個固定的向量表示,今天我們來介紹一個給NLP領(lǐng)域帶來革新的預(yù)訓(xùn)練語言大模型Bert,對比word2vec和Glove詞向量模型,Bert是一個動態(tài)的詞向量語言模型,接下來將帶領(lǐng)大家一起來聊聊Bert的前世今生,
    發(fā)表于 02-22 10:29 ?854次閱讀
    NLP入門之<b class='flag-5'>Bert</b>的前世今生