SageMaker 모델 병렬화 라이브러리의 릴리스 노트 - 아마존 SageMaker

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

SageMaker 모델 병렬화 라이브러리의 릴리스 노트

SageMaker 모델 병렬성 () 라이브러리의 최신 업데이트를 추적하려면 다음 릴리스 노트를 참조하십시오. SMP SMP라이브러리에 대한 추가 질문이 있는 경우 SMP 서비스 팀에 문의하십시오. sm-model-parallel-feedback@amazon.com

SageMaker 모델 병렬화 라이브러리 v2.5.0

날짜: 2024년 8월 28일

SMP라이브러리 업데이트

새로운 기능

  • Mixtral 모델의 P5 인스턴스에서 FP8 데이터 형식을 사용하는 혼합 정밀도 훈련에 대한 지원이 추가되었습니다.

  • 다음 모델 구성에 대한 지원이 추가되었습니다. 컨텍스트 병렬성

    • 라마-v2:7B 및 70B

    • 라마-v3:8B 및 70B

    • GPT-네오엑스: 20B

  • 체크포인트를 비동기적으로 저장하는 지원이 추가되었습니다. 자세한 내용은 체크포인팅: 사용 SMP을 참조하십시오.

    • Amazon EBS 또는 파일 서버를 사용하지 않고 S3에 직접 체크포인트를 저장할 수 있도록 지원합니다.

버그 수정

  • 사전 학습된 모델 체크포인트를 로드하고 텐서 병렬화를 활용할 때 Lama 미세 조정 중에 예기치 않게 높은 초기 손실이 발생하는 문제가 해결되었습니다.

참고

  • FP8혼합 정밀도가 적용된 Mixtral의 활성화 체크포인트를 사용하려면 주의 계층과 전문가 계층을 별도로 체크포인트를 지정해야 합니다. 올바르게 설정하는 예제는 Amazon Examples 리포지토리의 SageMaker 예제 교육 스크립트를 참조하십시오.

알려진 문제

  • MoE 구성 (torch.sagemaker.moe.moe_config.MoEConfig) 의 밸런스 로드 밸런싱 유형은 현재 활성화 체크포인트와 호환되지 않습니다.

  • 컨텍스트 병렬화를 사용하면 GPT -NEOx는 사전 학습과 미세 조정 모두에서 성능 저하를 보여줍니다.

  • P4 인스턴스의 GPT -NEOx의 경우 지연된 매개변수로 초기화된 변환 모델에서 Hugging Face 변환기 모델로 가중치를 직접 로드하면 첫 번째 단계에서 손실 불일치가 발생합니다.

SMP도커 컨테이너

SMP라이브러리 팀은 프레임워크 컨테이너 대신 Docker 컨테이너를 배포합니다. SageMaker PyTorch SageMakerSDKPython에서 PyTorch estimator 클래스를 사용하고 SMP v2를 사용하도록 배포 구성을 지정하는 경우 Docker 컨테이너를 SageMaker 자동으로 선택합니다. SMP 이번 SMP v2 릴리스를 SDK 사용하려면 SageMaker Python을 v2.224.0 이상으로 업그레이드하십시오.

통화 업데이트

컨테이너 세부 정보:

  • SMPv2.3.1 버전 (v12.1 포함) 용 도커 컨테이너 PyTorch CUDA

    658645717510.dkr.ecr.<region>.amazonaws.com/smdistributed-modelparallel:2.3.1-gpu-py311-cu121

    지원되는 리전 목록은 AWS 리전 단원을 참조하세요.

  • 사전 설치된 패키지

    • SMP라이브러리 v2.5.0

    • 라이브러리 v2.3.0 SMDDP

    • CUDNNv8.9.7.29

    • FlashAttention v2.5.8

    • TransformerEngine v1.8

    • 메가트론 v0.7.0

    • Hugging Face 트랜스포머 v4.40.1

    • Hugging Face 데이터세트 라이브러리 v2.19.0

    • EFAv1.32.0

    • NCCLv2.21.5

SMP콘다 채널

다음 S3 버킷은 SMP 서비스 팀이 호스팅하는 SMP 라이브러리의 공개 Conda 채널입니다. SageMaker HyperPod 클러스터와 같이 고도로 사용자 지정 가능한 컴퓨팅 리소스가 있는 환경에 SMP v2 라이브러리를 설치하려면 이 Conda 채널을 사용하여 라이브러리를 올바르게 설치하세요. SMP

  • https://sagemaker-distributed-model-parallel.s3.us-west-2.amazonaws.com/smp-v2/

Conda 채널 전반에 대한 자세한 내용은 Conda 설명서의 채널을 참조하십시오.

SageMaker 모델 병렬화 라이브러리 v2.4.0

날짜: 2024년 6월 20일

SMP라이브러리 업데이트

버그 수정

  • SMPTransformer를 사용하는 동안 순방향 패스에서 레이블이 전달되지 않으면 잘못된 로짓 셰이프가 발생하는 버그가 수정되었습니다.

통화 업데이트

  • PyTorch v2.3.1에 대한 지원이 추가되었습니다.

  • Python v3.11에 대한 지원이 추가되었습니다.

  • Hugging Face 트랜스포머 라이브러리 v4.40.1에 대한 지원이 추가되었습니다.

지원 중단

  • Python v3.10에 대한 지원이 중단되었습니다.

  • v4.40.1 이전의 Hugging Face Transformer 라이브러리 버전에 대한 지원이 중단되었습니다.

기타 변경 사항

  • 중복 제거된 텐서를 다른 순위에 저장하도록 전환하는 패치가 포함되었습니다. 자세한 내용은 리포지토리의 토론 스레드를 참조하십시오. PyTorch GitHub

알려진 문제

  • 텐서 병렬 처리를 사용하여 Llama-3 70B를 미세 조정할 때 손실이 급증했다가 더 높은 손실 값에서 다시 시작될 수 있다는 알려진 문제가 있습니다.

SMP도커 컨테이너

SMP라이브러리 팀은 프레임워크 컨테이너 대신 Docker 컨테이너를 배포합니다. SageMaker PyTorch SageMakerSDKPython에서 PyTorch estimator 클래스를 사용하고 SMP v2를 사용하도록 배포 구성을 지정하는 경우 Docker 컨테이너를 SageMaker 자동으로 선택합니다. SMP 이번 SMP v2 릴리스를 SDK 사용하려면 SageMaker Python을 v2.224.0 이상으로 업그레이드하십시오.

통화 업데이트

  • SMDDP라이브러리를 v2.3.0으로 업그레이드했습니다.

  • NCCL라이브러리를 v2.21.5로 업그레이드했습니다.

  • EFA소프트웨어를 v1.32.0으로 업그레이드했습니다.

지원 중단

컨테이너 세부 정보:

  • SMPv2.3.1 버전 (v12.1 포함) 용 도커 컨테이너 PyTorch CUDA

    658645717510.dkr.ecr.us-west-2.amazonaws.com/smdistributed-modelparallel:2.3.1-gpu-py311-cu121
  • 사전 설치된 패키지

    • SMP라이브러리 v2.4.0

    • 라이브러리 SMDDP v2.3.0

    • CUDNNv8.9.7.29

    • FlashAttention v2.3.3

    • TransformerEngine v1.2.1

    • Hugging Face 트랜스포머 v4.40.1

    • Hugging Face 데이터세트 라이브러리 v2.19.0

    • EFAv1.32.0

    • NCCLv2.21.5

SMP콘다 채널

다음 S3 버킷은 SMP 서비스 팀이 호스팅하는 SMP 라이브러리의 공개 Conda 채널입니다. SageMaker HyperPod 클러스터와 같이 고도로 사용자 지정 가능한 컴퓨팅 리소스가 있는 환경에 SMP v2 라이브러리를 설치하려면 이 Conda 채널을 사용하여 라이브러리를 올바르게 설치하세요. SMP

  • https://sagemaker-distributed-model-parallel.s3.us-west-2.amazonaws.com/smp-v2/

Conda 채널 전반에 대한 자세한 내용은 Conda 설명서의 채널을 참조하십시오.

SageMaker 모델 병렬화 라이브러리 v2.3.1

날짜: 2024년 5월 9일

버그 수정

  • 전문가 병렬 처리를 torch.sagemaker.moe.moe_config.MoEConfig 위해 in을 사용할 moe_load_balancing=balancedImportError 발생하는 문제가 수정되었습니다.

  • 활성화되었을 때 torch.sagemaker.transform 호출이 발생하는 미세 조정 문제를 수정했습니다. KeyError load_state_dict_from_rank0

  • 미세 조정을 위해 out-of-memory Mixtral 8x22B와 같은 대규모 전문가 혼합 (MoE) 모델을 로드할 때 발생하는 () 오류를 수정했습니다. OOM

SMP도커 컨테이너

SMP라이브러리 팀은 프레임워크 컨테이너 대신 Docker 컨테이너를 배포합니다. SageMaker PyTorch 이 릴리스에는 앞서 언급한 버그 수정이 다음 Docker 이미지에 통합되어 있습니다. SMP

  • SMPv2.2.0용 도커 컨테이너 (v12.1 포함) PyTorch CUDA

    658645717510.dkr.ecr.us-west-2.amazonaws.com/smdistributed-modelparallel:2.2.0-gpu-py310-cu121

모델 병렬화 라이브러리 v2.3.0 SageMaker

날짜: 2024년 4월 11일

새로운 기능

  • 믹스드 오브 엑스퍼트 트랜스포머 모델을 지원하기 위해 새로운 핵심 기능인 전문가 병렬 처리가 추가되었습니다. 자세한 내용은 전문가 병렬 처리을 참조하십시오.

SMPDocker 컨테이너

SMP라이브러리 팀은 프레임워크 컨테이너 대신 Docker 컨테이너를 배포합니다. SageMaker PyTorch SageMaker SDKPython에서 PyTorch estimator 클래스를 사용하고 SMP v2를 사용하도록 배포 구성을 지정하는 경우 Docker 컨테이너를 SageMaker 자동으로 선택합니다. SMP 이번 SMP v2 릴리스를 SDK 사용하려면 SageMaker Python을 v2.214.4 이상으로 업그레이드하십시오.

  • SMPv2.2.0용 도커 컨테이너 (v12.1 포함) PyTorch CUDA

    658645717510.dkr.ecr.us-west-2.amazonaws.com/smdistributed-modelparallel:2.2.0-gpu-py310-cu121
    • 이 Docker 컨테이너에 사전 설치된 패키지

      • 라이브러리 SMDDP v2.2.0

      • CUDNNv8.9.5.29

      • FlashAttention v2.3.3

      • TransformerEngine v1.2.1

      • 허깅 페이스 트랜스포머 v4.37.1

      • Hugging Face 데이터세트 라이브러리 v2.16.1

      • 메가트론-코어 0.5.0

      • EFAv1.30.0

      • NCCLv2.19.4

SageMaker 모델 병렬화 라이브러리 v2.2.0

날짜: 2024년 3월 7일

새로운 기능

  • 트랜스포머 엔진 통합을 통해 P5 인스턴스에서 다음과 같은 Hugging Face 트랜스포머 모델의 FP8트레이닝에 대한 지원이 추가되었습니다.

    • GPT-NEOx

    • 라마 2

버그 수정

  • 텐서 병렬 처리 훈련 중에 AllGather 집단 호출 전에 텐서의 연속성이 보장되지 않는 버그를 수정했습니다.

커런시 업데이트

  • PyTorch v2.2.0에 대한 지원이 추가되었습니다.

  • SMDDP라이브러리를 v2.2.0으로 업그레이드했습니다.

  • FlashAttention 라이브러리를 v2.3.3으로 업그레이드했습니다.

  • NCCL라이브러리를 v2.19.4로 업그레이드했습니다.

지원 중단

  • v1.2.0 이전의 트랜스포머 엔진 버전에 대한 지원이 중단되었습니다.

알려진 문제

  • 이 SMP 활성화 오프로딩 기능은 현재 작동하지 않습니다. 대신 네이티브 PyTorch 활성화 오프로딩을 사용하세요.

기타 변경사항

SMP도커 컨테이너

SMP라이브러리 팀은 프레임워크 컨테이너 대신 Docker 컨테이너를 배포합니다. SageMaker PyTorch SageMaker SDKPython에서 PyTorch estimator 클래스를 사용하고 SMP v2를 사용하도록 배포 구성을 지정하는 경우 Docker 컨테이너를 SageMaker 자동으로 선택합니다. SMP 이번 SMP v2 릴리스를 SDK 사용하려면 SageMaker Python을 v2.212.0 이상으로 업그레이드하십시오.

  • SMPv2.2.0용 도커 컨테이너 (v12.1 포함) PyTorch CUDA

    658645717510.dkr.ecr.us-west-2.amazonaws.com/smdistributed-modelparallel:2.2.0-gpu-py310-cu121
    • P4d, P4de 및 P5 인스턴스에 사용할 수 있습니다.

    • 이 Docker 컨테이너에 사전 설치된 패키지

      • 라이브러리 SMDDP v2.2.0

      • CUDNNv8.9.5.29

      • FlashAttention v2.3.3

      • TransformerEngine v1.2.1

      • 허깅 페이스 트랜스포머 v4.37.1

      • Hugging Face 데이터세트 라이브러리 v2.16.1

      • EFAv1.30.0

      • NCCLv2.19.4

SageMaker 모델 병렬화 라이브러리 v2.1.0

날짜: 2024년 2월 6일

통화 업데이트

  • PyTorch v2.1.2에 대한 지원이 추가되었습니다.

지원 중단

  • Hugging Face 트랜스포머 v4.31.0에 대한 지원이 중단되었습니다.

알려진 문제

  • Hugging Face Llama 2 모델을 attn_implementation=flash_attention_2 FSDP 와 함께 미세 조정하면 모델이 갈라지는 문제가 발견되었습니다. 참고로 Hugging Face GitHub Transformer 저장소의 이슈 티켓을 참조하십시오. 다이버전스 문제를 피하려면 를 사용하세요. attn_implementation=sdpa 또는 설정을 use_smp_implementation=True 통해 SMP 트랜스포머 모델 구현을 사용할 수도 있습니다.

SMP도커 컨테이너

SMP라이브러리 팀은 프레임워크 컨테이너 대신 Docker 컨테이너를 배포합니다. SageMaker PyTorch SageMaker SDKPython에서 PyTorch estimator 클래스를 사용하고 SMP v2를 사용하도록 배포 구성을 지정하는 경우 Docker 컨테이너를 SageMaker 자동으로 선택합니다. SMP 이번 SMP v2 릴리스를 SDK 사용하려면 SageMaker Python을 v2.207.0 이상으로 업그레이드하십시오.

  • SMPv2.1.2용 도커 컨테이너 (v12.1 포함) PyTorch CUDA

    658645717510.dkr.ecr.us-west-2.amazonaws.com/smdistributed-modelparallel:2.1.2-gpu-py310-cu121
    • P4d, P4de 및 P5 인스턴스에 사용할 수 있습니다.

    • 이 Docker 컨테이너에 사전 설치된 패키지

      • 라이브러리 SMDDP v2.1.0

      • CUDNNv8.9.5.29

      • FlashAttention v2.3.3

      • TransformerEngine v1.2.1

      • 허깅 페이스 트랜스포머 v4.37.1

      • Hugging Face 데이터세트 라이브러리 v2.16.1

      • EFAv1.30.0

SMP콘다 채널

다음 S3 버킷은 SMP 서비스 팀에서 호스팅하는 공개 Conda 채널입니다. SageMaker HyperPod 클러스터와 같이 고도로 사용자 지정 가능한 컴퓨팅 리소스가 있는 환경에 SMP v2 라이브러리를 설치하려면 이 Conda 채널을 사용하여 라이브러리를 올바르게 설치하세요. SMP

  • https://sagemaker-distributed-model-parallel.s3.us-west-2.amazonaws.com/smp-v2/

Conda 채널 전반에 대한 자세한 내용은 Conda 설명서의 채널을 참조하십시오.

SageMaker 모델 병렬화 라이브러리 v2.0.0

날짜: 2023년 12월 19일

새로운 기능

다음과 같은 새로운 오퍼링과 함께 SageMaker 모델 병렬 처리 (SMP) 라이브러리 v2.0.0을 출시했습니다.

주요 변경 사항

  • SMPv2는 APIs 전체 내용을 수정하여 패키지를 제공합니다. torch.sagemaker 대부분의 경우 torch.sagemaker.init() 모듈로 초기화하고 모델 parallel 구성 파라미터를 전달하기만 하면 됩니다. 이 새 패키지를 사용하면 교육 스크립트의 코드 수정을 크게 단순화할 수 있습니다. SMPv2를 사용하도록 훈련 스크립트를 조정하는 방법에 대한 자세한 내용은 을 참조하십시오 SageMaker 모델 병렬화 라이브러리 v2로 시작하기.

  • Hugging Face Transformer 모델 학습에 SMP v1을 사용했고 v2에서 SMP 모델을 재사용하려는 경우 을 참조하십시오. SMPv1에서 v2로 SMP 업그레이드

  • PyTorch FSDP교육용으로는 v2를 사용해야 합니다. SMP

알려진 문제

  • 활성화 체크포인트는 현재 다음과 같은 래핑 정책에서만 작동합니다. FSDP

    • auto_wrap_policy = functools.partial(transformer_auto_wrap_policy, ...)

  • 사용하려면 활성화 오프로딩 FSDP 활성화 체크포인트 유형이 다음과 같아야 합니다. REENTRANT

  • 샤딩된 데이터 병렬도를 로 설정하고 텐서 병렬을 1 활성화한 상태에서 실행할 때는 반드시 사용해야 합니다. backend = ncclsmddp 시나리오에서는 백엔드 옵션이 지원되지 않습니다.

  • 텐서 병렬 처리를 사용하지 않는 경우에도 SMP 라이브러리와 PyTorch 함께 사용하려면 Transformer Engine이 필요합니다.

기타 변경사항

지원 중단에 관한 사항

  • 에 대한 지원이 중단되었습니다. TensorFlow

  • v2에서는 파이프라인 병렬 처리가 지원되지 않습니다. SMP

  • 네이티브를 선호하는 DeepSpeed 라이브러리는 지원되지 않습니다. PyTorch FSDP

SMPDocker 컨테이너

SMP라이브러리 팀은 프레임워크 컨테이너 대신 Docker 컨테이너를 배포합니다. SageMaker PyTorch SageMaker SDKPython에서 PyTorch estimator 클래스를 사용하고 SMP v2를 사용하도록 배포 구성을 지정하는 경우 Docker 컨테이너를 SageMaker 자동으로 선택합니다. SMP 이번 SMP v2 릴리스를 SDK 사용하려면 SageMaker Python을 v2.207.0 이상으로 업그레이드하십시오.

  • SMPv2.0.1용 도커 컨테이너 (v12.1 포함) PyTorch CUDA

    658645717510.dkr.ecr.us-west-2.amazonaws.com/smdistributed-modelparallel:2.0.1-gpu-py310-cu121