활성화 오프로딩 - Amazon SageMaker AI

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

활성화 오프로딩

활성화 체크포인트 및 파이프라인 병렬 처리가 켜져 있고 마이크로배치 수가 1보다 큰 경우 활성화 오프로딩은 메모리 사용량을 더욱 줄일 수 있는 추가 기능입니다. 활성화 오프로드는 현재에서 실행되지 않는 마이크로배치에 해당하는 체크포인트 활성화를 비동기적으로 이동합니다CPU. 가 마이크로배치의 역방향 패스에 대한 활성화를 GPU 필요로 하기 직전에이 기능은에서 오프로드된 활성화를 미리 가져옵니다CPU.

참고

이 기능은 SageMaker 모델 병렬 처리 라이브러리 v1.6.0 이상 PyTorch 에서에 사용할 수 있습니다.

활성화 오프로딩 사용 방법

마이크로배치 수가 1보다 크고 활성화 체크포인트가 켜져 있는 경우 활성화 오프로딩을 사용하여 메모리 사용량을 줄입니다(활성화 체크포인트 참조). 활성화 체크포인트를 사용하지 않는 경우 활성화 오프로딩은 효과가 없습니다. 마이크로배치 하나만 함께 사용하면 메모리가 절약되지 않습니다.

활성화 오프로딩을 사용하려면 modelparallel 구성에서 "offload_activations": True를 설정합니다.

활성화 오프로드는 nn.Sequential 모듈의 체크포인트 활성화를 CPU 비동기식으로 이동합니다. PCIe 링크를 통한 데이터 전송은 GPU 계산과 겹칩니다. 오프로딩은 특정 체크포인트 계층의 순방향 패스가 계산되는 즉시 발생합니다. 활성화는 특정 마이크로배치의 역방향 패스에 필요하기 GPU 직전에에 다시 로드됩니다. CPU-GPU 전송은 계산과 비슷하게 겹칩니다.

활성화가에 다시 로드되는 속도를 조정하려면 구성 파라미터를 사용할 GPU수 있습니다"activation_loading_horizon"(기본값은 4로 설정되고는 0보다 int 커야 함). 활성화 로드 기간이 클수록 활성화가 GPU 이전 로 다시 로드됩니다. 구간이 너무 크면 활성화 오프로딩이 메모리 절약에 미치는 영향이 줄어들 수 있습니다. 구간이 너무 작으면 활성화가 제때 로드되지 않아 중복되는 양이 줄어들고 성능이 저하될 수 있습니다.

작은 정보

활성화 오프로딩은 천억 개 이상의 파라미터가 있는 대형 모델에 유용할 수 있습니다.

SageMaker PyTorch 예측기 구성

mpi_options = { "enabled" : True, "processes_per_host" : 8, # 8 processes "custom_mpi_options" : "--mca btl_vader_single_copy_mechanism none " } smp_options = { "enabled":True, "parameters": { "microbatches": 4, "pipeline_parallel_degree": 2, # alias for "partitions" "placement_strategy": "cluster", "tensor_parallel_degree": 2, # tp over 2 devices "ddp": True, "offload_activations": True, "activation_loading_horizon": 4 # optional. default is 4. } }