병렬화와 스케일링 — 텐서 병렬 선택 기준
병렬화와 스케일링 — 텐서 병렬 선택 기준
단일 모델 복제본을 추론하는 데 어떤 분산 전략을 고를지, vLLM은 명확한 가이드라인을 제시해요.
언제 어떤 병렬을?
- GPU 1장에 들어가면: 분산 추론 불필요. 그 GPU에서 그냥 돌려요.
- GPU 1장에는 안 들어가지만 단일 노드의 여러 GPU에는 들어가면: 텐서 병렬(TP).
- 단일 노드에서 GPU 수가 모델 크기를 균등하게 나누지 못하면: 파이프라인 병렬(PP)로 레이어 단위 분할.
구현 세부
vLLM은 Megatron-LM의 텐서 병렬 알고리즘을 지원해요. 기본 분산 런타임은 단일 노드에서는 파이썬 네이티브 멀티프로세싱, 다중 노드에서는 Ray예요. distributed_executor_backend 로 바꿀 수 있어요.
TP 설정 방법
from vllm import LLM
llm = LLM("facebook/opt-13b", tensor_parallel_size=4)
output = llm.generate("San Francisco is a")
tensor_parallel_size 를 GPU 수로 설정하면 4장으로 모델을 쪼개 추론해요.