流水线并行¶
流水线并行是一种分布式模型并行化技术,它将模型的层垂直分割,并将模型的不同部分分布到多个设备上。当模型单独使用张量并行无法容纳在单个节点上,需要多节点设置时,这种方法尤其有用。在这种情况下,模型的层可以跨越多个节点进行分割,允许每个节点处理模型的一部分。例如,如果您有两个节点,每个节点都配备了 8 个 HPU,您不再需要设置 tensor_parallel_size=16。相反,您可以配置 tensor_parallel_size=8 和 pipeline_parallel_size=2。
以下示例展示了如何在 HPU 上将流水线并行与 vLLM 结合使用
vllm serve <model_path> --device hpu --tensor-parallel-size 8 --pipeline_parallel_size 2 --distributed-executor-backend ray
由于流水线并行在每个设备上运行 pp_size 个虚拟引擎,因此您必须相应地降低 max_num_seqs,因为它充当每个虚拟引擎的微批次。
目前,延迟模式下的流水线并行需要 PT_HPUGRAPH_DISABLE_TENSOR_CACHE=0 标志。