AI・機械学習
上級

テンソル並列(Tensor Parallelism)(テンソルへいれつ)

LLMの重み行列を複数GPUに分割して並列計算する推論・学習技術。単一GPUに収まらない大規模モデルを複数デバイスで協調実行し、バンド幅とスループットを向上させる。

0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
テンソル並列
分散推論
マルチGPU
Megatron-LM
LLM推論最適化

テンソル並列(Tensor Parallelism)とは

テンソル並列(Tensor Parallelism、TP)は、LLMの重み行列を複数のGPUに分割して並列計算することで、単一GPUのVRAM限界を超える大規模モデルの推論・学習を可能にする技術です。NVIDIA Megatron-LMによって広く普及し、現代のLLMインフラの基盤となっています。

なぜテンソル並列が必要か

大規模LLMの重みサイズは膨大です。Llama 3 8B(fp16)は約16GB→A100 80GB 1台で可能ですが、Llama 3 70B(fp16)は約140GB→1台では不可能(A100×2台以上必要)です。GPT-4相当(推定1.8T)は数十台のGPUが必要となります。テンソル並列はこの問題を「重み行列の分割」で解決します。

分割方式

列並列(Column Parallelism)

FFN(Feed-Forward Network)の第1層を列方向に分割:

# 元の重み行列 W: [d_model, 4*d_model]
# GPU 0が保持: W[:, :2*d_model](前半の列)
# GPU 1が保持: W[:, 2*d_model:](後半の列)

# 各GPUが独立して部分行列積を計算
output_gpu0 = input @ W_gpu0  # [batch, 2*d_model]
output_gpu1 = input @ W_gpu1  # [batch, 2*d_model]
# 結果を連結: [batch, 4*d_model]

行並列(Row Parallelism)

FFNの第2層を行方向に分割し、All-Reduceで集約:

# 各GPUで部分積を計算
partial_gpu0 = input_gpu0 @ W2_gpu0  # [batch, d_model]
partial_gpu1 = input_gpu1 @ W2_gpu1  # [batch, d_model]

# All-Reduceで全GPUの部分積を合計
output = all_reduce(partial_gpu0 + partial_gpu1)

Attentionのテンソル並列

Multi-Head Attentionはヘッド単位で自然に並列化できます。32ヘッドを4 GPUで分割する場合、各GPU 8ヘッドを担当し、Q/K/V投影をヘッド数で列並列分割します。各GPUで独立してアテンション計算を行い、出力投影でRow Parallelism + All-Reduceを適用します。

vLLMでのテンソル並列設定

from vllm import LLM, SamplingParams

# tensor_parallel_size=4 で4GPU並列
llm = LLM(
    model="meta-llama/Meta-Llama-3-70B-Instruct",
    tensor_parallel_size=4,  # 4 A100 GPUs
    dtype="float16",
    gpu_memory_utilization=0.9
)

sampling_params = SamplingParams(temperature=0.8, max_tokens=512)
outputs = llm.generate(["Explain tensor parallelism"], sampling_params)

TGI(Text Generation Inference)での設定

docker run --gpus all \
  -e HUGGING_FACE_HUB_TOKEN=$HF_TOKEN \
  -p 8080:80 \
  ghcr.io/huggingface/text-generation-inference:latest \
  --model-id meta-llama/Meta-Llama-3-70B-Instruct \
  --num-shard 4 \
  --max-input-length 8192

テンソル並列度の選び方

モデルサイズ別の推奨TP数:7B(fp16)はTP=1でRTX 4090×1、13B(fp16)はTP=1-2でA100 40GB×1、70B(fp16)はTP=4-8でA100 80GB×2-4、405B(fp16)はTP=8-16でH100 80GB×12。

制約: TP数はアテンションヘッド数の約数でなければならない(32ヘッドモデルはTP=1,2,4,8,16,32のみ有効)。

他の並列手法との組み合わせ

実際の大規模推論では複数の並列戦略を組み合わせます。Tensor Parallelism(重み行列の分割・All-Reduce通信)、Pipeline Parallelism(レイヤーの分割・P2P通信)、Data Parallelism(バッチの分割・All-Reduce通信)の3D並列で、例えばTP=8, PP=4, DP=2で64 GPU構成を実現できます。

テンソル並列は現代の大規模LLM推論インフラの基盤技術です。vLLM・TGI・TensorRT-LLMなどの推論エンジンは自動的にテンソル並列を適用し、マルチGPU環境でのスループットを最大化します。

この記事について
カテゴリーAI・機械学習
難易度上級
作成日2026/6/7