본문으로 건너뛰기
Kreath Archive
TechProjectsBooksAbout
TechProjectsBooksAbout

내비게이션

  • Tech
  • Projects
  • Books
  • About
  • Tags

카테고리

  • AI / ML
  • 웹 개발
  • 프로그래밍
  • 개발 도구

연결

  • GitHub
  • Email
  • RSS
© 2026 Kreath Archive. All rights reserved.Built with Next.js + MDX
홈TechProjectsBooksAbout
//
  1. 홈
  2. 테크
  3. 8장: 모델 병렬화와 분산 추론
2026년 3월 30일·AI / ML·

8장: 모델 병렬화와 분산 추론

텐서 병렬화, 파이프라인 병렬화, 시퀀스 병렬화, Expert 병렬화의 원리를 분석하고, 멀티 GPU 추론 전략과 클러스터 수준 최적화를 다룹니다.

17분411자9개 섹션
llmaiperformancemlops
공유
llm-inference8 / 10
12345678910
이전7장: 양자화 추론 — FP8, INT8, INT4다음9장: 비용 vs 지연시간 트레이드오프

이 장에서 배우는 것

  • 텐서 병렬화(TP)의 원리와 통신 오버헤드
  • 파이프라인 병렬화(PP)의 마이크로배치 스케줄링
  • 시퀀스 병렬화(SP)와 긴 컨텍스트 처리
  • Expert 병렬화와 MoE 모델의 분산 추론
  • 멀티 GPU 전략 수립과 분산 KV 캐시

왜 분산 추론이 필요한가

7장의 양자화로 모델 크기를 줄일 수 있지만, 여전히 단일 GPU에 담을 수 없는 모델이 존재합니다.

모델별 GPU 메모리 요구량 (FP8 기준)
text
모델              | 가중치 메모리 | 필요 GPU (H100 80GB)
Llama 3 8B        | ~8 GB        | 1개
Llama 3 70B       | ~70 GB       | 1개 (KV 캐시 여유 적음)
Llama 3.1 405B    | ~405 GB      | 6개 이상
GPT-4급 (추정)    | ~800 GB+     | 10개 이상
MoE 대형 모델     | ~1 TB+       | 12개 이상

단일 GPU에 모델이 담기더라도, KV 캐시를 위한 메모리와 동시 처리 요청 수를 확보하기 위해 여러 GPU에 분산하는 것이 실용적인 경우가 많습니다.

**모델 병렬화(Model Parallelism)**는 모델을 여러 GPU에 나누어 배치하고, GPU 간 통신으로 하나의 모델처럼 동작하게 하는 기법입니다.

텐서 병렬화 (Tensor Parallelism, TP)

**텐서 병렬화(TP)**는 개별 레이어의 행렬 연산을 여러 GPU에 분할하는 방식입니다. 가장 널리 사용되는 분산 추론 전략이며, 특히 지연시간에 민감한 서빙에 적합합니다.

행렬 분할 원리

트랜스포머의 핵심 연산인 행렬 곱셈 Y = XW에서, 가중치 행렬 W를 열 방향 또는 행 방향으로 분할해 여러 GPU에 배치합니다.

열 방향 분할 (Column Parallel)
text
GPU 0: Y_0 = X * W_0   (W의 왼쪽 절반)
GPU 1: Y_1 = X * W_1   (W의 오른쪽 절반)
최종: Y = [Y_0, Y_1]   (결과 연결)
행 방향 분할 (Row Parallel)
text
GPU 0: Y_0 = X_0 * W_0  (X와 W 모두 분할)
GPU 1: Y_1 = X_1 * W_1
최종: Y = Y_0 + Y_1     (결과 합산 = AllReduce)

트랜스포머의 Attention 블록과 FFN 블록에 이 두 가지 분할을 교차 적용합니다.

통신 오버헤드

TP의 핵심 비용은 GPU 간 AllReduce 통신입니다. 각 레이어마다 2번의 AllReduce가 필요하며, 이 통신이 연산과 겹치지 않으면 지연시간이 증가합니다.

TP 통신 비용
text
레이어당 AllReduce 횟수: 2 (Attention 후 + FFN 후)
AllReduce 데이터량: 배치크기 x 시퀀스길이 x 히든차원 x 바이트수
80레이어 모델: 160회 AllReduce / Forward Pass

따라서 TP는 GPU 간 통신 대역폭이 높은 환경에서 효과적입니다.

연결 방식대역폭TP 적합성
NVLink (같은 노드)600-900 GB/s매우 적합
PCIe 5.0~64 GB/s제한적
InfiniBand (노드 간)~50-100 GB/s부적합
Warning

텐서 병렬화는 NVLink로 연결된 같은 노드 내의 GPU에서만 사용하는 것이 권장됩니다. 노드 간 TP는 통신 지연이 너무 커서 단일 요청의 지연시간이 오히려 증가합니다.

TP 도(Degree) 선택

TP의 GPU 수(TP 도)는 보통 2, 4, 8 중에서 선택합니다.

TP 도 선택 가이드
text
모델 크기   | 권장 TP 도 | 이유
8-13B       | 1 (불필요) | 단일 GPU에 충분
30-70B      | 2-4       | 가중치 분산 + KV 캐시 공간 확보
100-200B    | 4-8       | 단일 GPU에 부적합
400B+       | 8 + PP    | TP만으로 불충분, PP 병행

파이프라인 병렬화 (Pipeline Parallelism, PP)

**파이프라인 병렬화(PP)**는 모델의 레이어를 순차적으로 여러 GPU에 배치하는 방식입니다. GPU 0이 레이어 0-19, GPU 1이 레이어 20-39를 담당하는 식입니다.

PP=4 배치 (80레이어 모델)
text
GPU 0: 레이어 0-19   (Stage 0)
GPU 1: 레이어 20-39  (Stage 1)
GPU 2: 레이어 40-59  (Stage 2)
GPU 3: 레이어 60-79  (Stage 3)
 
데이터 흐름: GPU 0 → GPU 1 → GPU 2 → GPU 3

PP의 장단점

PP는 TP에 비해 통신이 적습니다. 레이어 간 전달은 히든 스테이트(Hidden State) 하나만 다음 GPU로 보내면 되므로, AllReduce보다 데이터량이 훨씬 작습니다.

하지만 파이프라인 버블(Pipeline Bubble) 문제가 있습니다. 순차적으로 데이터가 흘러가므로, 앞쪽 Stage가 처리하는 동안 뒤쪽 Stage는 유휴 상태가 됩니다.

파이프라인 버블 (단순 구현)
text
시간 →
GPU 0: [====]            [====]
GPU 1:       [====]            [====]
GPU 2:             [====]            [====]
GPU 3:                   [====]            [====]
           ↑ 버블 (유휴)  ↑

마이크로배치로 버블 최소화

배치를 여러 **마이크로배치(Microbatch)**로 나누어 파이프라인에 연속 투입하면 버블을 줄일 수 있습니다.

마이크로배치 파이프라인 (4 마이크로배치)
text
시간 →
GPU 0: [M1][M2][M3][M4]
GPU 1:    [M1][M2][M3][M4]
GPU 2:       [M1][M2][M3][M4]
GPU 3:          [M1][M2][M3][M4]

마이크로배치 수가 많을수록 버블 비율이 줄어들지만, 추론에서는 학습만큼 큰 배치를 쓰기 어렵기 때문에 PP의 효율은 학습 대비 다소 낮습니다.

Info

프로덕션 추론에서 PP는 주로 TP와 결합해 사용합니다. 예를 들어 405B 모델을 8개 GPU로 서빙할 때, TP=4 x PP=2로 구성하면 노드 내에서는 NVLink 기반 TP, 노드 간에는 PP를 사용해 통신 효율을 최적화할 수 있습니다.

시퀀스 병렬화 (Sequence Parallelism, SP)

**시퀀스 병렬화(SP)**는 긴 입력 시퀀스를 여러 GPU에 나누어 병렬 처리하는 방식입니다. 특히 128K 이상의 긴 컨텍스트를 처리할 때, 단일 GPU의 메모리로는 KV 캐시를 감당하기 어려운 경우에 유용합니다.

SP는 주로 TP와 함께 적용됩니다. TP가 모델 차원을 분할한다면, SP는 시퀀스 차원을 분할합니다. LayerNorm이나 Dropout 같이 TP에서 복제되는 연산을 시퀀스 차원으로 분할해 메모리를 절약합니다.

TP + SP 조합
text
TP: 행렬 곱셈을 GPU 간 분할 (모델 차원)
SP: LayerNorm, Dropout 등을 GPU 간 분할 (시퀀스 차원)
→ 두 차원 모두에서 메모리 절약

Ring Attention

Ring Attention은 SP의 확장으로, Attention 연산 자체를 시퀀스 차원으로 분할합니다. 각 GPU가 시퀀스의 일부를 담당하고, KV 블록을 링(Ring) 형태로 순환시키며 Attention을 계산합니다.

이를 통해 단일 GPU 메모리의 한계를 넘어 100만 토큰 이상의 초장문 컨텍스트를 처리할 수 있습니다.

Expert 병렬화와 MoE

MoE(Mixture of Experts) 모델은 전체 파라미터 중 일부(Expert)만 활성화하여 연산 효율을 높이는 아키텍처입니다. Mixtral, DeepSeek-V3 등이 대표적입니다.

Expert 병렬화 (EP)

MoE 모델에서 각 Expert를 서로 다른 GPU에 배치하는 것이 **Expert 병렬화(EP)**입니다.

EP 구조 (8 Experts, 4 GPU)
text
GPU 0: Expert 0, Expert 1
GPU 1: Expert 2, Expert 3
GPU 2: Expert 4, Expert 5
GPU 3: Expert 6, Expert 7
 
라우팅: 각 토큰이 Top-2 Expert로 라우팅
→ All-to-All 통신으로 토큰을 적절한 GPU로 전송

EP의 핵심 통신은 All-to-All 연산입니다. 라우터(Router)가 각 토큰의 Expert를 결정하면, 토큰을 해당 Expert가 위치한 GPU로 전송합니다.

MoE 추론의 특수성

MoE 모델의 추론에는 Dense 모델과 다른 고려사항이 있습니다.

  • 메모리: 전체 Expert 가중치를 로드해야 하므로, 실제 활성 파라미터 대비 메모리 사용량이 큽니다
  • 부하 불균형: 특정 Expert에 토큰이 집중되면 해당 GPU만 과부하가 걸립니다
  • 통신량: All-to-All 통신이 배치 크기와 Expert 수에 비례해 증가합니다
Tip

MoE 모델의 분산 추론에서는 EP와 TP를 결합하는 것이 일반적입니다. Attention 레이어는 TP로, FFN(Expert) 레이어는 EP로 분산하면, 각 레이어 유형에 최적화된 병렬화를 적용할 수 있습니다.

멀티 GPU 전략 수립

실제 프로덕션에서 병렬화 전략을 수립할 때의 의사결정 과정을 정리합니다.

단계별 결정 프로세스

병렬화 전략 결정 흐름
text
1. 모델이 단일 GPU에 들어가는가?
   → 예: TP/PP 불필요, 레플리카 방식 스케일
   → 아니오: 2단계로
 
2. 같은 노드의 GPU 수로 충분한가?
   → 예: TP만 사용 (NVLink 활용)
   → 아니오: 3단계로
 
3. 다중 노드가 필요
   → 노드 내: TP (NVLink)
   → 노드 간: PP (InfiniBand)
   → MoE 모델: EP 추가

전형적인 구성 예시

모델하드웨어구성
Llama 3 70B (FP8)H100 x 1TP=1
Llama 3 70B (FP16)H100 x 2TP=2
Llama 3.1 405B (FP8)H100 x 8TP=8
Llama 3.1 405B (FP8)H100 x 8 (2노드x4)TP=4, PP=2
DeepSeek-V3 MoEH100 x 16TP=4, EP=4

분산 KV 캐시

멀티 GPU 환경에서 KV 캐시도 분산됩니다.

TP 환경에서는 각 GPU가 KV 캐시의 일부(자신이 담당하는 KV 헤드)를 저장합니다. GQA 모델에서 KV 헤드 수가 TP 도보다 적으면, 일부 GPU가 동일한 KV 헤드를 복제해야 하는 비효율이 발생할 수 있습니다.

PP 환경에서는 각 Stage의 GPU가 자신의 레이어에 해당하는 KV 캐시를 저장합니다. 이 경우 KV 캐시가 자연스럽게 분산되어 단일 GPU의 메모리 부담이 줄어듭니다.

분산 KV 캐시 메모리 계산
text
Llama 3.1 405B, TP=8, FP8 KV 캐시, 8K 컨텍스트:
 
전체 KV 캐시: 2 x 126레이어 x 8 KV헤드 x 128 dim x 8192 seq x 1 byte
            = ~16.1 GB / 요청
 
GPU당 KV 캐시 (TP=8): ~2 GB / 요청
→ GPU당 KV 여유 공간 약 20GB → 동시 약 10개 요청 처리 가능

정리

이 장에서는 모델 병렬화와 분산 추론의 원리와 전략을 분석했습니다.

  • 텐서 병렬화(TP)는 레이어 내부를 분할해 지연시간에 민감한 서빙에 적합하며, NVLink 환경이 필수입니다
  • 파이프라인 병렬화(PP)는 레이어를 순차적으로 분할해 노드 간 분산에 활용되며, 마이크로배치로 버블을 줄입니다
  • Expert 병렬화(EP)는 MoE 모델에 특화되어, All-to-All 통신으로 토큰을 Expert에 라우팅합니다
  • 실제 배포에서는 TP, PP, EP를 조합해 하드웨어 토폴로지에 맞는 최적 구성을 찾습니다

다음 장에서는 이 모든 기술적 선택이 비용으로 어떻게 연결되는지 분석합니다. GPU 선택, 클라우드 vs 온프레미스, 배칭 전략이 비용과 지연시간에 미치는 영향을 정량적으로 살펴보겠습니다.

이 글이 도움이 되셨나요?

관련 주제 더 보기

#llm#ai#performance#mlops

관련 글

AI / ML

9장: 비용 vs 지연시간 트레이드오프

GPU 선택, 클라우드 vs 온프레미스, 배칭 전략이 비용과 지연시간에 미치는 영향을 분석하고, SLO 기반 최적화와 비용 모델링 방법을 다룹니다.

2026년 4월 1일·16분
AI / ML

7장: 양자화 추론 — FP8, INT8, INT4

양자화의 기초 개념부터 FP8의 부상, W8A8/W4A16 전략, GPTQ/AWQ/SmoothQuant 기법, KV 캐시 양자화까지 정확도와 성능의 트레이드오프를 분석합니다.

2026년 3월 28일·16분
AI / ML

10장: 프로덕션 추론 최적화 실전

FP8, FlashAttention 3, Continuous Batching, Speculative Decoding을 조합해 5-8배 비용 효율을 달성하는 실전 배포 파이프라인과 모니터링 전략을 다룹니다.

2026년 4월 3일·20분
이전 글7장: 양자화 추론 — FP8, INT8, INT4
다음 글9장: 비용 vs 지연시간 트레이드오프

댓글

목차

약 17분 남음
  • 이 장에서 배우는 것
  • 왜 분산 추론이 필요한가
  • 텐서 병렬화 (Tensor Parallelism, TP)
    • 행렬 분할 원리
    • 통신 오버헤드
    • TP 도(Degree) 선택
  • 파이프라인 병렬화 (Pipeline Parallelism, PP)
    • PP의 장단점
    • 마이크로배치로 버블 최소화
  • 시퀀스 병렬화 (Sequence Parallelism, SP)
    • Ring Attention
  • Expert 병렬화와 MoE
    • Expert 병렬화 (EP)
    • MoE 추론의 특수성
  • 멀티 GPU 전략 수립
    • 단계별 결정 프로세스
    • 전형적인 구성 예시
  • 분산 KV 캐시
  • 정리