기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Mixture of Experts(MoE) 모델은 희소 접근 방식을 사용하는 일종의 트랜스포머 모델로, 기존 고밀도 모델 훈련에 비해 훈련에 더 가볍습니다. 이 MoE 신경망 아키텍처에서는 각 입력에 전문가라는 모델 구성 요소의 하위 집합만 사용됩니다. 이 접근 방식은 모델 크기가 더 크더라도 더 효율적인 훈련과 더 빠른 추론을 비롯한 여러 이점을 제공합니다. 즉, 전체 밀도 모델을 훈련하기 위한 동일한 컴퓨팅 예산으로 MoE 를 사용할 때 더 큰 모델 또는 데이터세트를 맞출 수 있습니다.
MoE 모델은 신경망, 일반적으로 피드 포워드 네트워크(FFN)로 구성된 여러 전문가로 구성됩니다. 라우터라는 게이트 네트워크는 어떤 토큰이 어떤 전문가에게 전송되는지 결정합니다. 이러한 전문가는 입력 데이터의 특정 측면을 전문적으로 처리하여 모델을 더 빠르게 훈련하고 컴퓨팅 비용을 절감하는 동시에 대응 고밀도 모델과 동일한 성능 품질을 달성할 수 있습니다. 일반적으로 전문가 혼합에 대해 자세히 알아보려면 NVIDIA 개발자 웹 사이트의 LLM 아키텍처에서 전문가 혼합 적용
전문가 병렬 처리는 GPU 디바이스에서 MoE 모델의 전문가 분할을 처리하는 병렬 처리의 한 유형입니다.
SMP v2는 전문가 병렬 처리를 구현하기 위해 NVIDIA Megatron
SMP 전문가 병렬 처리와 호환되는 Hugging Face 트랜스포머 모델
SMP v2는 현재 다음 Hugging Face 트랜스포머 모델에 대한 전문가 병렬 처리를 지원합니다.
전문가 병렬 처리 구성
expert_parallel_degree
의 경우 전문가 병렬 처리 정도에 대한 값을 선택합니다. 값은 클러스터의 GPU 균등하게 나누어야 합니다. 예를 들어 GPU가 8개인 인스턴스를 사용하는 동안 모델을 샤딩하려면 2, 4 또는 8개 GPU 선택합니다. 적은 숫자로 시작하고 모델이 GPU 메모리에 적합할 때까지 점진적으로 늘리는 것이 좋습니다.
다음 코드 조각은 SageMaker 모델 병렬 처리 라이브러리 v2 사용에 도입된 2단계 프로세스를 따르면서 훈련 스크립트에 SMP 초기화 모듈 torch.sagemaker.init()
을 추가하고 훈련 작업 시작 관리자를 위한 JSON 형식으로 SMP 구성 사전을 설정하는 방법을 보여줍니다. PyTorch 모델 또는 PyTorch FSDPexpert_parallel_degree
파라미터에 대한 자세한 내용은 SMP v2 코어 기능 구성 파라미터를 참조하세요.
참고
하이브리드 샤딩 데이터 병렬 처리에서 전문가 병렬 처리를 사용할 수 있습니다. 전문가 병렬 처리는 현재 텐서 병렬 처리와 호환되지 않습니다.
참고
이 전문가 병렬 처리 훈련 기능은 SageMaker 라이브러리와 PyTorch 라이브러리의 다음 조합에서 사용할 수 있습니다.
-
SMP v2.3.0 이상
-
SageMaker Python SDK v2.214.4 이상
-
PyTorch v2.2.0 이상
훈련 스크립트에서
1단계의 일환으로 스크립트를 torch.sagemaker.init()
로 초기화하여 SMP v2를 활성화하고 torch.sagemaker.transform API로 모델을 래핑하고 API에 config
파라미터를 추가하여 MoE 활성화합니다. 다음 코드 조각은 처음부터 훈련하는 from_config
방법 또는 미세 조정을 위한 from_pretrained
메서드를 사용하여 MoE 트랜스포머 모델 구성을 가져오는 일반 모델 클래스 AutoModelForCausalLM
에 대해 SMP MoE를 활성화하는 방법을 보여줍니다. MoEConfig
클래스에 대한 자세한 내용을 알아보려면 torch.sagemaker.moe.moe_config.MoEConfig 섹션을 참조하세요.
# Import the torch.sagemaker.transform API and initialize.
import torch.sagemaker as tsm
tsm.init()
# Import transformers AutoModelForCausalLM class.
from transformers import AutoModelForCausalLM
# Import the SMP-implementation of MoE configuration class.
from torch.sagemaker.moe.moe_config import MoEConfig
# Define a transformer model with an MoE model configuration
model = AutoModelForCausalLM.from_config(MoEModelConfig
)
# Wrap it by torch.sagemaker.transform with the SMP MoE configuration.
model = tsm.transform(
model,
config=MoEConfig(
smp_moe=True
,
random_seed=12345
,
moe_load_balancing="sinkhorn
",
global_token_shuffle=False
,
moe_all_to_all_dispatcher=True
,
moe_aux_loss_coeff=0.001
,
moe_z_loss_coeff=0.001
)
)
SMP 구성
2단계의 일부로 SageMaker PyTorch 추정기의 SMP 구성 사전에 다음 파라미터를 추가합니다.
{
..., # other SMP config parameters
"expert_parallel_degree": 8
}