Pipeline parallelism (–pipeline-parallel-size, -pp) în vLLM & Infrastructură LLM

Scalare GPU, Hardware și Cuantizare vLLM 0.32.0 (octombrie 2026)

Împarte straturile modelului pe mai multe GPU-uri sau noduri, care le procesează în secvență.

Sintaxă & invocare
--pipeline-parallel-size N | -pp N

Ce face Pipeline parallelism (--pipeline-parallel-size, -pp)

Pipeline parallelism distribuie straturile modelului pe mai multe GPU-uri; fiecare GPU procesează altă parte a modelului, în ordine. Documentația îl recomandă când tensor parallelism nu mai ajunge sau trebuie să treci pe mai multe noduri, și pentru modele adânci și înguste.

Pe mai multe noduri, practica obișnuită: tensor parallel size = GPU-uri per nod, pipeline parallel size = numărul de noduri (de exemplu 8 și 2 pentru două noduri cu câte 8 GPU-uri). Pipeline parallelism suportă și împărțiri neuniforme; pe un nod cu GPU-uri fără NVLink (de exemplu L40S) documentația îl recomandă în locul TP.

Runtime-ul pe mai multe noduri poate fi Ray (--distributed-executor-backend ray) sau multiprocessing, cu --nnodes, --node-rank și --master-addr. vllm preload nu acceptă pipeline parallelism.

Sintaxă și opțiuni

Opțiune / Parametru Descriere
--pipeline-parallel-size, -pp Numărul de grupuri pipeline parallel. Implicit 1.
--nnodes, -n / --node-rank, -r Numărul de noduri și rangul nodului curent (backend mp).
--master-addr / --master-port Adresa și portul nodului principal (implicit 127.0.0.1 și 29501).
--headless Pe nodurile secundare: fără server API.
--distributed-executor-backend mp sau ray.

Exemple practice

Exemplul 1: 8 GPU-uri pe un nod: TP 4 × PP 2

# Eight GPUs total
vllm serve gpt2 \
     --tensor-parallel-size 4 \
     --pipeline-parallel-size 2

Exemplul 2: Două noduri cu Ray

vllm serve /path/to/the/model/in/the/container \
    --tensor-parallel-size 8 \
    --pipeline-parallel-size 2 \
    --distributed-executor-backend ray

Exemplul 3: Două noduri cu multiprocessing

Prima comandă pe nodul principal, a doua pe celălalt nod.

vllm serve /path/to/the/model/in/the/container \
  --tensor-parallel-size 8 --pipeline-parallel-size 2 \
  --nnodes 2 --node-rank 0 \
  --master-addr <HEAD_NODE_IP>

vllm serve /path/to/the/model/in/the/container \
  --tensor-parallel-size 8 --pipeline-parallel-size 2 \
  --nnodes 2 --node-rank 1 \
  --master-addr <HEAD_NODE_IP> --headless

Greșeli frecvente și bune practici

  • Rulezi noduri cu medii diferite. Documentația cere același mediu pe toate nodurile (calea modelului, pachetele Python); imaginile de container ajută.
  • Lași traficul dintre noduri pe o rețea publică. Datele nu sunt criptate și pot fi exploatate; setează VLLM_HOST_IP pe o rețea privată.

Comenzi înrudite