클러스터가 단일 장치보다 몇 배 빠른지로, 64개 장치에 효율 90 %을(를) 곱한 ...배입니다.
세부 정보
확장이 완벽히 선형일 때의 처리량으로, 64개 장치에 각 2,000을(를) 곱한 ...입니다.
데이터 병렬 확장
데이터 병렬화는 모델을 더 빨리 학습하는 가장 흔한 방법입니다. 모델을 여러 가속기로 복제하고, 각 복제본에 배치의 일부를 주고, 매 단계 그 기울기를 평균합니다. 이상적이라면 처리량이 장치 수에 정확히 비례해 오를 것입니다. 그러나 실제로는 그렇지 않은데, 복제본들을 동기화 상태로 묶어 두는 기울기 평균이 클러스터에 따라 늘어나는 시간을 들기 때문입니다. 이 계산기는 이상적인 선형 처리량과 그 손실을 반영한 현실적 처리량을 분리하고, 그에 따른 가속비를 보여줍니다.
이상 대 실제
이상 처리량은 완벽한 확장이 줄 값으로, 모든 장치가 부가 부담 없이 단독 처리율을 온전히 보탭니다. 실제 처리량은 그 이상값을 확장 효율, 곧 병렬 실행의 모든 결함을 흡수하는 0과 1 사이의 단일 비율로 깎은 값입니다. 효율 0.9는 클러스터가 이론적 최대치의 90%를 낸다는 뜻이므로, 64개 장치 작업은 완벽히 확장하는 57.6개 장치처럼 동작합니다.
계산식
장치 수 , 장치당 처리량 , 확장 효율 가 주어지면 이상 처리량 , 실제 처리량 , 단일 장치 대비 가속비 는 다음과 같습니다.
IAS=d⋅v=I⋅E=d⋅E
단일 장치는 로 돌고 클러스터는 로 돌기 때문에, 가속비는 단순히 장치 수에 효율을 곱한 값입니다.
계산 예시
각각 단독으로 초당 2,000 샘플을 유지하는 64개 장치를, 측정된 확장 효율 0.9로 돌리는 경우를 살펴봅니다.
클러스터는 초당 115,200 샘플을 처리하는데, 이는 완벽한 확장이 가리키는 64배가 아니라 단일 장치 대비 57.6배 가속입니다. 그 차이인 초당 약 13,000 샘플이 복제본을 동기화 상태로 유지하는 비용입니다.
한계
이 모델은 확장 손실의 모든 원인을 사용자가 제공하는 하나의 효율 수치로 압축하며, 그 수치를 인터커넥트 대역폭, 모델 크기, 배치로부터 예측하지 않습니다. 효율은 또한 일정한 경우가 드뭅니다. 장치당 연산이 고정된 채 기울기 올리듀스가 늘어나므로 보통 장치를 더할수록 떨어집니다. 따라서 한 클러스터 크기에서 측정한 값을 다른 크기에서 가정해서는 안 됩니다. 여기서는 순수 데이터 병렬화를 가정하며, 그 복제가 배치에 미치는 영향은 실효 배치 크기 계산가 다루고, 모델을 파이프라인 단계로 나눌 때 생기는 별개의 부가 비용은 파이프라인 병렬 버블 계산가 다룹니다.
자주 묻는 질문 (FAQ)
확장 효율이란 무엇입니까?
확장 효율은 클러스터가 실제로 달성하는 처리량을, 더해진 장치마다 단독 처리율을 온전히 보탰을 때의 처리량으로 나눈 비율입니다. 효율 0.9는 64개 장치가 이상적인 57.6개처럼 동작한다는 뜻입니다.
기울기 통신, 동기화 대기, 고르지 않은 작업 등 불완전한 확장의 모든 원인을 0과 1 사이의 단일 비율로 묶으며, 학습 작업이 얼마나 잘 병렬화되는지를 보고하는 표준 방식입니다.
확장이 선형이 아닌 이유는 무엇입니까?
데이터 병렬 학습의 각 옵티마이저 단계는 모든 장치에 걸쳐 기울기를 교환하고 평균하는 올리듀스를 요구하는데, 그 통신은 장치당 유용한 연산이 고정된 채 클러스터에 따라 늘어납니다.
동기화 장벽, 무리를 붙드는 낙오 장치, 장치가 늘수록 줄어드는 연산 대 통신 비율까지 더해지면, 늘어난 장치는 첫 장치보다 적게 기여합니다. 그 결과가 1 아래의 효율로 포착되는 준선형 확장입니다.
확장 효율은 어떻게 높입니까?
흔한 방법은 장치당 배치를 키우거나 기울기 누적을 써서 통신 사이의 연산을 늘려 고정된 올리듀스 비용을 더 많은 작업에 분산하는 것과, 더 빠른 인터커넥트나 토폴로지를 고려한 집합 통신 알고리즘으로 통신 자체를 줄이는 것입니다.
기울기 통신을 역전파와 겹치게 하고, 데이터 샤딩을 고르게 해 낙오 장치를 줄이는 것도 도움이 됩니다. 장치를 더해도 효율이 꾸준히 유지되는 것이 잘 튜닝된 병렬 구성의 신호입니다.
면책조항
이 계산은 확장 손실을 사용자가 제공하는 하나의 효율 비율로 포착하는 1차 모델입니다. 그 비율을 인터커넥트 대역폭, 모델 크기, 배치로부터 도출하지 않으며 순수 데이터 병렬화를 가정합니다. 고정된 값을 가정하기보다 자신의 클러스터에서 효율을 측정하십시오.