
関連サイト
本書の関連ページが用意されています。
内容紹介
現場で使えるLLMを構築、本番環境に展開!成功へ導くための包括的なガイド
本書では、大規模言語モデル(LLM)を実装し、本番環境にデプロイするためのノウハウを解説。LLMの基礎概念から、実装、デプロイ、運用、管理における複雑な課題とその解決策まで、包括的に取り上げます。まず、LLMの可能性と限界、そして自社構築か既存サービスかの判断基準などから説明。また、運用(LLMOps)に関しては、ダウンロード時間、デプロイ時間、レイテンシー、GPU管理、トークン制限、ハルシネーション、バイアスといった具体的な課題への対策を詳しく解説。データエンジニアリングの重要性にも触れ、成功に不可欠なデータ準備、評価指標、クリーニング、前処理を説明。トレーニングとファインチューニングのほか、効果的なプロンプトエンジニアリングについても具体的に紹介。さらに、Llamaの再実装、Raspberry Piというエッジデバイスへのデプロイ、AIコーディング拡張機能の構築など、読者が自らの手で動かせるようなサンプルプロジェクトを説明します。本書は、LLMの可能性を最大限に引き出し、実際に機能する製品に変えるために必携の一冊となっています。
※ 本書は『LLMs in Production: From language models to successful products』(Manning Publications)の翻訳書です。
※本書の内容はPythonとPyTorchの知識があることが前提となっています。
書誌情報
- 著者: Christopher Brousseau, Matthew Sharp(著), 株式会社クイープ(訳)
- 発行日: 2025-09-19 (紙書籍版発行日: 2025-09-19)
- 最終更新日: 2025-09-19
- バージョン: 1.0.0
- ページ数: 480ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: インプレス
対象読者
著者について
Christopher Brousseau

言語学とローカリゼーションのバックグラウンドを持つJPモルガン・チェースの機械学習エンジニア。特に国際的な言語情報に基づいた自然言語処理を専門とし、新興企業やフォーチュン500社で機械学習やデータプロダクトを成功に導く。
Matthew Sharp

元データサイエンティストであり、MLOps(機械学習の設計から運用までのプロセス)の経験豊富なテクノロジーリーダー。スタートアップ企業から一流ハイテク企業まで、多くのデータプロジェクトを担当。本番環境での機械学習モデルのデプロイ、管理、スケーリングを専門とする。
株式会社クイープ

コンピュータシステムの開発、ローカライズ、コンサルティングを手がけている。訳書には『グランドマスター三冠のKaggleノートブック開発術 単変量解析から地理情報分析/偽動画検出/LLMまで』『The Kaggle Book:データ分析競技実践ガイド&精鋭31人インタビュー』を翻訳。最近の訳書に『Pythonライブラリによる因果推論・因果探索[概念と実践]因果機械学習の鍵を解く』などがある(いずれもインプレス発行)。
目次
本書に寄せて
まえがき
- 謝辞
- 本書について
- コードについて
- 著者について
目次
第1章 言葉の覚醒:なぜLLMは注目を浴びたのか
- 1.1 LLMはコミュニケーションを加速させる
- 1.2 LLMを構築する?それとも購入する?
- 1.2.1 購入:定番ルート
- 1.2.2 構築:あまり選ばないルート
- 1.2.3 ひとつ警告しておこう:今こそ未来を受け入れるときである
- 1.3 神話を覆す
- 1.4 まとめ
第2章 LLM:言語モデリングの本質を探る
- 2.1 言語モデリング
- 2.1.1 言語学的な特徴
- 2.1.2 記号論
- 2.1.3 多言語NLP
- 2.2 言語モデリングの手法
- 2.2.1 N-gramとコーパスベースの手法
- 2.2.2 ベイズ統計の手法
- 2.2.3 マルコフ連鎖
- 2.2.4 連続的な言語モデリング
- 2.2.5 埋め込み
- 2.2.6 多層パーセプトロン(MLP)
- 2.2.7 リカレントニューラルネットワーク(RNN)と長短期記憶(LSTM)
- 2.2.8 Attention
- 2.3 Attention Is All You Need
- 2.3.1 エンコーダ
- 2.3.2 デコーダ
- 2.3.3 Transformer
- 2.4 本当に巨大なTransformer
- 2.5 まとめ
第3章 LLMOps:LLM向けのプラットフォームを構築する
- 3.1 入門:LLMOps
- 3.2 LLMOpsの課題
- 3.2.1 ダウンロードに時間がかかる
- 3.2.2 デプロイに時間がかかる
- 3.2.3 レイテンシ(遅延)
- 3.2.4 GPUを管理する
- 3.2.5 テキストデータの特異性
- 3.2.6 トークン制限がボトルネックになる
- 3.2.7 幻覚(ハルシネーション)がもたらす混乱
- 3.2.8 バイアスと倫理的配慮
- 3.2.9 セキュリティへの配慮
- 3.2.10 コスト管理について
- 3.3 LLMOpsの基本的要素
- 3.3.1 圧縮
- 3.3.2 分散コンピューティング
- 3.4 LLMOpsのインフラ
- 3.4.1 DataOpsインフラ
- 3.4.2 実験管理ツール
- 3.4.3 モデルレジストリ
- 3.4.4 特徴量ストア
- 3.4.5 ベクトルデータベース
- 3.4.6 監視システム
- 3.4.7 GPU対応のワークステーション
- 3.4.8 デプロイメントサービス
- 3.5 まとめ
第4章 LLMのためのデータエンジニアリング:成功へのステップ
- 4.1 モデルは基盤である
- 4.1.1 GPT
- 4.1.2 BLOOM
- 4.1.3 Llama
- 4.1.4 Wizard
- 4.1.5 Falcon
- 4.1.6 Vicuna
- 4.1.7 Dolly
- 4.1.8 OpenChat
- 4.2 LLMを評価する
- 4.2.1 テキストを評価するための指標
- 4.2.2 業界のベンチマーク
- 4.2.3 責任あるAIベンチマーク
- 4.2.4 独自のベンチマークを開発する
- 4.2.5 コード生成を評価する
- 4.2.6 モデルパラメータを評価する
- 4.3 LLMのためのデータ
- 4.3.1 押さえておきたいデータセット
- 4.3.2 データのクリーニングと前処理
- 4.4 テキストプロセッサ
- 4.4.1 トークン化
- 4.4.2 埋め込み
- 4.5 Slackデータセットを準備する
- 4.6 まとめ
第5章 LLMの訓練:生成モデルの作り方
- 5.1 マルチGPU環境
- 5.1.1 セットアップ
- 5.1.2 ライブラリ
- 5.2 基本的な訓練テクニック
- 5.2.1 ゼロからの訓練
- 5.2.2 転移学習(ファインチューニング)
- 5.2.3 プロンプティング
- 5.3 高度な訓練テクニック
- 5.3.1 プロンプトチューニング
- 5.3.2 知識蒸留によるファインチューニング
- 5.3.3 人間のフィードバックによる強化学習(RLHF)
- 5.3.4 MoE(Mixture.of.Experts)
- 5.3.5 LoRAとPEFT
- 5.4 訓練のヒントとコツ
- 5.4.1 訓練データのサイズについて
- 5.4.2 効率的な訓練
- 5.4.3 局所最適解の罠
- 5.4.4 ハイパーパラメータチューニングのヒント
- 5.4.5 オペレーティングシステム(OS)について
- 5.4.6 活性化関数のヒント
- 5.5 まとめ
第6章 LLMサービス実践ガイド
- 6.1 LLMサービスを作成する
- 6.1.1 モデルのコンパイル
- 6.1.2 LLMストレージ戦略
- 6.1.3 適応的バッチ処理
- 6.1.4 フロー制御
- 6.1.5 応答のストリーミング
- 6.1.6 特徴量ストア
- 6.1.7 RAG
- 6.1.8 LLMサービスを構築するためのライブラリ
- 6.2 インフラを構築する
- 6.2.1 クラスタのプロビジョニング
- 6.2.2 自動スケーリング
- 6.2.3 ローリングアップデート
- 6.2.4 推論グラフ
- 6.2.5 監視
- 6.3 本番環境の課題
- 6.3.1 モデルの更新と再訓練
- 6.3.2 負荷テスト
- 6.3.3 レイテンシのトラブルシューティング
- 6.3.4 リソースの管理
- 6.3.5 コストエンジニアリング
- 6.3.6 セキュリティ
- 6.4 エッジへのデプロイ
- 6.5 まとめ
第7章 プロンプトエンジニアリング:プロンプトの魔術師になる
- 7.1 モデルにプロンプトを与える
- 7.1.1 フューショットプロンプティング
- 7.1.2 ワンショットプロンプティング
- 7.1.3 ゼロショットプロンプティング
- 7.2 プロンプトエンジニアリングの基礎
- 7.2.1 プロンプトの構造
- 7.2.2 プロンプティングのハイパーパラメータ
- 7.2.3 訓練データの掘り起こし
- 7.3 プロンプトエンジニアリングのツール
- 7.3.1 LangChain
- 7.3.2 Guidance
- 7.3.3 DSPy
- 7.3.4 他にもツールはあるが
- 7.4 プロンプトエンジニアリングの高度なテクニック
- 7.4.1 LLMにツールを使わせる
- 7.4.2 ReAct
- 7.5 まとめ
第8章 LLMアプリケーションの構築:インタラクティブな体験を作り出す
- 8.1 アプリケーションの構築
- 8.1.1 フロントエンドでのストリーミング
- 8.1.2 履歴の保存
- 8.1.3 チャットボットとの対話機能
- 8.1.4 トークン数のカウント
- 8.1.5 RAGの適用
- 8.2 エッジアプリケーション
- 8.3 LLMエージェント
- 8.4 まとめ
第9章 LLMプロジェクトの作成:Llama 3を再実装する
- 9.1 MetaのLlamaを実装する
- 9.1.1 トークン化と設定
- 9.1.2 データセット、データの読み込み、評価、生成
- 9.1.3 ネットワークアーキテクチャ
- 9.2 シンプルなLlama
- 9.3 モデルの改善に向けて
- 9.3.1 量子化
- 9.3.2 LoRA
- 9.3.3 FSDP-QLoRA
- 9.4 Hugging Face Hub Spacesへのデプロイ
- 9.5 まとめ
第10章 AIによるコーディング支援プロジェクト:この機能がもっと早くほしかった
- 10.1 本章のモデル
- 10.2 データは力なり
- 10.2.1 ベクトルデータベース
- 10.2.2 データセット
- 10.2.3 RAGを使う
- 10.3 Visual Studio Code の拡張機能を構築する
- 10.4 このプロジェクトから得られた教訓と次なるステップ
- 10.5 まとめ
第11章 Raspberry Piでのデプロイ:限界に挑戦
- 11.1 Raspberry Piのセットアップ
- 11.1.1 Pi Imager
- 11.1.2 Raspberry Piに接続する
- 11.1.3 ソフトウェアのインストールと更新
- 11.2 モデルを準備する
- 11.3 モデルのサービング
- 11.4 改良
- 11.4.1 インターフェイスを改良する
- 11.4.2 量子化を変更する
- 11.4.3 マルチモーダルに対応する
- 11.4.4 Google Colabでのサービング
- 11.5 まとめ
第12章 本番環境は絶えず変化する:物語はまだ始まったばかり
- 12.1 上空1,000フィートからの眺め
- 12.2 LLMの未来
- 12.2.1 政府と規制
- 12.2.2 LLMはますます巨大化している
- 12.2.3 マルチモーダル空間
- 12.2.4 データセット
- 12.2.5 幻覚への対処
- 12.2.6 新しいハードウェア
- 12.2.7 エージェントの実用化
- 12.3 最後に
- 12.4 まとめ
付録A 言語学の歴史
- A.1 古代の言語学
- A.2 中世の言語学
- A.3 ルネサンス時代と近代の言語学
- A.4 20世紀初頭の言語学
- A.5 20世紀半ばと現代の言語学