最終更新日:
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プロジェクトの時系列表:
2013年にリリースされたWord2Vecモデルは依然として非常に人気があり、しばしば自然言語処理の問題に取り組む際に使う最初のモデルとなる。埋め込みモデルであるFastTextとGloveも非常に便利だ。
言語モデル
ELMO— Elmoは双方向LSTMを使用している。事前学習されたElmoの重みは、ここからダウンロードできる。Elmoを用いた埋め込み情報を使用するには、AllenNLPライブラリ、Tensorflowハブ、またはFlairライブラリが使われる。
ULMFiT — Jeremy HowardとSebastian Ruderが発表したULMFiT論文では、特定のタスクのために言語モデルをファインチューニングする技術について説明されている。ULMFiT でもLSTMが使われている。Fast.ai(※訳註1)のこちらを参照すれば、ULMFiTの使い方の説明を見つけられる。
・・・
上記の2つの論文はBERTの前に発表されたもので、Transformerベースのアーキテクチャは使われていない。
BERT —オリジナルの論文はこちらから参照できる。Jay Alammarによるイラスト付きの非常に優れたチュートリアルはこちら。事前学習された重みは、こちらの公式Githubリポジトリからダウンロードできる。BERTはTensorflowハブのモジュールとしても利用できる。BERTを活用した様々なライブラリがあり、それらはファインチューニングしやすいように事前学習された埋め込みモデルとなっている。こうしたライブラリはこの投稿の末尾で言及する。以下の時系列表は2019年に発表された言語AIに関する主要な論文の一部を表している。Googleは、検索結果を改善するために実稼働環境でBERTの使用を開始した。
Transformer-XL— 2019年1月にリリースされたTransformer-XLは、固定長のコンテクストを超えて学習できるアーキテクチャを使用することで、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リポジトリはこちら。
RoBERTa —RoBERTaの論文ではBERTの様々なハイパーパラメータが及ぼす影響を隈なく測定したところ、オリジナルのBERTは学習不足であり、更なる学習とチューニングによってBERTの最初の結果を凌駕できることが示された。現在、RoBERTaの結果はGLUEリーダーボードで8位である!(※訳注3)
Salesforce CTRL — CTRLモデルには16億個のパラメータがあり、人工的テキストの生成を制御する方法を提供している。
ALBERT —ALBERTの論文では、使用メモリを減らしてBERTモデルと比べて学習スピードを高めるためにパラメータを削減する技術が解説されている。ALBERTリポジトリには事前学習された重みがある。ALBERTベースモデルには120万のパラメータがあるのだが、BERTベースモデルには1億1,100万のパラメータがあった!(※訳註4)
・・・
ベンチマーク
以上の言語モデルを評価する方法のひとつとして、Glueベンチマークがある。このベンチマークは分類、質疑応答などのさまざまな自然言語処理のタスクを使ってモデルを評価するものだ。BERTはリリース時点でベンチマークの最上位にあったが、わずか1年以内に19位に移動した(2020年1月2日現在(※訳註5))。
現在ではGlueベンチマークよりさらに難しい言語理解のタスクから構成されたSuperGlueベンチマークも存在する(※訳註6)。
質疑応答の評価システムにはSQuAD(Stanford Question Answering Dataset)が一般的に使用され、BERTとBERT以降のTransformerベースの言語モデルはSQuADのスコアにおいても上位を占めている。
GlueベンチマークのほかにはORB、https://leaderboard.allenai.org/にあるOpenBookQAなどがあり、ほとんどのベンチマークにおいてBERTへの何かしらの参照がある!
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が発表した非常に大きな言語モデルを効率的に訓練するプロジェクト。
BioBERT — DMISラボが発表した生物医学分野において訓練されたBERTベースのモデル。
CamemBERT — Facebookが発表したRoBERTaのアーキテクチャにもとづいたフランス語の言語モデル。
BERTハードウェアアクセラレーション— GoogleはTPUを使用して大規模なBERTモデルをより速く訓練したのだが、Graphcore(コード)やHabanaなどの他の企業もカスタムSoC(※訳註8)を使ってBERTの推論と訓練を加速する方法を発表している。
VideoBERT — VideoBERTはクロスモーダル(またはマルチモーダル)なディープラーニングの事例であり、動画から自己教師あり学習の方式(※訳註9)で学習する。
ViLBERT —視覚と言語の共同表現を学習するための視覚的表現と言語に処理するBERTモデル。
・・・
自然言語処理ライブラリ
以下は、自然言語処理の分野で活動しているヒトならば知っておくべきとわたしが考えるライブラリの一部だ—
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などの埋め込み情報をサポートする。
GluonNLP — Apache MXNet上で動作する自然言語処理のツールキットであり、事前学習したBERTの埋め込み情報を含んだ最初のライブラリのひとつでもある。このライブラリに関する便利な事例やチュートリアルがたくさんある。
・・・
願わくは2020年にも自然言語処理の分野でさらに多くの革新とブレイクスルーが生まれることを期待しよう。自然言語処理とAIについてさらに学びたい場合は、わたしのTwitter(https://twitter.com/MSuryavansh)をフォローしてください。
・・・
原文
『2019 — Year of BERT and Transformer』
著者
Manu Suryavansh
翻訳
吉本幸記(フリーライター、JDLA Deep Learning for GENERAL 2019 #1取得)
編集
おざけん