기술 가이드

모델 및 파이프라인 병렬성

모델이 너무 커서 하나의 GPU에 맞지 않는 경우 모델 및 파이프라인 병렬 처리가 모델 자체를 여러 장치로 분할합니다.

개요

모델이 너무 커서 하나의 GPU에 맞지 않는 경우 모델 및 파이프라인 병렬 처리가 모델 자체를 여러 장치로 분할합니다. 이것이 바로 수천억 개의 매개변수를 사용하여 거대한 언어 모델을 물리적으로 훈련시키는 것을 가능하게 하는 것입니다.

모델 및 파이프라인 병렬 처리는 모델 품질, 인프라 비용, 대기 시간 및 규모에 따른 안정성에 영향을 미치는 기술 구성 요소입니다.

심층 분석

모델 병렬 처리는 단일 모델을 여러 GPU로 분할하므로 하나의 장치가 모든 가중치를 보유할 필요가 없습니다. 맛은 크게 2가지가 있습니다. 텐서(레이어 내) 병렬 처리는 각각 출력의 일부를 계산하는 GPU 전체에서 큰 행렬 곱셈을 자르는 것과 같이 레이어 내부의 수학을 분할합니다. 파이프라인(계층 간) 병렬 처리는 서로 다른 연속 계층을 서로 다른 GPU에 할당하므로 계층 블록 1은 GPU 0에 있고 블록 2는 GPU 1에 있는 식으로 활성화가 조립 라인처럼 앞으로 전달됩니다. 순진한 파이프라이닝의 문제점은 '버블'입니다. GPU 0이 첫 번째 배치에서 작동하는 동안 다운스트림 GPU는 유휴 상태입니다. 파이프라이닝은 각 배치를 마이크로 배치로 분할하여 모든 단계를 바쁘게 유지하여 활용도를 극적으로 향상시킵니다.

기술적 통찰력

NVIDIA Megatron-LM과 같은 텐서 병렬 처리는 가중치 행렬을 열 또는 행 단위로 분할하고 전체 감소를 ​​사용하여 부분 결과를 재결합하여 빠른 NVLink 노드 내에서 통신을 유지합니다. 파이프라인 병렬 처리(GPipe, PipeDream)는 배치를 엇갈린 일정으로 단계를 통과하는 마이크로 배치로 나누어 유휴 '버블' 시간을 줄입니다. 이 둘은 노드 내 텐서 병렬성과 노드 간 파이프라인 병렬성을 통해 함께 계층화되는 경우가 많습니다.

모델 및 파이프라인 병렬성 마스터하기

모델이 너무 커서 하나의 GPU에 맞지 않는 경우 모델 및 파이프라인 병렬 처리가 모델 자체를 여러 장치로 분할합니다. 이것이 바로 수천억 개의 매개변수를 사용하여 거대한 언어 모델을 물리적으로 훈련시키는 것을 가능하게 하는 것입니다. 모델 및 파이프라인 병렬 처리는 모델 품질, 인프라 비용, 대기 시간 및 규모에 따른 안정성에 영향을 미치는 기술 구성 요소입니다. 깊은 이해를 구축하려면 모델 및 파이프라인 병렬성을 단일 기능이 아닌 운영 모델로 취급하십시오. 즉, 원하는 결과를 정의하고, 가정을 명확히 하고, 시스템이 안정적으로 수행할 수 있는 작업과 여전히 전문가 판단이 필요한 작업을 분리하세요.

실제로 모델 및 파이프라인 병렬성을 사용하는 강력한 팀은 안정성과 비용에 맞춰 아키텍처, 데이터 및 인프라 선택을 최적화합니다. 명시적인 성공 기준을 문서화하고, 현실적인 데이터 및 워크플로를 기준으로 테스트하며, 일회성 벤치마크 승리보다는 관찰된 실패 패턴을 기반으로 반복합니다. 이론적 이해가 제품, 정책, 운영 전반에 걸쳐 지속 가능한 역량으로 바뀌는 곳입니다.

아키텍처 결정은 수년간 성능과 운영 비용을 결정합니다. 동시에 하나의 벤치마크를 최적화하면 더 광범위한 시스템 약점을 숨길 수 있습니다. 가장 탄력적인 접근 방식은 실험 속도와 거버넌스 규율을 결합하는 것입니다. 즉, 파일럿 실행, 증거 캡처, 결정 로그 게시, 모델 동작, 사용자 기대 및 규제 요구 사항이 발전함에 따라 보호 장치를 지속적으로 업데이트합니다.

전략적 영향

아키텍처 결정은 수년간 성능과 운영 비용을 결정합니다.

아키텍처 결정은 수년간 성능과 운영 비용을 결정합니다. 고품질 배포에서는 이는 측정 가능한 운영 규칙, 소유권 경계 및 반복적인 검토 의식으로 변환되므로 팀은 모호성을 확장하는 대신 자신감을 확장할 수 있습니다.

기술 교육은 팀이 최신 스택뿐만 아니라 올바른 스택을 선택하는 데 도움이 됩니다.

기술 교육은 팀이 최신 스택뿐만 아니라 올바른 스택을 선택하는 데 도움이 됩니다. 고품질 배포에서는 이는 측정 가능한 운영 규칙, 소유권 경계 및 반복적인 검토 의식으로 변환되므로 팀은 모호성을 확장하는 대신 자신감을 확장할 수 있습니다.

더 나은 엔지니어링 선택은 생산 시 신뢰성 사고를 줄입니다.

더 나은 엔지니어링 선택은 생산 시 신뢰성 사고를 줄입니다. 고품질 배포에서는 이는 측정 가능한 운영 규칙, 소유권 경계 및 반복적인 검토 의식으로 변환되므로 팀은 모호성을 확장하는 대신 자신감을 확장할 수 있습니다.

모델 및 파이프라인 병렬성의 미래

프레임워크는 프로파일링과 검색을 사용하여 컴퓨팅과 통신의 균형을 유지함으로써 여러 장치에서 모델을 분할하는 방법을 결정하는 어려운 문제를 점점 더 자동화하고 있습니다. 텐서, 파이프라인 및 데이터 병렬성(3D 병렬성)의 보다 긴밀한 통합, 파이프라인 거품을 거의 제거하는 보다 스마트한 마이크로 배치 스케줄링, 더 빠른 상호 연결을 갖춘 하드웨어를 기대하여 칩 전체에 단일 레이어를 분할하는 것이 더 큰 모델의 경우 더 저렴하고 일상적이 됩니다.

실제 구현

텐서 병렬성을 통해 GPU 전반에 걸쳐 각 변환기 레이어의 주의와 피드포워드 행렬을 분할하는 NVIDIA Megatron-LM으로 GPT 스타일 모델을 훈련합니다.

GPipe를 사용하여 거대한 비전 또는 언어 모델의 다양한 레이어를 별도의 액셀러레이터에 배치하는 동시에 마이크로 배치 처리로 인해 바쁘게 됩니다.

DeepSpeed의 파이프라인 엔진은 수천억 개의 매개변수 모델을 여러 노드의 단계로 분할합니다.

단일 8-GPU 서버 내부의 텐서 병렬 처리와 여러 서버에 걸친 파이프라인 병렬 처리를 결합하여 하나의 시스템에 비해 너무 큰 모델을 교육합니다.

구현 패턴

실제 모델 및 파이프라인 병렬화

텐서 병렬성을 통해 GPU 전반에 걸쳐 각 변환기 레이어의 주의와 피드포워드 행렬을 분할하는 NVIDIA Megatron-LM으로 GPT 스타일 모델을 훈련합니다.

텐서 병렬성을 통해 각 변환기 레이어의 주의와 피드포워드 행렬을 GPU 전체에 분할하는 NVIDIA Megatron-LM으로 GPT 스타일 모델을 훈련합니다. 팀은 일반적으로 품질 임계값을 미리 정의하고, 극단적인 경우에 대한 인적 에스컬레이션 경로를 유지하고, 시간이 지남에 따라 생산성 향상과 오류 비용을 모두 추적할 때 더 나은 결과를 얻습니다.

실제 모델 및 파이프라인 병렬화

GPipe를 사용하여 거대한 비전 또는 언어 모델의 다양한 레이어를 별도의 액셀러레이터에 배치하는 동시에 마이크로 배치 처리로 인해 바쁘게 됩니다.

GPipe를 사용하여 별도의 액셀러레이터에 거대한 비전 또는 언어 모델의 다양한 레이어를 배치하는 동시에 마이크로 배치 처리로 바쁜 팀은 일반적으로 품질 임계값을 미리 정의하고, 극단적인 경우에 대한 인적 에스컬레이션 경로를 유지하고, 시간이 지남에 따라 생산성 향상과 오류 비용을 모두 추적할 때 더 나은 결과를 얻습니다.

실제 모델 및 파이프라인 병렬화

DeepSpeed의 파이프라인 엔진은 수천억 개의 매개변수 모델을 여러 노드의 단계로 분할합니다.

수천억 개의 매개변수 모델을 여러 노드의 단계로 분할하는 DeepSpeed의 파이프라인 엔진 팀은 일반적으로 품질 임계값을 미리 정의하고, 극단적인 경우에 대한 인적 에스컬레이션 경로를 유지하고, 시간이 지남에 따라 생산성 향상과 오류 비용을 모두 추적할 때 더 나은 결과를 얻습니다.

실제 모델 및 파이프라인 병렬화

단일 8-GPU 서버 내부의 텐서 병렬 처리와 여러 서버에 걸친 파이프라인 병렬 처리를 결합하여 하나의 시스템에 비해 너무 큰 모델을 교육합니다.

단일 8-GPU 서버 내부의 텐서 병렬 처리와 여러 서버에 걸친 파이프라인 병렬 처리를 결합하여 단일 시스템에 비해 너무 큰 모델을 교육합니다. 일반적으로 팀은 품질 임계값을 미리 정의하고, 극단적인 경우에 대한 인적 에스컬레이션 경로를 유지하고, 시간이 지남에 따라 생산성 향상과 오류 비용을 모두 추적할 때 더 나은 결과를 얻습니다.

위험 및 가드레일

!

하나의 벤치마크를 최적화하면 더 광범위한 시스템 약점을 숨길 수 있습니다.

!

인프라 및 유지 관리 비용은 종종 과소평가됩니다.

!

시스템이 더욱 복잡해짐에 따라 보안 및 관찰 가능성의 격차가 커질 수 있습니다.

구현 로드맵

1

구현하기 전에 지연 시간, 품질, 비용 목표를 정의하세요.

구현하기 전에 지연 시간, 품질, 비용 목표를 정의하세요. 각 단계를 증거 게이트로 처리합니다. 기준이 충족되지 않으면 롤아웃을 일시 중지하고 간격을 좁힌 다음 사용을 확장합니다.

2

현실적인 로드 및 데이터 조건에서 벤치마킹합니다.

현실적인 로드 및 데이터 조건에서 벤치마킹합니다. 각 단계를 증거 게이트로 처리합니다. 기준이 충족되지 않으면 롤아웃을 일시 중지하고 간격을 좁힌 다음 사용을 확장합니다.

3

오류, 드리프트 및 사용자 영향에 대한 계측기 모니터링.

오류, 드리프트 및 사용자 영향에 대한 계측기 모니터링. 각 단계를 증거 게이트로 처리합니다. 기준이 충족되지 않으면 롤아웃을 일시 중지하고 간격을 좁힌 다음 사용을 확장합니다.

4

확장하기 전에 롤백 및 사고 대응 경로를 준비하세요.

확장하기 전에 롤백 및 사고 대응 경로를 준비하세요. 각 단계를 증거 게이트로 처리합니다. 기준이 충족되지 않으면 롤아웃을 일시 중지하고 간격을 좁힌 다음 사용을 확장합니다.

계속 탐색하세요