読書メモ: 大規模言語モデル入門

どんな本?

大規模言語モデルの理論と実践についての入門書。 英語だと、大規模言語モデルは Large Language Mode / LLM になる。

前半は大規模言語モデルの理論的な解説。 後半は Hugging Face が開発する Python ライブラリの transformers などを使って、実用的に使える日本語自然言語処理のモデルを作成する。

大規模言語モデルって何?何が新しいの?

大規模言語モデルは要するにニューラルネットワークのこと。 大規模なテキストデータを使って訓練された大規模なパラメーターで構成されたことで、飛躍的に性能が向上した点が新しい。

これを使うと自然言語処理(Natural Language Processing)のさまざまなタスクを解くことができる。 例えば、

  • 文書分類(document classification): ニュース記事などをジャンルに分類する
  • 自然言語推論(natural language inference; NLI): 二つのテキストの論理関係(矛盾してるとか)を予測する
  • 意味的類似度計算(semantic textural similarity; STS): 二つのテキストの意味が似ているかを予測する
  • 固有表現認識(named entity recognition; NER): テキストに含まれる固有表現を抽出する
  • 要約(summarization generation): 比較的長い文章から短い要約を生成する
  • 質問応答(question answering): 質問にコンピューターが回答する
  • 機械翻訳(machine translation)
  • 対話システム(dialogue system)

Transformer とは

Transformer を理解しないとこの本の前半を読むのが厳しかったので、まずはそこだけ他の資料も見つつまとめておく。

Transformer とは 2017 年に Google が提案したニューラルネットワーク。GPT などの今世の中で使われているモデルはこれをベースにしてるので大事。

GPT (Generative Pre-trained Transformer) は Transformer を採用した最初の大規模言語モデルで、2018 年に OpenAI が提案した。Transformer が設計で、GPT がその実装という関係。BERT とか T5 も実装。

ニューラルネットワークを歴史的にみると、Convolutional Neural Network (CNN) は画像などを扱う Vision タスクを解くには優秀で、2012 年以降写真の中の物を特定するとかは進展していた。一方で、言語の解析は遅れていて Recurrent Neural Network (RNN) が使われていた。RNN の問題は、長いテキストを扱えないこと、トレーニングを十分に並列して行えないので遅く結果として大量のデータを扱えないことの二つがあった。Transformer は両方の問題を解消したことで、GPU を同時に動かして、例えば GPT-3 なら45TBのトレーニングデータを使った大規模言語モデルを実現している。

www.youtube.com

どうやって大規模言語モデルを使うの?

本書の後半ではいくつかの自然言語処理を解くために、公開されているモデルとデータセットを transformers から利用する方法が紹介されている。 基本的には、大規模言語モデルがすでにあって、そこにファインチューニングを施して個別タスクに適応させて解く。

transformers を使えばかなりシンプルだが、それでも評価・エラー分析は地道に作業が必要。

本書の最後には ChatGPT API を使った検索システムの実装例も載っている。外部の情報を検索させるために、プロンプトにクエリの関連情報を載せる手法が紹介されている。