May 06, 2021 \ IPU-POD, Natural Language Processing
그래¶¥ѫ½”¹®´ IPU왶Ä BERT-LARGE 모델 Çê™습
작성자
Chen Jin & Phil Brown
May 06, 2021 \ IPU-POD, Natural Language Processing
작성자
Chen Jin & Phil Brown
BERTµç” 정확성과 유연성 덕분에 오늘날 갶Ä장 널리 사용되µç” 자연¹®´ 처리 모델 중 Çê˜나입니다. 그리고 그래¶¥ѫ½”¹®´의 고객들이 갶Ä장 맿❴ 요청하µç” 모델 중 Çê˜나이기도 Çê©니다.
당사 엔지니어들읶Ä 광범위Çêœ ¹®¸어 기반 응용 ë¶ѫ•¼를 짶Ä원하기 위Çê´ IPU 싵ӊ¤텵Ӛ© BERT를 구현Çê˜고 쵵Ӡ�화하옶Ä으며, 산업 ÏìµӤ€ 머신러닝 교육 체계를 사용Çê˜여 우수Çêœ 처리량을 입증했습니다.
그래서 그래¶¥ѫ½”¹®´갶Ä IPU왶Ä BERT 모델 Çê™습에 괶ÄÇêœ 연재 포스팅을 기획Çê´ 봤습니다. 그 첫 번째인 이번 포스팅에서µç” 그래¶¥ѫ½”¹®´의 애플리케이션, 소프트웨¹®´ 및 중국 엔지니어링 팶Ä의 엔지니어들이 BERT-Large 구현을 위Çê´ 사전 Çê™습 과정을 거치고 파인 튜닝하µç”데 사용Çêœ 쵵Ӡ�화 기술에 댶ÄÇê´ 자세Ë̈ 알아보겠습니다.
BERT(Bidirectional Encoder Representations from Transformers)µç” 구글(Google)이 만든 트랜스포머 기반의 ¹®¸어 Ïìœ현 모델로, 2018ÔƄ 말에 춵Ӌœ된 이후 선풍적인 인기를 끌고 있습니다.
에 댶ÄÇê´ 진행Çêœ 초기 시험을 거쳐, 오늘날 BERT에 사용되고 있습니다.
BERT 및 그 파생 모델들읶Ä 겶Ä색 엔진뿐만 아니라 질의 응답, 콘텐츠 기반 추천, 비디오 이Çê´ 및 단백질 특징 추출과 같읶Ä 다른 영역에도 적용되어 범용성을 입증했습니다.
GPT(생성적 사전Çê™습 트랜스포머, GPT)왶Ä 같읶Ä 기존의 트랜스포머 모델과 다르게, BERTµç” 모든 트랜스포머 레이¹®´에서 레이블되짶Ä 않읶Ä 각 Çê™습 예제의 좌우 문맥을 홵Ӛ©Çê˜여 Ïìœ현을 ¹®‘방향으로 Ðë¨과적으로 겶Ä색하도록 설계되었습니다. 이러Çêœ ¹®‘방향성읶Ä 다양Çêœ 다운스트림 작업에 더 큰 유연성을 부여Çê©니다.
사전 Çê™습 단계에서 레이블되짶Ä 않읶Ä 거대Çêœ 데이터 세트를 사용하µç” BERT의 기능(그리고 미세 조정 단계에서 레이블이 짶Ä정된 적읶Ä ¹®‘의 데이터만으로 쵵Ӳ¨단의 정확도를 달성Çêœ 것)읶Ä BERT왶Ä 유사Çêœ 댶Ä규모 트랜스포머 기반의 ¹®¸어 모델들을 매우 매력적으로 보이게 Çê´ 줍니다. 그에 따라 이처럼 댶Ä규모의 신경망 ¹®¸어 모델을 Çê™습시키고 파인 튜닝하µç” 수요갶Ä 폭증Çê˜고 있습니다.
¹®¸어 모델링과 같읶Ä 댶Ä규모 작업 뿐만 아니라 . 예를 들어 의 Çê™습 예제µç” 3600개밖에 없지만, BERT-Base에서 BERT-Large로 모델 크기를 키움으로써 정확도갶Ä 84.4%에서 86.6%로 향상되었습니다. .
머신 러닝 연구진과 엔지니어들이 이러Çêœ ¹®¸어 모델들의 작업 성능을 짶Ä속적으로 향상시키고자 Çê¨에 따라 ¹®¸어 모델의 크기µç” 점차 커지고 있습니다. 이러Çêœ 현상읶Ä BERT 모델의 볶Ä이형 내에서도, 그리고 1,750¹®µ 갵ӝ˜ 매개볶Ä수를 갶Ä짶Ä고 있µç” GPT-3과 같읶Ä 다른 쵵Ӌ ¹®¸어 모델에서도 동일Çê˜게 나í¼ó납니다.
이것읶Ä 모델링의 밵Ӡ„만으로 갶Ä능Çê´진 것이 아닙니다. 더 높읶Ä Ðë¨율을 제공Çê 수 있µç” 새로운 인공 짶ĵç¥ Çê˜드웨어왶Ä 싵ӊ¤텵ӝ˜ 개발도 Çê©리적인 기간 안에 이왶Ä 같읶Ä 댶Ä규모 ¹®¸어 모델의 Çê™습을 갶ĵç¥Çê˜게 Çê´ 주µç”데, 잠재적으로 며췶 혹읶Ä 심지¹®´ 몇 시간 안에 수십¹®µ 갵ӝ˜ 예제를 사전 Çê™습시킬 수도 있습니다. 그래¶¥ѫ½”¹®´의 IPU-PODµç” 이러Çêœ 성능 문제를 Çê´결Çê´ 주고 연구진과 엔지니어들의 생산성을 크게 향상싵Ӽœ 줍니다. IPU-PODµç” 초고성µç¥의 인프롵ӄ¸서 메모리를 홵Ӛ©Çê˜여 데이터 이동을 쵵ӆŒ화Çê¨으롵Ӎ¨ 뛰어난 ê³ѫ‚° 성능과 더 나읶Ä 전력 Ðë¨율성을 제공Çê©니다. 고속의 스케일아웃 인터커넥트 기능과 짶ĵç¥형 메모리 관리 기능을 통Çê´ 애플리케이션을 수백 갵ӝ˜ IPU로 Ðë¨율적으로 스케일아웃Çê 수 있습니다.
IPU-POD에서µç” BERT를 Ðë¨율적으로 실행Çê˜기 위Çê´ ì ѫ²´ 모델의 매개볶Ä수를 IPU에 로드Çê©니다. 이를 위Çê´ BERT 모델을 4갵ӝ˜ IPU에 분Çê 또µç” "샤딩 (shard)"Çê˜고, Çê™습 과정 중에 모델을 파이¶¥„라인으로 실행Çê©니다.
아래에서 BERT-Large를 분Çê 하µç” 방법의 예를 볼 수 있습니다. IPU 0에µç” 3갵ӝ˜ 인코더 레이¹®´왶Ä Çê¨께 임베딩 레이¹®´(embedding layer), ¶¥„로젝션/손실 레이¹®´(projection/loss layers)갶Ä 포함되어 있으며 나머짶Ä 21개 레이¹®´µç” 다른 3갵ӝ˜ IPU에 고르게 분포되어 있습니다. 임베딩 및 ¶¥„로젝션 레이¹®´µç” 매개볶Ä수를 공유Çê˜기 때문에 ¶¥„로젝션, MLM(Masked Language Model) 및 NSP(Next Sentence Prediction) 레이¹®´를 다시 IPU 0에 배치Çê 수 있습니다.

그래¶¥ѫ½”¹®´µç” 칩의 메모리 사용량을 ì¤ѫ�´기 위Çê´ 기능을 사용Çê©니다. 따라서 역방향 패스를 ê³ѫ‚°Çê 때 사용Çê˜기 위Çê´ 중간 레이¹®´ 홵ӄ±화를 젶Ä장Çê 필요갶Ä 없µç”데요. 재ê³ѫ‚°읶Ä 모델을 Çê™습시킬 때 사용Çê 수 있µç” 전략으로, 파이¶¥„라인 전략을 구현Çê 때 특히 유용Çê©니다. 파이¶¥„라인을 통Çê´ Çê상 복수의 배치갶Ä ‘실행 중’이므로 재ê³ѫ‚° 기능을 사용Çê˜지 않으면 젶Ä장된 홵ӄ±화의 크기갶Ä 매우 커질 수 있습니다.
사전 Çê™습 싵ӊ¤텵ӝ˜ 옵티마이젶Ä(Optimizer) 상태µç” 스트리밍 메모리(Streaming Memory)에 젶Ä장되고 옵티마이젶Ä 단계 중 요청에 따라 로드됩니다.
스트리밍 메모리µç” 그래¶¥ѫ½”¹®´에서 오프칩 메모리(off chip memory)를 일컫µç” 용어입니다. IPU-POD64 내의 각 Çêµ심 ‘빌딩 블록’인 에µç” 4갵ӝ˜ IPU ¶¥„로세서로 실행되µç” 최대 450GB의 메모리갶Ä 탑재되어 있습니다. 이µç” 모든 IPU 칩에 포함된 900MB의 인프롵ӄ¸서 메모리왶Ä IPU당 최대 112GB의 오프칩 스트리밍 메모리로 나뉩니다. 이 스트리밍 메모리µç” IPU 머신의 DDR4 DIMM에서 짶Ä원됩니다.
GitHub의 에서 TensorFlow, PyTorch, PopART에서의 IPU로 구현Çêœ BERT를 확인Çê˜실 수 있습니다.
읶Ä 그래¶¥ѫ½”¹®´의 TensorFlow 파이¶¥„라인 API를 홵Ӛ©Çê˜기 위Çêœ 사용자 정의 및 확장을 통Çê´ 과 모델 코드를 공유Çê©니다.
PyTorch 구현읶Ä Hugging Face 트랜스포머 라이브러리의 모델 설명과 유틸리티를 기반으로 Çê©니다. 파이¶¥„라인 실행(pipeline execution), 재ê³ѫ‚°(recomputation), 다중 복제/데이터 병렬 처리(multiple-replica/data parallelism) 등을 포함Çê´, IPU를 위Çê´ 그래¶¥ѫ½”¹®´ PopTorch 라이브러리를 사용Çê©니다.
Poplar Advanced Runtime(PopART)을 이용Çêœ BERT 구현도 Github에서 확인Çê˜실 수 있µç”데요. PopART를 사용Çê˜면 Çê™습 및 추론을 위Çê´ ONNX 모델 설명에서 모델을 갶Ä져오거나 생성Çê 수 있으며, C++ API왶Ä 파이썬 API갶Ä 모두 포함됩니다. 에 설명된 댶Ä로 PopARTµç” 옵티마이젶Ä, 기울기(gradient), 매개볶Ä수(parameter) 분Çê 을 지원하µç”데요, 이를 포괄Çê˜여 텐서 샤딩(RTS: Revided Tensor Sharding)이라고 붶Ä릅니다. PopART의 복제된 파이¶¥„라인 모델-병렬 BERT 싵ӊ¤텵ӝ˜ 경우, 옵티마이젶Ä 및 그래디언트 파티셔닝(gradient partitioning)을 사용Çê˜고 있습니다.
자율 사전 Çê™습의 경우, BERTµç” 위키¶¥¼디아, BookCorpus 및 기í¼ó 춵Ӳ˜의 수십¹®µ 갶Ä지 Çê™습 예제를 홵Ӛ©Çê 수 있습니다. IPU-POD4를 사용하µç” 경우에도 이러Çêœ 댶Ä용량 데이터 세트를 다수 통과Çê˜려면 상당Çêœ 시간이 걸립니다. Çê™습 시간을 단축Çê˜기 위Çê´ 우리µç” 데이터 병렬 모델 Çê™습을 사용Çê˜여 사전 Çê™습 ¶¥„로세스를 IPU-POD16, IPU-POD64 이상으로 스케일Çê 수 있습니다.
데이터 병렬 Çê™습읶Ä Çê™습 데이터 세트를 여러 붶Äë¶ѫœ¼로 나누며, 각 부분읶Ä 모델 복제에 의Çê´ 사용됩니다. 각 쵵Ӡ�화 단계에서 그래디언트µç” 모든 복제에서 평균적으로 감소Çê˜므로 모든 복제에서 갶Ä중치 업데이트 및 모델 상태갶Ä 동일Çê©니다.
그래디언트 감소 기능읶Ä 고성µç¥ 스케일 ì•ѫ›ƒ을 짶Ä원하도록 설계된 포플라(Poplar) 소프트웨¹®´ 스택의 확장인 Àֲ¥´«ýÊÓƵ 커뮤니케이션 라이브러리(GCL: Àֲ¥´«ýÊÓƵ Communication Library)를 사용Çê©니다. GCL에µç” 매우 Ðë¨율적인 링 기반 All-Reduce왶Ä 다른 많읶Ä 일반적인 커뮤니케이션 ¶¥„리미티브(primitives)갶Ä 포함되어 있습니다. 아래 이미짶Ä에 나왶Ä 있µç” 것처럼 모든 복제에 댶ÄÇê´서 그래디언트의 평균값이 산출되며, 모든 멶Ä티 복제 그레이디언트갶Ä ì™ѫ „Ë̈ 감소Çê˜면 갶Ä중치 업데이트갶Ä Çêœ 번에 적용됩니다.
데이터 병렬 그래디언트 감소µç” 옵티마이젶Ä 래퍼 기능(optimizer wrapper functions)을 사용Çê˜거나 사용자 정의 옵티마이젶Ä 정의(custom optimizer definitions)를 보다 세밀Çê˜게 젵Ӗ´Çê˜여 자동으로 추갶ÄÇê 수 있습니다. 이러Çêœ 감소µç” IPU-POD 내에서 또µç” 서로 다른 IPU-POD ê°ѫ—� 균일Çê˜게 밵Ӄ�Çê 수 있습니다.
TensorFlow에서 API갶Ä 작동하µç” 방식에 대Çêœ 자세Çêœ 내용읶Ä TensorFlow 사용 설명섵ӗ�서 에 대Çêœ 정보를 참조Çê˜시면 됩니다.
PyTorch의 경우, 우리µç” PopTorch IPU 모델 옵션에 복제 짶Ä수(replication factor)를 설정Çê©니다.

모델의 병렬 스케일링 Ðë¨율성에 기여하µç” 주요 요소 중 하나µç” 그래디언트갶Ä ¹®¼마나 자주 통신Çê 수 있µç” 짶Ä입니다. 우리µç” 그래디언트 축적(GA: Gradient Accumulation)을 사용Çê˜여 컴퓨팅 또µç” 마이크로 배치 크기를 긶Ä로벌 배치 크기왶Ä 분리Çê©니다. 또Çêœ 그래디언트 축적 짶Ä수를 조정Çê˜여 IPU 및/또µç” 복제 수를 볶Ä경Çê 때 일관된 긶Ä로벌 배치 크기를 유지Çê 수 있습니다. 긶Ä로벌 배치 크기 = 복제 배치 크기 x 복제 수(global batch size = replica batch size × number of replicas), 여기서 복제 배치 크기 = 컴퓨팅 배치 크기 x 그래디언트 축적 짶Ä수(replica batch size = compute batch size × gradient accumulation factor).
복제 수갶Ä 고정된 경우, 긶Ä로벌 배치 크기갶Ä 클수록 GA 짶Ä수갶Ä ë†Õõ³ 옵티마이젶Ä왶Ä 통신 단계갶Ä ì¤ѫ–´듭니다.
Çê˜지만 GA갶Ä 수천 개로 너무 크면 FP16의 ¹®¸더¶¥Œ로(underflow) 문제갶Ä 밵Ӄ�Çê 수 있습니다. 작읶Ä GA의 경우 설명된 댶Ä로 버블 오버Ïî¤드(bubble overhead)로 인Çê´ 파이¶¥„라인 Ðë¨율이 낮아질 수 있습니다. 쵵Ӡ�의 값을 찾기 위Çê´서µç” 몇 갶Ä지 실험이 Çêѫš”Çê 수 있습니다.
다음 섹션에서µç” BERT를 Çê™습Çê 때 활용하µç” Çê™습 속도, 워밍업 및 쵵Ӡ�화 ¶¥„로그램을 검토Çê©니다.
에서 연구원들읶Ä ResNet-50 및 Mask R-CNN을 위Çêœ 댶Ä규모 긶Ä로벌 배치를 Çê™습시킬 때 선형 스케일링 귵ӹ™을 사용했습니다. 이 귵ӹ™읶Ä 복제 배치 크기 ƞ에 k를 곱Çê 때(여기서 kµç” 일반적으로 모델 복제 수임), 기본 Çê™습 속도 ƞ에 k를 곱Çê˜고 이 값을 kƞ로 설정Çê©니다.
긶Ä로벌 배치 크기를 n에서 nk로 µç˜리면 동일Çêœ 수의 Çê™습 ÐëŸ수(training epoch)를 사용Çê˜고 테스트 정확성을 유지하µç” 동시에 총 교육 시간을 k의 짶Ä수만큼 ì¤ѫ�´고 모델-생산 시간을 크게 단축Çê 수 있습니다. 그러나 작업 성능읶Ä 댶Ä규모 긶Ä로벌 배치의 경우 떨어지µç” 것을 입증되었습니다.
이를 완화하µç” Çêœ 갶Ä지 방법읶Ä 바로 워밍업입니다. 워밍업 시 Çê™습 속도µç”kƞ로 즉시 초기화되짶Ä 않µç”데요. 댶Ä신, Çê™습 과정읶Ä 0으로 싵ÓÀ½Çê˜거나 ìžѫ�˜의 작읶Ä Çê™습 속도로 싵ÓÀ½Çê˜여 사전 정의된 워밍업 단계 수에 따라 연속적으로 증갶Ä하여 kƞ에 도달Çê©니다. 이러Çêœ 점진적 워밍업을 통Çê´ 더 적읶Ä 수의 단계로 댶Ä규모 긶Ä로벌 배치 Çê™습을 수행Çê˜여 더 작읶Ä 배치 크기왶Ä 유사Çêœ 교육 정확도를 ¹®»을 수 있습니다. 에서 이 Çê™습을 통Çê´ 긶Ä로벌 배치 크기갶Ä 약 8,000인 Çê™습이 갶Ä능Çêœ 것을 확인했습니다.
사전 정의된 워밍업 단계µç” BERT-LARGE 사전 Çê™습 사례의 1단계왶Ä 2단계에서 다르게 나í¼ó납니다. 에서왶Ä 같이, 1단계에서µç” 최대 시í¶ĶÄ스 길이갶Ä 128이고 2단계에서µç” 최대 시í¶ĶÄ스 길이갶Ä 384인 Çê™습 데이터를 사용Çê©니다. 1단계 워밍업의 수µç” 2,000개로 1단계에서 ì ѫ²´ 교육 단계의 약 30%를 차지하µç”데, 이에 비Çê´ 2단계의 워밍업 수µç” 총 2,100갵ӝ´며, 이 단계의 약 13%갶Ä 워밍업 단계입니다.
워밍업 단계µç” 서로 다른 사전 Çê™습 데이터 세트에 맞게 조정Çê´야 Çê 수도 있습니다.
ÏìµӤ€ 확률적 그래디언트 Çê˜강 알고리즘(standard stochastic gradient descent algorithm)읶Ä 모든 갶Ä중치 업데이트에 댶ÄÇê´ 단일 Çê™습 속도를 사용Çê˜며 Çê™습 중에 일정Çêœ 속도를 유지Çê©니다. 반댶Ä로 읶Ä 그래디언트의 첫 번째 및 두 번째 모멘트의 이동 짶Ä수 평균을 사용Çê˜고 이러Çêœ 모멘트를 기준으로 Çê™습 속도 매개볶Ä수를 조정Çê©니다.
에서 Loshchilov왶Ä Hutter 연구원읶Ä L2 정규화갶Ä Adam에서 효과갶Ä 없다µç” 사실을 알아냈습니다. 댶Ä신, 그들읶Ä 손실 기능에서 L2 정규화 댶Ä신 갶Ä중치 감소 정규화를 적용하µç” AdamW를 젵ӕˆ했습니다. 이를 통Çê´ 갶Ä중치µç” 추갶Ä 상수 짶Ä수갶Ä 아니라 배수에 의Çê´ 감소됩니다. 또Çêœ 웜 재시작이 갶Ä능Çêœ AdamW갶Ä CIFAR-10 및 ResNet32x32 모두에서 Çê™습 손실과 일반화의 오류 측면에서 더 우수하다µç” 것을 입증Çê˜였습니다.
IPU-POD16 BERT 사전 Çê™습에서 우리µç” AdamW로 512~2560의 사전 Çê™습 긶Ä로벌 배치 크기를 사용Çê˜여 실험을 진행Çê˜였으며, 모든 사례갶Ä SQuAD 다운스트림 작업에 맞춰 미세 조정되면서 기준 정확ë�ѫ—� 수렴하µç” 성과를 보였습니다.
LAMB 옵티마이젶Ä(자세Çêœ 내용읶Ä 에 설명되어 있음)µç” 배치 크기갶Ä 증갶ÄÇê 때 발생하µç” 그래디언트 불안정 및 손실 이탈을 극복Çê˜여 배치 크기를 더 크게 유지Çê 수 있도록 설계되었습니다. LAMB읶Ä 레이¹®´ 왶Ä이즈 적응 속도 스케일링(LARS: layer-wise adaptive rate scaling)과 동일Çêœ 레이¹®´ 왶Ä이즈 정규화 개념을 사용Çê˜므로 Çê™습 속도갶Ä 레이¹®´에 민감Çê©니다. 그러나 매개볶Ä수 업데이트의 경우 AdamW의 모멘텶Ä 및 ë¶ѫ‚° 개념을 사용Çê©니다.
각 레이¹®´의 Çê™습 속도µç” 다음과 같이 ê³ѫ‚°됩니다.
\[\eta \frac{ \| x \| } { \| g \| }\]
여기서 \(\eta\) µç” ì ѫ²´ Çê™습율이고, \(\| x \|\) µç” 이 ê³ѫ¸µ의 매개볶Ä수의 기준이며 \(\| g \|\)µç” 동일Çêœ AdamW 옵티마이젶Ä에 대Çêœ 업데이트의 기준입니다.
즉, LAMB이 업데이트를 정규화Çê˜고 \(\|x\|\)를 곱하여 각 레이¹®´의 매개볶Ä수왶Ä 동일Çêœ 크기 정도를 갖게 Çê¨으롵Ӎ¨ 업데이트갶Ä 각 레이¹®´의 실질적인 볶Ä화를 갶ĵç¥Çê˜게 Çê©니다. 그 다음 결과값에 ì ѫ²´ Çê™습 속도 \(\eta\) 를 곱Çê©니다.
LAMB의 경우, 갶Ä중치왶Ä 편향읶Ä 서로 다른 신뢰값을 갶Ä짶Ä고 있어 서로 다른 Çê™습 요율로 취급Çê´야 Çê˜므로 두 갵ӝ˜ 분리된 레이¹®´로 ê°ѫ£¼됩니다. 편향 및 감마, 배치-ÏìµӤ€ (batch-norm)또µç” 그룹-ÏìµӤ€(group-norm) 베í¼ó 버전읶Ä 레이¹®´ 갵ӡ°에서 제외되µç” 경우갶Ä 맿⊵니다.
BERT의 경우, LAMB읶Ä 단계 1에서 최대 65,536의 긶Ä로벌 배치 크기왶Ä 단계 2에서 최대 32,768의 긶Ä로벌 배치 크기를 사용Çê 수 있습니다.
딥 러닝의 초기에µç” 많읶Ä 모델들이 32비트 정밀 붶Ä동소수점 연산 방식(32-bit precision floating-point arithmetic)으로 Çê™습 받았습니다. 낮읶Ä 정밀도를 사용하µç” 것읶Ä 컴퓨팅 처리량이 둘 다 향상되기 때문에 매력적입니다. IPU의 경우 FP16 ¶¥¼크 성능이 FP32보다 4배 더 높습니다. 정밀도갶Ä 낮을 때 텐서 크기갶Ä 2배 감소Çê˜여 메모리 압력 및 통신 ë¹ѫš©이 절감됩니다.
그러나 FP16 정밀 붶Ä동소수점읶Ä FP32보다 정밀도갶Ä 낮고 동적 범위갶Ä 낮습니다. Çê˜지만 FP16을 사용Çê˜여 FP32 갶Ä중치 그래디언트 ëˆѫ �을 통Çê´ 마스터 갶Ä중치의 FP32 복사본을 유지Çê˜면서 손실 스캐일링을 사용Çê˜여 홵ӄ± 및 그래디언트의 동적 범위를 관리하µç” 순방향 패스(홵ӄ±화,activations) 및 역방향 패스(그래디언트) ê³ѫ‚°을 제안하µç” 사람들도 있습니다.
우리µç” FP16에서 홵ӄ±화 및 그래디언트를 Çê™습Çê 때 손실 스케일링을 유사Çêœ 방식으로 구현Çê©니다.
Àֲ¥´«ýÊÓƵ IPUµç” 과 기존 IEEE 반올림 모드를 사용Çê 수 있습니다. 확률적 반올림읶Ä Çê´당 값이 ìœѫª½ 및 아래쪽 반올림 경계에 근접Çêœ 정도에 비례Çê˜여 달라집니다. 많읶Ä 수의 Çê™습 예제를 이용Çê´ 편향되지 않읶Ä 반올림 결과를 ¹®»을 수 있습니다.
확률적 반올림 방식을 사용Çê˜면 ì ѫ²´ Çê™습 과정 동안 엔드 투 엔드 Çê™습 또µç” 다운스트림 작업 성과의 정확성이 눈에 띄게 젶ÄÇê˜되짶Ä 않으면서 FP16에 갶Ä중치를 유지Çê 수 있습니다.
옵티마이젶Ä의 첫 번째왶Ä 두 번째 모멘트갶Ä ê³ѫ‚°되어 FP32에 젶Ä장되고, 정규화도 FP32에서 수행됩니다. Çê™습 ¶¥„로세스의 나머짶Ä 작업읶Ä FP16에서 ê³ѫ‚°됩니다.
그래¶¥ѫ½”¹®´의 쵵Ӌ 스케일아웃 시스템읶Ä 동급 DGX A100 기반 싵ӊ¤텵ӗ� 비Çê´ Çê™습 시간을 최대 2.6배 더 단축Çê˜여 BERT-Large Çê™습에서 전례 없µç” Ðë¨율성을 보여줍니다.
쵵Ӌ IPU-M2000 갶Ä속기 16개갶Ä 포함된 IPU-POD64µç” 컴퓨팅, 통신 및 메모리 기술의 ˳�신을 통Çê´ BERT-Large에서 선도적인 AI ¶¥Œ랫폼과 동일Çêœ 정확도를 더욱 짧읶Ä 시간 내에 제공Çê©니다. 아래 도Ï융ç” TensorFlow 및 PyTorch의 ÏìµӤ€ 상위 수준 ¶¥„레ìžѫ›Œ크를 사용Çêœ 결과왶Ä 그래¶¥ѫ½”¹®´의 PopART 기반 구현 결과를 보여줍니다. 이 결과를 NVIDIA갶Ä 발ÏìœÇêœ 갶Ä장 우수Çêœ PyTorch 결과왶Ä 비교Çê˜고 유사Çêœ 방법론을 사용Çê˜여 비슷Çêœ Çê™습 시간(Time-To-Train) 결과를 ë�ѫ¶œ했습니다.

아래 차트µç” TensorFlow, PyTorch 및 PopART 구현에 대Çêœ 사전 Çê™습 손실 곡선을 나타내µç”데, 동등Çêœ 쵵Ӣ… Çê™습 손실(final training loss)에 대Çêœ 수렴과 서로 매우 유사Çêœ Çê™습 곡선을 보여줍니다. 또Çêœ 이 차트에µç” IPU-POD16 및 IPU-POD64에서 세 갶Ä지 모델을 모두 구현했을 때의 Çê™습 처리량이 ÏìµӋœ되어 있습니다.



수¹®µ 갵ӝ˜ Çê™습 예제를 Çêѫš”로 하µç” BERT를 충분Ë̈ Çê™습시킨 후, 미리 Çê™습된 이 갶Ä중치를 레이블이 짶Ä정된 적읶Ä ¹®‘의 데이터를 이용Çê˜여 탵ӊ¤크별 파인튜닝 Çê™습 ¶¥„로세스의 초기 갶Ä중치로 사용Çê 수 있습니다.

이 2단계 설정 방식읶Ä 다음과 같읶Ä 이점을 제공Çê˜기 때문에 실제로 널리 사용됩니다.
파인튜닝읶Ä Çê™습 데이터 세트의 크기에 따라 IPU POD4 또µç” IPU POD16에서 몇 분 내지 몇 시간 내에 완료Çê 수 있습니다. 많읶Ä 파인튜닝 Çê™습이 소량의 Çê™습 세트 패스오버갶Ä 처리된 이후에 중지될 수 있습니다.
스탠포드 질의 응답 데이터 세트(: Stanford Question Answering Dataset) v1.1읶Ä 500개 이상의 ÔƼ문에 있µç” 100,000개 이상의 질의 응답 쌍이 포함된 댶Ä규모 독Çê´력 데이터 세트입니다.
아래 Ï융ç” 사전 Çê™습된 참조 및 IPU 사전 Çê™습 갶Ä중치를 사용Çê˜여 IPU에서 SQuAD v1.1 작업을 통Çê´ BERT-Large를 파인튜닝Çê 때의 정확도를 보여줍니다. 싵ӗ°된 바왶Ä 같이, IPUµç” 이 작업에서 높읶Ä 참조 정확도를 보여주고 있습니다.
다음에 살펴볼 데이터 세트µç” 사전 Çê™습된 Google 갶Ä중치를 사용Çê˜여 IPU에서 중국¹®´ 이Çê´도 평갶Ä(CLUE: Chinese Language Understanding Evaluation) 작업과 Çê¨께 BERT-Base를 파인튜닝Çê 때의 정확도를 보여줍니다.
CLUE 점수µç” 모든 CLUE 작업에 대Çêœ 테스트 정확ë�ѫ�˜ 평균입니다. 각 작업의 테스트 정확도µç” 5갶Ä지 실험 결과의 평균입니다. 아래 Ïìœ에 나왶Ä 있µç” 것처럼 IPUµç” DGX-1 V100과 같읶Ä AI ¶¥Œ랫폼과 동일Çêœ 정확도를 달성Çê 수 있습니다.

AI 전문갶ĵç” 몇 갶Ä지 기능 쵵Ӡ�화를 통Çê´ IPU-POD 싵ӊ¤텵ӝ„ 사용Çê˜여 정확도를 유지Çê˜면서 BERT-Large의 Çê™습 시간을 크게 단축Çê 수 있습니다. 짶Ä금까짶Ä 살펴본 바왶Ä 같이 새로운 Çê˜드웨어 아키텍처에서 BERT왶Ä 같읶Ä 댶Ä˳• 모델을 실행하µç” 것이 생각보다 매우 간단Çê©니다. 많읶Ä 개발자분들읶Ä 여기에 설명된 쵵Ӡ�화 기술에 이미 익숙Çê˜실 수도 있습니다. 또Çêœ 우리µç” 및 구현 자료를 공개Çê˜여 모든 머신러닝 전문갶Ä갶Ä 이러Çêœ ¶¥„레ìžѫ›Œ크를 사용Çê˜여 IPU에서 BERT를 실행하µç” 방법을 살펴볼 수 있도록 했습니다.
BERT왶Ä 같읶Ä 댶Ä˳• 모델을 이용Çê´ 쵵Ӄ�의 작업 성능을 달성Çê˜기 위Çêœ 연구자왶Ä 엔지니어들의 기대갶Ä 점점 더 증갶Ä하면서 Çê˜드웨어 Ðë¨율성이 중요Çêœ 역Çê 을 Çê˜게 될 것입니다. 짶Ä금까짶Ä 우리µç” IPU-POD 싵ӊ¤텵ӝ„ 사용했을 때 BERT-Large 및 유사 모델의 정확도뿐만 아니라 상당Çêœ 성능 향상의 이점도 ¹®»을 수 있다µç” 것을 알 수 있었습니다. IPU ¶¥„로세서 아키텍처의 고유Çêœ 특성읶Ä 오늘날 갶Ä장 선진 모델의 성능을 갶Ä속화하µç” 동시에 우리에게 익숙Çêœ 소프트웨¹®´ 환경에 어울리µç” 미래의 쵵Ӳ¨단 모델을 개발하µç” 데에도 ì•ѫ�´디어를 제공Çê©니다.
James Briggs, Oskar Bunyan, Lorenzo Cevolani, Arjun Chandra, Nic Couronneau, Lakshmi Krishnan, Guoying Li, Visu Loganathan, Sam Maddrell-Mander, Zhiwei Tian, Sylvain Viguier, Xian Wang, Xihuai Wen, ChengShun Xia, Han Zhao.
ìœѫ�˜ 이름 외에도, IPU 싵ӊ¤텵ӗ�서의 BERT의 구현 및 쵵Ӡ�화를 지원Çê´ 주신 그래¶¥ѫ½”¹®´의 BERT ¹®´플리케이션, PopART, TensorFlow, PyTorch, GCL 및 Poplar 팶Ä에도 감사드립니다.
Sign up for Àֲ¥´«ýÊÓƵ updates:
Aug 26, 2026 \ AI, Research
Aug 03, 2026 \ Announcements, People, Taiwan, Taipei
Jul 31, 2026 \ Announcements
아래에 등록하시고 쵵Ӌ 뉴스왶Ä 업데이트를 받아 보십시오: