LLMの教科書「大規模言語モデル入門」を読んで私が得た学び

NLP
元教師
元教師

こんにちは!データサイエンティストの青木和也(https://twitter.com/kaizen_oni)です!

今回の記事では、LLMにおける教科書的1冊「大規模言語モデル入門」を読んでみて、私が得た学びについてまとめていきたいと思います。

本書は、「LLMを今まで触ったことがないけど、LLMの実装やLLMで何ができるのか知りたい」「Transformerモデルについて理解を深めたい」という方必読の1冊となっております。

本書評を見て、「大規模言語モデル入門」からどのような学びが得られるのかについて解像度を上げていただけると幸いです!

時間がない方向けの3行要約
  • 本書を通じて、LLMを使って何ができるのかという全体像をまるっと把握することができ、実装についても豊富なTipsが学べます
  • LLMを使ってできるタスクの様々な評価指標についても知ることができます
  • Transformerモデルの仕組みについても学びことができます(理解しきれるかについては個人差があります)

本書の概要

本書はChatGPTをはじめとした大規模言語モデルが世の中に台頭し始めた2024年において、ある程度プログラミングについて知見のある方が大規模言語モデルについて学び始めるのに最適な1冊になります。

本書では、自然言語処理の歴史をさらっとおさらいしながら、近年台頭してきた大規模言語モデルの変遷や、詳細な仕組み、そして大規模言語モデルにできることと各タスク遂行にあたっての実装について懇切丁寧に解説してくれているLLM界の良書になります。

本書は以下のような章立てになっています。

  • はじめに
  • Transformer
  • 大規模言語モデルの基礎
  • 大規模言語モデルの進展
  • 大規模言語モデルのファインチューニング
  • 固有表現認識
  • 要約生成
  • 文埋め込み
  • 質問応答

上記目次を見てわかるように、本書は大きく分けて前半と後半に分かれるような構成になっています。

前半部分では、自然言語処理の歴史といったところから、近年台頭してきたTransformerをはじめとする大規模言語モデルの仕組みまで踏み込んだ解説をしてくれています。

特に2023年初めに世間を賑わせたChatGPTなどの学習の仕組みについても詳細に解説されており、OpenAIのブログだけでは足りない痒いところまで解説をしてくれています。

一方で、ここの内容についてはブログ主自体も完全に理解が及んでいるとは言い切れない部分があるので、今後実装しながら再度学習をしていく必要があると感じています。(特にキー・クエリ・バリュー注意機構あたり)

本書から得た学び

私が本書から得た学びは次の3点です。

  • 確率勾配降下法でファインチューニングをする際は事前学習時よりも学習率を下げるのが吉
  • 大規模言語モデルのタスクの結果を評価する指標はたくさんあり、用途によって使い分ける必要あり
  • 大規模言語モデルによってEmbeddingした結果で類似度を図る作業はよく使う

順を追って解説をしていきます。

確率勾配降下法でファインチューニングをする際は事前学習時よりも学習率を下げるのが吉

確率的勾配降下法でファインチューニングを行う際は、事前学習時に学習した内容を保持しつつ学習を行うため、事前学習時よりも小さい学習率が用いられることが一般的です。

山田育矢『大規模言語モデル入門』(技術評論社/2024) 第3章 大規模言語モデルの基礎 P37

大規模言語モデルで何かしらのタスクを行わせたい場合は、自身が行わせたいタスクと手元にあるデータに基づいてファインチューニングをして、タスクの実行精度を上げることが一般的です。

その際に、TrainArguments等で学習の際の様々なハイパーパラメータ(学習率や学習率スケジューラなど)の調整を行うのですが、ハイパーパラメータ調整ほど難しい調整はありません。

ハイパーパラメータを決めることによって、事前学習モデルがファインチューニング時にどのようにパラメータを更新していくのかが決まるので、ハイパーパラメータがモデルの精度の重要な部分を握るのは明確です。

一方で、「最適なハイパーパラメータを見つける」という作業は、少なくともデータサイエンティスト歴の浅い私にとっては「鳥取砂丘の中から1カラットのダイヤモンドを見つける」作業のように感じています。

そんな中、上記引用文では「まずは学習率を事前学習時より大きくすんじゃねえよ、事前学習時の内容忘れちゃうだろ」とざっくりとした注意をいただけたわけです。

おそらくそれ以外にも学習率については「Cyclical Learning rateなどの手法を使って学習率を決定していくのがいいのか」「緩やかな学習を実現するためには学習率スケジューラもcosineなどがいいのではないか」等の議論はあるかと思われますが、それらについては追い追い学んでいきたい所存です。

大規模言語モデルのタスクの結果を評価する指標はたくさんあり、用途によって使い分ける必要あり

本書には大規模言語モデルの精度を評価するにあたって、たくさんの精度指標が出てきます。

  • 正解率
  • ピアソンの相関係数
  • スピアマンの順位相関係数
  • 適合率
  • 再現率
  • F値
  • マイクロ平均
  • マクロ平均
  • 重みつき平均
  • ROUGE(Recall-oriented Understudy for Gisting Evaluation)
  • BLEU(BiLingual Evaluation Understudy)
  • BERTScore

大規模言語モデルがどういったタスクを実行するのかによって使用される評価指標は異なります。

それを踏まえた上で最適な評価指標を選ぶ必要がある、というのが私が得た学びです。

そして合わせて考慮すべきは要件にあった評価指標選びのみならず、「顧客への説明のしやすさ」まで見据えた指標選びが重要ではないかという仮説を持つきっかけにも繋がりました。

大規模言語モデルによってEmbeddingした結果で類似度を図る作業はよく使う

本書ではEmbedding、つまりトークンをベクトル化したものを非常によく使います。

今までの私のイメージでは、Embeddingは元の文章から重要なエッセンスを抽出して、他の形で出力される際に利用されるという認識でした。

例えば、Encoder/Decoderモデルによる日本語から英語への変換や、Diffusionモデルなどによる文章から画像への出力などがそれにあたります。

一方で、本書を読んでみて思うのは、Embeddingは何らかの類似度を図る際に使われることが多いということです。

本書ではEmbeddingを用いて類似度を図るという操作を行うタスクとして、文埋め込みによる類似文検索ウェブアプリケーションの作成や質問応答のための情報検索などが挙げられています。

前者については、情報のデジタル化によって精度の高い社内文書の検索に、後者については社内の情報を活用したChatbotの作成などのニーズに際して必要となる知識と考えられます。

そして、今回私の中のEmbeddingの活用用途が広まったように、他にもEmbeddingには無数の活用の道がある、ということを思わせてくれる、そんなきっかけももらったものと認識しています。

まとめ

今回の記事では、LLMの教科書「大規模言語モデル入門」について、書籍の概要の説明と私が書籍から得た学びについて書き綴りました。

記事では私が得た学びのうちのほんの一部を紹介いたしましたが、そもそも私も今回の書籍でTransformerモデルなどについての理解を非常に深めることができましたし、大規模言語モデルを実務レベルで実装するための豊富なTipsについて学ぶことができました。

ぜひ、大規模言語モデルを業務に何らか活用したいと考えていらっしゃる方は本書を手に取って、大規模言語モデルの深淵な世界に足を踏み入れてみてください!

コメント

タイトルとURLをコピーしました