← 概念解説に戻る

Concept Fable

テンソル並列

先に結論:テンソル並列は、単一の重み行列またはテンソル演算を複数のGPUに分割する。各デバイスが同じ層の一部を計算し、通信を通じて結果を統合する。

Tensor Parallelism · Distributed inference

まず物語を読む。ここでは急いで定義を示さず、まず問題そのものを立ち上がらせる。

寓話

巨大な臼は四つの水車に分けられ、同時に回った

谷には巨大な臼があり、臼の盤は一頭の馬でも引けないほど大きかった。昔、製粉所は小麦だけを挽いていたので、小さな臼盤で十分で、水路も簡単だった。

後に町では硬い穀物を挽く必要があり、巨大な臼盤を使わなければならなかった。単一の水車では動かせず、臼盤を一箇所に留めれば製粉所全体が操業停止になる。主人はまず馬が強くないせいだと考え、次に太い縄に替えた。縄は二度切れ、水車小屋も傾き、巨大な臼はまだ半回転しか動かなかった。

坊主はまず穀物を四つの山に分け、四人の小さな臼にそれぞれ処理させました。しかし硬い穀物には同じ一套の大きな臼の目が必要で、小さな臼で挽いた粉は粗さが不揃いで、一緒に使えませんでした。

彼はさらに四つの水車に交代で巨大な臼を引かせた。どの水車も疲れたが、臼は止まったり進んだりし、粉の道も粗くなったり細くなったりした。交代で引くとき、各水車は自分の番こそ力を使うべきだと思い、前の力が引くと次の力がまだつながっていない。穀物はその隙間で押しつぶされた。

老いた機械職人は巨大な臼の歯車環を四段に分け、それぞれの水車が一段分の力を担った。四段は同時にかみ合い、同期して回り、最後に同じ円の中で完全な圧搾を合成しなければならない。

これは水路の信号が精確であることを要求する。どれか一つの水車が半拍遅れれば、盤全体が震える。粉ひき場はそのために同期杆と反響鈴を加え、四段の力が同じ瞬間に揃うようにした。同期杆は最初うまく調整できず、四段の歯車環が互いに力を奪い合った。老機械匠は各水車をまず空転させて拍を合わせ、次に少量の穀物を投入し、振動が制御可能な範囲に収まることを確認させた。

巨大な臼はついに回り始めた。どの水車も磨盤全体を単独で所有しているわけではないが、それぞれが自分の分担を正しく計算し、合わせれば完全な仕事になる。坊主は分割の代价も計算することを学んだ。巨大な臼の分割が少なすぎれば、個々の水車は依然として苦しい。細かく分けすぎれば、同期棒とエコーベルが利益を食いつぶす。大きな仕事を切り分ける前に、まず合わせたときのコストを知る必要がある。後に巨大な臼は夜間注文を受け、水路の圧力変化はさらに大きくなった。粉ひき場は各歯車リングのそばに見張りを置き、どの区間が過熱し、どの区間が拍子を外したかを見つけると、すぐに水を調整した。共同で成し遂げる大きな仕事には、切り分けと継続的な調整の両方が必要だ。

坊主は理解した。大きすぎる仕事は必ずしも一つの機関に詰め込む必要はない。同じ層の力を切り分け、複数の機関に共同で完成させればよい。

明らかにする

この物語が語っているのは:テンソル並列

テンソル並列は、単一の重み行列またはテンソル演算を複数のGPUに分割する。各デバイスが同じ層の一部を計算し、通信を通じて結果を統合する。

単一の GPU に収まらない、または動かせない超大規模モデルを複数デバイスで動かせるが、同期と通信のオーバーヘッドを招く。モデルが大きいほど、デバイスが多いほど、通信設計が重要になる。

メタファーのマッピング

  • 巨大な挽き臼:単層内の巨大な重み行列またはテンソル演算
  • 四つの水車:複数の GPU
  • 歯車リングを四段に分ける:同じ層の計算を異なるデバイスに分割する
  • 同期バーとエコーベル:GPU間の通信と同期
  • 四つの小さな臼がそれぞれ勝手に失敗する:単純なデータ分割ではモデル層が大きすぎる問題を解決できない
  • 完全圧倒:partial results をマージして層出力を得る

Andy(任旭)判断

この概念の実戦的価値は、「賢く見えるAI機能」を納品可能、検収可能、ガバナンス可能な作業単位に分解する手助けをすることです。

パイプライン並列モデル並列分散推論Megatron
京ICP备2026014272号