쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

모델 병렬 처리 개념

포커스 모드
모델 병렬 처리 개념 - Amazon SageMaker AI

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

모델 병렬화는 여러 GPU 및 인스턴스에 걸쳐 딥 러닝(DL) 모델을 분할하는 분산 훈련 방법입니다. SageMaker 모델 병렬 라이브러리 v2(SMP v2)는 기본 PyTorch API 및 기능과 호환됩니다. 따라서 PyTorch 완전 샤딩된 데이터 병렬(FSDP) 훈련 스크립트를 SageMaker 훈련 플랫폼에 쉽게 적용하고 SMP v2가 제공하는 성능 개선 기능을 활용할 수 있습니다. 이 소개 페이지에서는 모델 병렬 처리에 대한 개략적인 개요와 일반적으로 크기가 매우 큰 딥 러닝(DL) 모델을 훈련할 때 발생하는 문제를 극복하는 데 도움이 되는 방법에 대해 설명합니다. 또한 SageMaker 모델 병렬 라이브러리가 모델 병렬 전략 및 메모리 소비를 관리하는 데 도움이 되는 제공 사항의 예를 제공합니다.

모델 병렬이란 무엇입니까?

딥러닝 모델(계층 및 파라미터)의 크기를 늘리면 컴퓨터 비전 및 자연어 처리와 같은 복잡한 작업의 정확도가 향상됩니다. 그러나 단일 GPU의 메모리에 담을 수 있는 최대 모델 크기에는 제한이 있습니다. DL 모델을 훈련할 때 GPU 메모리 제한으로 인해 다음과 같은 방식으로 병목 현상이 발생할 수 있습니다.

  • 모델의 메모리 사용량은 파라미터 수에 비례하여 확장되기 때문에 훈련할 수 있는 모델의 크기가 제한됩니다.

  • 이는 훈련 중에 GPU당 배치 크기를 제한하여 GPU 사용률과 훈련 효율성을 낮춥니다.

SageMaker AI는 단일 GPU에서 모델 훈련과 관련된 제한을 극복하기 위해 모델 병렬 라이브러리를 제공하여 여러 컴퓨팅 노드에서 DL 모델을 효율적으로 배포하고 훈련할 수 있도록 지원합니다. 또한 라이브러리를 사용하면 EFA 지원 장치를 사용하여 최적화된 분산 훈련을 수행할 수 있으며, 이를 통해 짧은 지연 시간, 높은 처리량 및 OS 바이패스로 노드 간 통신의 성능을 향상시킬 수 있습니다.

모델 병렬화를 사용하기 전에 메모리 요구 사항 예측

SageMaker 모델 병렬 라이브러리를 사용하기 전에 다음을 고려하여 대규모 DL 모델을 훈련시키는 데 필요한 메모리 요구 사항을 파악하세요.

float16(FP16) 또는 bfloat16(BF16) 같은 자동 혼합 정밀도 및 Adam 옵티마이저를 사용하는 훈련 작업의 경우 파라미터당 필요한 GPU 메모리는 약 20바이트이며, 이를 다음과 같이 분류할 수 있습니다.

  • FP16 또는 BF16 파라미터는 최대 2바이트입니다.

  • FP16 또는 BF16 그래디언트는 최대 2바이트입니다.

  • Adam 옵티마이저를 기반으로 하는 FP32 옵티마이저 상태 ~ 8바이트

  • 최대 4바이트의 파라미터 FP32 사본(optimizer apply(OA) 작업에 필요)

  • 4바이트까지의 그래디언트의 FP32 복사본 (OA 작업에 필요)

100억 개의 파라미터가 있는 비교적 작은 DL 모델의 경우에도 최소 200GB의 메모리가 필요할 수 있는데, 이는 단일 GPU에서 사용할 수 있는 일반적인 GPU 메모리(예: 40GB/80GB 메모리가 탑재된 NVIDIA A100)보다 훨씬 큰 용량입니다. 모델 및 옵티마이저 상태에 대한 메모리 요구 사항 외에도 포워드 패스에서 생성되는 활성화와 같은 다른 메모리 소비자도 있습니다. 필요한 메모리는 200GB를 훨씬 넘을 수 있습니다.

분산 훈련의 경우 각각 NVIDIA A100 및 H100 텐서 코어 GPU가 있는 Amazon EC2 P4 및 P5 인스턴스를 사용하는 것이 좋습니다. CPU 코어, RAM, 연결된 스토리지 볼륨, 네트워크 대역폭과 같은 사양에 대한 자세한 내용은 Amazon EC2 인스턴스 유형 페이지의 가속 컴퓨팅 섹션을 참조하세요. SMP v2에서 지원하는 인스턴스 유형은 섹션을 참조하세요지원되는 인스턴스 유형.

가속화된 컴퓨팅 인스턴스를 사용하더라도 MegaTron-LM 및 T5와 같이 약 100억 개의 파라미터가 있는 모델이나 GPT-3 같이 수천억 개의 파라미터를 사용하는 더 큰 모델조차도 각 GPU 디바이스의 모델 복제본에 맞지 않습니다.

라이브러리가 모델 병렬화 및 메모리 절약 기법을 사용하는 방법

라이브러리는 다양한 유형의 모델 병렬 처리 기능과 옵티마이저 상태 샤딩, 활성화 체크포인트, 활성화 오프로드 등의 메모리 절약 기능으로 구성되어 있습니다. 이러한 모든 기술을 결합하여 수천억 개의 파라미터로 구성된 대형 모델을 효율적으로 훈련시킬 수 있습니다.

샤딩된 데이터 병렬 처리

샤드 있는 데이터 병렬화는 데이터 병렬 그룹 내의 GPU에서 모델 상태(모델 파라미터, 그래디언트, 옵티마이저 상태)를 분할하는 메모리 절약형 분산 훈련 기법입니다.

SMP v2는 FSDP를 통해 샤딩된 데이터 병렬 처리를 구현하고 확장하여 AWS에서 대형 모델의 선형에 가까운 스케일링 훈련시키기 블로그 게시물에서 논의된 규모 인식 하이브리드 샤딩 전략을 구현합니다.

샤딩된 데이터 병렬화를 독립형 전략으로 모델에 적용할 수 있습니다. 또한 NVIDIA A100 Tensor Core GPU(ml.p4d.24xlargeml.p4de.24xlarge)가 장착된 가장 성능이 좋은 GPU 인스턴스를 사용하는 경우 SageMaker 데이터 병렬 처리(SMDDP) 라이브러리에서 제공하는 AllGather 작업을 통해 에서 향상된 훈련 속도를 활용할 수 있습니다.

분할된 데이터 병렬화에 대해 자세히 알아보고 분할된 데이터 병렬화를 설정하거나 텐서 병렬화 및 혼합 정밀도 훈련과 같은 다른 기술과 함께 사용하는 방법을 알아보려면 하이브리드 샤딩 데이터 병렬 처리 섹션을 참조하세요.

전문가 병렬 처리

SMP v2는 NVIDIA Megatron과 통합되어 기본 PyTorch FSDP API에 대한 지원 외에도 전문가 병렬 처리 구현합니다. PyTorch FSDP 훈련 코드를 그대로 유지하고 SageMaker AI 내에서 전문가 혼합(MoE) 모델을 훈련하기 위해 SMP 전문가 병렬 처리를 적용할 수 있습니다.MoE

MoE 모델은 여러 전문가로 구성된 변압기 모델 유형으로, 각각 신경망, 일반적으로 피드 포워드 네트워크(FFN)로 구성됩니다. 라우터라는 게이트 네트워크는 어떤 토큰이 어떤 전문가에게 전송되는지 결정합니다. 이러한 전문가는 입력 데이터의 특정 측면을 전문적으로 처리하여 모델을 더 빠르게 훈련하고 컴퓨팅 비용을 절감하는 동시에 대응 고밀도 모델과 동일한 성능 품질을 달성할 수 있습니다. 또한 전문가 병렬 처리는 GPU 디바이스에서 MoE 모델의 전문가를 분할하는 병렬 처리 기법입니다.

SMP v2를 사용하여 MoE 모델을 훈련하는 방법을 알아보려면 섹션을 참조하세요전문가 병렬 처리.

텐서 병렬화

텐서 병렬 처리는 개별 계층(nn.Modules)을 분할하거나 디바이스 간에 병렬로 실행되도록 합니다. 다음 그림은 라이브러리가 모델을 네 개의 계층으로 분할하여 양방향 텐서 병렬 처리("tensor_parallel_degree": 2)를 달성하는 방법의 가장 간단한 예를 보여줍니다. 다음 그림에서 모델 병렬 그룹, 텐서 병렬 그룹 및 데이터 병렬 그룹에 대한 표기법은 TP_GROUP DP_GROUP 각각 MP_GROUP, 및 입니다. 각 모델 복제본의 계층은 이등분되어 두 개의 GPU로 분산됩니다. 라이브러리는 텐서 분산 모델 복제본 간의 통신을 관리합니다.

SMP 라이브러리가 모델을 4개의 계층으로 분할하여 양방향 텐서 병렬화('tensor_parallel_degree': 2)를 달성하는 방법에 대한 가장 간단한 예입니다.

PyTorch의 텐서 병렬 처리 및 기타 메모리 절약 기능에 대해 자세히 알아보고 핵심 기능의 조합을 설정하는 방법을 알아보려면 텐서 병렬화 섹션을 참조하세요.

활성화 체크포인트 및 오프로드

GPU 메모리를 절약하기 위해 라이브러리는 정방향 전달 중에 사용자 지정 모듈의 내부 활성화를 GPU 메모리에 저장하지 않도록 활성화 체크포인트를 지원합니다. 라이브러리는 역방향 통과 중에 이러한 활성화를 다시 계산합니다. 또한 활성화 오프로드 기능은 저장된 액티베이션을 CPU 메모리로 오프로드하고 역방향 패스 중에 GPU로 다시 가져와서 활성화 메모리 사용량을 더욱 줄입니다. 이러한 기능에 대한 자세한 내용은 활성화 체크포인트활성화 오프로딩 섹션을 참조하세요.

모델에 적합한 기법 선택

올바른 기법과 구성을 선택하는 방법에 대한 자세한 내용은 섹션을 참조하세요SageMaker 분산 모델 병렬 처리 모범 사례.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.