All Articles

Azure OpenAI ServiceではじめるChatGPT/LLMシステム構築入門 執筆感想

はじめに

「Azure OpenAI Service ではじめる ChatGPT/LLM システム構築入門」という、Azure OpenAI Service を活用してシステム構築するための色々について説明する商業書籍 (from 技術評論社、2024/1/24 発売) の執筆に参加しました。

執筆者の 1 人として本の宣伝をしつつ感想などを書いていこうと思います。

Amazon 販売ページ

楽天販売ページ

どうして書いたの?

ここ 1 年弱、技術書典で技術同人誌を有志で出していました。「なんで市場に Azure Machine Learning の本ないの?????おかしくない??????」という怒りが原動力でした。

怒りを燃料に「供給が無いなら自分で書けば良いじゃない」という同人沼堕ち (技術書バージョン) を果たした我々は味をしめて次なる怒りの燃料を見つけました。

「華々しい LLM ブームの最中であるというのに、Azure OpenAI Service とそれを利用したシステム構築についての硬派な本無くない?」

キレた我々はあらゆるコネを使って出版社と連絡を取り、企画書を出し、その過程で僕の勤務先である日本マイクロソフト主催のイベントに LLM を活用したアプリ実装ネタで登壇され先行して LangChain の本 (後述) を執筆されていた吉田さんと合流し、本書執筆と相成りました。

ちなみに現時点では Azure OpenAI Service を使ってシステム構築する硬派な本が他にも何冊か出ておりまして、単純に皆執筆中だったことが判明しました。

どんな本?

雑にまとめると Azure OpenAI Service を活用してシステムを組むために必要な基礎知識を書いた本です。プロンプトエンジニアリングがどうの、LangChain や Semantic Kernel がどうの、というよりは、現実的に Azure の各種サービスをどう組み合わせどういう風にシステムを組み上げるかを説明することに主眼を置いています。

ChatGPT の概要から始めて RAG の実装に進み、さらに発展して ChatGPT を使って Copilot のような複雑なアプリを構築するための基礎的な考え方の解説へと進み、最後は ChatGPT を利用するときに付きまとうセキュリティ周りや AI 倫理周りの話で締めくくるという構成です。

目次1 目次2 目次3 目次4

最後に付録として Python などのインストール手順と、1 章より詳細な ChatGPT の動作原理の解説を付けてあります。

目次からもわかるように想定読者層にエンジニアを据えた技術書で、一例ですが以下のような方にオススメです。

  • LLM を用いたシステム開発をするにあたって道しるべを求めている人
  • すでに簡単な社内 ChatGPT の展開を完了していて、今後より発展的な LLM 組み込みシステムを構築したい人
  • LLM を組み込んだアプリの運用をどうやっていけばいいか悩んでいる人

システム実装の道のりをハンズオン的に導くような書籍としてはやや不適切で、本書はどちらかというとアーキテクチャや全体的な考え方、構成要素となる技術の説明がメインです。実際にシステムを作る段階は読者の手に委ねています。より詳細な実装方法、とくにアプリケーションの実装方法について興味がある方には、本書の執筆陣にも名を連ねている吉田さんが執筆された「ChatGPT/LangChain によるチャットシステム構築[実践]入門」をオススメします。

LLM で何ができて将来どうなるかを説明する読み物としてはまったくの不適です。そういう本が欲しい方には、岡野原大輔氏の「大規模言語モデルは新たな知能か」をオススメします。極めて平易でありながら簡略化し過ぎて嘘にならない絶妙な加減で説明がなされており、LLM について知りたい万人に向く良書です。

どこを書いたの?

主に 7 章の「基盤モデルと AI インフラストラクチャ」と付録 B の「ChatGPT のしくみ(詳細編)」を書きました。

7 章「基盤モデルと AI インフラストラクチャ」

Copilot Stack という LLM アプリ実装のためのアーキテクチャ (LLM アプリ版レイヤードアーキテクチャといったところでしょうか) があり、僕が書いた 7 章は Copilot Stack を構成するレイヤーの 1 つである LLM モデルとそれをホストするインフラについて解説する章です。

どういう場合にどの LLM を使い、どんなメリットがありどんなデメリットがあるかをツラツラと書いています。僕は LLM に限らずあらゆる技術選定においてその技術が持つ特性とトレードオフを考慮することがとても重要と思っていて、この章ではその点にこだわった記述しています。

加えて Azure OpenAI Service がメインテーマの本なのに Hugging Face あたりで一般公開されているモデルについても色々と書いちゃいました。一般公開されているモデルは現時点では正直 API 経由で提供されている Azure OpenAI Service と比べると性能的にもコスト的にも運用負荷的にも辛さが勝ると思っていますが、API の向こうにモデル実体が隠蔽されておらず手元で好きに取り扱えるが故に量子化のような軽量化手法の適用や LoRA による fine-tuning などを実行できるため、ネットワークから寸断されたエッジで動くモデル作成や極端な特化モデル作成といった API 経由のモデルではどうにもならない領域では大活躍するのではないかと思っています。

一般公開されているモデルについて、世間一般では「OSS モデル」という言葉がなんとなく通用していますけど、OSS ライセンスではないものがそう名乗るのは違うよなぁということで代わる言葉を考えるところが地味に一番大変だった気がします。最終的に編集の方や全体監修の永田さんと共に「公開モデル」という言葉を何とか捻りだしました。OSS ではないけれど公開されているモデル全般を指す言葉として「公開モデル」を使っていただければ幸いです。

付録 B「ChatGPT のしくみ(詳細編)」

付録 B では歴史的な経緯も踏まえつつ ChatGPT の仕組みについて (モデル構造は公開されていないため多少の推測も交えて) 詳しく説明しています。

Seq2Seq の改善として付加された Attention はどういう役割を期待されていたのか、Transformer はそれ以前の覇権モデルである RNN 系モデルと比べて何が嬉しかったのか、「言語モデル」とは何なのか、ChatGPT に至るまでにどんな推移を辿って行ったのか、モデル構造や仕組みにも踏み入りつつできるだけ簡単に解説しています。(数式は控え、できるだけ図解しつつ平易な言葉で説明するよう努めました)

僕自身 Seq2Seq が現役だった頃に研究室に入り Transformer や BERT などの登場を横目に自然言語処理+深層学習の研究をしていたので、久々にこの辺りの話ができて楽しかったです。昔作った図や研究室在籍時にゼミで論文解説したときの資料がとても役に立ちました。会社でも論文読み会とかしたいのですが、なかなか同志を見つけられず一人黙々と論文を読んでいる日々がこの付録の執筆で報われました。

おわりに

「Azure OpenAI Service ではじめる ChatGPT/LLM システム構築入門」は 2024/1/24 発売です。

Amazon 販売ページ

楽天販売ページ

まだ発売日前ではありますが、すでにテスト (先行) 販売ということで一部店頭にも並び始めています。

ご興味ありましたら是非手に取っていただければと思います。よろしくお願いします。

謝辞

執筆陣の中でもとりわけ吉田さんとは共に LLM アプリ実装を経験していた縁もあり、最終的には別々の章に再編されましたが 1 つの章を連携して執筆を進めていくこととなり、得難い知見の共有もいただき大変勉強になりました。ありがとうございました。

全体監修として最大の貢献をした永田さん筆頭に執筆陣各位、レビューで協力いただいた皆様方、技術評論社の皆様方など多くの協力を経て本書は完成しました。ありがとうございました。

また、献本が届いた方から続々と書評を頂いております。ありがとうございます。

Published 2024/01/18

ShuntaIto による技術ブログ