圖解當前最強語言模型BERT:NLP是如何攻克遷移學習的?

2020-12-11 機器之心Pro

選自jalammar.github.io

作者:Jay Alammar

機器之心編譯

參與:Panda

前段時間,谷歌發布了基於雙向 Transformer 的大規模預訓練語言模型 BERT,該預訓練模型能高效抽取文本信息並應用於各種 NLP 任務,該研究憑藉預訓練模型刷新了 11 項 NLP 任務的當前最優性能記錄。技術博主 Jay Alammar 近日發文通過圖解方式生動地講解了 BERT 的架構和方法基礎。

2018 年是機器學習模型處理文本(更準確地說是自然語言處理,簡稱 NLP)的一個轉折點。如何最好地表徵詞和句子以便最好地理解其潛在含義和關係?我們對此的概念理解正在快速演進。此外,NLP 社區也一直都在提出強大的新組件——你可以免費下載它們並將其用在你自己的模型和流程中(這被稱為 NLP 的 ImageNet 時刻,是指這類似於多年前用於計算機視覺任務的機器學習的加速發展)。

ULM-FiT 和 Cookie Monster 沒任何直接聯繫,但我想不到其它東西……

這一領域最近的裡程碑是 BERT 的發布,人們將這一事件譽為 NLP 新時代的開端。BERT 這種模型打破了多項模型處理基於語言的任務的紀錄。在描述該模型的論文發布之後不久,其研究團隊還開源了該模型的代碼,並發布了可供下載的模型版本——已經在大規模數據集上經過預訓練。這是一個重大的進展,因為它讓任何人都可以構建涉及語言處理的機器學習模型,並將這種強大工具用作其中的組件——這能節省從頭開始訓練語言處理模型所需的時間、精力、知識和資源。

BERT 的開發分為兩個步驟。你可以下載在步驟 1 中預訓練過的模型(在無標註數據上訓練過);只需考慮針對步驟 2 進行調整。

BERT 的開發基礎包含很多 NLP 社區內近期湧現出的聰明思路,其中包括但不限於半監督序列學習(來自 Andrew Dai and Quoc Le)、ELMo(來自 Matthew Peters 以及 AI2 和華盛頓大學計算機科學與工程系的研究者)、ULMFiT(來自 fast.ai 創始人 Jeremy Howard 和 Sebastian Ruder)、OpenAI transformer(來自 OpenAI 的研究者 Radford、Narasimhan、Salimans 和 Sutskever)、Transformer(Vaswani et al)。

要恰當地了解 BERT 究竟是什麼,你需要了解很多概念。所以我們先來看看可以如何使用 BERT,之後再介紹涉及該模型的概念。

示例:句子分類

使用 BERT 最直接的方式是將其用於分類單個文本。該模型看起來會是這樣的:

為了訓練這樣一個模型,你主要必須訓練分類器(Classifier),而讓 BERT 模型在訓練過程中有儘可能小的變化。這個訓練階段被稱為微調(Fine-Tuning),而且源自半監督序列學習和 ULMFiT。

為不熟悉這一主題的人解釋一下:因為我們正在談論分類器,那麼我們就處於機器學習的監督學習領域。也就是說我們需要一個有標註的數據集來訓練模型。對於這個垃圾郵件分類器示例,有標註的數據集即為郵件信息和對應標籤構成的列表(每條郵件信息被標註為「垃圾郵件」或「非垃圾郵件」)。

這種用例的其它示例包括:

情感分析

輸入:電影/產品評論。輸出:這個評論是正面的還是負面的?示例數據集:SST:https://nlp.stanford.edu/sentiment/

事實檢查

輸入:句子。輸出:「事實聲明」或「非事實聲明」。更雄心勃勃且更有未來感的示例:輸入:稱述句。輸出:「真」或「假」。Full Fact 是一家組織機構為公共利益構建的一款自動事實檢查工具。其一部分工作流程是讓分類器閱讀新聞並檢查聲明的事實(將文本分類為「事實聲明」或「非事實聲明」),之後再進行事實查證(這個事情現在是人類在做,希望未來能讓機器做)。視頻:用於自動化事實查證的句子嵌入:https://www.youtube.com/watch?v=ddf0lgPCoSo

模型架構

現在你的腦子裡已經有一個有關 BERT 使用方式的示例用例了,現在我們來仔細看看它的工作方式。

這篇論文為 BERT 提出了兩種大小的模型:

BERT BASE:與 OpenAI Transformer 大小相當,這是為了比較兩者的表現而構建的。BERT LARGE:一個非常巨大的模型,實現了當前最佳。

BERT 基本上就是一個經過訓練的 Transformer Encoder 的堆棧。現在該向你推薦我之前解釋 Transformer 的文章了:https://jalammar.github.io/illustrated-transformer/ ;Transformer 模型是 BERT 以及我們後面將會討論的很多概念的基礎概念。

這兩種大小的 BERT 模型都有很多編碼器層(這篇論文稱之為 Transformer Blocks)——Base 版有 12 層,Large 版有 24 層。相比於 Transformer 初始論文的參考實現的默認配置(6 個編碼器層、512 個隱藏單元和 8 個注意頭),它們還有更大的前饋網絡(分別有 768 和 1024 個隱藏單元)和更多注意頭(attention head,分為有 12 和 16 個)。

模型輸入

首個輸入的 token 由一個特殊的 [CLS] token 填補,原因後面就會明了。CLS 表示 Classification。

與 Transformer 的簡單純粹的編碼器一樣,BERT 以詞序列為輸入,這些詞會在其堆棧中不斷向上流動。每一層都會應用自注意,並會通過一個前饋網絡傳遞它的結果,然後將其移交給下一個編碼器。

在架構方面,直到這部分為止都與 Transformer 完全相同(除了規模大小,見上述的配置)。在輸出的位置,我們開始看到不同。

模型輸出

每個位置都會輸出一個大小為 hidden_size(BERT Base 為 768)的向量。對於我們上面看到的句子分類示例,我們僅關注第一個位置的輸出(即我們傳遞了特殊的 [CLS] token 的位置)。

現在,這個向量就可以被用作我們所選擇的分類器的輸入。這篇論文僅使用單層神經網絡作為分類器就取得了非常優良的結果。

如果你有更多標籤(比如如果你的電子郵件服務會將郵件標註為「垃圾郵件」、「非垃圾郵件」、「社交」、「廣告」),那麼你只需要調整分類器網絡使其具有更多輸出神經元,然後通過 softmax 即可。

對比卷積網絡

如果你有計算機視覺的背景,你可能會發現這種向量傳遞類似於 VGGNet 等網絡的卷積部分與網絡末端的全連接分類部分之間的情況。

嵌入的新時代

這些新進展帶來了詞編碼方式的轉變。到目前為止,詞嵌入一直都是推動 NLP 模型解決語言任務的主要力量。word2vec 和 GloVe 等方法在這類任務上得到了廣泛的應用。我們先來看看之前的做法,然後再看現在有什麼變化。

回顧詞嵌入

要讓機器學習模型能處理詞,首先需要將詞表示成某種數值形式,以便模型進行計算。Word2Vec 表明我們可以使用向量(某種數值列表)來恰當地表徵詞,使得這些表徵能具備詞之間的語義或含義關係(比如能說明詞的含義是否相似或相反,像是「斯德哥爾摩」和「瑞典」這一組詞與「開羅」和「埃及」這一組詞之間具有同樣的關係)以及句法或基於語法的關係(比如「had」和「has」之間的關係與「was」和「is」之間的關係一樣)。

這一領域很快認識到,使用在大規模文本數據上預訓練後的詞嵌入是一個很棒的思路,而不是在通常很小的數據集上與模型一起訓練詞嵌入。因此,人們就可以下載詞以及使用 Word2Vec 或 GloVe 預訓練後生成的詞嵌入了。下面是詞「stick」的 GloVe 嵌入示例(嵌入向量大小為 200):

詞「stick」的 GloVe 詞嵌入,這是一個由 200 個浮點數(四捨五入到兩位小數)構成的向量。這裡給出的並不完整,總共有 200 個值。

因為這些向量很大而且都是數字,所以本文會使用下面的簡單圖形來表示它們:

ELMo:上下文很重要

如果我們使用這種 GloVe 表示方法,那麼不管上下文如何,詞「stick」都會表示成這個向量。很多 NLP 研究者意識到了這種操作並不穩妥,比如 Peters et. al., 2017、McCann et. al., 2017 以及 Peters et. al., 2018 的 ELMo 論文。根據使用的場景,「stick」可能具有多種含義。為什麼不根據其所處的語境/上下文來確定詞嵌入呢——這樣既能獲得該詞在上下文中的含義,還能得到其它語境信息?為此,語境化詞嵌入誕生了。

語境化詞嵌入能根據詞在句子語境中的含義給予其不同的嵌入。

ELMo 並不為每個詞使用一個固定的嵌入,而是會在為句子中的詞分配嵌入之前檢查整個句子。它使用了一個在特定任務上訓練的雙向 LSTM 來創建這些嵌入。

ELMo 是向 NLP 預訓練所邁出的重要一步。ELMo LSTM 會在我們數據集的語言的一個大規模數據集上進行訓練,然後我們可以將其用作其它需要處理語言的模型的組件。

ELMo 有何奧妙?

ELMo 的訓練方式是預測一個詞序列的下一個詞,並以此來獲得對語言的理解——這個任務被稱為語言建模。這是很方便的,因為我們有大量文本數據,這樣的模型無需標籤也能學習。

ELMo 的預訓練過程中的一步。給定「Let's stick to」為輸入,預測下一個最有可能的詞——這是一個語言建模任務。在大型數據集上訓練時,模型會開始提取語言模式。在這個示例中,模型不太可能準確猜出下一個詞。更現實的情況是,比如在出現了「hang」這個詞之後,為「out」分配更高的概率(以拼出「hang out」),而不是「camera」。

我們可以看到從 ELMo 的頭部後面伸出的每個未展開的 LSTM 步驟的隱藏狀態。在這個預訓練完成之後,它們能用在嵌入過程中。

ELMo 實際上更進了一步,訓練了一個雙向 LSTM——使其語言模型不僅有對下一個詞的感知,還有對前一個詞的感知。

一個很贊的介紹 ELMo 的幻燈片:https://goo.gl/Fg5pF9

ELMo 通過一種特定方式(連接之後加權求和)對隱藏狀態(和初始嵌入)進行分組,從而構建出語境化的嵌入。

ULM-FiT:解決 NLP 中的遷移學習

ULM-FiT 引入了新的方法,可有效利用模型在預訓練階段學習到的很多東西——不只是嵌入,而且也不只是語境化嵌入。ULM-FiT 引入了一種新語言模型和新處理過程,可針對多種任務對語言模型進行調整。NLP 終於有一種做遷移學習的方法了,或許就像計算機視覺一樣。

Transformer:超越 LSTM

Transformer 論文和代碼的發布以及其在機器翻譯等任務上取得的結果開始讓該領域內的一些人思考用 Transformer 替代 LSTM。這是因為事實上 Transformer 在處理長期依賴方面優於 LSTM。

Transformer 的編碼器-解碼器結構使其能完美應用於機器翻譯。但我們如何將其用於句子分類呢?我們怎麼將其用於預訓練語言模型,然後再針對其它任務調整這個語言模型呢?(該領域將這些利用了預訓練的模型或組件的監督學習任務稱為下遊任務)。

OpenAI Transformer:為語言建模訓練 Transformer 解碼器

事實證明,我們不需要整個 Transformer,就能將遷移學習和可調節的語言模型用於 NLP 任務。我們只需要 Transformer 的解碼器就夠了。解碼器是很好的選擇,因為這是語言建模的自然選擇(預測下一個詞),因為它是為得到未來 token 的掩碼而構建的——對逐詞生成翻譯任務而言,這是很有價值的特徵。

OpenAI Transformer 是由 Transformer 的解碼器堆棧構成的。

該模型堆疊了 12 個解碼器層。因為其中沒有編碼器,所以這些解碼器層不會有編碼器-解碼器注意子層(attention sublayer),而原本的 Transformer 解碼器層中有這樣的注意子層。但是,OpenAI Transformer 中仍然有自注意層。

使用這種結構,我們可以繼續在同一語言建模任務上訓練該模型:使用大規模(無標註)數據集預測下一個詞。丟給它 7000 本書的文本讓它學習就行了!對這類任務而言,書籍是很棒的數據,因為書籍能讓模型學習關聯相關的信息,即使這些信息已被大量文本分隔開——當你用微博或文章等短篇幅文本進行訓練時,很難學到這類關聯屬性。

OpenAI Transformer 現在已經準備好基於 7000 本書構成的數據集來預測下一個詞了。

遷移學習到下遊任務

現在 OpenAI Transformer 已經過了預訓練,其中的層也經過了調節,可以合理地處理語言,我們可以開始將其用於下遊任務了。首先我們來看看句子分類(將郵件消息分類為「垃圾郵件」或「非垃圾郵件」)。

如何使用預訓練後的 OpenAI Transformer 來分類句子

OpenAI 的論文羅列了一些輸入變換,用以處理不同類型的任務的輸入。下圖即來自該論文,展示了用於執行不同任務的模型結構和輸入變換。

是不是很巧妙?

BERT:從解碼器到編碼器

OpenAI Transformer 為我們提供了基於 Transformer 的可微調的預訓練模型。但在這種從 LSTM 到 Transformer 的過度中卻缺失了一些東西。ELMo 的語言模型是雙向的,而 OpenAI Transformer 僅訓練一個單向語言模型。我們能否構建出一種既能向前看也能向後看(即同時基於上文和下文)的基於 Transformer 的模型?

「瞧我的!」BERT 說。

有掩碼的語言模型

BERT 說:「我們將使用 Transformer 編碼器。」

「太瘋狂了,」Ernie 說,「每個人都知道雙向調節會讓每個詞都在多層上下文中間接地看到自己。」

「我們將使用掩碼(mask)。」BERT 自信地說。

BERT 巧妙的語言建模任務會掩蓋輸入中 15% 的詞,並讓模型來預測缺失的詞。

尋找合適的任務來訓練 Transformer 編碼器堆棧是一個複雜的難題,BERT 通過採用來自早期文獻的「有掩碼的語言模型」概念而解決了這一難題(在早期文獻中被稱為完形填空任務(Cloze))。

除了掩蔽 15% 的輸入,BERT 還混用了一些方法來改善模型之後的調整。有時候它會隨機將一個詞替換成另一個詞,然後讓模型預測該位置的正確詞。

兩句子任務

如果你回頭看看 OpenAI Transformer 用以處理不同任務的輸入變換,你會發現某些任務需要模型給出有關兩個句子的一些知識(比如它們是否只是彼此的複述版本?給定一個維基百科詞條以及涉及該詞條內容的問題作為輸入,我們能否回答該問題?)

要讓 BERT 更好地處理多個句子之間的關係,其預訓練過程還包括一項額外任務:給定兩個句子(A 和 B),B 是否有可能是 A 後面的句子?

BERT 預訓練的這個次級任務是一個兩句子分類任務。這幅圖中的 token 化過度簡化了一些,因為 BERT 實際上是使用 WordPieces 作為 token,而不是使用詞——因此某些詞會被分解成更小的塊。

針對特定任務的模型

BERT 論文展示了一些將 BERT 用於不同任務的方法。

將 BERT 用於特徵提取

微調方法並不是使用 BERT 的唯一方式。和 ELMo 一樣,你也可以使用預訓練後的 BERT 來創建語境化的詞嵌入。然後你可以將這些嵌入輸入你已有的模型——論文表明,在命名實體識別等任務上,該過程得到的結果並不比微調 BERT 差很多。

哪種向量最適合用作語境化嵌入?我認為這取決於具體任務。這篇論文考察了 6 種選擇(對比得到了 96.4 分的微調模型):

實際使用 BERT

嘗試 BERT 的最好方式是動手過一遍使用 Cloud TPU 的 BERT 微調,參考託管在 Google Colab 上的筆記:https://goo.gl/vaZRH1。如果你之前從未用過 Cloud TPU,這就是你的上手時機!這些 BERT 代碼也適用於 TPU、CPU 和 GPU。

接下來應該看看 BERT 代碼庫中的代碼:https://github.com/google-research/bert

模型構建在 modeling.py 之中(BertModel 類),基本上與原始的 Transformer 編碼器完全一樣。run_classifier.py 是一個微調過程的示例。它也構建了這個監督式模型的分類層。如果你想構建自己的分類器,請查閱該文件中的 create_model() 方法。其中提供了幾個可下載的預訓練模型。BERT Base 和 BERT Large 模型都有,涵蓋英語和漢語等語言,還有一個在維基百科上訓練的覆蓋了 102 種語言的多語言模型。BERT 並不將詞視為 token,而是將 WordPieces 視為 token。tokenization.py 是 token 化算法,可將詞轉換成適用於 BERT 的 WordPieces。

你還可以查看 BERT 的 PyTorch 實現。AllenNLP 庫使用了這一實現,讓任何模型都可以使用 BERT 嵌入。

BERT 的 PyTorch 實現:https://github.com/huggingface/pytorch-pretrained-BERTAllenNLP:https://github.com/allenai/allennlp

最後附上機器之心發布的 BERT 相關文章:

最強 NLP 預訓練模型!谷歌 BERT 橫掃 11 項 NLP 任務記錄谷歌終於開源 BERT 代碼:3 億參數量,機器之心全面解讀資源 | 最強預訓練模型 BERT 的 Pytorch 實現(非官方)推出一個半月,斯坦福 SQuAD 問答榜單前六名都在使用 BERT

原文連結:https://jalammar.github.io/illustrated-bert/

本文為機器之心編譯,轉載請聯繫本公眾號獲得授權

相關焦點

  • 圖解 2018 年領先的兩大 NLP 模型:BERT 和 ELMo
    NLP 新時代的開始,NLP 終於找到了一種方法,可以像計算機視覺那樣進行遷移學習。本文用圖解的方式,生動易懂地講解了 BERT 和 ELMo 等模型。2018 年已經成為自然語言處理機器學習模型的轉折點。我們對如何以最能捕捉潛在意義和關係的方式、最準確地表示單詞和句子的理解正在迅速發展。此外,NLP 社區開發了一些非常強大的組件,你可以免費下載並在自己的模型和 pipeline 中使用。
  • XLM —— 基於BERT的跨語言模型
    BERT利用Transformer的編碼器學習一個語言模型,通過遮住(捨棄)一些詞再試著去預測這些詞。這使得模型可以學習全篇內容,也就是被遮住詞的前序和後續詞。因為在注意力模塊中所有詞都是同時處理的,所以模型還需要考慮額外的位置信息。模型網絡通過給每個token加一個基於位置的固定值(例如正弦函數),可以成功學習到token間的聯繫,這一步叫位置編碼。
  • 3分鐘看懂史上最強NLP模型BERT
    【導讀】本文對BERT的原理、技術細節以及如何應用於實際場景中,做了簡明扼要的介紹
  • NLP之文本分類:「Tf-Idf、Word2Vec和BERT」三種模型比較
    NLP(自然語言處理)是人工智慧的一個領域,它研究計算機和人類語言之間的交互作用,特別是如何通過計算機編程來處理和分析大量的自然語言數據。NLP常用於文本數據的分類。文本分類是指根據文本數據內容對其進行分類的問題。
  • NLP領域最優秀的8個預訓練模型(附開源地址)
    來源:AI前線 編輯/新智元元子【導讀】如今,自然語言處理應用已經變得無處不在。自然語言處理應用能夠快速增長,很大程度上要歸功於通過預訓練模型實現遷移學習的概念。在本文中,我將介紹一些頂級的預訓練模型,你可以用它們來開始你的自然語言處理之旅,並複製該領域的最新研究成果。
  • BERT詳解:開創性自然語言處理框架的全面指南
    從那時起,預培訓就成為了自然語言處理的一種培訓機制。ULMFiT在這一點做得更深入。該框架可以訓練可調的語言模型,即使在各種文檔分類任務上的數據較少(少於100個示例)的情況下,也可以提供出色的結果。可以肯定地說,ULMFiT破解了自然語言處理中遷移學習的秘密。
  • 最強NLP模型BERT可視化學習
    2018年是自然語言處理(Natural Language Processing, NLP)領域的轉折點,一系列深度學習模型在智能問答及情感分類等NLP任務中均取得了最先進的成果。近期,谷歌提出了BERT模型,在各種任務上表現卓越,有人稱其為「一個解決所有問題的模型」。
  • 圖解2018年領先的兩大NLP模型:BERT和ELMo
    詞彙嵌入一直是領先的NLP模型處理語言的主要能力。Word2Vec、Glove等方法已廣泛應用於此類任務。讓我們先回顧一下如何使用它們。詞彙嵌入的回顧對於要由機器學習模型處理的單詞,它們需要以某種數字形式表示,以便模型可以在其計算中使用。
  • NLP領域中的遷移學習現狀
    圖2:遷移學習過程的說明在過去一年多的時間裡,以預訓練的語言模型形式進行的遷移學習已經在NLP領域中普及,為許多不同的任務帶來了新的最好成績。然和Zhang,2005)和短語和單詞集群(Lin和Wu,2009)語言模型嵌入(Peters等人, 2017)和預訓練語言模型(Peters, Akbik, Baevski等人)。
  • 算法工程師當前選哪個方向好?1,CV;2,NLP;3,推薦系統?
    算法工程師當前選哪個方向好?1,計算機視覺;2,自然語言處理;3,風控;4,推薦系統?當前2020年 ,算法工程師哪個方向好?從社會需求,工資待遇,未來發展方面講。自然語言諸如bert一類服務都被中臺化服務化了,和各種號稱幾百億節點的graph工具搭配起來,各種抽取知識,你連學習nlp的動力都沒有了,直接查表就是了。訓練?成套訓練可視化界面都給你做得出來,幾毫秒inference時間,幾個小時的fintune時間,你只要會點run便可。
  • 谷歌開源NLP模型可視化工具LIT,模型訓練不再「黑箱」
    假如有一款可視化的工具,能夠幫助研究人員更好地理解模型行為,這應該是件非常棒的事。近日,Google 研究人員發布了一款語言可解釋性工具 (Language Interpretability Tool, LIT),這是一個開源平臺,用於可視化和理解自然語言處理模型。
  • NLP中的詞向量對比:word2vec/glove/fastText/elmo/GPT/bert
    3、Glove損失函數是如何確定的?四、深入解剖bert(與elmo和GPT比較)1、為什麼bert採取的是雙向Transformer Encoder,而不叫decoder?2、elmo、GPT和bert在單雙向語言模型處理上的不同之處?3、bert構建雙向語言模型不是很簡單嗎?不也可以直接像elmo拼接Transformer decoder嗎?
  • [預訓練語言模型專題] BERT,開啟NLP新時代的王者
    BERT使用的是後者,因為這種策略需要改變的參數量較少,遷移也較為簡單。同時他們指出,現在限制這種策略性能的主要問題是。如GPT這種模型,它預訓練時使用了標準語言模型的目標,導致它只能是單向的。在Transformer層中,每個token在self attention 時都只能關注其之前的token,會嚴重損害在一些任務上如問答上的效果,在之前的不少論文中都佐證了這個觀點。
  • 最強NLP預訓練模型!谷歌BERT橫掃11項NLP任務記錄
    與最近的語言表徵模型不同,BERT 旨在基於所有層的左、右語境來預訓練深度雙向表徵。BERT 是首個在大批句子層面和 token 層面任務中取得當前最優性能的基於微調的表徵模型,其性能超越許多使用任務特定架構的系統,刷新了 11 項 NLP 任務的當前最優性能記錄。
  • 谷歌開源 BERT 模型原始碼
    模型以來,BERT 模型以其雙向、深層等特點,成功在 11 項 NLP 任務中取得 state of the art 的結果,贏得自然語言處理學界的一片讚譽之聲。BERT 是一種對語言表徵進行預訓練的方法,換句話說,是經過大型文本語料庫(如維基百科)訓練後獲得的通用「語言理解」模型,該模型可用於我們最在乎的 NLP 下遊任務(如問答)。BERT 之所以表現得比過往的方法要好,是因為它是首個用於進行 NLP 預訓練的無監督、深度雙向系統。
  • 2019已經過去一大半了,努力一把成為NLP專家!
    本文將介紹2019年自然語言處理的一些論文,代碼,博客及研究趨勢等。Fastai:https://course.fast.ai/videos/?lesson它會教你在fastai,語言模型是如何實現的。
  • 從 one-hot 到 BERT,帶你一步步理解 BERT
    理解複雜的語言也是人工智慧的重要組成部分。而自google在2018年10月底公布BERT在11項nlp任務中的卓越表後,BERT(Bidirectional Encoder Representation from Transformers)就成為NLP一枝獨秀,本文將為大家層層剖析bert。
  • ChineseGLUE:為中文NLP模型定製的自然語言理解基準
    團隊的願景是通過完善中文語言理解基礎設施,促進中文語言模型的發展,能夠作為通用語言模型測評的補充,以更好地服務中文語言理解、任務和產業界。項目地址:https://github.com/chineseGLUE/chineseGLUE為了使自然語言理解技術(NLU)發揮最大作用,NLU 模型必須能夠處理多種任務或數據集。
  • 2019,不可錯過的NLP「高光時刻」
    內容 主要集中於 NLP 領域,但也會包括一些與 AI 有關的有趣故事,包括新發布模型、工程成果、年度報告以及學習資源等。文章較長,將近萬字,適合先馬後看,靜下心來細細研讀。模型與文獻谷歌AI 提出了 ALBERT 模型,這是 BERT 模型的簡化版本,用於語境化語言表示的自監督學習。相較於 BERT,其在模型更加精練的同時更有效地分配了模型的容量。
  • 深度學習建模方法,首先需要了解建模的思路
    在當前人工智慧人才缺口大的前提下,編程課成為很多學校選擇重點投入的科目,但是有些學校的老師在校內教學方法上存在一些問題,授課講解的不夠系統,無法進行深度學習建模操作。深度學習建模方法的教學,首先需要講解建模的思路,然後才是使用的計算機建模工具的使用,目前有相關主流程式語言的入門教程,可以推薦華為雲安全部門負責人張勇教授的,其介紹了linux編程環境下如何操作建模機器學習深度學習的環境配置,並分享了多年經驗的建模實踐和驗證過程。