HOME/ AINOW編集部 /2019年はBERTとTransformerの年だった
2020.02.25

2019年はBERTとTransformerの年だった

最終更新日:

著者のManu Suryavansh氏は機械学習エンジニアとしてキャリアを積んだ後、2020年1月からAppleでデータサイエンティストとして勤めています。同氏がMediumに投稿した記事『2019年はBERTとTransformerの年だった』では、近年の自然言語処理の動向がBERTを中心軸としてまとめられています。

TransformerとBERTが発表される以前の自然言語処理モデルでは、時系列データを処理するRNNとその発展形であるLSTMが使われてきました。このLSTMには、構造が複雑になってしまうという欠点がありました。こうしたなか、2017年6月に発表された論文「Attentionこそ必要なすべてのもの」で論じられた言語モデルTransformerとAttentionと呼ばれる手法は、LSTMのような複雑な構造を使わずに高性能を実現したのでその後の言語モデル開発に大きな影響を与えました。そして、2018年10月に発表されたBERTは双方向的にTransformerを使ったことで画期的な性能を実現しました(BERTに関する技術的解説については、AINOW翻訳記事『BERT解説:自然言語処理のための最先端言語モデル』を参照)。
2019年における自然言語処理の開発競争は、BERTをベースにした言語モデルによって争われました(個々のBERTベースの言語モデルに関しては、以下の記事本文にて解説)。こうした開発競争において性能を評価する指標となったのが、多数の言語タスクのテストを集めたGLUEベンチマークです。2019年は、GLUEベンチマークのランキングが目まぐるしく変わった年でもありました。そして、2020年2月時点ではGLUEベンチマークをさらに難しくしたSuperGLUEベンチマークも登場しました。SuperGLUEが登場した背景には、2019年における開発競争の結果、平均的なヒトの言語能力として想定されたGLUE評価スコアを凌駕する言語モデルが次々と現れたからでした。

本記事には近年の主要な言語モデルの論文へのリンクと、自然言語処理の研究開発で役立つライブラリへのリンクが設定されているので、自然言語処理に関するリンク集として活用することもできるでしょう。

なお、以下の記事本文はManu Suryavansh氏に直接コンタクトをとり、翻訳許可を頂いたうえで翻訳したものです。

2019年におけるBERTと自然言語処理プロジェクトに関する短い投稿

BERTの論文は2018年後半にリリースされ、その後2019年に自然言語処理(NLP)および自然言語理解(NLU)の分野でBERTに影響を受けた多くの活動が見られた。そんな活動はBERTがGoogleの検索に使われたことから、BERTよりも良い結果を示すほかの言語AIのアーキテクチャの考案にまで及ぶ。BERTはセンチメント分析、質疑応答、文の類似性など複数の自然言語処理のタスクで優れた結果を示した。わたしは2019年1月にBERTの事前学習済みの重みを使用してプロジェクトに取り組んでいた。つまり、BERTおよび自然言語処理の領域で働いていたというわけだ。この領域で働いていると、BERTへの言及をいたるところで目にした。例えばMediumの記事、iOSにおけるBERT、BERTによるハードウェアのアクセラレーション、Kaggleコンペ、BERTに触発されたより大きなモデルなどである。BERTが人気になったのはモデル名がセサミストリートのキャラクターの名前に関係していたから、ともわたしは考えていた。もっとも、言語AIモデルの名称にセサミストリートのキャラクターの名前をつけるトレンドを始めた功績は、アレンAI研究所が発表した(深層の単語コンテクストを表現する)ELMOの論文にあるのだが。BERTには双方向Transformerが使われ、BERT登場以降のほかの多くの言語モデルのアーキテクチャでも、論文「Attentionこそ必要なすべてのもの」で発表されたTransformerのいくつかの形式が使われるようになった。

BERTの前に発表されたいくつかの主要なNLPプロジェクトの時系列表:

BERT以前の主要な自然言語処理プロジェクトの時系列表

2013年にリリースされたWord2Vecモデルは依然として非常に人気があり、しばしば自然言語処理の問題に取り組む際に使う最初のモデルとなる。埋め込みモデルであるFastTextGloveも非常に便利だ。

言語モデル

ELMO— Elmoは双方向LSTMを使用している。事前学習されたElmoの重みは、ここからダウンロードできる。Elmoを用いた埋め込み情報を使用するには、AllenNLPライブラリTensorflowハブ、またはFlairライブラリが使われる。

ULMFiT — Jeremy HowardとSebastian Ruderが発表したULMFiT論文では、特定のタスクのために言語モデルをファインチューニングする技術について説明されている。ULMFiT でもLSTMが使われている。Fast.ai(※訳註1)のこちらを参照すれば、ULMFiTの使い方の説明を見つけられる。

(※訳註1)Fast.aiとは無料で利用できるAI技術習得用のオンライン講座のこと。理論からではなくプロジェクトをベースにしたカリキュラムであることを特徴としている。

・・・

上記の2つの論文はBERTの前に発表されたもので、Transformerベースのアーキテクチャは使われていない。

BERT —オリジナルの論文はこちらから参照できる。Jay Alammarによるイラスト付きの非常に優れたチュートリアルはこちら。事前学習された重みは、こちらの公式Githubリポジトリからダウンロードできる。BERTはTensorflowハブのモジュールとしても利用できる。BERTを活用した様々なライブラリがあり、それらはファインチューニングしやすいように事前学習された埋め込みモデルとなっている。こうしたライブラリはこの投稿の末尾で言及する。以下の時系列表は2019年に発表された言語AIに関する主要な論文の一部を表している。Googleは、検索結果を改善するために実稼働環境でBERTの使用を開始した。

BERT以後の自然言語処理プロジェクトの時系列表

Transformer-XL— 2019年1月にリリースされたTransformer-XLは、固定長のコンテクストを超えて学習できるアーキテクチャを使用することで、Transformerを改善した。

TransformerとEvolved Transformerの比較:画像出典はこちら

Evolved Transformer — Transformer-XLとほぼ同じ時期に、Evolved Transformerがリリースされた。このモデルは、進化したニューラルアーキテクチャサーチ(NAS)を実行することによって開発されたTransformerアーキテクチャである。

GPT-2 — BERTの後、ほとんどのニュースで取り上げられたBERT以外のプロジェクトは、OpenAIが発表したGPT-2だと思われる。GPT-2が注目された理由は、ほとんどヒトと同じような文の生成能力があるのでこのモデルがフェイクニュースの生成等に使われる恐れを考慮して、最大サイズのモデルをリリースしなかったOpenAIの最初の決定があったからだ。ほぼ10か月後に最大モデルがリリースされた。GPT-2は、https://talktotransformer.com/Huggingface社が作ったhttps://transformer.huggingface.coから試すことができる。GPT-2という名称と異なりセサミストリートのキャラクターと同じであったら、この言語モデルはもっと人気が出たと思われる。

ERNIEおよびERNIE 2 —現在、ERNIE 2.0はGLUEリーダーボードで第1位である(※訳註2)。Githubリポジトリはこちら

XLNET

RoBERTa —RoBERTaの論文ではBERTの様々なハイパーパラメータが及ぼす影響を隈なく測定したところ、オリジナルのBERTは学習不足であり、更なる学習とチューニングによってBERTの最初の結果を凌駕できることが示された。現在、RoBERTaの結果はGLUEリーダーボードで8位である!(※訳注3)

Salesforce CTRL — CTRLモデルには16億個のパラメータがあり、人工的テキストの生成を制御する方法を提供している。

ALBERT —ALBERTの論文では、使用メモリを減らしてBERTモデルと比べて学習スピードを高めるためにパラメータを削減する技術が解説されている。ALBERTリポジトリには事前学習された重みがある。ALBERTベースモデルには120万のパラメータがあるのだが、BERTベースモデルには1億1,100万のパラメータがあった!(※訳註4)

BigBIRD

(※訳註2)GLUEベンチマークについては、AINOW記事『自然言語処理研究の最前線 ー海外でのビジネス事例6選ー』で詳しく紹介している。また2020年2月時点で、ERINEはGLUEベンチマークで2位となっている。1位はGoogleが開発したT5(T5について訳注6で解説)
(※訳註3)2020年2月時点で、RoBERTaはGLUEベンチマークの7位となっている。
(※訳註4)ALBERTについては、Google AIリサーチブログ記事『ALBERT:言語表現を自己教師あり学習するための軽量なBERT』で解説されている。

・・・

ベンチマーク

以上の言語モデルを評価する方法のひとつとして、Glueベンチマークがある。このベンチマークは分類、質疑応答などのさまざまな自然言語処理のタスクを使ってモデルを評価するものだ。BERTはリリース時点でベンチマークの最上位にあったが、わずか1年以内に19位に移動した(2020年1月2日現在(※訳註5))。

2020年1月2日時点でのGLUEベンチマークのリーダーズボード:画像出典はこちら

現在ではGlueベンチマークよりさらに難しい言語理解のタスクから構成されたSuperGlueベンチマークも存在する(※訳註6)。

2020年1月2日時点でのsuperGLUEベンチマークのリーダーズボード:画像出典はこちら

質疑応答の評価システムにはSQuADStanford Question Answering Dataset)が一般的に使用され、BERTとBERT以降のTransformerベースの言語モデルはSQuADのスコアにおいても上位を占めている。

2020年1月2日時点でのSQuAD 2.0のリーダーズボード:画像出典はこちら

GlueベンチマークのほかにはORBhttps://leaderboard.allenai.org/にあるOpenBookQAなどがあり、ほとんどのベンチマークにおいてBERTへの何かしらの参照がある!

(※訳註5)2020年2月時点で、BERTはGLUEベンチマークでランキング圏外となっている。
(※訳註6)2020年2月時点でGLUEとSuperGLUEベンチマークの両方で1位となっているのが、Googleが開発した言語AI「T5」である(T5の論文はこちら)。
T5は”Text-to-Text Transfer Transformer”の頭文字をとった略称で、アーキテクチャに転移学習とTransformerが使われている。同モデルの最大の特徴は、翻訳や質疑応答といった様々な言語タスクをひとつの統合フレームで処理するところである(下の画像参照)。 T5の処理模式図:画像出典「Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer」[/caption]

・・・

その他のBERT関連プロジェクト

DistilBERT — Huggingface社によるモデル蒸留(※訳註7)を使用した小規模なBERT。このプロジェクトに関するブログ記事はこちら

Megatron-LM — NVIDIAが発表した非常に大きな言語モデルを効率的に訓練するプロジェクト。

BioBERTDMISラボが発表した生物医学分野において訓練されたBERTベースのモデル。

ドイツ語BERT

CamemBERT — Facebookが発表したRoBERTaのアーキテクチャにもとづいたフランス語の言語モデル。

BERTハードウェアアクセラレーション— GoogleはTPUを使用して大規模なBERTモデルをより速く訓練したのだが、Graphcoreコード)やHabanaなどの他の企業もカスタムSoC(※訳註8)を使ってBERTの推論と訓練を加速する方法を発表している。

VideoBERTVideoBERTはクロスモーダル(またはマルチモーダル)なディープラーニングの事例であり、動画から自己教師あり学習の方式(※訳註9)で学習する。

ViLBERT —視覚と言語の共同表現を学習するための視覚的表現と言語に処理するBERTモデル。

(※訳註7)蒸留とは、学習済みの大規模なAIモデルが持っている知識をより規模の小さいAIモデルに継承させる手法のこと。知識を継承元は「教師モデル」、継承先は「生徒モデル」と呼ばれる。AIモデルのサイズ軽量化の手法として使われることが多い。
(※訳註8)SoCとはSystem-on-a-chipの略語で、チップのうえにCPUだけではなく実装目的に合わせた部品を搭載した集積回路のこと。本記事のコンテクストでは、AIモデルの演算に特化したSoCを指している。
(※訳註9)自己教師あり学習(Self-Supervised Learning)とは、ラベル付けされたデータがない状態で疑似タスク(pretext taskと呼ばれる)を実行して特徴表現を抽出する手法のこと。

・・・

自然言語処理ライブラリ

以下は、自然言語処理の分野で活動しているヒトならば知っておくべきとわたしが考えるライブラリの一部だ—

Spacy — Spacyとはトークン化、品詞処理などのさまざまな自然言語処理タスク用の人気のある高速ライブラリ。また、NER(※訳註10)などに関する事前学習モデルが付属している。最近では、spacy-transformersが発表されたことでBERTのようなTransformerベースの言語モデルのサポートが追加された。このライブラリはHuggingface社のTransformerライブラリを使っている。

HuggingFace Transformers — Pytorchに実装されたBERTとして最初に提供されたライブラリのひとつであり、当初は「PyTorch-pretrained-bert(PyTorch向けに事前学習したBERT)」と呼ばれていた。後にライブラリにはGPT-2、XLNETなどのモデルが追加され、今では単に「transformers」と呼ばれるものとなった。1年足らずで最も人気のある自然言語処理ライブラリのひとつとなり、BERTや他のモデルを非常に簡単に使用できるようになった。別のライブラリ(https://github.com/huggingface/swift-coreml-transformers)を使用すると、iOSでBERT、GPT-2などを使用できる!

AllenNLP —アレンAI研究所から発表された自然言語処理ライブラリで、PyTorch上に構築された。

Flair — NER、品詞処理のモデルに由来する自然言語処理ライブラリも、BERT、ELMO、XLNETなどの埋め込み情報をサポートする。

GluonNLPApache MXNet上で動作する自然言語処理のツールキットであり、事前学習したBERTの埋め込み情報を含んだ最初のライブラリのひとつでもある。このライブラリに関する便利な事例やチュートリアルがたくさんある。

(※訳註10)NER(named entity recognition:固有表現抽出)とは、文字列から人名のような一般名詞ではない語句を抽出する自然言語処理技法のひとつ。人名や組織名、さらには日付は一般的な辞書には登録されていないため、固有表現と総称される。こうした固有表現は、自然言語処理を実行した場合には未知語として処理されてしまう。固有表現を未知語のままにせず分類して適切に処理する技法が、固有表現抽出なのである。

・・・

願わくは2020年にも自然言語処理の分野でさらに多くの革新とブレイクスルーが生まれることを期待しよう。自然言語処理とAIについてさらに学びたい場合は、わたしのTwitter(https://twitter.com/MSuryavansh)をフォローしてください。

・・・


原文
『2019 — Year of BERT and Transformer』

著者
Manu Suryavansh

翻訳
吉本幸記(フリーライター、JDLA Deep Learning for GENERAL 2019 #1取得)

編集
おざけん

無料メールマガジン登録

週1回、注目のAIニュースやイベント情報を
編集部がピックアップしてお届けしています。

こちらの規約にご同意のうえチェックしてください。

規約に同意する

あなたにおすすめの記事

ChatGPTもGeminiも忘れて、これらの(信じられない)次世代AIツールをチェックしてみよう!

「Yahoo!知恵袋」でも活用、LINEヤフーの生成AI活用戦略

IMFレポート解説:無策だとAIによって格差社会となる。「公平なAI先進国」になるための日本の政策とは?

あなたにおすすめの記事

ChatGPTもGeminiも忘れて、これらの(信じられない)次世代AIツールをチェックしてみよう!

「Yahoo!知恵袋」でも活用、LINEヤフーの生成AI活用戦略

IMFレポート解説:無策だとAIによって格差社会となる。「公平なAI先進国」になるための日本の政策とは?