ML Systems 実践的パフォーマンスエンジニアリングによるAI高速化

「実践的パフォーマンスエンジニアリングによるAI高速化」のカバー画像
著者
株式会社フィックスターズFixstars Corporation𠮷藤尚生Naoki Yoshifuji浅原明広Akihiro Asahara飯塚拓郎Takuro Iizuka小田桐海翔Kaito Odagiri木村圭佑Keisuke Kimura寺西勇裕Yusuke Teranishi細川寛晃Hiroaki Hosokawa八木武尊Hotaka Yagi永田怜慈Reiji Nagata坂元佑弥Yuya Sakamoto 著
定価
3,630円(本体3,300円+税10%)
発売日
2025.12.22
判型
A5
頁数
352ページ
ISBN
978-4-297-15349-6

概要

LLM をはじめとする生成AI の台頭により、パフォーマンスエンジニアリング (Performance Engineering)が再び注目されています。パフォーマンスエンジニアリングとは、コンピューターシステムやソフトウェアのパフォーマンス(処理性能)を改善するために必要な技術を扱う総合分野です。近年のAI は、「モデルの規模を大きくすることで精度が良くなる傾向がある」という考え方が主流になりつつあり、大規模なモデルを扱えなければ最新のAI 分野についていくことが難しくなっています。そこで、本書では、パフォーマンスエンジニアリングを用いてAI の処理性能を改善し、処理時間を削減するための技術を取りまとめました。前半ではパフォーマンスエンジニアリングの理論や技法を網羅的に解説し、後半では大規模AI の代表格であるLLM を中心とした題材を通して、具体的にどのようにパフォーマンスエンジニアリングを実際のAI に適用できるのかを紹介します。本書を読み通すことで、これまで体系的に説明されてこなかったパフォーマンスエンジニアリングを理解し、AI 時代に必要な知識と技法を習得できます。

こんな方にオススメ

  • AI/LLMモデルを使ったサービスの提供を考えている方

目次

第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 処理の固定:深層学習コンパイラ
  • 3.4.7 特定のモデルに特化した高速ライブラリの利用

3.5 ハードウェア・カーネル層の改善

  • 3.5.1 ハードウェアの特性に合わせた調整
  • 3.5.2 カスタムカーネルによる演算コードの改善
  • 3.5.3 ハードウェアの変更

3.6 まとめ

第4章 実践1:LLM 推論

4.1 問題設定

  • 4.1.1 計測の対象
  • 4.1.2 ベンチマークスクリプトの作成
  • 4.1.3 本章の構成

4.2 ベースラインの計測

  • 4.2.1 ベースラインの実行
  • 4.2.2 理論限界スループットとの比較
  • 4.2.3 PyTorch Profiler による分析

4.3 パフォーマンス改善の実践

  • 4.3.1 改善策の実施と分析
  • 4.3.2 性能の最大化:GPU 計算負荷の増加
  • 4.3.3 メモリ使用量の削減:重みの量子化(Quantization)
  • 4.3.4 バッチサイズの増加
  • 4.3.5 モデルサイズの増加と投機的デコーディング

4.4 さらなる高みへ:推論エンジンと高度な技術

  • 4.4.1 vLLM:高スループット推論エンジンの仕組み
  • 4.4.2 vLLM によるベンチマーク結果
  • 4.4.3 量子化による精度の補足

4.5 まとめ

第5章 実践2:LLM 事後学習

5.1 問題設定

  • 5.1.1 環境構築

5.2 計測

  • 5.2.1 学習時間とLoss 値の確認
  • 5.2.2 NVIDIA Nsight Systems によるプロファイリング
  • 5.2.3 PyTorch Profiler によるプロファイリング

5.3 パフォーマンス改善手法の考察

5.4 精度に影響のないパフォーマンス改善

  • 5.4.1 MemoryCallback の削除
  • 5.4.2 ハイパーパラメータチューニング
  • 5.4.3 Torch Compile の適用

5.5 精度に影響のあるパフォーマンス改善

  • 5.5.1 グローバルバッチサイズの調整

5.6 まとめ

第6章 実践3:LLM(継続)事前学習

6.1 問題設定

  • 6.1.1 概要
  • 6.1.2 LLM 学習処理のおさらい

6.2 評価基準の決定

6.3 観測と改善の繰り返し

  • 6.3.1 初期問題の発見
  • 6.3.2 最適化器の変更
  • 6.3.3 プロファイリングで次の改善点を探す
  • 6.3.4 ハイパーパラメータの調整
  • 6.3.5 ハイパーパラメータチューニングの効果の確認
  • 6.3.6 ハイパーパラメータの知見と影響の考察

6.4 まとめ

第7章 実践4:自動運転AI 学習

7.1 問題設定

7.2 プロファイルの設定

7.3 データローダーの分析

  • 7.3.1 ログの確認によるデータローダー性能の評価
  • 7.3.2 nsys によるデータローダーのプロファイリング

7.4 train プロセスの分析

7.5 Voxelize の分析と改善

7.6 TransFusionHead のget_targets の分析と改善

7.7 DepthLSSTransform の分析と改善

  • 7.7.1 matmul の高速化
  • 7.7.2 CPU 律速の改善

7.8 まとめ

第8章 実践5:自動運転AI 推論

8.1 問題設定

  • 8.1.1 題材デバイス
  • 8.1.2 題材モデル
  • 8.1.3 使用ツールのバージョン
  • 8.1.4 本章の構成

8.2 エッジデバイスへのデプロイの基本

  • 8.2.1 高速なアクセラレータ・ランタイムエンジンの活用
  • 8.2.2 カスタム実装
  • 8.2.3 補足:モデルの修正

8.3 量子化適用の留意点

  • 8.3.1 量子化の適用ステージ
  • 8.3.2 混合精度量子化の留意点
  • 8.3.3 キャリブレーション手法
  • 8.3.4 対称量子化と非対称量子化

8.4 BEVFusion のデバイスへのデプロイ

8.5 CUDA-BEVFusion の更なる高速化(概要)

  • 8.5.1 計測

8.6 CUDA-BEVFusion の更なる高速化(詳細)

  • 8.6.1 Camera Backbone の改善
  • 8.6.2 画像データの転送部の改善

8.7 まとめ

プロフィール

株式会社フィックスターズFixstars Corporation

フィックスターズは、“Speed up your AI”をコーポレートメッセージとして掲げるテクノロジーカンパニーです。マルチコアCPU やGPU、FPGA 等の計算資源を最大限に活用するソフトウェア最適化技術を駆使し、AI モデルの推論処理と学習プロセスの両面で圧倒的な高速化を実現しています。医療、製造、金融、モビリティをはじめ様々な分野で、高性能計算(HPC)最適化の実績を持ち、次世代AI 技術の進化を推進しています。また、スーパーコンピュータや量子コンピュータなどの最先端分野において、産学連携による研究開発にも取り組み、貢献実績があります。

𠮷藤尚生Naoki Yoshifuji

フィックスターズで、パフォーマンスエンジニアリング・ラボのラボ長を務めています。2013 年に新卒で入社し、ファームウェア開発や車載用組み込みから、GPGPU などのヘテロジニアス開発、そして高性能計算プロセッサーの活用など、多様な環境でのパフォーマンスエンジニアリングを経験しました。2023 年頃からLLM などの大規模AI を高速化する支援依頼を多く受けるようになり、このようなAI 処理に対するパフォーマンスエンジニアリング技術をプロダクトとしてまとめるプロジェクトを立ち上げました。2025 年からはパフォーマンスエンジニアリング・ラボを立ち上げ、パフォーマンスエンジニアリングに関するあらゆる技術のとりまとめと普及をしています。

浅原明広Akihiro Asahara

ハワイ・マウナケア山頂にある「すばる望遠鏡」向けのガンマ線検出器を開発。中性子星パルサーの観測に20 代を捧げた後、宇宙物理学で博士号を取得。以後、エンジニアとしてIT分野にキャリアを転じ、 Cell Broadband Engine、 Xeon Phi、GPU、 FPGA などのアクセラレータ技術に精通。ビジネスとテクノロジーの橋渡し役として、国内外の企業・研究機関と多数のソフトウェア開発プロジェクトに携わってきました。現在は株式会社フィックスターズのCMO として、AI 推論・学習処理を高速化するパフォーマンスエンジニアリング・プラットフォーム「 Fixstars AIBooster」の市場展開を推進しています。

飯塚拓郎Takuro Iizuka

CUDA 黎明期より高性能計算、とりわけGPU コンピューティングに傾倒。2009 年にフィックスターズ入社以来、Cell/B.E、GPU、マルチコアCPU をはじめとして、多種多様なアーキテクチャの計算資源を使い倒すことに情熱を注いできた。天才最適化職人の先輩諸氏を横目で見つつ、コンパイラ、ハードウェア仮想化、分散ファイルシステム、ドメイン固有言語など、様々なレイヤのソフトウェア技術を通して、パフォーマンスエンジニアリングをプロダクトへと昇華させる試みを続けてはや15 年。最後のピースはAI だったと信じて、株式会社フィックスターズのCTO ならびに「Fixstars AIBooster」のプロダクトマネージャとして製品開発を主導しています。

小田桐海翔Kaito Odagiri

フィックスターズでLLM や大規模AI を高速化するプラットフォームの開発をしています。大学院では植物病害を画像から自動診断する研究をしていました。当時は RTX A6000 を使って研究をしていた記憶があります。フィックスターズに入社するまでは食品スーパーマーケットの社内SE として、POS システムの開発管理やAWS の運用/管理をしていました。フィックスターズではサブリーダーとして、顧客からの要望ヒアリングから要件定義、設計、作業計画の立案までを実装し、チームメンバーへ作業依頼を出したり、実際に自分で実装、テストまで一連の開発プロセスを担当することもあります。

木村圭佑Keisuke Kimura

フィックスターズに2021 年に新卒で入社して、ソフトウェアエンジニアとして従事しています。大学院では名古屋大学でUAV の自己位置推定に関する研究を行っていました。新卒として心機一転してパフォーマンスエンジニアリングの世界に飛び込みました。入社後は、ご縁もあり元々の近しい分野での自律走行ロボットの開発を皮切りに、半導体検査の画像処理アルゴリズム開発や、時には採用担当など、様々な経験を経ています。現在は、メインのプロジェクトの傍らLLM や大規模AI を高速化するプラットフォーム開発チームにも所属し、開発業務に携わっています。

寺西勇裕Yusuke Teranishi

2024年にフィックスターズへ新卒入社後、自動運転AI や大規模言語モデルの学習高速化に携わっています。大学時代はHPC(高性能計算)の研究室に所属し、量子コンピュータの分散並列シミュレータを開発。スーパーコンピュータと格闘しながら、パフォーマンスの限界に挑む日々を送りました。その後、2,048 GPUを用いた大規模実行の機会に恵まれ、パフォーマンスエンジニアリングの魅力に完全に取り憑かれています。現代のAI 開発は、膨大な計算資源を最大限に生かすHPC の技術が鍵を握ります。私は、HPCに情熱を燃やすエンジニアとしてAIの進化を加速させます。

細川寛晃Hiroaki Hosokawa

2025年にフィックスターズへ新卒入社しました。学生時代から競技プログラミングを通して高速化に興味を持ち、2018 年には中高生向けのプログラミング大会である国際情報オリンピックにて銀メダルを獲得しました。大学院では生物情報科学を専攻し、ゲノム解析に用いるツールにおけるアルゴリズム開発・高速化に関する研究を行っていました。入社後は主に大規模言語モデルの学習高速化およびモデル開発に携わっており、日々新たな技術や知識をインプットしつつパフォーマンスエンジニアリングの実践に努めています。

八木武尊Hotaka Yagi

2021年にフィックスターズへ新卒入社しました。大学院では高精度な浮動小数点数を用いた数値計算の研究を行い、情報処理推進機構の未踏ターゲット事業では量子アニーリングの産業応用の可能性を検証しました。入社後はSIMDやCUDAなどの並列化技術を活用したエッジデバイスの高速化に取り組み、新設子会社でドローンの新規事業立ち上げを担当。実証実験や事業企画などを通して、技術とビジネスの両面から事業推進に関わりました。現在は「Fixstars AIBooster」開発チームに所属し、カスタマーサクセスとしてお客様とともにパフォーマンスエンジニアリングの実践・推進に取り組んでいます。

永田怜慈Reiji Nagata

フィックスターズにて、自動車向けAI モデルの学習プロセスの高速化を行っており、特にモデルのアルゴリズムやパラメータを変更しない高速化に取り組んでいます。大学生の頃から高速化に興味関心を持ち、研鑽を積んでまいりました。近年は、大規模AI を対象とした高速化にも取り組むようになり、新たに見るボトルネックの解消に向け、日々新たな技術の習得と実践を重ねる、充実した日々を過ごしています。実際に成果の出たパフォーマンスエンジニアリング技術を整理し、より多くのエンジニアの方々に共有するため、本書の執筆に参加いたしました。

坂元佑弥Yuya Sakamoto

技術商社および電機メーカーでエンジニアとして経験を積んだ後、2018 年にフィックスターズに入社。現在は自社プロダクトである「 Fixstars AIBooster」のカスタマーサクセスを主に担当しています。これまでに深層コンパイラ開発プロジェクトのマネージャーとして開発を主導した他、過去にはエンジニアとして各種CPU、DSP 向けのパフォーマンスエンジニアリングにも従事してきました。それ以外にも量子アニーリング技術やブラックボックス最適化技術にも強い関心を持っており、その応用研究や技術開発にも並行して取り組んでいます。