前回までにTransformerの仕組みを見てきました。ここからの問題は、そのTransformerに何をどう学習させるかです。
人間がラベルを付けたデータで学習させる(教師あり学習)には量の限界があります。一方、インターネット上にはラベルのないテキストが大量にある。このテキストそのものを使って、ラベルなしで学習できないか。それが事前学習の発想です。
事前学習:ラベルなしで学習する仕組み
事前学習では、テキストに対して自動的に「問題」を作り出します。方法は主に2つあります。
穴埋め問題(Masked Language Modeling)は、文章の一部を隠して、周囲の文脈からそこに入る単語を当てさせるものです。次単語予測(Next Token Prediction)は、ある位置までのテキストを見せて、次の単語を予測させます。
どちらも正解ラベルを人間が用意する必要がありません。テキスト自体が問題と正解を兼ねているので、データさえあれば学習を続けられます。これを自己教師あり学習と呼びます。
BERT:双方向に文脈を読む
2018年にGoogleが発表したBERT(Bidirectional Encoder Representations from Transformers)は、TransformerのEncoder部分を使ったモデルです。
BERTは穴埋め問題で学習します。隠された単語を推測するとき、その前後両方の文脈を使います。「彼は__に行って牛乳を買った」なら、「行って」と「牛乳を買った」の両方から「スーパー」や「コンビニ」を推測できる。双方向に読めるのがBERTの特徴です。
この性質のおかげで、BERTは文章の意味理解が得意です。感情分析や質問応答といったタスクで高い性能を出しました。一方で、文章を新しく生成する用途には向いていません。穴埋めは得意でも、ゼロから文章を書き出す構造になっていないからです。
GPT:左から右へ次の単語を予測する
OpenAIが開発したGPT(Generative Pre-trained Transformer)は、TransformerのDecoder部分がベースです。
GPTは次単語予測で学習します。文章を左から右に読み、常に次に来る単語を予測し続ける。後ろの文脈を見て前の単語を修正することは構造上できません。
やっていることはこれだけです。ただ、パラメータ数とデータ量を増やしていくと、文法や事実知識、ある程度の推論のようなものまで出てくる。ChatGPTはこの仕組みの延長線上にあります。文章生成や対話では、双方向に文脈を読むよりも「次に何を出力するか」が直接問われるので、GPTの構造が合っていたわけです。
まとめ
BERTとGPTは同じTransformerから出発しながら、学習方法と得意分野が異なります。BERTは穴埋め問題を双方向で解くことで文章理解に強く、GPTは次単語予測を一方向で繰り返すことで文章生成に強い。
事前学習によって、人手でラベルを付けたデータの量に縛られなくなりました。その後のLLMブームでGPT系が中心になったのは、「次の単語を当てる」という目的関数がデータとパラメータの増加に素直に反応したからだと考えられています。次回はこのシリーズのまとめとして、ここまでの流れを振り返ります。