ML Systemsシリーズ深層ニューラルネットワークの高速化

[表紙]深層ニューラルネットワークの高速化

紙版発売

A5判/256ページ

定価3,300円(本体3,000円+税10%)

ISBN 978-4-297-14309-1

電子版

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

本書は深層ニューラルネットワークによる予測を高速化する技法を解説します。巨大なニューラルネットワークを用いた予測には多くの時間と計算コストがかかります。これにより,応答が遅くなりユーザー体験が悪くなるといった問題や,運用コストが大きくなるといった問題が生じます。本書はニューラルネットワークの予測性能を下げることなく高速化することでこれらの問題を解決する技法を解説します。紹介する技法は量子化・枝刈り・蒸留・低ランク近似・モデルマージなど多岐にわたり,幅広い局面に対応します。また,平坦解や宝くじ仮説など,深層ニューラルネットワークの理論を通して,これらの手法がうまくいく理由についても深く本質的な理論を解説します。深層ニューラルネットワークを活用するエンジニアや研究者は必読の一冊です。

こんな方におすすめ

  • ニューラルネットワークの計算や時間にかかるコストを削減したい人
  • Webサービスにニューラルネットワークを使っている方

目次

第1章 はじめに

1.1 高速化の意義

1.2 高速化の理論的背景

1.3 用語の整理

第2章 高速化手法の概要

2.1 量子化と低精度計算

2.2 枝刈り

2.3 蒸留

2.4 低ランク近似

2.5 高速なアーキテクチャ

2.6 ハードウェアの改善

2.7 複数の技法の組み合わせ

2.8 その他の技法

  • 2.8.1 入力データの縮小
  • 2.8.2 バッチサイズの引き上げ
  • 2.8.3 コンパイル
  • 2.8.4 メモリ配列の最適化
  • 2.8.5 古典的なモデルの活用
  • 2.8.6 パイプラインの最適化

第3章 量子化と低精度計算

3.1 16ビット浮動小数点数

  • 3.1.1 メモリ消費量削減のための低精度化
  • 3.1.2 通信量とストレージ消費削減のための低精度化

3.2 その他の低精度浮動小数点数フォーマット

  • 3.2.1 BF16
  • 3.2.2 TF32
  • 3.2.3 FP8

3.3 自動混合精度計算

3.4 整数量子化

  • 3.4.1 何を量子化するのか
  • 3.4.2 追加訓練を含むか否か
  • 3.4.3 量子化の演算
  • 3.4.4 量子化スケールの決定方法
  • 3.4.5 量子化する層の選択
  • 3.4.6 量子化を意識した訓練
  • 3.4.7 量子化による訓練の高速化
  • 3.4.8 実例と事例紹介
  • 3.4.9 量子化のライブラリ
  • 3.4.10 量子化手法の決定手順

3.5 1ビット量子化

  • 3.5.1 ビット並列計算
  • 3.5.2 実例:BinaryNetとXNOR-Ne
  • 3.5.3 実例:1 bit LLM

3.6 なぜ低精度計算でうまくいくのか

  • 3.6.1 平坦解
  • 3.6.2 確率的勾配降下法による平坦解と腑落ち
  • 3.6.3 長い訓練の重要性
  • 3.6.4 平坦解を得やすいアーキテクチャ
  • 3.6.5 盆地と線形峰接続が表しているもの
  • 3.6.6 平坦解が表しているもの
  • 3.6.7 平坦解が最善とは限らない

第4章 枝刈り

4.1 代表的な枝刈り手法

  • 4.1.1 正則化
  • 4.1.2 事例
  • 4.1.3 なぜ枝刈りでテスト性能が向上するのか

4.2 訓練前の枝刈り

4.3 構造枝刈り

  • 4.3.1 畳み込み層とim2col操作
  • 4.3.2 畳み込み層に対する構造枝刈り
  • 4.3.3 注意層に対する構造枝刈り

4.4 枝刈りの実装

4.5 ReLU活性化関数を用いた適応的な枝刈り

  • 4.5.1 ReLU活性化は構造枝刈りに対応する
  • 4.5.2 ReLU化
  • 4.5.3 疎性予測による適応的な枝刈り(Deja Vu)

4.6 なぜ枝刈りを行うのか・なぜうまくいくのか

  • 4.6.1 宝くじ仮説

4.7 枝刈りの使いどころ

第5章 蒸留

5.1 蒸留の問題設定

5.2 蒸留のアプローチ

  • 5.2.1 応答蒸留
  • 5.2.2 特徴蒸留

5.3 生徒モデルの選び方

5.4 推論に必要なデータの変更

5.5 生成モデルの利用

5.6 事例

5.7 なぜ蒸留でうまくいくのか

5.8 蒸留の使いどころ

第6章 低ランク近似

6.1 低ランク性とは

  • 6.1.1 データとパラメータの低ランク性

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.3.7 正値直交ランダム特徴量とPerformer
  • 6.3.8 ナイストローム近似*
  • 6.3.9 低ランク近似を組み込んだアーキテクチャを使う

第7章 高速なアーキテクチャ

7.1 深さ単位分離可能畳み込み

7.2 高速なトランスフォーマーの亜種

  • 7.2.1 フラッシュアテンション
  • 7.2.2 低ランクなトランスフォーマー
  • 7.2.3 再帰型ニューラルネットワークとトランスフォーマーとMamba
  • 7.2.4 疎なトランスフォー
  • 7.2.5 Reformerと局所性鋭敏型ハッシュ
  • 7.2.6 フーリエ変換を用いたアーキテクチャ

7.3 ニューラルアーキテクチャ探索

7.4 高速なアーキテクチャと圧縮手法の比較

第8章 チューニングのためのツール

8.1 PyTorchプロファイラ

8.2 CPU上のプロファイリング

  • 8.2.1 Intel Vtune Profile
  • 8.2.2 Perf

8.3 GPU上のプロファイリング

  • 8.3.1 nvidia-smi
  • 8.3.2 DLProfとNVIDIA Nsight

第9章 効率的な訓練

9.1 省メモリ化

  • 9.1.1 パラメータ効率的ファインチューニング
  • 9.1.2 勾配チェックポイント

9.2 モデルパラメータの算術

  • 9.2.1 モデルスープ
  • 9.2.2 整合性のないモデルのマージ
  • 9.2.3 タスクベクトル
  • 9.2.4 モデルパラメータとニューラルタンジェントカーネル

著者プロフィール

佐藤竜馬(さとうりょうま)

1996年生まれ。2024年京都大学大学院情報学研究科博士課程修了。博士(情報学)。現在,国立情報学研究所 助教。専門分野はグラフニューラルネットワーク,最適輸送,および情報検索・推薦システム。NeurIPSやICMLなどの国際会議に主著論文が採択。競技プログラミングでは国際情報オリンピック日本代表,ACM-ICPC世界大会出場,AtCoderレッドコーダーなどの戦績をもつ。PDF翻訳サービスReadableを開発し,深層ニューラルネットワークを用いた翻訳システムにも詳しい。著書に『グラフニューラルネットワーク』『最適輸送の理論とアルゴリズム』(ともに講談社)がある。