インプレス[コンピュータ・IT]ムック LLM本番システム構築ノウハウ 基礎から実装・運用の方法、アプリ構築の実例まで
インプレス / 2025年09月19日 / 全479ページ
大規模言語モデル(LLM)を実装し、本番環境にデプロイするノウハウを解説。基礎概念から、実装、デプロイ、運用、管理における課題とその解決策まで、包括的に取り上げています。Llamaの再実装、Raspberry Piへのデプロイ、AIコーディング拡張機能の構築など、具体的なサンプルも説明。LLMの可能性を引き出し、実際に機能する製品に変えるための必携の一冊です。
目次
- サンプル・正誤表・商標について
- 本書に寄せて
- まえがき
- 謝辞
- 本書について
- コードについて著者について
- 目次
- 第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
- サンプル・正誤表・商標について
- 本書に寄せて
- まえがき
- 謝辞
- 本書について
- コードについて著者について
- 目次
- 第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 Llama4.1.4 Wizard
- 4.1.5 Falcon4.1.6 Vicuna
- 4.1.7 Dolly4.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世紀半ばと現代の言語学
- 付録B 人間のフィードバックによる強化学習
- 付録C マルチモーダル潜在空間
- 索引
- 訳者プロフィールSTAFF LIST
- 奥付
※このデジタル雑誌には目次に記載されているコンテンツが含まれています。それ以外のコンテンツは、本誌のコンテンツであっても含まれていません のでご注意ください。
※電子版では、紙の雑誌と内容が一部異なる場合や、掲載されないページがある場合があります。