はじめに
製造業においても,自然言語処理は重要な技術テーマのひとつである。週報などのメール,社内規定などのルール,安全記録や検査記録など,日々多くの文章が業務上で現れる。これらのテキストデータに対して自然言語処理技術を適用して業務効率化を実現していくために,近年発展が目覚ましい大規模言語モデルについて学ぶことにした。
第3章 大規模言語モデルの基礎
第2章ではTransformer(エンコーダ,エンコーダ・デコーダ,デコーダ)について説明された。本章では,Transformerから発展し,かつ大規模言語モデルの基礎となっている各種モデル(GPT・BERTなど)について説明されている。
3.1 単語の予測から学習できること
大規模言語モデルにおける学習は,単語を予測するという学習である。これにより,文脈を捉えられるようになると考えられる。
自然言語処理において,「文脈を捉える」タスクとして,以下のようなものが挙げられる。
- 感情分析 : 感情に関する単語を予測する。
- 共参照解析 : 指示語を予測する。
- 一般常識を用いた推論 : 「両親=父と母」といった文外の情報を用いて予測する。
そのため「文脈を捉える」ということは単語の予測問題に帰着されるので,機械学習でも扱えるようになるのである。
3.2 GPT (デコーダ)
GPT(Generative Pre-trained Transformer)は,2018年にOpenAIが提案した,デコーダ構成のTransformerモデルである。
事前学習
文脈を捉えた単語の表現を得るために,番目の単語を,その前にある個の単語で予測するという事前学習を行なう。
並列処理によって次のトークンを予測する処理を行なう。
※感想 : 並列処理できるというのがポイントで,こうすることによって大規模な計算機リソースさえあれば効率よく学習が進むと言える。
ファインチューニング
ファインチューニング(Fine Tuning)は事前学習の後段のタスクのことで,事前学習によって得られた単語の表現を用いて,文書分類など本来解きたかったことを行なうタスクのことである。
ファインチューニングの際には,文のはじめ・文の区切り・文のおわりを示す特殊トークンを加える。また事前学習の層とファインチューニング用の層の間に,ヘッドと呼ばれる層を加えて学習を行なう。
ファインチューニングの際には,損失関数として,本来解きたいタスク(文書分類など)のタスクに関する損失関数と,事前学習の損失関数の重みづけをした損失関数を用いる。
3.3 BERT・RoBERTa (エンコーダ)
前節で紹介されたGPTは,デコーダのマスク機構により,位置より後ろ(位置以降)のトークンを無視しているため,後段の文脈を捉えられない。
BERT(Bidirectional Encoder Representation from Transformer)は2018年にGoogleが提案したモデルで,エンコーダ構成のTransformerにより後続するトークンの情報を含められるようにしたものである。RoBERTaも同様の構成で,2019年にFacebook AI Researchが発表したものである。
入力表現
BERTでは,入力開始を示す[CLS]トークンや,文の句切れを示す[SEP]トークンを加えた入力表現を用いて,事前学習を行なう。GPTでは,これらのトークンはファインチューニングの際に初めて加えられるが,BERTでは事前学習のときからこれらのトークンを加えることで,ファインチューニングとの齟齬を減らしている。
また,事前学習の際には2つの文を組合わせて学習させるが,セグメント埋め込みを用いることで文を区別する。
事前学習
事前学習では,マスク言語モデリング(Mask Language Modeling : MLM)と次文予測が用いられる。
MLMでは,文書全体のうち15%をテスト用に用いる。このテスト用データは,
- 80%をマスクする([MASK]トークンで置き換える)。
- 10%をランダムに置き換える。
- 10%をそのままにする。
という処理を行なう。
次文予測
MLMを施した文に対して,次文予測によって学習を行なう。
次文予測とは,2つの文が連続した文であるかどうかを2値分類するタスクである。この際,50%は2つの文が連続したもの,残りの50%は後段の文をランダムに置き換えたものを用いる。
3.4 T5 (エンコーダ・デコーダ)
T5(Text-to-Text Transfer Transformer)は,エンコーダ・デコーダモデルで,エンコーダによって双方向学習を,デコーダによって文書生成を実現する。
まとめと感想
本章では,Transformerの派生形であり,大規模言語モデルの基礎となるGPTやBERTなどのモデルについて解説がなされていた。
感想 : 並列計算ができることは強い
近年の大規模言語モデルの成功の理由として,並列処理に向いているモデルを作ったことが考えられる。
繰り返し計算のように,処理が並列にしづらい場合であれば,データ量や計算機リソースが増えても,そのメリットを享受することができない。大量のデータ・大量の計算機リソースを効率よく扱うためのアルゴリズムを作れたのがポイントだろう。
感想 : エンコーダ・デコーダよりもデコーダのみのモデルが流行っているのは面白い
GPTの後にBERTが出てきたころは,「後ろの文脈が考慮できるのはすごい」と言われていたことを記憶している。
一方で,2024年現在はGPTモデルの方がいろいろともてはやされているので,デコーダモデルよりもたくさんの情報を扱えるエンコーダ・デコーダもでるよりも,GPTのようなデコーダモデルが流行っているというのは興味深かった。
ただこれは,文脈の考慮といったモデルの工夫というより,ChatGPTのように一般の人にもなじみが深いアプリケーションが出てきたためかもしれない。
本記事を最後まで読んでくださり,どうもありがとうございました。