第9章: 事前学習済み言語モデル(BERT型)#

本章では、BERT型の事前学習済みモデルを利用して、マスク単語の予測や文ベクトルの計算、評判分析器(ポジネガ分類器)の構築に取り組む。

80. トークン化#

“The movie was full of incomprehensibilities.”という文をトークンに分解し、トークン列を表示せよ。

81. マスクの予測#

“The movie was full of [MASK].”の”[MASK]”を埋めるのに最も適切なトークンを求めよ。

82. マスクのtop-k予測#

“The movie was full of [MASK].”の”[MASK]”に埋めるのに適切なトークン上位10個と、その確率(尤度)を求めよ。

83. CLSトークンによる文ベクトル#

以下の文の全ての組み合わせに対して、最終層の[CLS]トークンの埋め込みベクトルを用いてコサイン類似度を求めよ。

  • “The movie was full of fun.”

  • “The movie was full of excitement.”

  • “The movie was full of crap.”

  • “The movie was full of rubbish.”

84. 平均による文ベクトル#

以下の文の全ての組み合わせに対して、最終層の埋め込みベクトルの平均を用いてコサイン類似度を求めよ。

  • “The movie was full of fun.”

  • “The movie was full of excitement.”

  • “The movie was full of crap.”

  • “The movie was full of rubbish.”

85. データセットの準備#

General Language Understanding Evaluation (GLUE) ベンチマークで配布されているStanford Sentiment Treebank (SST) から訓練セット(train.tsv)と開発セット(dev.tsv)のテキストと極性ラベルと読み込み、さらに全てのテキストはトークン列に変換せよ。

86. ミニバッチの作成#

85で読み込んだ訓練データの一部(例えば冒頭の4事例)に対して、パディングなどの処理を行い、トークン列の長さを揃えてミニバッチを構成せよ。

87. ファインチューニング#

訓練セットを用い、事前学習済みモデルを極性分析タスク向けにファインチューニングせよ。検証セット上でファインチューニングされたモデルの正解率を計測せよ。

88. 極性分析#

問題87でファインチューニングされたモデルを用いて、以下の文の極性を予測せよ。

  • “The movie was full of incomprehensibilities.”

  • “The movie was full of fun.”

  • “The movie was full of excitement.”

  • “The movie was full of crap.”

  • “The movie was full of rubbish.”

89. アーキテクチャの変更#

問題87とは異なるアーキテクチャ(例えば[CLS]トークンを用いるか、各トークンの最大値プーリングを用いるなど)の分類モデルを設計し、事前学習済みモデルを極性分析タスク向けにファインチューニングせよ。検証セット上でファインチューニングされたモデルの正解率を計測せよ。