見出し画像

書評「ChatGPT大規模言語モデルの進化と応用」は困った時に最初に読みたい本でした

#PR

ChatGPTに関する技術書は、既に複数の書籍が発売されています。また、ChatGPTを提供するクラウドサービスである「Azure OpenAI Service」の解説書もあります。しかしながら大規模言語モデルやAzureを利用する前に、それぞれの仕組みを知っておくべきでしょう。本書はChatGPTを構成する大規模言語モデルと実装に使われるAzureについて、196ページでコンパクトにまとめた本です。これからChatGPTを用いた開発に関わるエンジニアにとって、必要不可欠な要素が解説されています。


対象読者

対象読者はChatGPTの特徴を理解してアプリケーションやサービスの開発に活かしたいエンジニアやデータサイエンティスト、構文解析や感情分析などの伝統的な自然言語処理をはじめとした深層学習による汎用向け大規模言語モデルと、派生した応用先や評価に興味を持つ研究者を想定しています。

本書の特徴

前提知識として、モデルの学習や推論、ベクトルによる単語や文の表現など、基本的な概念を理解しておけば読み進められますし、トランスフォーマーやBERTも解説しています。本書は理論と応用のどちらも充実した構成で、実際にコードを参考にして手を動かしながら理解しつつ、ChatGPTにおける背景や原理は最新の理論(本書の発売は2024年4月16日)を元にまとめています。また、Azure OpenAI Serviceには1章を割いて解説しています。この章は日本マイクロソフトでの勤務経験がある共著者と分担しており、より信頼できる形になっています。サンプルコードも提供されており、GoogleColaboratoryで試せます。手を動かしながら学べる環境が整っているのは、ありがたいですね。

第1章:ChatGPTの概要

ChatGPTが登場した背景や歴史、言語モデルの基本的な仕組みについて紹介しています。類書でも解説される内容なのでページ数は割かれていませんが、掲載するべき内容の取捨選択ができている証左でしょう。

第2章:ChatGPTの動作原理

ChatGPTおける根幹技術である「Transformer(トランスフォーマー)」を解説しています。本章では概要までで、詳細な解説は後述されています。また、BERT、GPT-3、RLHF(ReinforcementLearningfromHumanFeedback)も含め解説されています。

図を用いてわかりやすく説明しています

第3章:他の大規模言語モデル

2章で紹介した以外の大規模言語モデルとして、LaMDA、Bard、PaLM、LLaMAを解説しています。こちらも簡単な紹介に留まります。

第4章:ChatGPTのAPI

本章から本格的にChatGPTの理論的な背景を解説しています。ChatGPTのAPIについて、支払い設定からAPIキー取得など、初期状態から解説しているので安心です。基本となる入力及び応答のフォーマットを説明しながら、サンプルコードを交えて解説しています。内容としてはアクセス取得及び最初の呼び出し、支払い設定とAPIキーの取得、openaiライブラリでのAPI呼び出し、モデルグループ別のAPI選択と関数、入力のフォーマットとパラメータ、アドバンスドな利用方法、レートリミット、コストの考慮、プライバシーとセキュリティ、モデルの最適化、複数ターンの対話、テストと回答の改善、情報検索、チャットボット、データ拡張となります。どの処理もサンプルコードが併記されており、実際に試しながら学べます。さらに外部APIを呼び出してChatGPTの使い道を広げられる点は、9章でも掘り下げています。

豊富なサンプルコードが用意されています

第5章:APIを用いたファインチューニング

具体的な業務を想定して、APIを用いたファインチューニングを解説します。本書ではファインチューニングの過程を紹介することが目的なので、非常に小さなデータセットを用いて学習時間を短縮しながら、性能は限られるものの基本的な仕組みを学べるように配慮されています。モデルの選定からファインチューニングと推論の実行という流れで、手順毎にサンプルコードを挟みながら丁寧に解説しています。

第6章:HuggingFaceを用いたファインチューニング

前章におけるAPIによるファインチューニングから、本章ではAPIを介さずに学習コードを直接記述してChatGPT以外の言語モデルを学習します。ここでは日本語のコーパスを用いて解説しています。深層学習フレームワークはPyTorchを採用し、トランスフォーマーのモデル定義や自然言語処理のツールセットはHuggingFaceのtransformersライブラリを用います。データセットもHuggingFace社が公開しているものを利用するので、datasetライブラリをインストールします。次に説明モデルの学習から推論を実行という流れです。

順を追って丁寧に解説しています

第7章:プロンプトエンジニアリング

本章の「プロンプトエンジニアリングは、ユーザーが意図する回答をChatGPTから導くためにプロンプトを制御する技術」と位置づけています。併せてプロンプトエンジニアリングにおける背景とテクニックを紹介しています。プロンプトのノウハウは他の解説書にある経験則による方法ではなく、直近の研究を根拠として紹介するので、本書の差別化要因になっています。紹介されている手法は、以下となります。

・入力セマンティック(inputsemantics):言語モデルに対して、ユーザーが定義する入力フォーマットをどう理解するべきかを明示する方法。
・出力のカスタマイズ(outputcustomization):言語モデルの出力を、ユーザーが希望するフォーマットや構造などに合わせる方法。
・エラーの追究(erroridentification):言語モデルの出力に含まれているエラー(コードや文章の間違い)を特定及び解決するための方法。
・プロンプトの改善(promptimprovement):プロンプトの改善によって出力のクオリティを上げる方法。
・インタラクション(interaction):ユーザと言語モデルとの間のインタラクションにフォーカスする方法。
・文脈制御(contextcontrol):言語モデルの出力を生成するために参照する文脈の制御にフォーカスする方法。

併せて、日本語のプロンプトエンジニアリングも紹介しています。

第8章:Microsoftのサービスで始めるLLMシステム

本書は2名による共著なので、本章はマイクロソフト社のエンジニアとして経験がある著者が執筆しています。内容としてはマイクロソフト社のクラウドサービスであるAzure OpenAI Serviceが提供するLLM技術導入製品や仕組み、OpenAI社との連携、RAG(Retrieval-Augmented Generation)の仕組みと処理ごとの検討事項、研究者やデータサイエンティスト向けのRAGに触れる方法、理解度を高める学習リソースの紹介となります。前章までは大規模言語モデルの概要、理論の解説、LLMモデルの活用例でしたが、本章ではアプリケーションの利用や構築に必要なツールや手段など、システム設計や構築に関する技術的な手法が中心となります。これらの分野は日進月歩で変化しており、技術ブログでよって最新情報が公開されています。そこで本章はサンプルコードを用いた詳細な手順はあえて書かない方針となります。改めて本章で解説されている内容は、以下となります。

・AzureOpenAlServiceの機能紹介
・OpenAlPythonv0.28.1からv1.0への変更点
・RAGアーキテクチャについて
・RAGの処理フロー
・独自データベースの準備
・RAG環境の構築
・データドリブンによるRAG環境の検証
・手法や前処理を変更するRAG環境

特にChatGPTに新たなデータを学習させて最適な回答を導き出したいという需要は高まっており、RAGにおける環境構築や検証が役立つでしょう。また、企業などにおけるChatGPTの利用において、セキュリティや安定性や実績などを考慮するとAzure OpenAI Serviceが現実的な選択肢となります。RAGの基礎や環境構築に加えてエンジニアリング視点での参考資料も本章で解説されており、これをきっかけにRAGとAzureに取り組んではいかがでしょう。

第9章:ChatGPTの限界を越えて

ChatGPTが注目を浴びる一方で、限界もあります。実務での利用においては、信頼性と実用性のため考慮しなければいけません。そこで本章で物理面における理解の欠落、リアルタイム情報の未反映、回答の誤りについて説明しています。今後このような限界を乗り越えるためには、どのような試みが必要になるか考察します。また、ChatGPTと汎用人工知能(AGI)の関係についても考えています。しかしながら、限界を越えるために外部APIを併用したり、大規模言語モデル自体が画像や音声と対応するなどの取り組みがあります。技術の進化と将来への期待も含めて、考慮したい項目です。

第10章:マルチモーダル大規模モデルの数々

マルチモーダル大規模モデルにおいて、テキストによる画像生成、テキストによる動画生成、テキストによる音声や音楽の生成について、紹介しています。

説明文と図を併記して理解度が高まります

第11章:今後の課題

本書のまとめにあたる内容です。大規模言語モデルの現状と今後において、筆者なりの展望を示しています。特に安全性と有用性の両立は、法律や規制にも関わる重要な点でしょう。あくまでChatGPTは素晴らしい機能を持つツールという立ち位置だけでなく、技術的な背景のように様々な観点を把握するべきです。こうした視点を身につけることが、今後のChatGPTを含めてAIが歩むべき道筋として重要となるでしょう。

本書を推薦する理由

ここまで解説した通り、ChatGPTと大規模言語モデルにおいて必要なことが過不足なくまとめられており、エンジニア、データサイエンティスト、研究者が最初に読みたい1冊となっています。内容の信頼性においても、参考文献として8ページに渡って83個が掲載されており、丁寧に論文などを読み込まれている点が伺えます。

83個の参考資料です

著者について紹介すると、シン・アンドリュー(Andrew Shin)氏は、マイクロソフト製品に関する第8章を除く本書全般を執筆しており、東京大学大学院情報理工学系研究科博士課程とソニーグループのR&Dセンターを経て、慶應義塾大学デジタルメディアコンテンツ研究センター特任助教です。小川航平氏は第8章を執筆しており、筑波大学博士前期課程修了後、日本マイクロソフト株式会社でAI分野でエバンジェリズム活動に関与しており、現在はKEEN株式会社のソフトウェアエンジニアです。本書の精査と助言を担当した谷合廣紀氏は、日本将棋連盟の棋士(四段)であり、自作の将棋AI「prelude」が世界コンピュータ将棋選手権で独創賞を受賞しています。

ChatGPTの発表から一定期間経過する中で、このような理論と実践において実績のある著者から信頼できる内容の書籍が発売されたのは喜ばしい事です。技術書の執筆には時間がかかりますし、サービスの安定性向上やノウハウの蓄積も一朝一夕では無理です。ChatGPTの導入事例も増える中で、今後はさらに実際に開発プロジェクトに関わる人が増えるでしょう。エンジニアやデータサイエンティストや研究者にとって、ChatGPTについて知りたい時に最初に読みたい1冊として推薦したい次第です。

note記事が気に入ったら、Twitterアカウントをフォローしてください! Twitter : https://twitter.com/maskedanl