テンソル並列

Tensor Parallelism

ニューラルネットワークの層の内部にある行列積を分割し、複数の演算器で同時に実行する並列化手法である。単一の演算器の容量に収まらない規模のモデルを扱えるようにする。層単位で分割するパイプライン並列とは直交する関係にあり、両者を組み合わせて用いられることが多い。

詳細

概要

Transformerなどの層の内部にある重み行列を分割し、複数のアクセラレータに割り当てて行列積を分散実行する手法である。層単位で分ける並列化に対して層の内部を分けることから、層内モデル並列とも呼ばれる。

技術的な要点

提案論文は、数十億パラメータ規模のTransformerを学習可能にする単純かつ効率的な層内モデル並列手法として本方式を提示し、コンパイラやライブラリの改変を伴わず、少数の通信操作を挿入するだけで実装できると述べている。同論文は83億パラメータのモデルを512台のGPUで学習し、単一GPU基準に対しておよそ76%のスケーリング効率を得たと報告する。分割した部分行列の計算結果を結合するために集団通信が必要で、演算器間の帯域と遅延が実効性能を決める。パイプラインによるモデル並列とは直交する関係にあり、併用できる。

産業での位置づけ

学習だけでなく推論でも、重みとKVキャッシュを複数チップに分散して遅延を下げる目的で用いられる。新規のAIアクセラレータでは、命令セットとメモリ構成に合わせた通信・カーネル実装の整備が実用性能の前提となる。

分割の粒度が細かいほど通信量が増えるため、モデル構造とハードウェアの構成に応じた分割戦略の探索が必要になる。

このため新規のアクセラレータでは、演算カーネルだけでなく集団通信の実装品質が実効スループットを決める要素になる。