エンジニア選書シリーズAzure OpenAI Serviceではじめる ChatGPT/LLMシステム構築入門
2024年1月24日紙版発売
2024年1月24日電子版発売
永田祥平,伊藤駿汰,宮田大士,立脇裕太,花ケ﨑伸祐,蒲生弘郷,吉田真吾 著
B5変形判/304ページ
定価3,520円(本体3,200円+税10%)
ISBN 978-4-297-13929-2
書籍の概要
この本の概要
Microsoft AzureはChatGPTをはじめとするOpenAIモデルを利用できる,現在唯一のパブリッククラウドサービスです。本書はLLM(大規模言語モデル)に興味があるITエンジニアを対象に,AzureからOpenAIモデルにアクセスできる「Azure OpenAI Service」を使い,ChatGPTを利用した社内AIシステムの開発と導入を実現してもらうのが目的です。
前半では,生成AIとChatGPTモデルの基本的な概念とその仕組みを解説します。また,Azure OpenAI Serviceの概要と具体的な利用方法を解説し,プロンプトエンジニアリングについても紹介します。後半ではChatGPTを利用する社内システムの開発手法について,実際にAzure OpenAI Serviceを使いながら学んでいきます。RAGを利用した社内文章検索システムの実装を経て,LLMを組み込んだアプリケーション(Copilot)の構築へとステップアップしていきます。また,Azure OpenAI Serviceの利用におけるガバナンス実現に必要な共通基盤化と責任あるAIについても解説しています。
こんな方におすすめ
- OpenAIモデルやChatGPTに興味がある,また,それらを使ったシステムを開発したいITエンジニア
本書のサンプル
本書の一部ページを,PDFで確認することができます。
- サンプルPDFファイル(228KB)
本書の紙面イメージは次のとおりです。画像をクリックすることで拡大して確認することができます。
目次
第1部 Microsoft AzureでのChatGPT活用
第1章 生成AIとChatGPT
- 1.1 生成AIとChatGPTの衝撃
- 1.1.1 「AIの時代が始まった」
- 1.1.2 ChatGPTがこなせるタスク
- COLUMN Open Interpreter
- 1.1.3 ChatGPTを利用するうえでの注意点
- 1.2 ChatGPTの仕組み
- 1.2.1 従来の「チャットボット」との違い
- 1.2.2 GPTとは
- 1.2.3 人間が好む文章を生成するための手法「RLHF」
- 1.2.4 ChatGPTができるまで
- 1.3 まとめ
第2章 プロンプトエンジニアリング
- 2.1 プロンプトエンジニアリングとは
- 2.2 基本的なテクニック
- 2.2.1 指示を具体的に書く
- 2.2.2 モデルの逃げ道となる「アウト」を指定する
- 2.2.3 役割を明確にする
- 2.2.4 入出力例を与える
- COLUMN Zero-shot LearningとFew-shot Learning
- 2.2.5 構造的に書く
- 2.3 思考の連鎖(Chain of Thought)
- COLUMN GPT-3.5 TurboとGPT-4の性能の違い
- 2.4 その他のテクニック
- 2.5 まとめ
第3章 Azure OpenAI Service
- 3.1 Azure OpenAI Serviceとは
- 3.1.1 OpenAI社のAPIサービスとAzure OpenAI Service
- 3.1.2 Azure OpenAIの全体像
- 3.2 Azure OpenAIの始め方
- 3.2.1 Azure OpenAI利用申請
- 3.2.2 リソース作成
- 3.2.3 GPTモデルのデプロイ
- 3.3 チャットプレイグラウンドでChatGPTアプリを開発する
- 3.3.1 アシスタントのセットアップ
- 3.3.2 構成
- 3.3.3 チャットセッション
- COLUMN チャットプレイグラウンドはどこで動作する?
- 3.3.4 チャットアプリケーションのデプロイ
- COLUMN プレイグラウンドからデプロイされたWebアプリのソースコード
- 3.4 考慮するポイント
- 3.4.1 コストの考え方
- 3.4.2 リクエスト制限
- 3.5 まとめ
第2部 RAGによる社内文章検索の実装
第4章 RAGの概要と設計
- 4.1 ChatGPTの問題点と解決手法
- 4.2 Retrieval-Augmented Generationとは
- 4.3 検索システム
- 4.4 Azure AI Search
- 4.4.1 インデックス作成
- 4.4.2 ドキュメント検索
- 4.5 オーケストレータ
- 4.5.1 Azure OpenAI on your data
- 4.5.2 Azure Machine Learningプロンプトフロー
- 4.5.3 フルスクラッチ(自前で実装)
- 4.6 Azure OpenAI on your data
- 4.6.1 データソース
- 4.6.2 使用方法
- 4.7 Azure Machine Learningプロンプトフロー
- 4.7.1 利用の流れ
- COLUMN Azure Machine Learningとは
- 4.8 大規模言語モデル
- 4.9 Azure OpenAI API
- 4.9.1 Chat Completions API
- 4.9.2 Embeddings API
- 4.10 まとめ
- COLUMN RAG vs. ファインチューニング
第5章 RAGの実装と評価
- 5.1 アーキテクチャ
- 5.2 社内文章検索の実装例
- 5.2.1 使用するAzureサービス一覧と料金
- 5.2.2 ローカル開発環境を構築する
- 5.2.3 ローカル開発環境で実行する
- 5.2.4 ローカルの変更をApp Serviceへデプロイする
- 5.2.5 環境設定ファイルを変更する
- 5.2.6 追加のドキュメントをインデックス化する
- 5.2.7 実際に質問する
- 5.2.6 機能紹介
- 5.3 会話履歴の保持
- 5.3.1 履歴保持の実装例
- 5.3.2 Cosmos DBに会話履歴が保存されたことを確認する
- 5.4 検索機能
- 5.4.1 ベクトル検索
- COLUMN チャンク分割の重要性
- 5.4.2 ハイブリッド検索
- 5.4.3 セマンティックハイブリッド検索
- COLUMN どの検索モードが最も良い結果を出すか
- COLUMN カスタマイズポイント
- 5.5 データインジェストの自動化
- 5.6 RAGの評価と改善
- 5.7 検索精度の評価
- 5.7.1 基本的な評価指標
- 5.7.2 順位を考慮した評価指標
- 5.8 生成精度の評価
- 5.8.1 関連性の評価
- 5.8.2 一貫性の評価
- 5.8.3 類似性の評価
- COLUMN RAGの回答精度を向上させるには?
- 5.9 まとめ
第3部 Copilot stackによるLLMアプリケーションの実装
第6章 AIオーケストレーション
- 6.1 Copilot stackとは
- 6.1.1 第1層:Copilotフロントエンド
- 6.1.2 第2層:AIオーケストレーション
- 6.1.3 第3層:基盤モデル
- 6.2 AIオーケストレーションとエージェント
- 6.2.1 Reasoning & Acting(ReAct)
- 6.2.2 Planning&Execution(計画と実行)
- COLUMN LangChain
- COLUMN Semantic Kernel
- 6.2.3 プラグインの実行
- 6.3 独自Copilot開発のアーキテクチャと実装
- 6.3.1 ツール選定(ReAct)の実装
- 6.3.2 チャットUIからの利用
- 6.3.3 ChatGPTプラグインの実装
- 6.3.4 ストリーム出力の実装
- 6.4 まとめ
- COLUMN Azure AI Studioの登場
第7章 基盤モデルとAIインフラストラクチャ
- 7.1 基盤モデルとAIインフラストラクチャとは
- 7.2 ホスティングされたモデルの場合
- 7.2.1 GPT-3.5とGPT-4
- COLUMN GPT-4 Turbo
- 7.2.2 ファインチューニング
- COLUMN GPT-4のファインチューニング
- 7.3 公開モデルの場合
- 7.3.1 モデルの種類
- 7.3.2 モデルサイズと圧縮方法
- 7.3.3 モデルのホスト
- COLUMN Azure Machine Learningモデルカタログ
- 7.4 まとめ
- COLUMN OSSライセンスと機械学習モデル
第8章 Copilotフロントエンド
- 8.1 ユーザーエクスペリエンスの基礎
- 8.1.1 ユーザビリティ
- 8.1.2 停止ボタンと再生成ボタン
- 8.1.3 キャッシュしやすい実装
- 8.2 LLMの不確実な応答への対処
- 8.2.1 正確性
- 8.2.2 透明性(情報の根拠の提示)
- 8.2.3 UX向上のためのストリーム処理
- 8.2.4 OpenAIエンドポイントのストリーム出力を直接処理
- 8.2.5 Flaskアプリケーションでレスポンスをストリーム形式で処理する194
- 8.3 UX向上のための参考資料
- COLUMN チャット以外のインターフェース
- 8.4 まとめ
第4部 ガバナンスと責任あるAI
第9章 ガバナンス
- 9.1 共通基盤とは
- 9.2 共通基盤のアーキテクチャ
- 9.2.1 使用するAzureサービス一覧と料金
- 9.2.2 デプロイ
- 9.3 認証・認可
- 9.3.1 認証・認可の流れ
- 9.3.2 サンプルコードの実行
- COLUMN API Managementのサブスクリプションキー
- COLUMN Azure OpenAI APIの利用を特定のユーザーに制限する
- 9.4 ログ統合
- 9.5 課金
- 9.6 流量制限
- 9.7 閉域化
- 9.8 負荷分散
- 9.8.1 Application Gatewayの利用
- COLUMN Application Gatewayの負荷分散を本番化するときの注意点
- 9.8.2 API Managementの利用
- 9.9 まとめ
第10章 責任あるAI
- 10.1 責任あるAIに対するMicrosoftの取り組み
- 10.2 責任あるAIの実践
- 10.3 コンテンツフィルタリング
この本に関連する書籍
-
LangChainとLangGraphによるRAG・AIエージェント[実践]入門
本書では,OpenAIによるAIサービスを利用するためのOpenAI API,オープンソースのLLMアプリ開発ライブラリLangChain を使って,LLM(大規模言語モデル)を活用したRAG(...
-
大規模言語モデル入門Ⅱ 〜生成型LLMの実装と評価
「大規模言語モデル入門」の続編です。「大規模言語モデル入門」は理論と実装のバランスをとって構成しましたが,本書では実装部分で扱い切れなかった話題を取り上げ,...
-
図解即戦力 ChatGPTのしくみと技術がこれ1冊でしっかりわかる教科書
ChatGPTの登場によってAIが身近に感じられるようになりました。AIを使いこなすことによって生活が豊かになる,そんな未来がすぐそこまできています。本書では,「大規模...
-
Google Cloudで学ぶ生成AIアプリ開発入門 ――フロントエンドからバックエンドまでフルスタック開発を実践ハンズオン
生成AIの普及が急速に浸透してきています。本書は信頼性の高いクラウド環境であるGoogle Cloudで同社の生成AIを活用するための方法を解説します。自社で生成AIを利用し...
-
ChatGPT/LangChainによるチャットシステム構築[実践]入門
本書は,ChatGPTのAPIとLangChainを使って,大規模言語モデル(LLM)を本番レベルのシステムに組み込むための知識をステップバイステップで学習し,手を動かしながら実...