기술 가이드

대형 모델의 텐서 병렬성

하나의 장치에 비해 너무 큰 모델이 계속 실행될 수 있도록 여러 GPU에 걸쳐 단일 신경망 계층 내부의 수학을 분할하는 방법입니다.

개요

하나의 장치에 비해 너무 큰 모델이 계속 실행될 수 있도록 여러 GPU에 걸쳐 단일 신경망 계층 내부의 수학을 분할하는 방법입니다. 프론티어 모델에는 단일 GPU만으로는 충분히 빠르게 보유하거나 계산할 수 없는 수천억 개의 매개변수가 있기 때문에 중요합니다.

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

심층 분석

텐서 병렬 처리(계층 내 모델 병렬 처리라고도 함)는 전체 레이어를 별도의 장치에 배치하는 대신 GPU 전체에 개별 가중치 행렬을 분할합니다. 변환기에서는 큰 행렬 곱셈(주의 투영 및 피드포워드 MLP)이 분할됩니다. 예를 들어 MLP의 첫 번째 가중치 행렬은 열로 분할되고 두 번째는 행으로 분할되므로 각 GPU는 슬라이스를 계산하고 단일 전체 감소가 결과를 결합합니다. 각 GPU가 하위 집합을 처리하면서 주의가 여러 헤드로 분산됩니다. 모든 GPU는 모든 계층의 일부를 동시에 수행하기 때문에 텐서 병렬 처리는 GPU당 메모리를 줄이고 컴퓨팅 속도를 높이지만 각 계층 GPU 간에 빈번한 고대역폭 통신이 필요합니다. 그렇기 때문에 일반적으로 NVLink로 연결된 노드 내에 제한되고 대규모 교육 및 서비스 작업을 위해 파이프라인 및 데이터 병렬성과 결합됩니다.

기술적 통찰력

Megatron-LM이 대중화한 비결은 파티션 크기를 선택하여 통신을 최소화하는 것입니다. 첫 번째 MLP 행렬을 열 단위로 분할하면 각 GPU가 동기화 없이 로컬로 비선형성을 적용할 수 있습니다. 두 번째 행을 분할한다는 것은 부분 결과를 합산하기 위해 출력에 하나의 전체 감소만 필요하다는 것을 의미합니다. 따라서 각 레이어에는 대략 2번의 전체 감소(앞으로)와 2번(뒤로)이 발생합니다. 이러한 집단은 모든 계층에서 발생하기 때문에 대기 시간이 지배적입니다. 따라서 텐서 병렬 처리는 느린 노드 간 네트워크가 아닌 NVLink와 같은 빠른 노드 내 링크 뒤에 존재합니다.

대형 모델의 텐서 병렬성 마스터하기

하나의 장치에 비해 너무 큰 모델이 계속 실행될 수 있도록 여러 GPU에 걸쳐 단일 신경망 계층 내부의 수학을 분할하는 방법입니다. 프론티어 모델에는 단일 GPU만으로는 충분히 빠르게 보유하거나 계산할 수 없는 수천억 개의 매개변수가 있기 때문에 중요합니다. 대형 모델의 텐서 병렬화는 모델 품질, 인프라 비용, 대기 시간 및 규모에 따른 안정성에 영향을 미치는 기술 구성 요소입니다. 깊은 이해를 구축하려면 대형 모델의 텐서 병렬성을 단일 기능이 아닌 운영 모델로 취급하십시오. 즉, 원하는 결과를 정의하고, 가정을 명확히 하고, 시스템이 안정적으로 수행할 수 있는 작업과 여전히 전문가 판단이 필요한 작업을 분리하세요.

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

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

전략적 영향

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

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

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

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

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

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

대형 모델을 위한 텐서 병렬성의 미래

텐서 병렬 처리는 여전히 기본이지만 점차 '3D 병렬 처리'(텐서 + 파이프라인 + 데이터)로 혼합되고 전문가 혼합 모델을 위한 전문가 병렬 처리와 결합됩니다. Megatron-LM, DeepSpeed ​​및 vLLM과 같은 프레임워크는 샤딩을 자동화합니다. GPU 상호 연결(NVLink, NVSwitch) 및 광학 패브릭이 더 빨라짐에 따라 노드 경계 제한이 완화되어 더 넓은 텐서 병렬 그룹이 허용됩니다. 지정된 클러스터 토폴로지에 대한 통신을 최소화하기 위해 샤드 크기와 그룹 크기를 선택하는 보다 스마트한 자동 병렬화를 기대합니다.

실제 구현

Megatron-LM을 사용하여 하나의 NVLink 연결 노드에서 8개의 GPU에 걸쳐 각 레이어의 가중치 행렬을 샤딩하여 175B 매개변수 모델을 훈련합니다.

tensor_parallel_size=4를 사용하여 vLLM에서 70B 매개변수 채팅 모델을 제공하므로 가중치가 4개의 GPU에 적합하고 실시간으로 응답합니다.

트랜스포머 어텐션 헤드를 GPU 전체에 분할하여 각 장치가 하위 집합을 계산한 후 다음 레이어에 대한 출력을 연결합니다.

노드 내 텐서 병렬성과 노드 간 파이프라인 병렬성을 결합하여 대규모 GPU 클러스터에서 1000조 매개변수 모델을 훈련합니다.

구현 패턴

실제로 대형 모델의 텐서 병렬화

Megatron-LM을 사용하여 하나의 NVLink 연결 노드에서 8개의 GPU에 걸쳐 각 레이어의 가중치 행렬을 샤딩하여 175B 매개변수 모델을 훈련합니다.

Megatron-LM Teams를 사용하여 하나의 NVLink 연결 노드에서 8개의 GPU에 걸쳐 각 레이어의 가중치 매트릭스를 샤딩하여 175B 매개변수 모델을 훈련하면 일반적으로 품질 임계값을 미리 정의하고, 극단적인 사례에 대한 인적 에스컬레이션 경로를 유지하고, 시간이 지남에 따라 생산성 향상과 오류 비용을 모두 추적할 때 더 나은 결과를 얻을 수 있습니다.

실제로 대형 모델의 텐서 병렬화

tensor_parallel_size=4를 사용하여 vLLM에서 70B 매개변수 채팅 모델을 제공하므로 가중치가 4개의 GPU에 적합하고 실시간으로 응답합니다.

tensor_parallel_size=4를 사용하여 vLLM에서 70B 매개변수 채팅 모델을 제공하여 가중치가 4개의 GPU에 적합하고 실시간으로 응답합니다. 팀은 일반적으로 품질 임계값을 미리 정의하고, 극단적인 경우에 대한 인적 에스컬레이션 경로를 유지하고, 시간이 지남에 따라 생산성 향상과 오류 비용을 모두 추적할 때 더 나은 결과를 얻습니다.

실제로 대형 모델의 텐서 병렬화

트랜스포머 어텐션 헤드를 GPU 전체에 분할하여 각 장치가 하위 집합을 계산한 후 다음 레이어에 대한 출력을 연결합니다.

트랜스포머 어텐션 헤드를 GPU 전체에 분할하여 각 장치가 하위 집합을 계산한 후 다음 레이어의 출력을 연결합니다. 팀은 일반적으로 품질 임계값을 미리 정의하고, 극단적인 경우에 대한 인적 에스컬레이션 경로를 유지하고, 시간이 지남에 따라 생산성 향상과 오류 비용을 모두 추적할 때 더 나은 결과를 얻습니다.

실제로 대형 모델의 텐서 병렬화

노드 내 텐서 병렬성과 노드 간 파이프라인 병렬성을 결합하여 대규모 GPU 클러스터에서 1000조 매개변수 모델을 훈련합니다.

노드 내 텐서 병렬 처리와 노드 간 파이프라인 병렬 처리를 결합하여 대규모 GPU 클러스터에서 1000조 매개변수 모델 훈련 팀은 일반적으로 품질 임계값을 미리 정의하고, 극단적인 경우에 대한 인적 에스컬레이션 경로를 유지하고, 시간이 지남에 따라 생산성 향상과 오류 비용을 모두 추적할 때 더 나은 결과를 얻습니다.

위험 및 가드레일

!

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

!

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

!

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

구현 로드맵

1

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

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

2

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

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

3

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

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

4

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

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

계속 탐색하세요