出版社内容情報
LLM をはじめとする生成AI の台頭により、パフォーマンスエンジニアリング (Performance Engineering)が再び注目されています。パフォーマンスエンジニアリングとは、コンピューターシステムやソフトウェアのパフォーマンス(処理性能)を改善するために必要な技術を扱う総合分野です。近年のAI は、「モデルの規模を大きくすることで精度が良くなる傾向がある」という考え方が主流になりつつあり、大規模なモデルを扱えなければ最新のAI 分野についていくことが難しくなっています。そこで、本書では、パフォーマンスエンジニアリングを用いてAI の処理性能を改善し、処理時間を削減するための技術を取りまとめました。前半ではパフォーマンスエンジニアリングの理論や技法を網羅的に解説し、後半では大規模AI の代表格であるLLM を中心とした題材を通して、具体的にどのようにパフォーマンスエンジニアリングを実際のAI に適用できるのかを紹介します。本書を読み通すことで、これまで体系的に説明されてこなかったパフォーマンスエンジニアリングを理解し、AI 時代に必要な知識と技法を習得できます。
【目次】
第1章 パフォーマンスエンジニアリング概論
1.1 パフォーマンスエンジニアリングとは
1.2 なぜ今パフォーマンスエンジニアリングか
1.3 AI 処理の概要
1.3.1 AI モデルとは
1.3.2 Llama3
1.3.3 BEVFusion
1.3.4 学習と推論
1.4 ハードウェア環境の概要
1.5 パフォーマンスエンジニアリングの実践方法
1.5.1 推測するな、計測せよ
1.5.2 体系的な分析手法:USE メソッドとRED メソッド
1.5.3 5 段階の実践プロセス
1.5.4 継続的パフォーマンスエンジニアリング
1.5.5 組織にパフォーマンス文化を根付かせる
1.6 本書の構成
第2章 まずはパフォーマンスを計測する
2.1 計測とは
2.2 計測の基本戦略
2.2.1 目的を定める
2.2.2 対象の絞り込み
2.2.3 理論性能と実効性能の差の把握
2.2.4 チェックリスト
2.3 計測のための基礎知識
2.3.1 ハードウェアの動作モデル
2.3.2 性能指標の種類
2.3.3 性能指標の取り扱い
2.3.4 性能のモデル化
2.3.5 仮説駆動の計測
2.3.6 計測における観測者効果
2.4 計測の実践
2.4.1 正しさの検証
2.4.2 タイマーによる時間計測
2.4.3 NVIDIA Nsight Systems
2.4.4 NVIDIA Nsight Compute
2.4.5 PyTorch Profiler
2.5 まとめ
第3章 次にパフォーマンスを改善する
3.1 どこから着手するか
3.1.1 効果の高いところから
3.1.2 優先順位の見極め
3.2 アプリケーション・データ層の改善
3.2.1 適切なモデル
3.2.2 高品質なデータ
3.2.3 目的達成に最適な処理方法
3.2.4 最適なAI 処理フレームワーク
3.2.5 MLOps を構築して持続的な性能維持
3.3 モデル・アルゴリズム層の改善
3.3.1 モデル改善
3.3.2 アルゴリズム改善
3.4 ソフトウェア・フレームワーク層の改善
3.4.1 集団通信手法の選定
3.4.2 複数台による処理:分散並列
3.4.3 メモリ余地の捻出
3.4.4 演算とそれ以外の同時実行
3.4.5 連続的なデータアクセス:テンソルの次元の順番
3.4.6 処理の固定:深



