シラバス

  1. エッジコンピューティング
  2. 分散処理
    • ⅰ.並列分散処理
      分散深層学習、モデル並列化、データ並列化
  3. アクセラレータ
    • ⅰ.デバイスによる高速化
      単一命令列複数データ (SIMD; Single Instruction Multiple Data)、
      単一命令複数スレッド (SIMT; Single Instruction Multiple Thread)、
      複数命令列複数データ (MIMD; Multiple Instruction Multiple Data)、
      GPU (Graphics Processing Unit)、
      TPU (Tensor Processing Unit)
  4. 環境構築
    • ⅰ.コンテナ型仮想化
      仮想化環境、ホスト型、ハイパーバイザー型、コンテナ型、Docker、 Dockerfile

1. モデルの軽量化(エッジコンピューティング)

手法 内容 ポイント
プルーニング(枝刈り) 重要度の低い重み・ニューロンを削除する モデルの構造そのものを削る
蒸留(Distillation) 大きい教師モデルの出力(ソフトターゲット)を、小さい生徒モデルに学習させる 「真似させる」ことで小型化
量子化(Quantization) 重みの数値表現を32bit浮動小数点→8bit整数などに落とす メモリ・計算量を削減、精度は若干低下

上記で共通する目的は推論を高速化し、エッジデバイス(スマホ・組み込み機器等)でも動かせるようにすることです。

2. 分散処理

手法 内容 使いどころ
データ並列化 同じモデルを複数デバイスに複製し、データを分割して学習 学習を高速化したいとき
モデル並列化 1つのモデルを複数デバイスに分割して配置 モデルが大きすぎて1台のメモリに乗らないとき
  • メモリに乗り切らない巨大モデル → モデル並列
  • 学習速度を上げたい → データ並列

3. アクセラレータ

分類 意味
SIMD(単一命令列複数データ) 1つの命令で複数のデータを同時処理
SIMT(単一命令複数スレッド) GPUのアーキテクチャに近い、複数スレッドが同じ命令を実行
MIMD(複数命令列複数データ) 複数の命令列が独立して複数のデータを処理(一般的な並列コンピュータ)
デバイス 特徴
GPU 汎用の並列演算に強い(元は画像処理用)
TPU Googleが開発した、行列演算(テンソル演算)に特化したASIC

試験の定番:SIMD/SIMT/MIMDの定義の対比、GPUとTPUの用途の違い

4. 環境構築(仮想化)

種類 特徴
ホスト型 ホストOS上に仮想化ソフトを載せ、その上でゲストOSを動かす(オーバーヘッド大)
ハイパーバイザー型 ハードウェア上に直接ハイパーバイザーを配置し、ゲストOSを動かす(オーバーヘッド小)
コンテナ型 OSのカーネルを共有し、プロセスを隔離するだけ(軽量・起動が速い)
  • Docker:コンテナ型仮想化の代表的なツール。Dockerfileに環境構築の手順を記述してイメージを作成する

試験の定番:「OSごと仮想化するか(ホスト型/ハイパーバイザー型)」vs「OSは共有し、プロセスだけ隔離するか(コンテナ型)」という対比、コンテナ型が軽量な理由(カーネル共有)

全体の覚え方の軸

  • 軽量化:モデル自体を小さくする(削る/真似させる/精度を落とす)
  • 分散処理:学習を複数デバイスに分担させる(データを割るか、モデルを割るか)
  • アクセラレータ:計算を並列化するハードウェアの分類と代表デバイス
  • 環境構築:仮想化のレイヤーの違い(OSごとか、カーネル共有か)