<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=145304570664993&amp;ev=PageView&amp;noscript=1">
training sparse large language models on Graphcore IPU

Sep 02, 2021 \ Research, Natural Language Processing

그래프코어 IPU를 통한 희소 대규모 언어 모델 학습

작성자

Frithjof Gressmann and Anastasia Dietrich

새로운 그래프코어 연구 논문에서는 IPU 통한 대규모 언어 모델 사전 학습을 예시로 들어 희소 학습을 효율적으로 구현하는 방법을 보여줍니다.

논문 읽기

희소성의 잠재력 탐구

희소 신경망 연구는 혁신의 선순환을 주도합니다. 알고리즘 개선을 통해 소프트웨어 라이브러리가 희소 패턴을 효과적으로 표현할 있습니다. 그런 다음 프로그래머는 이러한 라이브러리를 통해 사용 가능한 하드웨어를 최대한 활용하고, 결과로 컴퓨팅 요구 사항을 줄일 있습니다.

동시에 하드웨어 혁신을 통해 보다 효율적이고 유연한 소프트웨어 라이브러리를 도입하여 연구자가 알고리즘 혁신을 탐색하도록 지원할 있습니다.

최근 혁신 주기는 모든 수준에서 흥미로운 발전을 가져왔습니다. 예를 들어 복권 가설(Frankle Carbin, 2018, Frankle et al., 2019, Ramanujan et al., 2019, Pensia et al., 2020)에서는 학습된 모델 가중치의 작은 하위 집합이 학습된 기능을 높은 정확도로 나타내기에 충분하다는 알고리즘적 인사이트를 강조한 있습니다(Han et al. 2015). 아이디어에 힘입어 새로운 학습 방법이 제안되었습니다. 바로 밀집 학습의 컴퓨팅 비용을 발생시키지 않으면서 정확도가 높은 희소 하위 네트워크를 찾는 것입니다(Evci et al. 2020, Jayakumar et al. 2020). 

작업과 더불어, 희소 컴퓨팅에 대한 주요 기계 학습 프레임워크의 소프트웨어 지원을 확장하기 위한 중요한 노력이 있었습니다. OpenAI 조치 Block Sparse Toolbox PyTorch 통합한 것이 향상된 지원의 예입니다.

하드웨어 수준에서도 주요한 혁신이 진행 중입니다. 그래프코어의 IPU(지능형 처리 장치) 같이 희소 컴퓨팅을 지원하도록 특별히 설계된 새로운 가속 솔루션은 업계와 학계의 혁신가들에게 널리 보급되고 있습니다.

이러한 모든 개발은 최근 AI 모델 크기의 폭발적인 성장을 고려할 매우 시의적절합니다. 오늘날 널리 사용되는 GPT3 같은 대규모 Transformer 기반 언어 모델은 최신 아키텍처에서 계속 증가하는 모델 크기의 적절한 예입니다. 이처럼 모델은 일관된 정확도 개선이라는 이점을 안겨주지만, 학습 추론 면에서는 훨씬 많은 계산이 요구됩니다. 이러한 맥락에서 개선된 희소 방법은 비용 및 에너지 소비 줄일 있는 잠재력을 가지고 있어 높은 전력 소비로 인한 환경 문제 완화하면서 모델을 널리 액세스할 있게 돕습니다.

사례 연구에서는 SNN Workshop 2021에서 발표된 바와 같이 IPU 프로세서에서 확장 가능한 언어 모델 사전 학습의 구체적인 예를 사용하여 희소 컴퓨팅의 가능성을 탐구합니다. 특히, BERT 언어 모델의 강력한 희소 사전 학습 기준점을 구현하며 부동 소수점 연산(FLOP) 기반과 비교할 밀집 모델보다 탁월함을 입증합니다. 사례 연구와 관련된 하드웨어, 소프트웨어 알고리즘의 다양한 측면에 대한 탐구를 넘어 우리의 발견이 분야에서의 활발한 연구를 위한 실질적인 출발점이 되기를 바랍니다

이제 워크샵에서 발표한 주요 결과 일부에 초점을 맞추겠습니다. IPU 대한 개요와 희소 컴퓨팅에 IPU 적합하게 만드는 기능부터 시작하겠습니다. 다음으로 희소 알고리즘을 구현하는 사용하는 오픈 소스 소프트웨어 라이브러리를 소개하겠습니다. 마지막으로 효율적인 실행에 도움이 있는 가지 알고리즘 속성을 조명하는 실험 결과에 대해 논의합니다.

하드웨어: IPU 아키텍처 희소 컴퓨팅  

그래프코어 IPU 머신러닝 워크로드용으로 특별히 설계된 새로운 대규모 병렬 프로세서입니다. 2세대 에는 각각 6개의 스레드가 있는 1,472개의 완전히 독립적인 프로세서 코어(타일이라고 ) 있어 번에 8,832개의 독립적인 동시 명령어(다중 명령어 다중 데이터(MIMD)) 실행할 있습니다. 특히, 타일에는 카드당 180TB/s 속도로 액세스할 있는 자체 프로세서 메모리 청크가 있으며, 이는 오프칩 DRAM 메모리 액세스 대역폭의 100 이상입니다. IPU 컴퓨팅과 메모리를 함께 배치하면 에너지 효율성이 높아질 뿐만 아니라 세분화되고 유연한 접근 방식을 사용하여 병렬화해야 하는 매우 불규칙한 계산에 아주 적합합니다

IPU 많은 양의 병렬 처리를 위해 특별히 설계되었기 때문에 희소 워크로드에 특히 적합합니다네트워크 토폴로지의 알고리즘적 희소화는 종종 미세한 입도의 매우 불규칙한 계산 그래프들을 초래하므로, 가장 작은 계산 구조조차 효율적으로 병렬화할 있는 IPU 능력이 장점이 있습니다

IPU 아키텍처는 희소 구조의 입도가 높은 경우에도 희소 학습 추론을 위한 계산 효율성을 유지할 있습니다. 크기 16 곱셈누적 유닛을 사용하면 IPU 1x1, 4x4, 8'8 또는 16'16 매우 작은 블록 크기에 대해서도 우수한 스레드 활용도와 성능을 얻을 있습니다. IPU 또한 처리량을 높이는 도움이 되는 일반적인 희소 원시 컴퓨팅을 가속화하도록 설계된 여러 명령들을 지원합니다

소프트웨어: Poplar Popsparse 소프트웨어 라이브러리 

희소 컴퓨팅을 위한 유연한 저수준 C++ 라이브러리인 Popsparse 통해 사용할 있는 최적화된 커널로 모든 하드웨어 아키텍처 기능을 활용할 있습니다. Popsparse IPU에서 실행되는 모든 것을 뒷받침하는 그래프코어의 그래프 구성 컴파일 API Poplar 기반으로 하는 그래프코어의 오픈 소스 소프트웨어 라이브러리(PopLibs 알려짐) 하나입니다.

희소성 커널은 PopART API 통해 직접 타게팅되거나 작업에 사용된 TensorFlow Keras 레이어를 통해 기존 TensorFlow 모델에 쉽게 통합될 있습니다. FP16 FP32 모두에서 블록 크기가 1x1, 4x4, 8x8, 16x16 희소성이 지원됩니다. 그래프코어는 GitHub 공개 예제를 통해 오픈 소스 구현 튜토리얼을 제공합니다.

Poplar 소프트웨어 스택은 알고리즘의 희소성 패턴이 고정되어 있는지 또는 시간에 걸쳐 발전하는지에 따라 정적 동적 희소성 모두 지원합니다. 정적 희소성을 사용하면 컴파일 최적화가 향상되어 실행 효율성이 개선되므로 이미 학습된 모델과 관련된 추론 워크로드에 적합합니다. 그러나 많은 학습 알고리즘은 학습 과정에서 알고리즘의 희소성 패턴을 천천히 발전시킵니다. 이러한 경우 동적 희소성이 유연성을 제공할 있습니다.

동적 희소성 기술의 구현을 단순화하기 위해, IPU 스트리밍하기 전에 호스트에서 희소성 패턴을 쉽게 조작할 있는 다양한 기능이 제공됩니다. 사용자는 구현에 가장 적합한 희소성 형식을 선택한 다음 이를 IPU 내부 CSR 기반 희소 형식으로 변환할 있습니다. 이를 통해 희소성을 기존 코드에 쉽게 통합하고 Python으로 패턴 조작을 표현할 있습니다.  

RNN 아키텍처에서 GPT2 이르는 희소 모델의 전체 모델 구현과 RigL 희소 어텐션 같은 정적 동적 희소 최적화 기술도 오픈 소스로 제공됩니다.   

알고리즘: 부분 신경망 학습을 위한 동적 희소성 사용 

IPU Poplar 소프트웨어 라이브러리는 희소 학습을 위한 최신 알고리즘을 구현하는 필요한 모든 것을 제공합니다. 그러나 BERT 같은 기존의 밀집 모델의 경우 최상의 알고리즘 접근 방식이 무엇일지 즉시 없습니다.

전통적으로 가지치기 기술은 학습된 모델의 추론 속도를 높이는 간단하고 효과적인 방법입니다. 학습 중에 유사한 컴퓨팅 이점을 달성하는 것은 일반적으로 어렵습니다. 가지 일반적인 기술은 희소 토폴로지로 학습을 시작하고 시간이 흐를수록 연결 패턴을 발전시키는 것입니다(Evci et al. 2020, Jayakumar et al. 2020). 접근 방식을 사용하면 현재의 하위 네트워크를 가지치기하고 재성장시키면서 희소 연결이 주기적으로 수정됩니다. 이렇게 하면 계산 비용 절감의 이점을 유지하면서 원래 과모수화된 모델의 자유도를 효과적으로 탐색할 있습니다

물론 이러한 방법의 효율성은 특정 가지치기 재배치 기준에 크게 의존합니다. 옵션은 단순한 규모 기반 가지치기 임의 재할당에서 더 정교한 그래디언트 기반 접근법 이르기까지 다양합니다.

Figure 1 Dynamic Sparsity

그림 1: 왼쪽 패널: 동적 희소 학습 중 매개변수 공간 탐색 그림. 학습된 네트워크 매개변수의 0이 아닌 부분집합은 매개변수의 가지치기 및 재할당을 사용하여 발전됩니다. 오른쪽 패널: 동적 희소 학습 중에 가지치기 비율의 코사인 감쇠와 탐색 및 학습된 매개변수 비율의 진화.

 

 

여기서 다양한 블록 크기 1x1, 4x4, 8x8 16x16 대해 규모 기반 가지치기 무작위 재성장을 사용하여 간단하지만 조정된 동적 희소성 기준점을 구현하도록 선택합니다. 특히 BERT 언어 모델링 작업을 기반으로(Devlin et al. 2018), 우리는 완전히 연결된 인코더 가중치(임베딩 가중치 제외) 0.9 희소성 비율로 희소화하여 레이어에 있는 가중치의 10% 남도록 했습니다. 규모 기반 가지치기와 가중치의 특정 비율(가지치기 비율 0.5, 시간 경과에 따른 코사인 감쇠, 그림 1 참조) 무작위 재성장을 사용하여 희소성 패턴(사전 학습의 1단계에서 160) 정기적으로 업데이트합니다

그런 다음 학습률을 조정하여 최상의 작업 성능을 얻습니다. 접근 방식을 사용하여 다양한 모델 크기를 BERT Base까지 희소화합니다. 그림 2 1단계 이후에 달성된 마스킹된 언어 모델 손실을 보여줍니다. 이는 마스킹된 토큰의 무작위 하위 집합을 예측하는 유효성 검사 성능에 해당합니다. FLOP 예산으로 비교할 동적으로 희소 학습된 모델은 모든 모델 크기에 대해 밀집 모델보다 성능이 뛰어납니다

Figure 2 Dynamic Sparsity

그림 2: 동적 희소성(주황색 점선)과 정적 희소성(파란색 실선) 및 밀집 기준점(검정색 파선)을 FLOP의 함수로 비교하는 BERT 제품군에 대한 파레토 곡선 모든 결과는 희소성 비율 0.9, 160개 패턴 업데이트 및 0.5의 최적 가지치기를 사용하여 사전 학습의 1단계에서 얻은 것입니다.

 

 

이는 동적 희소 학습 접근법이 대규모 사전 학습의 계산 부담을 줄이는 효과적인 기술이 있음을 보여줍니다. 흥미롭게도 동적 희소 학습 접근법은 최대 16x16까지의 블록 크기에서도 여전히 FLOP 효율적입니다( 1). 블록 크기를 사용하면 실행을 더욱 효율적으로 만들기 위해 활용할 있는 추가 최적화가 가능합니다.  

Table 1 Dynamic Sparsity

표 1 다양한 블록 크기 B에 대한 희소성이 s=0.9인 BERT-Base의 동적 학습 작업 성능을 유사한 수의 FLOP 및 동일한 수의 FLOP로 기준값들의 선형 보간("매치됨")을 사용하는 밀집 BERT-Small과 비교

 

향후 작업을 통해 구조화된 희소성의 성능을 개선하여 대규모 언어 모델의 컴퓨팅 효율적인 학습을 위한 최상의 절충안을 식별할 수 있습니다.

희소 학습 효율성을 위한 새로운 방향

이 연구에서 우리는 새로운 IPU 하드웨어를 사용하여 대규모 언어 모델의 동적인 상시 희소 학습을 위한 간단한 기준점을 설정했습니다. 이러한 모델들에 대해 주어진 FLOP 예산에서 비교할 때 희소 학습이 밀집 학습보다 더 효율적일 수 있음을 보여주었습니다.

또한 더 큰 블록을 사용하면 밀집 학습에 비해 FLOP 이점을 부분적으로 유지할 수 있습니다. 이러한 맥락에서, 블록 희소성과의 호환성을 보장하기 위해 구조화되지 않은 학습 방법을 최소한으로만 수정했다는 점에는 주목할 만한 가치가 있습니다.  이는 추가 최적화와 알고리즘 혁신이 여기에서 달성한 블록 희소 정확도를 개선하고 희소 학습을 훨씬 더 효율적으로 만드는 데 도움이 될 수 있음을 의미합니다.

우리는 이 연구가 새로운 하드웨어와 소프트웨어가 희소 네트워크 접근 방식의 다음 혁신 주기를 주도하고 활성화할 수 있는 방법을 보여준다고 믿습니다.

논문 읽기

희소성 프로젝트에서 그래프코어 IPU 사용하는 관심이 있는 경우 그래프코어 Academic Programme 신청서를 제출해 주세요.

게시물 더 보기