「Azure OpenAI Service ではじめる ChatGPT/LLM システム構築入門」を読んでの書評

· 17min · Masataka Kashiwagi

2024年1月24日に発売される「Azure OpenAI Service ではじめる ChatGPT/LLM システム構築入門」を著者の一人である立脇さんから献本頂いたので,書評を書いていく!

改めて,出版おめでとうございます🎉

書籍の目次

目次は以下のように全体は4部構成(+付録)になっている.

  • 第1部: Microsoft Azure での ChatGPT 活用
    • 第1章: 生成 AI と ChatGPT
    • 第2章: プロンプトエンジニアリング
    • 第3章: Azure OpenAI Service
  • 第2部: RAG による社内文章検索の実装
    • 第4章: RAG の概要と設計
    • 第5章: RAG の実装と評価
  • 第3部: Copilot stack による LLM アプリケーションの実装
    • 第6章: AI オーケストレーション
    • 第7章: 基盤モデルと AI インフラストラクチャ
    • 第8章: Copilot フロントエンド
  • 第4部: ガバナンスと責任ある AI
    • 第9章: ガバナンス
    • 第10章: 責任ある AI
  • 付録
    • 付録 A: サンプルコード実行環境の準備
    • 付録 B: ChatGPT の仕組み(詳細編)

内容の紹介と感想

各章の概要について簡単に触れつつ,個人的に興味深かった点や印象に残った点を紹介する.

本書は初めに読者の目的とレベル感に合わせてどの章から読めば良いかが示されていて,全体の見通しがクリアになるように設計されている.そのため,目的に合わせて必要な章を効率良く読めるでしょう.

第1部: Microsoft Azure での ChatGPT 活用

第1部は,最初に生成 AI と ChatGPT 基礎的な概念と仕組みを紹介している.ChatGPT がどういったタスクをこなすことができるかについてもまとめられていて,ユースケースの例もあるので,活用のイメージを膨らませることができる.

また,生成 AI の出力に関係してくるプロンプトの基本的な書き方の紹介,気をつけるべき観点が整理されていて,プロンプトエンジニアリングも学ぶことができる.

第1部の最後は,Azure OpenAI Service の使い方が書かれている.Open AI が開発した AI モデルをマネージドサービスとして使用することができ,Azure OpenAI の始め方が図を使って丁寧に解説されている.

第2部: RAG による社内文章検索の実装

第2部は,ChatGPT を使った社内文章検索システムを題材にして,RAG の説明から実際に Azure 上でどういったサービスを組み合わせてシステムを構築するかについても丁寧に説明されている.後半には,RAG の評価の仕方も記載されていて,とても好感が持てる.

また,Azure Machine Learning プロンプトフローを使って効率良くプロンプトの検証・開発をする方法も紹介されている.

第3部: Copilot stack による LLM アプリケーションの実装

第3部は,ChatGPT などの LLM を組み込んだアプリである Copilot を開発するための話が,Copilot フロントエンド・AI オーケストレーション・基盤モデルの3段階で紹介されている.

Copilot フロントエンドの説明では,UX 向上のためにストリーミング処理の実装や参考資料などが紹介されていて,ユーザビリティの重要性を教えてくれる.

第4部: ガバナンスと責任ある AI

第4部は,生成 AI のサービスや機能を開発・運用していく上でのガバナンスの話や責任ある AI に対する Microsoft の取り組みなどが紹介されている.ガバナンスの話では,認証周りや課金,アクセス制限など組織で活用していく上で考慮すべき問題を取り上げている.

興味深かった点/印象に残った点

ここからは個人的な感想を書いていこうと思う.

まず全体的に注釈で細く補足がなされていたり,参考文献が挙げられていてとても親切である.タイトルにも含まれるように Azure を使った内容にはなっているが,プロンプトエンジニアリングや RAG の設計・評価,基盤モデルの話など ChatGPT/LLM をサービスに活用する上で知っておくべき一般的な内容についてもしっかりと説明がされていて,まだまだキャッチアップ不足の僕にはとても参考になった!

後半ではガバナンスや責任ある AI (Responsible AI) を取り上げていて,これらについて言及している書籍はまだまだ少ない状況なので,とても有益である.サービスとして機械学習を提供するのであれば,こういった内容についても理解を深め取り組んでいくべき(自戒を込めて)で,それを助ける参考文献が色々と記載されている.

以下は,特に個人的な推しポイントを3つ紹介する.

1. RAG を使った検索システムの設計と評価

Retrieval-Augumented Generation (RAG) を使うメリットやアーキテクチャを最初に説明することで,これからどういったものを考えていくのかがわかりやすかった.コンテキストが示されて体系的に説明がされているので,テックブログのように断片的なものよりは理解が進みやすい.

特に検索システムの説明が厚くてとても良かった!Azure AI Search を題材にしているが,インデックス作成・ドキュメント検索の流れを図を用いて丁寧に解説されている.インデックス作成の流れは別の検索システムを使うにしても参考となりそうである.特に RAG を使った検索では,ドキュメントの文字数文の意味に基づいた検索が重要であるという内容がしっかり書かれていて理解が深まった.

また,Azure AI Search では,フルテキスト検索とベクトル検索のハイブリッド検索を利用することができ,ハイブリッド検索とセマンティックランカーを行うことでより高精度な検索が実現可能とのこと(下図).こういった柔軟な検索手法の組み合わせが,比較的簡単にマネージドサービスとして実装できるのは楽だなと感じる.

ハイブリッド+セマンティックランカー

参考: Azure AI Search: Outperforming vector search with hybrid retrieval and ranking capabilities

RAG の評価についても書かれていて,RAG の評価では,検索精度の問題生成精度の問題の2つがある.特に生成精度の評価はまだまだスタンダードな方法がなく難しいが,その一例として,OSS で RAG 用の評価フレームワークである Ragas があるよと紹介されている.単一のメトリクスで判断するのではなく,複数の組み合わせがおすすめされてて,関連性・一貫性・類似性の評価について解説もされている.評価方法どうすればいいかあまり理解していなかった自分にとっては良い示唆を貰えた!

2. オーケストレータ作成のための Azure Machine Learning プロンプトフロー

Azure Machine Learning プロンプトフローはローコードでオーケストレータを作成できるサービスで GUI/CLI で利用できるとのこと.

  • 実行フローの可視化
  • チームでの共有やデバッグ
  • 複数のプロンプトを試せるプロンプトバリアント機能
  • etc...

特に興味を持ったのは,プロンプトバリアント機能でプロンプトは色々と試行錯誤して良さげなものを探すと思うが,これらを一度に複数パターンを定義できて実行できるとのことで,実験速度がめっちゃくちゃ上がりそうだなと感じた!改善しやすい仕組みが自分で整備しなくても整えられているので,やりたいことに集中できて,開発者体験としてとても良さそうに思う!

3. 責任ある AI (Responsible AI) の取り組み

Microsoft では,責任ある AI (Responsible AI) として,以下の6つの原則を掲げている.

  • 公平性
    • AI システムはすべての人を公平に扱う必要がある
  • 信頼性と安全性
    • AI システムは信頼でき安全に実行する必要がある
  • プライバシーとセキュリティ
    • AI システムは安全であり,プライバシーを尊重する必要がある
  • 包括性
    • AI システムはあらゆる人に力を与え,人々を結びつける必要がある
  • 透明性
    • AI システムは理解しやすい必要がある
  • アカウンタビリティ
    • AI システムにはアカウンタビリティが必要である

参考: 責任ある信頼された AI - Cloud Adoption Framework

詳細は上記参考ドキュメントを読むとわかりやすい.これらを定義し,それをどのように実践するかといったことについても公式ドキュメントとしてまとめられていて素晴らしい.信頼性と安全性は MLOps とも関連性が高い項目である.

本書では,取り組みの紹介として,コンテンツフィルタリングの例がある.生成 AI が不正利用されるとサービスに大きな影響が及ぶ.これに対して,Azure OpenAI では入出力にフィルタリング機能が実装されていて,適切でない内容対しては処理がストップされるようになっている.こういったことをマネージドサービスとして提供してくれるのかと感心したと同時に,サービスを使う側にとって安心で心強いと感じた.仮にこういったことを自前で実装するとなると,かなりしんどくて(どういった項目を扱うか,実装や運用はどうするかなど),素早くサービスを展開しづらくなる.

気になった点

気になった点を強いて言うなら,LLM 開発する上で有用な Microsoft 製の OSS がいくつか紹介されていて,それについて付録などでもう少し使い方や組み合わせ方があっても面白いかなと思った.


今回献本頂いて書籍を読むまで Azure, Azure OpenAI Service のことはほぼ知らなかった🙇‍♂️

ただ本書を読んでいくことで,Azure OpenAI Service の使い勝手の良さや導入のしやすさなどはとても感じることができた!興味深かった点/印象に残った点でも書いたが,Azure Machine Learning プロンプトフローを使った開発は非常に開発者体験が良さそうに感じるため,これを機に是非触ってみたいと感じさせられるものだった💪(まだ時間が取れず,実際には触れていないのですが...)

他にも Microsoft の OSS が所々で紹介されていて知らないものも多かったので,参考になった!

  • DeepSpeed
    • Deep Learning モデルの学習・推論を高速化するフレームワーク
  • Semantic Kernel
    • LLM を自分のアプリに簡単に統合できる SDK

Azure を既に使ってる人はもちろんのこと,使ったことが無い人も本書を通して Azure OpenAI Service を使った ChatGPT/LLM のシステム開発に挑戦してみると楽しいと思う!

もしこれらに興味がある人は是非手に取って見て下さい!!


このエントリーをはてなブックマークに追加

ブログ記事を読んで頂き,ありがとうございます!もしこの記事が良かったり参考になったら,「Buy me a coffee」ボタンから☕一杯をサポートして頂けるとモチベーションが上がります!どうぞよろしくお願いします🤩