作品一覧

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

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

    ビジネス・実用

    5.0
    1巻3,740円 (税込)
    ※この商品はタブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字だけを拡大することや、文字列のハイライト、検索、辞書の参照、引用などの機能が使用できません。 ◆性能を制する者が、AIを制す◆ LLM をはじめとする生成AI の台頭により、パフォーマンスエンジニアリング (Performance Engineering)が再び注目されています。パフォーマンスエンジニアリングとは、コンピューターシステムやソフトウェアのパフォーマンス(処理性能)を改善するために必要な技術を扱う総合分野です。近年のAI は、「モデルの規模を大きくすることで精度が良くなる傾向がある」という考え方が主流になりつつあり、大規模なモデルを扱えなければ最新のAI 分野についていくことが難しくなっています。そこで、本書では、パフォーマンスエンジニアリングを用いてAI の処理性能を改善し、処理時間を削減するための技術を取りまとめました。前半ではパフォーマンスエンジニアリングの理論や技法を網羅的に解説し、後半では大規模AI の代表格であるLLM を中心とした題材を通して、具体的にどのようにパフォーマンスエンジニアリングを実際のAI に適用できるのかを紹介します。本書を読み通すことで、これまで体系的に説明されてこなかったパフォーマンスエンジニアリングを理解し、AI 時代に必要な知識と技法を習得できます。 ■こんな方におすすめ ・AI/LLMモデルを使ったサービスの提供を考えている方 ■目次 第1章 パフォーマンスエンジニアリング概論 ・1.1 パフォーマンスエンジニアリングとは ・1.2 なぜ今パフォーマンスエンジニアリングか ・1.3 AI 処理の概要 ・1.4 ハードウェア環境の概要 ・1.5 パフォーマンスエンジニアリングの実践方法 ・1.6 本書の構成 第2章 まずはパフォーマンスを計測する ・2.1 計測とは ・2.2 計測の基本戦略 ・2.3 計測のための基礎知識 ・2.4 計測の実践 第3章 次にパフォーマンスを改善する ・3.1 どこから着手するか ・3.2 アプリケーション・データ層の改善 ・3.3 モデル・アルゴリズム層の改善 ・3.4 ソフトウェア・フレームワーク層の改善 ・3.5 ハードウェア・カーネル層の改善 第4章 実践1:LLM 推論 ・4.1 問題設定 ・4.2 ベースラインの計測 ・4.3 パフォーマンス改善の実践 ・4.4 さらなる高みへ:推論エンジンと高度な技術 第5章 実践2:LLM 事後学習 ・5.1 問題設定 ・5.2 計測 ・5.3 パフォーマンス改善手法の考察 ・5.4 精度に影響のないパフォーマンス改善 ・5.5 精度に影響のあるパフォーマンス改善 第6章 実践3:LLM(継続)事前学習 ・6.1 問題設定 ・6.2 評価基準の決定 ・6.3 観測と改善の繰り返し 第7章 実践4:自動運転AI 学習 ・7.1 問題設定 ・7.2 プロファイルの設定 ・7.3 データローダーの分析 ・7.4 train プロセスの分析 ・7.5 Voxelize の分析と改善 ・7.6 TransFusionHead のget_targets の分析と改善 ・7.7 DepthLSSTransform の分析と改善 第8章 実践5:自動運転AI 推論 ・8.1 問題設定 ・8.2 エッジデバイスへのデプロイの基本 ・8.3 量子化適用の留意点 ・8.4 BEVFusion のデバイスへのデプロイ ・8.5 CUDA-BEVFusion の更なる高速化(概要) ・8.6 CUDA-BEVFusion の更なる高速化(詳細) ■著者プロフィール ●株式会社フィックスターズ (Fixstars Corporation):フィックスターズは、“Speed up your AI”をコーポレートメッセージとして掲げるテクノロジーカンパニーです。マルチコアCPU やGPU、FPGA 等の計算資源を最大限に活用するソフトウェア最適化技術を駆使し、AI モデルの推論処理と学習プロセスの両面で圧倒的な高速化を実現しています。医療、製造、金融、モビリティをはじめ様々な分野で、高性能計算(HPC)最適化の実績を持ち、次世代AI 技術の進化を推進しています。また、スーパーコンピュータや量子コンピュータなどの最先端分野において、産学連携による研究開発にも取り組み、貢献実績があります。
  • アジャイルメトリクス

    アジャイルメトリクス

    ビジネス・実用

    3.5
    1巻3,740円 (税込)
    開発に関わる全工程の詳細を定量化し より強く、より高パフォーマンスなチームへ 【本書の内容】 本書は Christopher W.H.Davis, "Agile Metrics in Action", Manning Publications 2015 の邦訳版です。 アジャイル開発は、その特性である「反復」によって、経験に基づく継続的な改善に最適な開発手法です。 この手法に、追跡システム、テストおよびビルドツール、ソース管理、継続的統合、およびプロジェクト ライフサイクルといったさまざまなコンセプトとツールを援用することで、製品やプロセス、 さらにはチームそのもののパフォーマンス改善できる豊富なデータを入手できます。 本書は、そういった実際に生成されるデータを計測し、結果を的確に分析し、効果的な対処法を指南してくれます。 パフォーマンスや進捗度合いなどを定量化することで、経験値による知見だけではなく、 より合意しやすいチームへと組織や方法論を改善してくれることでしょう。 【読者が得られること】 ・プロセスやタスクを定量化できるようになる ・定量化したデータから現状を正確に把握できるようになる ・コミュニケーション、生産性、透明性、士気を向上させる ・客観的にパフォーマンスを測定する 【著者について】 Christopher W. H. Davis(クリストファー・M・H・デイビス) ソフトウェアエンジニア。20年以上にわたり、旅行、金融、ヘルスケア、通信、製造業などの分野で開発チームのリーダーを務め、 世界中のさまざまな環境で多様なチームを率いてきました。 熱心なランナーでもあるクリスは、妻と2人の子供とともに、オレゴン州ポートランドの美しく雄大な太平洋岸北西部を満喫しています。 ※本電子書籍は同名出版物を底本として作成しました。記載内容は印刷出版当時のものです。 ※印刷出版再現のため電子書籍としては不要な情報を含んでいる場合があります。 ※印刷出版とは異なる表記・表現の場合があります。予めご了承ください。 ※プレビューにてお手持ちの電子端末での表示状態をご確認の上、商品をお買い求めください。

ユーザーレビュー

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

    Posted by ブクログ

    実践的パフォーマンスエンジニアリングによるAI高速化
    他著:株式会社フィックスターズ
    他著:吉藤 尚生
    他著:浅原 明広
    出版社:技術評論社

    本書は、AIの基盤の書ではなく、パフォーマンスの書である。

    基盤については、GPUボードの中、GPUボード間での処理など複雑怪奇であり、C系の言語ありの、Kerbernetesありの、Linuxありのである。GPUボードには、GPU,CPU,メモリ、ディスク、ネットワークなどがあって処理と関連することが読んでいくとわかってくる。

    性能劣化が起きた時の定跡は、測定⇒分析⇒実装⇒検証 である

    まず、LLMありき、Metaが開発したオープンソースの Llama3 というモデルをつかっています。
    LLMをつかえるようにするには、事前学習をして、世にだして、つかいながら、事後学習をとりこみながら成長を促していくというやり方です

    LLMに文章を入力すると、トークンと呼ばれる語彙に分解されて処理が進んでいく、出力処理をされたものを
    表示されるという流れである。

    その処理を少しでも早くすること、最適化することが本書の目的である

    LLMは、学習するときと、推論(いわゆる質問を処理するとき)とでは、ふるまいが違う。学習が入力で、推論が出力である

    パフォーマンスエンジニアリングは、5段階
     ①ベースライン測定:正常な状態を定義する、標準値をしらべる入り口である
     ②プロファイリング:システム内部の様々な状態を収集する
     ③分析と仮説立案:得られたデータを分析し、なぜ遅くなっているのかを推定する
     ④パフォーマンス改善の実装:仮説にもとづいて、実際に改善の作業を行います
     ⑤効果の検証:実際に改善されたのかどうかを確認する作業です

    計測はすくなくとも3回行います
     ①現状把握のための計測
     ②問題診断のための計測
     ③改善検証のための計測

    代表的な性能指標

     レイテンシ:いわゆる、応答時間
     スループット:単位時間あたり、何件処理ができたか。全体の処理量をあらわす
     使用率:GPUやCPUが稼働している率 0%~100% である

    律速:本書で初めて聞いた単語で、ボトルネックのことをいう 
     GPU律速
     CPU律速
     メモリ律速 など、GPU律速とは、GPUがボトルネックになっていることをいう

    計測結果からの原因究明例

     GPU使用率が低いとき、GPUが次の処理を開始できずに待っている状態、CPUが前処理に時間がかかっている
     並列度不足 利用率が低い時に、処理の多重度が低い
     同期処理待ち ある処理が終わるのをまっている
     カーネルが細分化されすぎている 細かい作業がたくさんあるため、オーバヘッドが大きくなっている

    パフォーマンス改善のフレームワーク

     Megatron-LM
    vLLM
    OpenMMLab
    DeepSpeed
     Zero などのフレームワークを使う

    改善策

     蒸留 扱いやすいように、モデルを変形する
     枝刈り 冗長計算を除去
     エキスパート 重要な部品のみを動的に選択する
     量子化 演算するデータ幅を小さくする 3.141592.... を 3.14とするのが量子化

     アルゴリズム改善
     バッチ処理 まとめて処理することで効率化を図る
     ミニバッチ学習 オンライン学習とバッチ学習を調整
     勾配累積法 処理できる最大サイズでまとめて学習する
     分散並列 (データ並列、テンソル並列、パイプライン並列、コンテキスト並列、エキスパート並列)
      複数の並列をつかうことを、ハイブリッド並列という

    4章から6章までは、LLMの改善
     ・LLM推論
     ・事後学習
     ・事前学習
    7章、8章は、自動運転AI BEVFusion が対象 いわゆる フィジカル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 処理の固定:深層学習コンパイラ
    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 まとめ

    ISBN:9784297153496
    判型:A5
    ページ数:400ページ
    定価:3400円(本体)
    2026年01月31日初版第1刷発行

    0
    2026年10月29日
  • アジャイルメトリクス

    Posted by ブクログ

    以前のチームにいたときに出版されていたら読みたかった本w

    次にこの手の分析を担う立場で入った際は、是非参考にしたい本です。

    0
    2023年02月04日
  • アジャイルメトリクス

    Posted by ブクログ

    アジャイルな開発に特有なメトリクスの話だと思うと肩透かしにあう。どちらかというと、アジャイルな開発においてチームや個人のパフォーマンスをより数値的に評価したりチームの外部に説明したいと考えている人に、従来からあるメトリクスを組み合わせた評価方法を提供するような内容である。

    開発プロセスごとのメトリクスを提案して全体像がわかりやすく書かれている点はよかった。

    略語が多い、数式の定義が微妙、白黒のグラフの読み取りが難しい、など気になる点がいくつかある。

    0
    2022年11月12日

新規会員限定 70%OFFクーポン 今すぐGET