AWSではじめる生成AI

―RAGアプリケーション開発から、基盤モデルの微調整、マルチモーダルAI活用までを試して学ぶ

[cover photo]
TOPICS
Data Science
発行年月日
PRINT LENGTH
352
ISBN
978-4-8144-0072-0
原書
Generative AI on AWS
FORMAT
Print PDF EPUB
Ebook
3,740円
Ebookを購入する
Print
3,740円

生成AI技術は、私たちのビジネスや社会を大きく変革する可能性を秘めています。同時に、その適切な活用にはしっかりとした技術的理解と実践的なスキルが求められます。本書は、生成AI技術の本番環境での開発・運用に必要な知識を、理論と実践の両面から学べる一冊です。実践面では、Amazon Web Services(AWS)のサービスを使いながら、サンプルコードで実際に手を動かして試すことで、生成AI技術の理解をさらに深められます。特に、生成AIを実際のビジネス環境に導入する際に重要となる、プロンプトエンジニアリング、基盤モデルの量子化、微調整、大規模モデルのデプロイ、検索拡張生成(RAG)などの技術を、AWS上で効果的に扱うための実践的な手順を詳解しています。Web APIを通じて様々な生成AI基盤モデルをAWSで利用できるようにする「Amazon Bedrock」、また日本語版付録として、生成AIを手軽に利用できるアプリケーションサービス「Amazon Q」の解説も収録しています。
日々技術が進化し続ける中においても、大規模なモデルのホスティングにおけるスケーラビリティの確保や、モデルの効率的な微調整など、長く価値を保ち続ける基本的な概念と手法を紹介しています。本書を読むことで、実際のプロジェクトで遭遇する技術的課題を克服し、スケールさせるために必要な知識が得られます。

正誤表

ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。

第1刷までの修正

2024年8月更新

■P.10 18行目
【誤】AWSは、拡張に必要なベクトルの埋め込み(embedding。3章で説明)としてください。を格納するベクトルストアの選択肢も、複数提供しています。
【正】AWSは、拡張に必要なベクトルの埋め込み(embedding。3章で説明)を格納するベクトルストアの選択肢も、複数提供しています。

目次

本書への賛辞
技術監修者まえがき
まえがき

1章 生成AIのユースケース、基礎、プロジェクトライフサイクル
    1.1 ユースケースとタスク
    1.2 基盤モデルとモデルハブ
    1.3 生成AIプロジェクトのライフサイクル
    1.4 AWSが提供する生成AI
    1.5 AWSが提供する生成AIを使う利点
    1.6 AWS上での生成AIアプリケーションの構築
    1.7 まとめ

2章 プロンプトエンジニアリングとコンテキスト内学習
    2.1 プロンプトと応答
    2.2 トークン
    2.3 プロンプトエンジニアリング
    2.4 プロンプト構造
        2.4.1 指示
        2.4.2 コンテキスト
    2.5 few-shot推論によるコンテキスト内学習
        2.5.1 zero-shot推論
        2.5.2 one-shot推論
        2.5.3 few-shot推論
        2.5.4 誤ったコンテキスト内学習
        2.5.5 コンテキスト内学習のベストプラクティス
    2.6 プロンプトエンジニアリングのベストプラクティス
    2.7 推論設定パラメーター
    2.8 まとめ

3章 大規模言語モデル
    3.1 大規模言語モデル
    3.2 トークナイザー
    3.3 埋め込みベクトル
    3.4 Transformerアーキテクチャ
        3.4.1 入力とコンテキストウィンドウ
        3.4.2 埋め込み層
        3.4.3 エンコーダー
        3.4.4 自己注意
        3.4.5 デコーダー
        3.4.6 ソフトマックス出力
    3.5 Transformerに基づいた基盤モデルの種別
    3.6 事前学習用データセット
    3.7 スケーリング則
    3.8 計算最適モデル
    3.9 まとめ

4章 メモリーと計算リソースの最適化
    4.1 メモリー上の課題
    4.2 データ型と数値精度
    4.3 量子化
        4.3.1 fp16
        4.3.2 bfloat16
        4.3.3 fp8
        4.3.4 int8
    4.4 自己注意層の最適化
        4.4.1 FlashAttention
        4.4.2 グループ化されたクエリーによる注意
    4.5 分散コンピューティング
        4.5.1 分散データ並列
        4.5.2 完全シャード化データ並列
        4.5.3 DDPに対するFSDPの性能比較
    4.6 AWS上での分散コンピューティング
        4.6.1 Amazon SageMakerによる完全シャード化データ並列
        4.6.2 AWS Neuron SDKとAWS Trainium
    4.7 まとめ

5章 微調整と評価
    5.1 指示による微調整
        5.1.1 Llama 2-Chat
        5.1.2 Falcon-Chat
        5.1.3 FLAN-T5
    5.2 指示データセット
        5.2.1 複数タスク指示データセット
        5.2.2 FLAN:複数タスク指示データセットの例
        5.2.3 プロンプトテンプレート
        5.2.4 カスタムなデータセットを指示データセットへ変換する
    5.3 指示による微調整の実装
        5.3.1 Amazon SageMaker Studio
        5.3.2 Amazon SageMaker JumpStart
        5.3.3 Hugging Face用のAmazon SageMaker Estimator
    5.4 評価
        5.4.1 評価メトリクス
        5.4.2 ベンチマークとデータセット
    5.5 まとめ

6章 パラメーター効率的微調整
    6.1 全パラメーター微調整とPEFTの比較
    6.2 LoRAとQLoRA
        6.2.1 LoRAの基礎
        6.2.2 ランク
        6.2.3 対象となるモジュールと層
        6.2.4 LoRAの適用
        6.2.5 LoRAアダプターと元モデルのマージ
        6.2.6 別々のLoRAアダプターの維持
        6.2.7 全パラメーター微調整とLoRAの性能比較
        6.2.8 QLoRA
    6.3 プロンプト調整とソフトプロンプト
    6.4 まとめ

7章 人間のフィードバックからの強化学習を用いた微調整
    7.1 人間への適合:有用性、誠実性、無害性
    7.2 強化学習の概要
    7.3 カスタム報酬モデルの学習
        7.3.1 ヒューマンインザループによる学習用データセットの収集
        7.3.2 人間の評価者のためのルール例
        7.3.3 人間によるアノテーションにAmazon SageMaker Ground Truthを利用する
        7.3.4 報酬モデルの学習に用いる順位付けデータの準備
        7.3.5 報酬モデルの学習
    7.4 学習済み報酬モデル:Metaによる有害性検出器
    7.5 人間のフィードバックからの強化学習による微調整
        7.5.1 RLHFを用いた報酬モデルの利用
        7.5.2 近接方策最適化アルゴリズム
        7.5.3 PPOを用いたRLHF微調整の実行
        7.5.4 報酬ハッキングを抑える
        7.5.5 RLHFによるパラメーター効率的微調整の利用
    7.6 RLHF微調整モデルの評価
        7.6.1 定性的評価
        7.6.2 定量的評価
        7.6.3 評価モデルをロードする
        7.6.4 評価メトリクス集計関数の定義
        7.6.5 評価メトリクスの前後比較
    7.7 まとめ

8章 モデルのデプロイの最適化
    8.1 推論のためのモデル最適化
        8.1.1 プルーニング
        8.1.2 学習後の量子化としてのGPTQ
        8.1.3 蒸留
    8.2 大規模モデル推論コンテナ
    8.3 AWS Inferentia:推論専用ハードウェア
    8.4 モデルの更新とデプロイの戦略
        8.4.1 A/Bテスト
        8.4.2 シャドウデプロイメント
    8.5 メトリクスと監視
    8.6 オートスケーリング
        8.6.1 オートスケーリングポリシー
        8.6.2 オートスケーリングポリシーの定義
    8.7 まとめ

9章 RAGとエージェントにより文脈に応じた論理的判断を行うアプリケーション
    9.1 大規模言語モデルの制限
        9.1.1 ハルシネーション
        9.1.2 知識のカットオフ
    9.2 検索拡張生成
        9.2.1 外部の知識ソース
        9.2.2 RAGのワークフロー
        9.2.3 ドキュメントのロード
        9.2.4 チャンク化
        9.2.5 ドキュメント検索と再順位付け
        9.2.6 プロンプト拡張
    9.3 RAGのオーケストレーションと実装
        9.3.1 ドキュメントのロードとチャンク化
        9.3.2 埋め込みベクトルストアと検索
        9.3.3 検索チェーン
        9.3.4 最大限界関連性による再順位付け
    9.4 エージェント
        9.4.1 ReAct
        9.4.2 プログラム仲介プロンプト
    9.5 生成AIアプリケーション
    9.6 FMOps:生成AIプロジェクトのライフサイクルを運用可能なものとする
        9.6.1 実験での留意事項
        9.6.2 開発での留意事項
        9.6.3 本番デプロイでの留意事項
    9.7 まとめ

10章 マルチモーダル基盤モデル
    10.1 ユースケース
    10.2 マルチモーダルプロンプトエンジニアリングのベストプラクティス
    10.3 画像の生成と補正
        10.3.1 画像生成
        10.3.2 画像の編集と補正
    10.4 インペインティング、アウトペインティング、深度情報からの画像生成
        10.4.1 インペインティング
        10.4.2 アウトペインティング
        10.4.3 深度情報からの画像生成
    10.5 画像へのキャプション追加と視覚的質問回答
        10.5.1 画像へのキャプション追加
        10.5.2 コンテンツモデレーション
        10.5.3 視覚的質問回答
    10.6 モデルの評価
        10.6.1 テキストと画像の適合度
        10.6.2 画像からのテキスト生成のタスク
        10.6.3 非言語的な論理的判断
    10.7 拡散アーキテクチャの基礎
        10.7.1 順拡散
        10.7.2 逆拡散
        10.7.3 U-Net
    10.8 Stable Diffusion 2アーキテクチャ
        10.8.1 テキストエンコーダー
        10.8.2 U-Netと拡散プロセス
        10.8.3 テキスト条件付け
        10.8.4 相互注意
        10.8.5 スケジューラー
        10.8.6 画像デコーダー
    10.9 Stable Diffusion XLアーキテクチャ
        10.9.1 U-Net
        10.9.2 テキストエンコーダー
        10.9.3 リファイナー
        10.9.4 条件付け
    10.10 まとめ

11章 Stable Diffusionによる生成の制御と微調整
    11.1 ControlNet
    11.2 微調整
        11.2.1 DreamBooth
        11.2.2 DreamBoothとPEFT-LoRA
        11.2.3 テキスト反転
    11.3 人間のフィードバックからの強化学習による、人間の価値観への適合
    11.4 まとめ

12章 生成AIのマネージドサービス Amazon Bedrock
    12.1 Amazon Bedrockの基盤モデル
        12.1.1 Amazon Titan基盤モデル
        12.1.2 Stability AIによるStable Diffusion基盤モデル
    12.2 Amazon Bedrockの推論API
    12.3 大規模言語モデル
        12.3.1 SQLコードの生成
        12.3.2 テキストの要約
        12.3.3 埋め込み
    12.4 微調整
    12.5 エージェント
    12.6 マルチモーダルモデル
        12.6.1 テキストから画像を作成
        12.6.2 画像から画像を作成
    12.7 データプライバシーとネットワークセキュリティ
    12.8 ガバナンスと監視
    12.9 まとめ

日本語版付録 生成AI搭載アシスタント Amazon Q
    A.1 AWSの生成AIサービススタック
    A.2 Amazon Q
    A.3 Amazon Q Developer
        A.3.1 AWSエンジニア支援のためのAmazon Q Developer
        A.3.2 統合開発環境におけるAmazon Q Developerの活用
            A.3.2.1 Amazon Q Code Transformation
            A.3.2.2 Amazon Q Developer Agent
        A.3.3 Amazon Q Developerのカスタマイズ機能
        A.3.4 Amazon Q Developerの管理者向け機能と設定
        A.3.5 他のAWSサービスとの連携
    A.4 Amazon Q Business
        A.4.1 Amazon Q Businessの特徴
            A.4.1.1 エンタープライズに最適化されたアーキテクチャ
            A.4.1.2 幅広いデータソースとの連携と正確で包括的な回答生成
            A.4.1.3 シンプルな導入と管理
            A.4.1.4 豊富なカスタマイズオプション
        A.4.2 Amazon Q Apps
            A.4.2.1 ノーコードで簡単に生成AIアプリを作成
            A.4.2.2 会話からアプリへのスムーズな変換
            A.4.2.3 組織全体でのアプリの共有と再利用
        A.4.3 Amazon Q Businessの活用シナリオ
            A.4.3.1 ヘルプデスク業務の効率化と高度化
            A.4.3.2 ナレッジマネジメントの推進
    A.5 まとめ

訳者あとがき
索 引