Sequence Parallelismとは
Sequence Parallelismとは、Transformer層の計算や途中メモリを、文章の並び方向に沿って複数GPUへ分ける並列化の方法です。LLMでは、入力文をトークンという細かな単位に分けて処理します。その長い列を一列に抱え込まず、区間ごとに分担する発想です。
テンソル並列の補助線
Sequence Parallelismは、テンソル並列と組み合わせて使われることが多い手法です。テンソル並列が重みや計算を割るのに対し、Sequence Parallelismはシーケンス方向の負荷やアクティベーションメモリを分散します。同じGPU台数でも、何をどう割るかで使えるモデルサイズや効率が変わる点が要点です。
事業側が直接設定する機能ではありませんが、長文対応や大規模学習のコストを見積もる時の背景知識になります。単純に「GPUを増やせばよい」とは言い切れません。通信と分割の設計が効いてくるためです。
Topic単独ではなくテンソル並列と組み合わせる
NVIDIAのガイドでは、Sequence Parallelismはテンソル並列サイズが1より大きい場合に有効と説明されています。つまり、ただ「文章を分ける」スイッチではなく、テンソル並列でモデルを分けたうえで、残るメモリ負担をならすための追加策。並列化は一つの技ではなく、組み合わせの設計なのです。
Sequence Parallelismに関するよくある質問
- この言葉が見積書に出たら何を聞けばよいですか?
- どのモデルで、テンソル並列とどう組み合わせ、何のメモリ負担を下げる設計なのかを確認します。設定名だけでは、費用対効果は判断できません。
- Sequence Parallelismは推論速度を上げる機能ですか?
- 主に学習や大規模計算のメモリ効率と関係します。速度だけを見るのではなく、扱えるシーケンス長、GPUメモリ、通信負荷を合わせて見る必要があります。