汎用的な言語タスクで活躍している、大規模言語モデル、BERT、GPTについて。
目次
AI・ディープラーニングの全体像
- 人工知能
- 機械学習
- ディープラーニングの基本・応用
- ディープラーニングの研究
- AIプロジェクト
- AI社会実装に伴う法律・倫理
事前学習→ファインチューニング
事前学習
- 「事前学習(Pre-Training)」→インターネット上の大量のテキストデータ(コーパス)を学習し、自然言語処理に関する一般的な知識や情報を獲得すること
- 通常、「教師なし学習」が用いられる
- モデルが、大量のテキストデータから自動的に自然言語の統計的なパターン・意味を抽出、それに基づき新たなテキストを生成する能力を獲得
- 「学習済みモデル(基盤モデル)」は、すでの多くの文章に共通する汎用的な特徴を隠れ層で習得しているため、新しい言語タスクに対する転移学習に利用できる
ファインチューニング
- 「ファインチューニング」→特定のタスクに特化したデータセットをある程度用意し、事前学習済みモデルの一部のパラメータのみ追加学習と更新を行う
- ファインチューニングに必要なデータは少なく、手元にある学習データが小規模な場合でも高い性能を達成できる
スケール則
- 「スケール則(Scalling Laws)」→モデルのパラメータ数・訓練データ・計算量などが増加するにつれて、モデルの性能もほぼ同じ割合で向上するという経験則
- より大きなモデルを、より多くのデータで訓練すると、様々なタスクにおけるモデルの性能が向上する
- デメリット:コスト
- 学習データの量と計算資源をますます増やす必要あり
- 近年のLLMでは、数百~数千個のGPU・TPUが使われている
- パラメータが多ければ多いほど学習費用が大きくなる
- 最終的には、”次元の呪い”・”計算コスト”・”エネルギーコスト”などの問題に直面する
→スケールアップできる実用的な見解が存在する - 近年、同程度の性能のモデルのサイズダウンに関する研究が行われている
BERT
- 「BERT(Bidirectional Encoder Representations from Transformers」
- 事前学習を取り入れた大規模言語モデルの先駆者
- 2018年、Google社が開発
- Transformersの「エンコーダ」部分のみがBERTで使用されている
- Transformerを用いた双方向の学習を活用(Bidirectional Transformer)
- 従来モデルは文脈を一方向にしか理解できない
⇔BERTは”過去から現在”・”未来から現在”の双方向(Bidirectional)の情報を同時に使用できる - BERTの「事前学習」→大量のテキストデータから学習し、得られた知識を保持
- 「Masked Language Model(MLM)」にて、”文章の穴埋め問題”を解く
- 「Next Sentence Prediction(NSP)」→入力された任意の2つの文が連続する文かを判断できるよう学習する
- 学習済みBERTを転移学習に使用→文章の分類・要約、質問応答、意味役割付与などの自然言語理解タスクにおいて広く活用される
- 2018年、BERTのパラメータ数→3億程度
- 2019年、「ALBERT」・「DistilBERT」(BERTの軽量版)リリース
- 「MT-DNN(Multi-task Deep Neural Networks)」→Microsoft社からリリースされる
GPT
概要
- 「GPT(Generative Pre-trained Transformer)」
- 事前学習を取り入れた大規模言語モデル
- 2019年、OpenAIが開発
- 文章の内容や背景を学習、自然言語の生成と理解を行う驚異的能力
- インターネットから取得された大量のテキストデータを使用し、与えられた文章(単語系列)の次に来るべき単語を予測し、文を自動完成できるよう基礎訓練が行われる
- 「GPT1(1億1700万)」→「GPT2(15億)」→「GPT3(1750億)」→「GPT4(1兆以上:非公開)」
- GPT3の事前学習には約45TBにもなるコーパスを使用
学習の仕組み
- 「Transformers」の「デコーダ」部分が使用されている
- 教師なし学習(自己教師学習)
- データをいったん最小単位(トークン)に分割し、その系列をTransformerのデコーダに送り、各時刻ステップで「ある単語列の後に来る単語」を予測
- 過去の単語列から次の単語を予測するタスクを繰り返すことで、文章を自動完成(文章生成)できる
- 「ある単語列の後にある単語が現れる確率」を学習する
- 次の単語を確率的に予測する”穴埋め問題”をひたすら繰り返す→AIは単語間の出現確率の組合せを学習できる
- ランダムな位置で文章の後半を隠し(マスキング)、前半部分を頼りに、後半の単語を当てる穴埋め問題を示す
- 教師なし学習→穴埋め問題と回答からなるデータセットを自ら自動的に生成する
- ニューラルネットワークのパラメータは最初はランダムな初期値に設定→学習結果に基づき、随時、正確な予測に繋がる値に更新される
- 学習の途中で誤予測した場合、出力と正解の間の誤差を計算→その誤差を小さくする方向に学習を繰り返していく中で精度が改善される
GPTによる文章生成
- 学習済みのGPT→数少ない事例(書き出し)を与えられる→次に来るべき単語を逐次的に予測しつつ、文章を自動的に完成できる
※Few Shot Learning - 実際の出力値→「単語が次に来る確率」
- 確率の最も高い単語を採用し、文を生成(確率的生成)
- ファインチューニングすることで、文章生成だけでなく、翻訳、質疑応答、文章校正、ブレインストーミング、自然言語からソースコードを生成、楽譜創作など様々な言語タスクに使用できる
- 「ChatGPT」→対話型の文章生成AI、入出力を行うインターフェイス
- ChatGPT→GPTそのものを使用した際に起きる機能上の問題や不適切な出力を減らすよう調整したモデル
- 問題点:出力の正確さ、AI倫理上問題ある内容の出力、悪用リスクなど
自然言語処理タスクと精度評価
- 自然言語処理モデルの性能を客観的に評価し、モデル間で比較するための”ベンチマーク(評価基準)”が用いられる
- ベンチマーク→言語モデルに出すテスト、データセット
- 複数のタスクをモデルに実行させ、総合的な評価が必要
- テスト結果から、モデルの弱点を特定、改善のための方向性が示される
機械翻訳 (Machine Translation) | Source Languageの入力文を、Target Languageに翻訳して出力 |
---|---|
感情分析 (Sentiment Analysis) | テキストからポジティブorネガティブな感情を特定 |
文章要約 (Summarizarion) | 与えられた文書やテキストの主要なポイントを抽出し、短い要約にまとめる |
テキスト分類 (Text Classification) | 文章を一つまたは複数のカテゴリに分類、検索可能にする |
固有表現抽出 (NER;Named Entity Recognition) | 文章から人名・組織名・地名・日時表現・金銭表現などの固有表現を特定 |
質問応答 (Question Answering) | 特定の質問に対する正確な答えを出力する選択問題や、文章から問題文の答えを抜き出す機械読解(Reading Comprehension)、対話形式の質問応答 |
意味的類似度 (Semantic Similarity) | 2つの文が同じ意味か判定 |
自然言語推論 (Natural Language Inference,NLI) | 2つの文の間の論理的な関係を推測する、2つの文の内容に矛盾があるのか、一方が他方を含意するのか判定 |
- 「GLUE(General Language Understanding Evaluation)」
→代表的な言語タスクのベンチマークの1つ - 「SuperGLUE」(GLUEより難易度の高いもの)
→Wic(Words in Context)、PORES(Reasoning Over Paragraph Effects in Situations)など、文脈に基づく理解、文の間の論理的関係を推論など、よろ高度な言語理解能力を必要とするタスクが追加されている - 「マルチタスク言語モデル」→機械翻訳、次文予測、自然言語推論など複数の技術を同時に実現する汎用的言語モデル
- 複数タスクを同時に学習することにより、タスク間で共通数抽象的な特徴を捉えやすくなり、マルチタスクモデル全体としての精度を向上させる効果あり
GLUEタスクに使われるデータセット
- CoLA(The Corpus of Linguistic Acceptability)
→文が英語文法として正しいかどうか(言語学的許容性)を判定 - SST-2(The Stanford Sentiment Treebank)
→英語レビューの感情解析(文章分類) - QNTI(Question Natural Language Inference)
→質問とその答えのペアから、答えが質問から論理的に導かれるかどうか判断 - MRPC(Microsoft Research Paraphase Corpus)
→オンラインニュースからの2つの文のペアが同じ意味かどうかを判定(意味的類似度のための文章分類) - SQuAD(Stanford Question Answering Dataset)
→ウィキペディアから質問の答えとなるテキストを見つける(質問応答)