BERT (言語モデル)
2つのスパン(範囲)が与えられたとき、モデルはこれらの2つのスパンが訓練コーパスで連続して出現するかを予測し、[IsNext] または [NotNext] のどちらかかを出力する。最初のスパンは特別なトークン [CLS] (「classify」の意味)で始まる。2つのスパンは特別なトークン [SEP] (「separate」の意味)で区切られる。2つのスパンを処理した後、先頭の出力ベクトル(すなわち、[CLS] を符号化したベクトル)は別のニューラルネットワークに渡され、ニューラルネットワークは [IsNext] と [NotNext] に二値分類する。
たとえば、「[CLS] 私の犬はかわいいです [SEP] 彼は遊ぶのが好きです」が与えられると、モデルはトークン [IsNext] を出力するべきである。
たとえば、「[CLS] 私の犬はかわいいです [SEP] 磁石はどのように働きますか」が与えらると、モデルはトークン [NotNext] を出力するべきである。
この訓練プロセスの結果、BERTは、文脈における単語や文の潜在的表現(英語版)を学習する。事前訓練後、BERTをより小さなデータセット上でより少ないリソースでファインチューニングし、NLPタスク(言語理解、文書分類)や、シーケンス変換(英語版)に基づく言語生成タスク(質問応答、会話応答生成)などの特定のタスクでの性能を最適化することができる。事前訓練段階は、ファインチューニングよりもはるかに計算コストが高い。
当初、BERTは、英語の2つのモデルサイズで実装された。
BERTBASE:12個のエンコーダと12個の双方向自己アテンションヘッド、合計1億1,000万パラメータ、
BERTLARGE:24個のエンコーダと16個の双方向自己アテンションヘッド、合計3億4,000万パラメータ。
両モデルとも、Toronto BookCorpus(8億語)と、英語版ウィキペディア(25億語)で事前訓練された。
BERTが発表されたとき、多くの自然言語理解タスクで最先端の性能を達成した。
GLUE(一般自然言語理解(英語版))タスクセット(9タスクで構成)
SQuAD(スタンフォード質問応答データセット)v1.1およびv2.0
SWAG(Situations With Adversarial Generations、敵対的生成を含む状況)