GLaM: Mixture-of-Experts를 이용한 언어 모델의 효율적인 확장

GLaM (Generalist Language Model)은 sparsely activated Mixture-of-Experts (MoE) 아키텍처를 사용하여 언어 모델의 용량을 효율적으로 확장하는 모델 계열입니다. 가장 큰 GLaM 모델은 GPT-3보다 약 7배 큰 1.2조 개의 파라미터를 가지고 있지만, 훈련에 사용된 에너지는 GPT-3의 1/3에 불과하고 추론 시에는 절반의 계산 flops만 필요로 합니다. 이는 각 토큰이 전체 네트워크가 아닌 소수의 expert 하위 네트워크만 활성화하기 때문에 가능합니다. 결과적으로 GLaM은 29개의 NLP 벤치마크에서 zero-shot, one-shot, few-shot 성능 전반에 걸쳐 GPT-3보다 우수한 성능을 달성했습니다. 논문 제목: GLaM: Efficient Scaling of Language Models with Mixture-of-Experts

Du, Nan, et al. "Glam: Efficient scaling of language models with mixture-of-experts." International conference on machine learning. PMLR, 2022.

GLaM: Efficient Scaling of Language Models with Mixture-of-Experts

Abstract

더 많은 데이터, 연산량, 파라미터로 **언어 모델을 확장(scaling)**하는 것은 자연어 처리 분야에서 상당한 발전을 이끌어왔다. 예를 들어, 이러한 스케일링 덕분에 GPT-3는 in-context learning task에서 강력한 결과를 달성할 수 있었다. 그러나 이러한 대규모 dense 모델을 학습시키는 데는 상당한 양의 컴퓨팅 자원이 필요하다.

본 논문에서는 **GLaM (Generalist Language Model)**이라는 이름의 언어 모델 계열을 제안하고 개발한다. GLaM은 sparsely activated mixture-of-experts 아키텍처를 사용하여 모델 용량을 확장하는 동시에, dense 모델에 비해 학습 비용을 크게 절감한다.

가장 큰 GLaM 모델은 1.2조 개의 파라미터를 가지며, 이는 GPT-3보다 약 7배 큰 규모이다. 이 모델은 GPT-3 학습에 사용된 에너지의 1/3만을 소비하고, 추론(inference) 시에는 절반의 연산량(flops)만을 요구하면서도, 29개의 NLP task 전반에 걸쳐 더 나은 zero-shot, one-shot, few-shot 성능을 달성한다.

1. Introduction

지난 10년간 **Language Model(LM)**은 자연어 처리(NLP) 발전에 중요한 역할을 해왔다. 다양한 LM 변형 모델들이 많은 NLP 애플리케이션에서 사전학습된 단어 벡터(pretrained word vectors) (Mikolov et al., 2013; Pennington et al., 2014)와 문맥화된 단어 벡터(contextualized word vectors) (Peters et al., 2018; Devlin et al., 2019)를 생성하는 데 사용되었다. 더 많은 데이터와 더 큰 모델로 확장(scaling)하는 방향으로의 전환 (Shazeer et al., 2017; Huang et al., 2019; Kaplan et al., 2020)은 복잡한 자연어 task를 더 적은 labeled data로 수행할 수 있게 했다. 예를 들어, GPT-3 (Brown et al., 2020)와 FLAN (Wei et al., 2021)은 few-shot 또는 심지어 zero-shot generalization을 위한 in-context learning의 실현 가능성을 입증했으며, 이는 NLP 애플리케이션에서 좋은 성능을 달성하기 위해 매우 적은 labeled example만 필요하다는 것을 의미한다. 이러한 방식이 효과적이고 성능이 뛰어나지만, 더 이상의 확장은 엄청나게 비싸지고 상당한 양의 에너지를 소비하게 된다 (Patterson et al., 2021).

Table 1. GPT-3와 GLaM의 비교. 요약하자면, GLaM은 추론 시 토큰당 FLOPs를 약 절반만 사용하고 학습에 필요한 에너지는 약 3분의 1만 소비하면서도, 21개의 자연어 이해(NLU) 벤치마크와 8개의 자연어 생성(NLG) 벤치마크에서 GPT-3보다 평균적으로 우수한 성능을 보인다.

GPT-3GLaMrelative
costFLOPs / token (G)350180\mathbf{180}48.6%-\mathbf{48 . 6 \%}
Train energy (MWh)1287456\mathbf{456}64.6%-\mathbf{64 . 6 \%}
accuracyZero-shot56.962.7\mathbf{6 2 . 7}+10.2%+\mathbf{1 0 . 2 \%}
One-shot61.665.5\mathbf{6 5 . 5}+6.3%+\mathbf{6 . 3} \%
Few-shot65.268.1\mathbf{6 8 . 1}+4.4%+\mathbf{4 . 4 \%}

본 연구에서는 대규모의 sparsely activated networkfew-shot task에서 state-of-the-art dense model과 비교하여 경쟁력 있는 결과를 달성하면서도 계산 효율성이 더 높다는 것을 보여준다. 우리는 dense computation과 conditional computation 사이의 균형을 맞춘 GLaM이라는 범용 Language Model 계열을 제시한다. GLaM의 가장 큰 버전은 총 1.2T 파라미터를 가지며, MoE layer당 64개의 expert를 포함한다 (Shazeer et al., 2017; Lepikhin et al., 2021; Fedus et al., 2021). 이 모델에서는 입력 batch의 각 토큰이 96.6B (1.2T의 8%) 파라미터로 구성된 subnetwork만 활성화한다. 이 모델은 zero-shot, one-shot, few-shot 학습에서 GPT-3 (175B)와 비교하여 29개의 공개 NLP 벤치마크(언어 완성 task, open-domain QA task, 자연어 추론 task 등) 전반에 걸쳐 학습 효율성이 크게 향상되었다. Sparsely activated architecture모델 병렬화 알고리즘의 효율적인 구현 덕분에, 학습 중 총 에너지 소비량은 GPT-3의 3분의 1 수준에 불과하다. GLaM의 가장 큰 버전과 GPT-3의 비교는 Table 1과 Figure 1에 강조되어 있다.

Figure 1. GLaM (64B/64E)과 GPT-3 (175B)의 예측 성능 변화율(높을수록 좋음) 개요. (a) zero-shot, (b) one-shot, (c) few-shot 설정에서 총 29개의 공개 task를 포함하는 7가지 벤치마크 카테고리에 걸쳐 비교되었다. (a), (b), (c) 패널의 각 막대는 하나의 벤치마크 카테고리를 나타낸다. (d) 패널은 토큰 예측에 필요한 FLOPs와 학습 에너지 소비량을 비교한다.

우리는 GLaM을 사용하여 데이터의 중요성을 연구한다. 우리의 분석에 따르면, 이러한 대규모 모델에서도 고품질의 auto-regressive language model을 만드는 것이 목표라면 데이터의 양을 위해 품질을 희생해서는 안 된다. 더 중요한 것은, 사회적 측면에서 우리의 결과는 WinoGender 벤치마크에서 고정관념적(stereotypical) 예시와 반고정관념적(anti-stereotypical) 예시 간의 성능 격차를 해소한 최초의 연구이며, 이는 대규모의 sparsely activated model이 피상적인 통계적 상관관계에 덜 의존할 수 있음을 시사한다.

마지막으로, MoE 기반 sparse model이 NLP 커뮤니티에서 아직 일반적이지는 않지만, 우리의 연구는 few-shot in-context learning 설정에서 유사한 계산 FLOPs를 가진 dense architecture보다 sparse decoder-only language model이 더 높은 성능을 보일 수 있음을 처음으로 입증한다. 이는 sparsity가 고품질 NLP 모델을 달성하면서 에너지 비용을 절감하는 (Patterson et al., 2021) 가장 유망한 방향 중 하나임을 시사한다. 따라서 MoE는 미래의 scaling을 위한 강력한 후보로 고려되어야 한다.

Language models
Neural language model (Mikolov et al., 2010; Sutskever et al., 2011)은 많은 자연어 처리 task에 유용하다는 것이 입증되었다. word2vec (Mikolov et al., 2013), GloVe (Pennington et al., 2014), paragraph vectors (Le & Mikolov, 2014)와 같은 word embedding 모델 및 그 확장 모델들은 단순히 embedding을 전이(transfer)하는 것만으로도 많은 task에 대해 좋은 일반화 성능을 보여주었다.

Pre-training과 Fine-tuning
풍부한 연산 자원과 데이터는 비지도(unsupervised) pre-training을 통해 점점 더 큰 모델을 학습시키는 것을 가능하게 한다. 이는 신경망이 뛰어난 확장성을 보이기 때문에 신경망 학습에 자연스럽게 적합하다. RNN 및 LSTM과 같은 recurrent model을 언어 표현에 사용하는 연구 (Dai & Le, 2015; Kiros et al., 2015)는 일반적인 language model이 다양한 언어 이해 task를 개선하기 위해 fine-tuning될 수 있음을 보여주었다. 최근에는 Transformer (Vaswani et al., 2017)를 사용한 모델들이 레이블 없는 데이터에 대한 self-supervision을 통해 더 큰 모델이 NLP task에서 상당한 개선을 가져올 수 있음을 보여주었다 (Devlin et al., 2019; Yang et al., 2019; Liu et al., 2019; Clark et al., 2020). pre-training과 fine-tuning에 기반한 transfer learning (Raffel et al., 2020; Houlsby et al., 2019)은 광범위하게 연구되었으며 다운스트림 task에서 좋은 성능을 입증했다. 그러나 이 방법의 주요 한계점은 task-specific fine-tuning이 필요하다는 것이다.

In-Context Few-shot Learning
GPT-3 (Brown et al., 2020) 및 관련 연구 (Shoeybi et al., 2019; Lieber et al., 2021; Wei et al., 2021)는 language model의 규모를 확장하는 것이 task-agnostic few-shot 성능을 크게 향상시킨다는 것을 입증했다. 이러한 language model은 어떠한 gradient update 없이 적용되며, 모델과의 텍스트 상호작용을 통해서만 지정되는 few-shot demonstration만 필요하다.

Sparsely Gated Networks
Mixture-of-Experts 기반 모델 또한 상당한 이점을 보여주었다. language modeling 및 기계 번역 분야에서 Shazeer et al. (2017)은 매우 많은 수의 가중치를 효과적으로 사용할 수 있으면서도 추론 시에는 계산 그래프의 작은 부분만 계산하면 된다는 것을 보여주었다. sparsely activated MoE 아키텍처를 확장하는 연구도 있었다 (Hestness et al., 2017; Shazeer et al., 2018; Lepikhin et al., 2021; Kudugunta et al., 2021). 최근 Fedus et al. (2021)은 1조 개의 파라미터를 가진 더 큰 sparsely activated 모델 (Switch-C)의 결과를 보여주었다. Switch-C와 가장 큰 GLaM 모델 모두 1조 개의 학습 가능한 파라미터를 가지고 있지만, GLaM은 decoder-only language model 계열이고, Switch-C는 encoder-decoder 기반 sequence-to-sequence 모델이다. 또한, Switch-C는 주로 SuperGlue와 같은 fine-tuning 벤치마크에서 평가되는 반면, GLaM은 GPT-3와 공유되는 few-shot 설정(SuperGlue는 이 설정의 하위 집합)에서 fine-tuning 없이도 좋은 성능을 보인다. Table 2는 GLaM과 텍스트 코퍼스에서 사전학습된 관련 모델들 간의 주요 차이점을 요약한다.

Table 2. 텍스트 코퍼스에서 사전학습된 관련 모델들의 샘플 (Devlin et al., 2019; Raffel et al., 2020; Brown et al., 2020; Lieber et al., 2021; Rae et al., 2021; Shoeybi et al., 2019; Lepikhin et al., 2021; Fedus et al., 2021). nparams n_{\text {params }}는 학습 가능한 총 모델 파라미터 수, nact-params n_{\text {act-params }}는 입력 토큰당 활성화되는 모델 파라미터 수이다.

Model NameModel Typenparams n_{\text {params }}nact-params n_{\text {act-params }}
BERTDense Encoder-only340 M340 M
T5Dense Encoder-decoder13 B13 B
GPT-3Dense Decoder-only175 B175 B
Jurassic-1Dense Decoder-only178 B178 B
GopherDense Decoder-only280 B280 B
Megatron-530BDense Decoder-only530 B530 B
GShard-M4MoE Encoder-decoder600 B1.5 B
Switch-CMoE Encoder-decoder1.5 T1.5 B
GLaM (64 B/64E)(64 \mathrm{~B} / 64 \mathrm{E})MoE Decoder-only1.2 T96.6 B

3. Training Dataset

모델 학습을 위해, 우리는 다양한 자연어 사용 사례를 대표하는 1.6조 개의 토큰으로 구성된 고품질 데이터셋을 구축한다. 우리의 unlabeled 데이터셋에서 웹페이지는 방대한 양의 데이터를 차지한다. 그러나 웹페이지의 품질은 전문적인 글쓰기부터 저품질 댓글 및 포럼 페이지까지 다양하다. Brown et al. (2020)과 유사하게, 우리는 원래의 더 큰 raw corpus에서 고품질 웹 corpus를 생성하기 위해 자체 텍스트 품질 분류기를 개발한다. 우리는 추론 속도를 위해 feature hash 기반 선형 분류기를 사용한다. 이 분류기는 선별된 텍스트(Wikipedia, 책, 그리고 몇몇 선택된 웹사이트)와 다른 웹페이지를 분류하도록 학습된다. 우리는 이 분류기를 사용하여 웹페이지의 콘텐츠 품질을 추정한다. 그런 다음, Pareto 분포를 사용하여 점수에 따라 웹페이지를 샘플링함으로써 이 분류기를 적용한다. 이는 분류기의 체계적인 편향을 방지하기 위해 일부 저품질 웹페이지도 포함되도록 한다 (Brown et al., 2020).

Table 3. GLaM 학습 세트의 데이터 및 혼합 가중치.

DatasetTokens (B)Weight in mixture
Filtered Webpages1430.42
Wikipedia30.06
Conversations1740.28
Forums2470.02
Books3900.20
News6500.02

Figure 2. GLaM 모델 아키텍처. 각 MoE layer(하단 블록)는 Transformer layer(상단 블록)와 **교차(interleave)**되어 있다. 예를 들어 'roses'와 같은 각 입력 토큰에 대해, Gating 모듈은 64개의 expert 중 가장 관련성이 높은 두 개의 expert를 동적으로 선택하며, 이는 MoE layer의 파란색 그리드로 표시된다. 이 두 expert의 출력에 대한 **가중 평균(weighted average)**은 상단 Transformer layer로 전달된다. 입력 시퀀스의 다음 토큰에 대해서는 두 개의 다른 expert가 선택될 것이다.

우리는 이 과정을 사용하여 고품질로 필터링된 웹페이지 하위 집합을 생성하고, 이를 책, Wikipedia 페이지, 포럼 및 뉴스 페이지 및 기타 데이터 소스와 결합하여 최종 GLaM 데이터셋을 만든다. 또한 Adiwardana et al. (2020)이 사용한 공개 도메인 소셜 미디어 대화 데이터도 포함한다. 우리는 더 작은 모델에서 각 구성 요소의 성능을 기반으로 혼합 가중치를 설정하고, Wikipedia와 같은 작은 소스가 과도하게 샘플링되는 것을 방지한다. Table 3은 우리 데이터 구성 요소의 크기와 혼합 가중치에 대한 세부 정보를 보여준다. 혼합 가중치는 작은 모델에서 구성 요소의 성능을 기반으로 선택되었으며, Wikipedia와 같은 작은 데이터셋이 과도하게 샘플링되는 것을 방지하기 위함이다. 데이터 오염을 확인하기 위해, Section D에서 학습 세트와 평가 데이터 간의 중복 분석을 수행했으며, 이는 이전 연구(Brown et al., 2020)와 대략 일치함을 발견했다.

4. Model Architecture

우리는 GLaM 모델에서 sparsely activated Mixture-of-Experts (MoE) (Shazeer et al., 2017; Fedus et al., 2021)를 활용한다. GShard MoE Transformer (Lepikhin et al., 2021)와 유사하게, Figure 2에서 보여지듯이 모든 Transformer layer의 feed-forward 컴포넌트를 MoE layer로 대체한다. 각 MoE layer는 독립적인 feed-forward network들의 집합으로 구성되며, 이를 'experts'라고 부른다. gating function은 softmax activation function을 사용하여 이 expert들에 대한 확률 분포를 모델링한다. 이 분포는 각 expert가 들어오는 입력을 얼마나 잘 처리할 수 있는지를 나타낸다.

각 MoE layer는 훨씬 더 많은 파라미터를 가지고 있음에도 불구하고, expert들은 sparsely activated된다. 이는 주어진 입력 토큰에 대해 제한된 수의 expert들만 사용된다는 것을 의미하며, 이는 연산량을 제한하면서도 모델의 용량(capacity)을 증가시킨다. 우리 아키텍처에서는 이 subset의 크기가 2이다. 각 MoE layer의 학습 가능한 gating network는 입력 시퀀스의 각 토큰에 대해 가장 적합한 두 expert를 활성화하도록 학습된다. 추론 시에는 학습된 gating network가 각 토큰에 대해 가장 좋은 두 expert를 동적으로 선택한다. EE개의 expert를 가진 MoE layer의 경우, 이는 고전적인 Transformer 아키텍처에서 하나의 feed-forward network를 사용하는 대신, O(E2)O(E^2)개의 서로 다른 feed-forward network 조합을 제공하여 훨씬 더 큰 연산 유연성을 제공한다. 토큰의 최종 학습된 표현은 선택된 expert들의 출력에 대한 가중 조합이 된다.

우리는 또한 오리지널 Transformer 아키텍처에 추가적인 수정 사항을 적용했다. 표준 positional embedding 대신 Dai et al. (2019)의 per-layer relative positional bias를 사용한다. MoE가 아닌 Transformer의 feed-forward sub-layer에서는 첫 번째 linear projection과 activation function을 Gated Linear Unit (Dauphin et al., 2017; Shazeer, 2020)으로 대체한다. Gated Linear Unit은 입력의 두 linear transformation에 대한 component-wise product를 계산한 후, Gaussian Error Linear Unit (Hendrycks & Gimpel, 2016) activation function을 적용한다. 대규모 GLaM 모델의 가중치와 연산은 Xu et al. (2021)에 설명된 2D sharding 알고리즘을 사용하여 분할하며, 이에 대한 자세한 내용은 Appendix의 Section C에 설명되어 있다.

5. Experiment Setup

GLaM은 dense 및 sparse decoder-only language model 계열이므로, 이 섹션에서는 먼저 학습 설정, 하이퍼파라미터, 그리고 평가 프로토콜에 대해 자세히 설명한다.

5.1. Training Setting

우리는 MoE(Mixture-of-Experts) 모델과 dense 모델의 동일한 학습 데이터에서의 동작을 연구하기 위해 GLaM의 여러 변형 모델을 학습시켰다. Table 41억 3천만 개에서 1조 2천억 개에 이르는 다양한 규모의 GLaM 모델에 대한 하이퍼파라미터 설정을 보여준다. 여기서

  • EE는 MoE layer의 expert 수,
  • BB는 mini-batch size,
  • SS는 입력 시퀀스 길이,
  • MM은 모델 및 embedding dimension,
  • HH는 feed-forward network의 hidden dimension,
  • LL은 layer 수,
  • NN은 총 디바이스 수이다.

추가적으로,

  • nparams n_{\text {params }}는 학습 가능한 총 모델 파라미터 수,
  • nact-params n_{\text {act-params }}는 입력 토큰당 활성화되는 모델 파라미터 수,
  • nheads n_{\text {heads }}는 self-attention head 수,
  • dhead d_{\text {head }}는 각 attention head의 hidden dimension이다.

우리는 또한 추론 시 토큰당 활성화되는 파라미터 수가 유사한(따라서 토큰당 FLOPs도 유사한) dense 모델들을 참고용으로 포함하였다.
우리는 GLaM 모델의 다양한 변형을 설명하기 위해 GLaM (Base Dense Size/E) 표기법을 사용한다 (예: GLaM (8B/64E)). 예를 들어, **GLaM (8B/64E)**는 약 80억 개의 파라미터를 가진 dense 모델 아키텍처를 기반으로 하며, 모든 두 번째 layer가 64개의 expert를 가진 MoE layer로 대체된 구조를 나타낸다. 각 MoE layer가 하나의 expert만 가질 경우, GLaM은 dense Transformer 기반 language model 아키텍처로 축소된다.
GLaM (Dense Size) 표기법 (예: GLaM (137B))은 동일한 데이터셋으로 학습된 1,370억 개의 파라미터를 가진 dense 모델을 의미한다.

5.2. Hyperparameters and Training Procedure

우리는 모든 GLaM 모델에 대해 동일한 학습 하이퍼파라미터를 사용한다. 구체적으로,

  • 최대 시퀀스 길이는 1024 토큰,
  • 각 입력 예시는 배치당 최대 1백만 토큰이 되도록 패킹(pack)한다.
  • dropout rate는 0으로 설정하는데, 이는 학습 코퍼스 내 사용 가능한 토큰 수가 학습 중 처리되는 토큰 수보다 훨씬 많기 때문이다.
  • 옵티마이저는 **Adafactor (Shazeer & Stern, 2018)**를 사용하며,
    • first-moment decay β1=0\beta_1=0,
    • second-moment decay β2=0.99\beta_2=0.99,
    • 1t0.81-t^{-0.8} decay schedule,
    • update clipping threshold 1.0,
    • factored second-moment estimation을 적용한다.
  • **초기 학습률(learning rate)**은 처음 10K 학습 스텝 동안 0.01로 유지한 후, **역제곱근(inverse square root) 스케줄 lrt1t\operatorname{lr}\langle t\rangle \propto \frac{1}{\sqrt{t}}**에 따라 감소시킨다.
  • 표준 crossentropy loss 외에, **GShard (Lepikhin et al., 2021)**에서 설명된 MoE auxiliary loss를 0.01 계수로 추가하여 expert load balancing을 장려한다. 이는 gating function이 모든 expert에 토큰을 더 고르게 분배하도록 돕는다.
  • SentencePiece (Kudo & Richardson, 2018) subword tokenizer를 사용하며, 어휘(vocabulary) 크기는 256K이다.
  • 학습 중에는 모델 가중치에 float32, 활성화(activation)에 bfloat16를 사용한다.
  • 가장 큰 GLaM 64B/64E 모델1,024개의 Cloud TPU-V4 칩에서 학습되었다.

Trillion 파라미터 규모의 모델을 학습하는 것은 sparsely activated 모델이라 할지라도 극도로 비용이 많이 든다. 하이퍼파라미터 튜닝을 위한 여지가 거의 없다. 여기서는 GLaM 모델을 위한 학습 레시피와 몇 가지 구현 팁을 공유한다.

Table 4. 실험에서 학습된 MoE 및 dense 모델의 크기와 아키텍처. 모델은 토큰당 활성화된 파라미터 수에 따라 그룹화된다. 모든 학습된 모델은 Session 5.1에 설명된 동일한 학습 하이퍼파라미터를 공유한다.

GLaM ModelTypenparams n_{\text {params }}nact-params n_{\text {act-params }}LLMHHnheads n_{\text {heads }}dhead d_{\text {head }}EE
0.1 BDense130 M130 M127683,072126464
1.7 BDense1.7 B1.700 B242,0488,19216128-
1.7 B/32E1.7 \mathrm{~B} / 32 \mathrm{E}MoE20 B1.878 B32
1.7 B/64E1.7 \mathrm{~B} / 64 \mathrm{E}MoE27B1.879 B64
1.7 B/128E1.7 \mathrm{~B} / 128 \mathrm{E}MoE53B1.881 B128
1.7 B/256E1.7 \mathrm{~B} / 256 \mathrm{E}MoE105B1.886 B256
8BDense8.7 B8.7 B324,09616,38432128-
8B/64EMoE143 B9.8 B64
137 BDense137B137B648,19265,536128128-
64B/64EMoE1.2T96.6 B648,19232,76812812864
  • 우리는 작은 규모의 모델들을 먼저 수렴(convergence)하도록 학습시킨다. 이를 통해 데이터셋 및 인프라의 잠재적인 문제들을 가능한 한 빨리 파악할 수 있다.
  • gradient에 NaN 또는 Inf가 포함된 경우 해당 배치의 가중치 업데이트를 건너뛴다 (Shen et al., 2019). NaN/Inf는 gradient 적용 단계에서도 발생할 수 있으며, 이 경우 아래 설명된 대로 이전 체크포인트부터 다시 시작한다. 예를 들어, 기존 변수나 gradient에 Inf가 없더라도 업데이트된 변수가 Inf로 이어질 수 있다.
  • 학습 중 드물게 발생하는 큰 변동이나 NaN/Inf가 발생하면 이전의 정상적인 체크포인트부터 다시 시작한다. 재시작 후 순차적으로 로드되는 배치의 무작위성이 이전의 실패한 학습 상태에서 벗어나는 데 도움이 될 수 있다.

5.3. Evaluation Setting

프로토콜 (Protocol)
GLaM 모델의 효과를 명확하게 입증하기 위해, 우리는 주로 Radford et al. (2018) 및 Brown et al. (2020)이 제안한 zero, one, few-shot learning 프로토콜 평가에 중점을 둔다. zero-shot learning 설정의 경우, 대부분의 상황에서 개발 세트의 각 예시를 직접 평가한다. one/few-shot learning의 경우, 해당 task의 학습 세트에서 무작위로 one/few 예시를 추출하여 유일한 demonstration 및 context로 사용한다. 이러한 demonstration은 두 개의 개행 문자(newlines)를 사이에 두고 평가 예시와 연결된 후 모델에 입력된다.

벤치마크 (Benchmarks)
GPT-3와 GLaM 간의 공정한 비교를 위해, 우리는 Brown et al. (2020)과 동일한 평가 task 모음을 선택한다. 하지만 단순화를 위해 7개의 합성 task (산술 및 단어 재배열)와 6개의 기계 번역 데이터셋은 제외한다. 이러한 제외를 통해 우리는 총 29개의 데이터셋을 사용하며, 여기에는 8개의 자연어 생성(NLG) task와 21개의 자연어 이해(NLU) task가 포함된다. 이 데이터셋들은 다시 7개의 카테고리로 그룹화될 수 있으며, 섹션 A에 나열되어 있다.

자연어 생성 task (Natural Language Generative tasks)
생성 task에서는 모델이 디코딩한 언어 시퀀스를 ground truth와 비교한다. 이러한 task에는 TriviaQA, NQS, WebQS, SQuADv2, LAMBADA, DROP, QuAC, CoQA가 있다. 성능은 Brown et al. (2020)의 각 task 표준에 따라 exact match (EM) 정확도와 F1 score로 측정된다. 시퀀스 생성을 위해 너비 4의 beam search를 사용한다.

자연어 이해 task (Natural Language Understanding tasks)
대부분의 언어 이해 task는 모델이 여러 옵션 중에서 하나의 정답을 선택하도록 요구한다. 모든 이진 분류 task는 두 가지 옵션('Yes' 또는 'No') 중 하나를 선택하는 형식으로 구성된다. 예측은 context가 주어졌을 때 각 옵션의 최대 log-likelihood logP\log P (option|context)를 각 옵션의 토큰 길이로 정규화한 값을 기반으로 한다. ReCoRD (Zhang et al., 2018) 및 COPA (Gordon et al., 2012)와 같은 몇몇 task에서는 비정규화된 손실(non-normalized loss)이 더 나은 결과를 산출할 수 있으므로 이를 채택한다. 답변 옵션 세트에 대한 F1 metric (F1a\mathrm{F} 1_{a}로 지칭)이 보고되는 MultiRC (Khashabi et al., 2018)를 제외하고는, 모든 다른 task에 대해 예측 정확도 metric이 사용된다. 우리는 NLG 및 NLU task 모두에서 모델의 전반적인 few-shot 성능을 보고하기 위해 모든 데이터셋에서 보고된 점수의 평균을 사용한다. 정확도(EM)와 F1 score는 모두 0에서 100 사이로 정규화되었다. TriviaQA에서는 우리의 one-shot 제출에 대한 테스트 서버 점수도 보고한다.

6. Results

우리는 GLaM 모델 계열 전체에 대해 광범위한 평가를 수행하여, 언어 모델링에서 sparsely activated 모델의 장점과 그 scaling 경향을 보여준다. 또한, 언어 모델 학습을 위한 데이터 품질의 효과를 정량적으로 검증한다.

6.1. Comparison between MoE and Dense Models

이전에 Table 1에서 제시된 바와 같이, GLaM (64B/64E)은 zero, one, few-shot learning에서 GPT-3 (175B)와 경쟁력 있는 성능을 보인다. Figure 1은 각 task 카테고리별 성능을 비교한다. 전체적으로 GLaM (64B/64E)은 7개 카테고리 중 6개에서 평균적으로 GPT-3를 능가하며, 이는 성능 향상이 일관적임을 나타낸다. 각 개별 task에 대한 자세한 내용은 Table 11을 참조하라. 우리는 참고용으로 훨씬 크고 계산 비용이 많이 드는 Megatron-NLG 및 Gopher의 결과도 포함하였다. 더 중요한 것은, Table 4에서 보여주듯이, GLaM (64B/64E)은 추론 시 토큰당 약 96.6B 파라미터를 활성화하며, 이는 동일한 입력이 주어졌을 때 GPT-3가 필요로 하는 계산 FLOPs의 절반에 불과하다.

우리는 특히 도전적인 open-domain question answer task인 TriviaQA에 주목한다. open-domain question answer task에서 모델은 추가적인 컨텍스트에 접근하지 않고 주어진 쿼리에 직접 답변해야 한다. Brown et al. (2020)은 TriviaQA의 few-shot 성능이 모델 크기에 따라 꾸준히 증가함을 보여주었는데, 이는 언어 모델이 모델 용량을 사용하여 지식을 흡수할 수 있음을 시사한다. Table 5에서 보듯이, GLaM (64B/64E)은 dense 모델보다 우수하며, open-domain 설정에서 이 데이터셋에 대한 이전 fine-tuned state-of-the-art (SOTA)를 능가한다. 우리의 one-shot 결과는 추가 지식 그래프 정보가 주입된 이전 fine-tuned SOTA (Yu et al., 2022)보다 8.6% 더 높으며, 테스트 서버에서 few-shot GPT-3보다 5.3% 더 우수하다. 이는 GLaM (64B/64E)의 nact-params n_{\text {act-params }}가 GPT-3의 절반에 불과함에도 불구하고, GLaM의 추가 용량이 성능 향상에 결정적인 역할을 한다는 것을 시사한다. Switch-C와 비교했을 때, 두 모델 모두 총 파라미터 수는 유사하지만, GLaM (64B/64E)은 Switch-C보다 훨씬 큰 expert (하나의 TPU 코어를 넘어선)를 사용한다. 따라서 TriviaQA에서 GLaM의 one-shot 성능은 open-domain 설정에서 Switch-C의 fine-tuned 결과보다도 우수하다. 마지막으로, 우리는 Appendix의 Table 11, 12, 13, 14에서 모든 task에 대한 zero, one, few-shot 평가 결과를 주로 개발 세트를 기준으로 보고한다.

6.2. Effect of Data Quality

우리는 데이터 품질이 다운스트림 task의 few-shot 성능에 미치는 영향을 연구한다. 적당한 크기의 GLaM 모델 (1.7B/64E) 을 사용하여 텍스트 필터링이 모델 품질에 미치는 효과를 보여준다. 동일한 하이퍼파라미터로 두 가지 데이터셋에 대해 모델을 학습시킨다. 하나는 Section 3에서 설명된 원본 데이터셋이고, 다른 하나는 필터링된 웹페이지를 필터링되지 않은 웹페이지로 대체한 데이터셋이다. 데이터 혼합 비율은 Table 3에 제시된 대로 고정된다.

Table 5. GLaM (64B/64E)의 one-shot 성능은 wiki split의 open domain 설정에서 기존 SOTA를 크게 능가한다.

ModelTriviaQA <br> (Open-Domain)
KG-FiD (large) (Yu et al., 2022)69.8
(finetuned, test)47.5
Switch-C (finetuned, dev)68.0
GPT-3 One-shot (dev)71.2
GPT-3 64-shot (test)75.0
GLaM One-shot (test)75.8\mathbf{7 5 . 8}
GLaM One-shot (dev)

필터링된 웹페이지는 143B 토큰으로 구성된 반면, 필터링되지 않은 웹페이지는 약 7T 토큰으로 구성된다.

Figure 3 (c)와 (d)는 필터링된 데이터로 학습된 모델이 NLG 및 NLU task 모두에서 일관되게 더 나은 성능을 보인다는 것을 보여준다. 특히, 필터링의 효과는 NLU보다 NLG에서 더 크게 나타난다. 이는 아마도 NLG가 종종 고품질 언어 생성을 요구하며, 필터링된 사전학습 코퍼스가 언어 모델의 생성 능력에 결정적인 역할을 하기 때문일 것이다. 우리의 연구는 사전학습 데이터의 품질 또한 특히 다운스트림 task의 성능에 중요한 역할을 한다는 사실을 강조한다.

6.3. Scaling Studies

Dense language model의 규모를 확장하는 것은 일반적으로 더 많은 layer를 추가하여 모델을 깊게 만들고, token representation의 embedding dimension을 늘려 모델을 넓게 만드는 방식을 포함한다. 이 과정은 모델의 총 파라미터 수 nparams n_{\text {params }}를 증가시킨다. 주어진 입력 예시에 대한 각 예측에서, 이러한 모델들은 **모든 nparams n_{\text {params }} 파라미터가 활성화된다는 점에서 'dense'**하다. 즉, Table 4에서 nparams =nact-params n_{\text {params }}=n_{\text {act-params }}이다. 따라서, 예측당 유효 FLOPs는 모델 크기 nparams n_{\text {params }}에 비례하여 증가한다. 증가된 FLOPs는 예측 성능 향상으로 이어질 수 있지만, 예측당 전체 비용 또한 증가시킨다.

이와 대조적으로, GLaM MoE 모델은 **희소하게 활성화(sparsely activated)**된다. 즉, nparams n_{\text {params }} 파라미터 중 극히 일부만이 각 예측에 대해 활성화되며, 여기서 nparams nact-params n_{\text {params }} \gg n_{\text {act-params }}이다. 따라서 GLaM MoE 모델은 MoE layer의 expert 크기나 개수를 늘리는 방식으로도 확장할 수 있다. Figure 3(a)에서 볼 수 있듯이, 생성(generative) task 전반에 걸친 평균 zero, one, few-shot 성능은 예측당 유효 FLOPs에 따라 잘 확장되며, 이는 다시 nact-params n_{\text {act-params }}에 의해 결정된다. 우리는 또한 GLaM MoE 모델이 유사한 token당 유효 FLOPs에서 GLaM dense 모델보다 지속적으로 더 나은 성능을 보인다는 것을 발견했다. Figure 3(b)에 나타난 언어 이해(language understanding) task의 경우, GLaM MoE 모델의 성능 향상은 생성 task와 유사한 스케일링 추세를 보인다. 우리는 MoE 모델과 dense 모델 모두 작은 규모에서는 유사한 성능을 보이지만, MoE 모델이 더 큰 규모에서 우수한 성능을 보인다는 것을 관찰했다.

Figure 3. 8개의 NLG task (a)와 21개의 NLU task (b)에 대해 유사한 token당 유효 FLOPs를 기준으로 GLaM MoE 모델과 GLaM dense 모델의 평균 zero, one, few-shot 성능을 비교한 그래프. GLaM (1.7B/64E)을 사용하여 필터링된 학습 데이터와 필터링되지 않은 학습 데이터의 모델 성능을 비교한 결과, 필터링된 데이터는 zero, one, few-shot 설정 모두에서 (c) NLG 및 (d) NLU task에 대해 필터링되지 않은 데이터보다 결과를 크게 향상시킨다.

또한 Section B에서는 expert 수를 확장하는 실험을 보여주는데, 여기서 우리는 예측당 고정된 연산 예산 내에서 expert를 더 많이 추가하는 것이 일반적으로 더 나은 예측 성능으로 이어진다는 것을 관찰했다.

6.4. Efficiency of GLaM

기존의 대규모 dense language model은 학습 및 서비스 제공에 막대한 연산 자원을 필요로 한다 (Patterson et al., 2021). 또한, 방대한 양의 사전학습 데이터를 소모해야 한다. 우리는 제안하는 GLaM 모델의 데이터 및 연산 효율성을 조사하였다.

데이터 효율성 (Data Efficiency)
Figure 4 (a-c)와 Figure 4 (e-g)는 NLG 및 NLU task 모두에서 유사한 effective FLOPs를 가진 dense baseline 모델과 비교한 GLaM 모델의 학습 곡선을 보여준다. x축은 학습에 사용된 토큰 수이며, GPT-3의 결과는 약 300B 토큰 지점에 명시적으로 포함하였다.
우리는 먼저 GLaM MoE 모델이 유사한 zero-shot, one-shot, few-shot 성능을 달성하기 위해, 비슷한 FLOPs의 dense 모델보다 훨씬 적은 데이터를 필요로 한다는 것을 관찰했다. 즉, 동일한 양의 데이터를 학습에 사용했을 때, MoE 모델이 훨씬 더 좋은 성능을 보이며, 이러한 성능 차이는 630B 토큰까지 학습할 때 더욱 커진다.
더욱이, 280B 토큰으로 학습된 GLaM (64B/64E) 모델은 300B 토큰으로 학습된 GPT-3보다 6가지 학습 설정 중 4가지(zero-shot/one-shot NLU 및 one-shot/few-shot NLG)에서 훨씬 뛰어난 성능을 보였으며, 나머지 설정인 zero-shot NLG task에서는 GPT-3와 동등한 점수를 기록했다.

연산 효율성 및 에너지 소비 (Computation Efficiency & Energy Consumption)
Figure 4 (d)와 Figure 4 (h)는 MoE 및 dense 모델 학습에 소요된 TPU-year 수에 따라 평균 zero-shot, one-shot, few-shot 성능이 어떻게 변화하는지를 보여준다. 우리는 다운스트림 task에서 유사한 성능을 달성하기 위해, sparsely activated 모델을 학습하는 것이 dense 모델을 학습하는 것보다 훨씬 적은 연산 자원을 필요로 한다는 것을 발견했다.

이전에 Table 1에서 제시된 바와 같이, GLaM (64B/64E) 모델은 600B 토큰 학습 후 456 MWh의 에너지를 소비하며, 이는 GPT-3가 사용한 1287 MWh의 약 1/3 수준이다.
더욱이, GPT-3와 유사한 (그리고 약간 더 뛰어난) 점수를 달성하기 위해, 우리는 1,024개의 TPU-v4 칩을 574시간 동안 사용하여 학습했다 (280B 토큰 사용). 이 과정에서 213 MWh의 에너지가 소비되었는데, 이는 GPT-3 에너지 비용의 1/6 수준이다.
GLaM의 에너지 소비 감소는 MoE 아키텍처와 TPU-v4 하드웨어 및 GSPMD 소프트웨어의 연산 효율성 최적화 덕분이다. 에너지 계산에 대한 자세한 내용은 Section F에서 확인할 수 있다.

7. Ethics and Unintended Biases

대규모 language model의 zero-shot 및 few-shot 추론 능력은 매우 흥미로운 기능이다. 자연어와 소규모 데이터셋만으로 모델의 동작을 직관적으로 제어할 수 있다는 것은 프로토타이핑 및 새로운 애플리케이션 개발의 진입 장벽을 크게 낮춘다. 이는 전문 지식의 필요성을 극적으로 줄여 AI 사용을 대중화하는 데 기여할 잠재력을 가지고 있다.
그러나 이러한 기회는 동시에 많은 윤리적 도전 과제들의 중요성을 부각시킨다 (Leidner & Plachouras, 2017; Bender et al., 2021; Bommasani et al., 2021). 여기에는 표현 편향(representation bias) (Blodgett et al., 2020), 학습 데이터의 적절한 선택 및 처리 (Rogers, 2021) 및 문서화 (Bender & Friedman, 2018), 프라이버시 (Abadi et al., 2016b; Carlini et al., 2020), 그리고 환경 문제 (Strubell et al., 2019; Patterson et al., 2021) 등이 포함된다.
이 연구의 중요한 한 갈래는 language model이 학습하는 의도치 않은 편향에 초점을 맞춘다. 여기에는 성별과 직업 간의 상관관계 (Bolukbasi et al., 2016; Rudinger et al., 2018; Zhao et al., 2018), 인종 및 종교 집단에 대한 부정적인 감정 (Li et al., 2020; Nadeem et al., 2021), 장애인에 대한 부정적인 감정 (Hutchinson et al., 2020), 그리고 기타 사회적 편향 등이 있다.

Figure 4. 학습 효율성 비교. 9개의 NLG task (a-c)와 21개의 NLU task (e-g)에 대해 학습 중 더 많은 token이 처리됨에 따라 GLaM MoE 모델과 GLaM dense 모델의 평균 zero-shot, one-shot, few-shot 성능을 비교한 그래프. 패널 (d)와 (h)는 각각 TPU years 수에 따른 학습 곡선을 보여준다.

(Caliskan et al., 2017; Rudinger et al., 2017; Sap et al., 2020; Sotnikova et al., 2021).
language model의 잠재적 해악을 측정하고 완화하는 것은 매우 활발한 연구 분야이지만, Blodgett et al. (2021); Jacobs & Wallach (2021)이 인정한 바와 같이, language model이 유해한 고정관념을 어느 정도 인코딩하는지 평가하기 위한 보다 엄격한 평가 방법에 대한 필요성이 여전히 크다 (May et al., 2019; Webster et al., 2021).

이러한 범용 대규모 language model에 대한 측정 방법이나 기준에 대한 합의는 아직 없지만, 이 모델들의 다재다능함과 강력한 성능 때문에 다양한 지표로 평가하는 것이 중요하다. 우리는 GPT-3 (Brown et al., 2020)에서 영감을 받아, 생성된 텍스트에서 identity term이 함께 나타나는 빈도를 조사하고 WinoGender 벤치마크 (Rudinger et al., 2018) 결과를 보고한다. 또한 Gopher (Rae et al., 2021)와 유사하게 toxicity degeneration을 분석하고, 인간 행동 기준(human-behavioral baseline)을 고려하도록 분석을 확장한다.

7.1. Co-occurrence prompts

Brown et al. (2020)에서 설명된 절차에 따라, 우리는 "{term} was very..."와 같은 prompt가 주어졌을 때, 연속되는 텍스트에서 자주 함께 나타나는 단어들을 분석하였다. 여기서 {term}은 성별, 종교, 인종 및 민족적 정체성을 나타낸다.
각 prompt(부록의 Table 7)에 대해, top-kk 샘플링(k=40k=40)과 temperature 1을 사용하여 800개의 출력을 생성하였다.
**기성 POS tagger (Bird & Loper, 2004)**를 사용하여 불용어(stop words)를 제거하고 서술적인 단어(즉, 형용사 및 부사)만 선택하였다. 부사를 포함한 이유는, "She was very pretty and very accomplished"와 같은 구문에서 "pretty"가 부사로 잘못 분류되는 등 형용사가 부사로 오분류되는 일반적인 오류 패턴을 발견했기 때문이다. Brown et al. (2020)과 마찬가지로, 분석의 투명성과 재현성을 높이기 위해 어떠한 수동적인 사람의 라벨링도 생략하였다.

우리가 기반으로 하는 다른 대형 language model들의 분석과 마찬가지로, 모든 차원에서 연관 편향(associative biases)이 명확하게 나타남을 확인하였다. 예를 들어, "She"라는 term에 대해 "pretty"가 가장 연관성이 높은 서술어인 반면, "He"라는 term에 대해서는 top-10에 포함되지 않았다.
Table 8은 성별 대명사에 대한 prompt-template에 가장 자주 나타나는 서술적인 단어들을 보여주며, 부록의 Table 9와 10은 인종 및 종교 prompt에 대한 동일한 결과를 보여준다.

7.2. WinoGender

Coreference resolution은 기계 번역 (Stanovsky et al., 2019; Webster & Pitler, 2020) 및 질문 응답 (Lamm et al., 2020)을 포함하여 많은 애플리케이션이 잘 수행하기 위해 요구하는 기능이다. GLaM의 성별 상관관계가 one-shot 설정에서 coreference 오류를 유발하는지 평가하기 위해, 우리는 WinoGender (Rudinger et al., 2018)를 측정한다. GLaM (64B/64E)은 전체 데이터셋에서 **71.7%**라는 새로운 state-of-the-art를 달성했다 (GPT-3 (Brown et al., 2020)의 64.2%와 비교). 고무적으로, 'he' 예시 (70.8%)와 'she' 예시 (72.5%) 간의 정확도가 매우 유사하며, 고정관념적 예시 (의도된 분포가 미국 직업 통계와 유사하다고 가정되는 경우, (Rudinger et al., 2018))와 반고정관념적 (또는 'gotcha') 예시 (모두 71.7%) 간에도 정확도가 유사하다.

Figure 5. Prompt의 Toxicity Probability (TPP)와 Continuation의 Toxicity Probability (TPC) 간의 관계. Human은 원본 사람이 작성한 문장의 continuation을 의미한다.

7.3. Toxicity Degeneration

Toxicity degeneration언어 모델이 의도치 않게 유해한(toxic) 텍스트를 생성하는 현상을 의미한다. 우리는 toxicity degeneration을 평가하기 위해 (Welbl et al., 2021; Rae et al., 2021)에서 사용된 방법론을 적용하였다. 우리는 RealToxicityPrompts 데이터셋 (Gehman et al., 2020)을 사용했는데, 이 데이터셋은 문장이 **프롬프트 접두사(prompt prefix)**와 **이어지는 접미사(continuation postfix)**의 두 부분으로 나뉘어 구성되어 있다. 이전 연구들과 마찬가지로, 우리는 Perspective API를 사용하여 텍스트가 무례하거나, 무시하거나, 또는 사람들이 대화를 떠나고 싶게 만들 가능성이 있는 것으로 간주될 확률을 할당한다. 그런 다음, 프롬프트가 유해할 가능성(likelihood)이 다양하게 주어졌을 때, 이어지는 텍스트(continuation)가 유해할 가능성을 평가한다.

무작위로 샘플링된 10,000개의 프롬프트 각각에 대해, 우리는 **top-k 샘플링 (k=40)**과 온도(temperature) 1을 사용하여 25개의 continuation을 생성했으며, 각 continuation은 최대 100개의 토큰으로 구성된다. Perspective API는 비어 있지 않은 문자열을 요구하므로, continuation이 빈 문자열일 경우 toxicity 점수를 0.0으로 할당한다. 이는 예를 들어, 챗봇이 단순히 응답을 거부하는 상황을 나타낼 수 있다.

Figure 5는 **프롬프트의 Toxicity Probability (TPP)**와 Continuation의 Toxicity Probability (TPC) 간의 관계를 보여준다. 낮은 TPP에서 상대적으로 높은 인간 TPC는 기저 데이터셋을 생성하는 데 사용된 샘플링 전략 때문이라는 점에 유의해야 한다. 즉, 문장들이 toxicity 스펙트럼 전반에 걸쳐 선택되었다. 더욱이, toxicity는 종종 문장 내에서 국부적으로 식별될 수 있으며, 이 데이터셋의 toxicity는 문장의 후반부에 나타나는 경향이 있다. 이로 인해 TPP가 증가함에 따라 인간 TPC가 약간 감소한다. 대조적으로, 모델의 TPC가 TPP를 밀접하게 따른다는 점은 주목할 만하다. 이는 대규모 언어 모델이 때때로 프롬프트에 지나치게 강하게 영향을 받는다는 빈번한 관찰(예: 프롬프트의 문구를 반복하는 현상)을 반영한다.

우리는 또한 25개의 continuation 배치에 대한 API의 toxicity 확률 분포를 분석했다. 이는 낮은 toxicity 프롬프트의 경우에도, 생성된 continuation 중 일부가 Perspective API의 예측 확률에 따라 대부분의 검토자들에 의해 유해하다고 판단될 가능성이 매우 높다는 점을 강조했다. 자세한 내용은 Figure 8에서 확인할 수 있다. 또한, 이 데이터셋의 샘플링 전략과 출처(Reddit)가 다른 도메인을 반영하지 않을 가능성이 높다는 점도 언급한다. 게다가, 매우 낮은 TPP의 경우에도, 애플리케이션은 훨씬 더 낮은 TPC를 원할 가능성이 높다. 즉, 100개 중 1개의 유해한 제안만 생성하더라도 애플리케이션에는 매우 문제가 될 수 있다.

8. Discussion

이전에 sparsely-activated 모델에 대한 연구(Fedus et al., 2021)에서 관찰되었듯이, MoE 모델은 지식 중심(knowledge-oriented) task에서 더 뛰어난 성능을 보인다. Open-domain task는 모델에 저장된 지식의 양을 측정하는 한 가지 방법이다. TriviaQA와 같은 open-domain QA 벤치마크에서 MoE 모델의 성능은 유사한 effective FLOPs를 가진 dense 모델에 비해 정보 용량이 크게 증가했음을 보여준다.
in-context learning 및 학습 효율성 측면에서 장점이 있음에도 불구하고, sparsely activated 모델은 더 많은 수의 파라미터로 구성되어 있어 더 많은 장치를 필요로 한다. 이는 자원 접근성을 제한하고, 특히 serving 트래픽이 낮을 때 serving 비용을 증가시킨다.

9. Conclusions

우리는 GLaM이라는 범용 language model 계열을 제안하고 개발한다. GLaM은 sparsely activated mixture-of-experts (MoE) 아키텍처를 사용하여, 유사한 effective FLOPs를 가진 dense 모델뿐만 아니라 GPT-3 모델보다도 29개의 대표적인 NLP task에서 zero, one, few-shot learning 방식으로 더 나은 평균 점수를 달성한다. 특히, 우리의 가장 큰 **1.2조 파라미터 MoE language model인 GLaM (64B/64E)**은 GPT-3 학습 대비 1/3의 에너지 소비만으로 더 나은 평균 성능을 보인다. 우리는 본 연구가 고품질 데이터 확보 방법거대 language model의 효율적인 확장을 위한 MoE 활용에 대한 더 많은 연구를 장려하기를 희망한다.

A. Benchmarks

Open-Domain Question Answering: TriviaQA (Joshi et al., 2017), Natural Questions (NQS) (Kwiatkowski et al., 2019), Web Questions (WebQS) (Berant et al., 2013)

Cloze and Completion Tasks: LAMBADA (Paperno et al., 2016), HellaSwag (Zellers et al., 2019), StoryCloze (Mostafazadeh et al., 2016)

Winograd-Style Tasks: Winograd (Levesque et al., 2012), WinoGrande (Sakaguchi et al., 2020)

Common Sense Reasoning: PIQA (Bisk et al., 2020), ARC (Easy) (Clark et al., 2018), ARC (Challenge) (Clark et al., 2018), OpenBookQA (Mihaylov et al., 2018)

In-context Reading Comprehension: DROP (Dua et al., 2019), CoQA (Reddy et al., 2019), QuAC (Choi et al., 2018), SQuADv2 (Rajpurkar et al., 2018), RACEh (Lai et al., 2017), RACE-m (Lai et al., 2017)

SuperGLUE: (Wang et al., 2019) BoolQ (Clark et al., 2019), CB (de Marneffe et al., 2019), COPA (Gordon et al., 2012), RTE (Dagan et al., 2006), WiC (Pilehvar & Camacho-Collados, 2018), WSC (Levesque et al., 2012), MultiRC (Khashabi et al., 2018), ReCoRD (Zhang et al., 2018)

Natural Language Inference: ANLI R1, ANLI R2, ANLI R3 (Fyodorov et al., 2000)

B. Scaling the Number of Experts

우리는 또한 MoE layer당 expert의 수를 늘리는 효과도 연구한다. 구체적으로, 우리는 1.7B의 적당한 크기 모델로 시작하는데, 이는 본질적으로 GLaM (1.7B/1E) 모델이며, 각 MoE layer는 단일 feed-forward network만을 expert로 포함하도록 축소된다. 그 다음, 각 MoE layer의 expert 수를 1개에서 256개로 늘린다. expert 수가 기하급수적으로 증가함에도 불구하고, GLaM의 sparsity 덕분에 각 모델의 nact-params n_{\text {act-params }}는 거의 증가하지 않는다. 실제로 Table 4에서 볼 수 있듯이, 이들 모델은 예측당 FLOPs가 거의 동일하다.

Figure 6에서 우리는 예측당 고정된 연산 예산(computation budget) 내에서 expert 수를 늘리는 것이 일반적으로 더 나은 예측 성능으로 이어진다는 것을 관찰한다. 이는 더 많은 expert로부터 오는 증가된 capacity와 유연성 덕분에, GLaM의 sparsely activated 모델이 예측당 FLOPs가 유사한 dense 모델보다 성능 이득을 얻는다는 것을 다시 한번 입증한다.

Figure 6. 1.7B/1E부터 1.7B/256E까지의 적당한 크기 모델 세트에 대해 layer당 expert 수에 따른 평균 zero, one, few-shot 성능을 보여준다.

C. Model Partitioning

우리는 Xu et al. (2021)에서 설명된 2D sharding 알고리즘을 사용하여 대규모 GLaM 모델의 가중치와 연산을 분할한다. 이 알고리즘은 TPU 클러스터의 장치 네트워크가 가진 2D 토폴로지를 활용한다. 우리는 서로 다른 MoE layer에 걸쳐 동일한 인덱스를 가진 expert들을 같은 장치에 배치하여, 서로 다른 MoE layer에 대해 동일한 연산 그래프를 생성한다. 그 결과, MoE Transformer 아키텍처의 반복적인 모듈들을 while_loop 제어 흐름문(Abadi et al., 2016a; Yu et al., 2018)으로 묶어 컴파일 시간을 단축할 수 있다.

우리의 실험 결과에 따르면, 고품질 모델을 얻기 위해서는 expert의 크기를 키워야 한다. 따라서 각 expert가 충분히 커지면, 우리는 각 expert를 NE\frac{N}{E}개의 장치 집합에 할당해야 한다. 예를 들어, MoE layer에서 [E,M,H][E, M, H] 형태의 expert 가중치 텐서expert 차원 EE와 hidden 차원 HH를 따라 분할하고, [B,S,M][B, S, M] 형태의 입력 activation 텐서batch 차원 BB와 model 차원 MM을 따라 분할한다. 이 2D sharding 알고리즘을 통해, 우리는 대규모 가중치 및 activation 텐서들을 더 작은 조각으로 완전히 분할할 수 있으며, 이 과정에서 모든 장치에 걸쳐 데이터나 연산의 중복이 발생하지 않는다. 나머지 텐서들에 대한 sharding 속성은 GSPMD의 컴파일러 패스(Xu et al., 2021)에 의존하여 자동으로 결정한다.

D. Data Contamination

GLaM은 1.6조 개 이상의 텍스트 토큰으로 학습되었기 때문에, 일부 테스트 데이터가 사전학습 데이터셋에 정확히 나타나 결과가 부풀려질 수 있다는 우려가 타당하다. 따라서 우리는 Brown et al. (2020)과 Wei et al. (2021)의 방식을 따라 사전학습 데이터와 평가 데이터셋 간의 중복(overlap) 정도를 정량화하였다.

우리의 분석은 Wei et al. (2021)과 동일한 방법론을 사용하며, 이는 다시 Brown et al. (2020)을 면밀히 따른다. 각 평가 데이터셋에 대해 사전학습 데이터와 중복되는 예시의 수를 보고하며, 중복은 다음과 같이 정의된다:

Table 6. GPT-3에서도 사용된 데이터셋 하위 집합에 대한 중복 통계. 평가 예시가 사전학습 코퍼스와 어떤 nn-gram 충돌이라도 있으면 "dirty"로 간주되었다.

DatasetSplitDirty countTotal count% clean
ANLI R1validation96210003.8
ANLI R2validation96810003.2
ANLI R3validation596120050.33
ARC Challengevalidation9529968.23
ARC Easyvalidation18557067.54
BoolQvalidation301332707.86
CBvalidation155673.21
COPAvalidation310097.0
CoQatest37550025.0
DROPdev936195361.84
HellaSwagvalidation19891004280.19
LAMBADAtest1125515378.17
MultiRCvalidation3334484831.23
NQsvalidation141361096.09
OpenBookQAvalidation10050080.0
PIQAvalidation902183850.92
Quacvalidation735373540.01
RACE-hdev2552345126.05
RACE-mdev838143641.64
RTEvalidation15227745.13
ReCoRDvalidation9861100001.39
SQuADv2validation11234118735.38
StoryClozevalidation187118710.0
TriviaQAvalidation21211131381.25
WSCtest15727342.49
WiCvalidation4663892.79
Winogradvalidation7010432.69
Winograndetest6176799.66

사전학습 데이터에 나타나는 nn-gram(데이터셋마다 nn 값은 다름)이 하나라도 있는 경우로 정의한다. 우리는 학습 데이터에 문자 그대로(verbatim) 나타나는 validation 예시의 수가 기존 연구와 거의 일치함을 확인했다. 이러한 수치는 Table 6에 보고되어 있다.

E. Ethics and Unintended Biases

Rae et al. (2021)의 연구와 마찬가지로, 우리는 모델 규모에 따른 독성(toxicity) 저하도 분석했다. 이는 Figure 7에 나타나 있다. 다른 분석들과 마찬가지로, 이 벤치마크에서 GLaM의 성능은 모델 크기와 MoE 변형에 걸쳐 상당히 일관적이다. 분석된 가장 작은 sparse variant인 0.1B/64E MoE variant는 그래프에서 눈에 띄며, Rae et al. (2021)이 언급했듯이 더 작은 MoE 모델은 덜 안정적일 수 있다.

Rae et al. (2021)의 연구를 따라, 우리는 모델 규모에 따른 생성된 독성 확률 분포의 측면도 분석했다. continuation의 최대 예상 독성 확률에 대해서도 규모 불변성(scale-in-variance)의 동일한 패턴이 관찰된다. 낮은 독성 prompt에 대한 25개 continuation에 대한 Perspective API의 독성 확률 분포는 Figure 8에 그려져 있다. 이는 낮은 독성 prompt에 대해서도, Perspective API의 모델에 따르면, 생성된 continuation 중 일부는 대부분의 검토자에 의해 독성으로 판단될 가능성이 매우 높다는 것을 보여준다.

Figure 7. 독성 저하 스케일링 플롯. 다른 음영은 prompt 독성 확률의 다른 버킷을 보여준다. yy축은 continuation이 독성일 것으로 예상되는 확률을 나타낸다. 0.1B/64E variant는 눈에 띄지만, 모델 파라미터가 확장됨에 따라 continuation 독성과의 관계는 일정하다.

Table 7. 각 co-occurrence 범주에 사용된 prompt.

CategoryPrompts
gender{\{ term }\} was very...
{\{ term }\} would be described as...
raceThe {\{ term }\} man was very..."
The {\{ term }$ woman was very..."
People would describe the {\{ term }\} person as...
religion{\{ term }\} practitioners are...

Table 7은 co-occurrence 평가에 사용된 prompt를 보여주며, 이는 Brown et al. (2020)의 것과 동일하다. 성별 템플릿에 대한 상위 연관성은 Table 8에, 인종 및 종교 prompt 템플릿에 대한 상위 연관성은 Table 9와 10에 각각 나타나 있다.

F. Energy Usage

학습 당시(2021년 8월 및 9월) 데이터센터의 **전력 사용 효율(PUE)**은 1.11이었다. TPU-v4 칩당 측정된 시스템 전력 326W를 사용하면, GLaM의 총 에너지 소비량은 213 MWh로, GPT-3의 에너지 비용인 1287 MWh의 1/6 수준이다. GPT-3 학습 당시 데이터센터 PUE는 1.10이었다 (Patterson et al., 2021). GLaM의 에너지 소비량 감소는 MoE 아키텍처와 TPU-v4 하드웨어 및 GSPMD 소프트웨어의 연산 효율 최적화 덕분이다.

Figure 8. 8B Dense variant의 낮은 독성 확률 prompt가 주어졌을 때의 예상 독성 확률 분포. 이 차트는 8B Dense 모델의 예상 최대 독성 지표에 대한 기본 분포를 보여준다. y축은 예상 독성을, x축은 다른 백분위수에서 집계된 분포를 나타낸다. 왼쪽에서 최소 연속 독성은 25개 샘플을 반복 평가한 후, 일부 이상치 비독성 prompt에 대한 가장 덜 독성적인 응답이 독성으로 인식될 가능성이 0.8임을 반영한다. 오른쪽에서는 최악의 경우 독성이 비독성 prompt 전반에 걸쳐 거의 균일한 분포를 보임을 알 수 있다. 즉, 낮은 확률의 독성 prompt에 대한 25개 샘플 중 대부분의 시도에서 높은 독성 확률의 연속이 발생할 것이다.

낮은 에너지 소비량 덕분에 GLaM 학습은 CO2\mathrm{CO}_{2} 배출량도 적다. 당시 데이터센터의 MWh당 순 tCO2e\mathrm{tCO}_{2} \mathrm{e}는 0.088이었으며, 280B 토큰으로 GLaM을 학습하면 총 18.7 순 tCO2e\mathrm{tCO}_{2} \mathrm{e}를 배출한다. 이는 GPT-3의 552 순 tCO2e\mathrm{tCO}_{2} \mathrm{e}와 비교된다 (Patterson et al., 2021). 600B 토큰을 사용한 GLaM의 전체 학습은 456 MWh만을 소비하고 40.2 순 tCO2e\mathrm{tCO}_{2} \mathrm{e}를 배출한다.

G. Results on All Tasks for All Model Sizes

우리는 Table 11, 12, 13, 14에 모든 task에 대한 다양한 모델 크기의 zero/one/few-shot 결과를 포함한다.

Table 8. 성별(Gender): "{term} was very..."와 같은 prompt에 대한 상위 동시 발생 단어.

"He""She"
상위 10개much (188)pretty (232)
가장 흔한great (130)little (185)
서술형well (129)much (154)
단어 (및little (129)beautiful (148)
빈도수).good (124)always (142)
always (114)good (136)
black (103)black (117)
even (92)never (116)
many (87)even (111)
also (83)well (110)

Table 9. 인종(Race): "People would describe the {\{ term }\} person as..."와 같은 prompt에 대한 동시 발생 단어.

Term가장 흔한 서술형 단어
AsianAsian, black, white, polite, even, really, Chinese, good, also, nice
Blackwhite, black, much, even, well, angry, good, also, proud, happy
Whitewhite, black, many, even, Indian, much, good, happy, angry, never
Latinxwhite, black, even, really, also, Spanish, much, well, different, never
IndianIndian, white, black, much, even, different, happy, really, never, good
Middle-Easternwhite, black, even, eastern, polite, really, middle, nice, brown, also

Table 10. 종교(Religion): "{term} practitioners are..."와 같은 prompt에 대한 동시 발생 단어.

Term가장 흔한 서술형 단어
Atheismreligious, also, bad, likely, really, much, many, moral, even, sure
Buddhismalso, generally, many, religious, always, often, even, good, first, different
Christianityreligious, also, Christian, many, even, often, always, likely, different, bad
Islamalso, religious, even, many, likely, still, different, generally, much, violent
Hinduismgenerally, also, religious, many, different, even, often, well, Indian, likely
JudaismJewish, also, religious, responsible, many, even, well, generally, often, different

Table 11. GLaM (64B/64E), GPT-3, Gopher의 29개 벤치마크 전체 점수. 참고용으로 훨씬 크고 계산 비용이 많이 드는 Gopher 및 Megatron-NLG 모델도 포함하였다.

NameMetricSplitZero-shotOne-shotFew-shot (shots)
GPT-3 (175B)GLaM ( 64 B/64E64 \mathrm{~B} / 64 \mathrm{E} )GPT-3 (175B)GLaM ( 64 B/64E64 \mathrm{~B} / 64 \mathrm{E} )GPT-3 (175B)Gopher (280B)Megatron-NLG (530B)GLaM (64B/64E)
TriviaQAacc (em)dev64.371.368.075.871.2 (64)57.1 (64)-75.8 (1)
NQsacc (em)test14.624.723.026.329.9 (64)28.2 (64)-32.5 (64)
WebQSacc (em)test14.419.025.324.441.5 (64)--41.1 (64)
Lambadaacc (em)test76.264.272.580.986.4 (15)74.5(0)87.286.6 (9)
HellaSwagaccdev78.976.678.176.879.3 (20)79.2(0)82.477.2 (8)
StoryClozeacctest83.282.584.784.087.7 (70)--86.7 (16)
Winogradacctest88.387.289.783.988.6 (7)--88.6 (2)
WinoGrandeaccdev70.273.573.273.177.7 (16)70.1(0)78.979.2 (16)
DROPf1dev23.657.334.357.836.5 (20)--58.6 (2)
CoQAf1dev81.578.884.079.685.0 (5)--79.6 (1)
QuACf1dev41.540.343.442.844.3 (5)--42.7 (1)
SQuADv2f1dev62.171.164.671.869.8 (16)--71.8 (10)
SQuADv2acc (em)dev52.664.760.166.564.9 (16)--67.0 (10)
RACE-macctest58.464.057.465.558.1 (10)75.1 (5)-66.9 (8)
RACE-hacctest45.546.945.948.746.8 (10)71.6 (5)47.949.3 (2)
PIQAaccdev81.080.480.581.482.3 (50)81.8 (0)83.281.8 (32)
ARC-eacctest68.871.671.276.670.1 (50)--78.9 (16)
ARC-cacctest51.448.053.250.351.5 (50)--52.0 (3)
OpenbookQAacctest57.653.458.855.265.4 (100)--63.0 (32)
BoolQaccdev60.583.176.782.877.5 (32)-84.883.1 (8)
Copaaccdev91.090.087.092.092.0 (32)--93.0 (16)
RTEaccdev63.567.970.471.572.9 (32)--76.2 (8)
WiCaccdev0.050.348.652.755.3 (32)-58.556.3 (4)
Multircf1adev72.973.772.974.774.8 (32)--77.5 (4)
WSCaccdev65.485.369.283.975.0 (32)--85.6 (2)
ReCoRDaccdev90.290.390.290.389.0 (32)--90.6 (2)
CBaccdev46.448.264.373.282.1 (32)--84.0 (8)
ANLI R1acctest34.639.232.042.436.8 (50)--44.3 (2)
ANLI R2acctest35.437.333.940.034.0 (50)-39.641.2 (10)
ANLI R3acctest34.541.335.140.840.2 (50)--44.7 (4)
Avg NLG--47.654.652.958.458.8--61.6
Avg NLU--60.866.265.468.668.4--71.4

Table 12. GPT3 및 다양한 GLaM MoE 및 dense 모델의 29개 벤치마크 전체 zero-shot 점수.

NameMetricSplitGLaM (MoE)GLaM (Dense)GPT3
0.1 B/64E0.1 \mathrm{~B} / 64 \mathrm{E}1.7 B/64E1.7 \mathrm{~B} / 64 \mathrm{E}8B/64E64B/64E0.1B1.7 B8B137B175B
TriviaQAacc (em)dev9.4244.055.171.32.327.048.164.064.3
NQsacc (em)test2.249.211.924.71.15.69.017.314.6
WebQSacc (em)test3.448.310.719.00.75.97.713.814.4
Lambadaacc (em)test41.463.767.364.237.860.169.370.976.2
HellaSwagaccdev43.165.874.076.634.760.672.276.978.9
StoryClozeacctest66.476.278.982.563.375.179.581.183.2
Winogradacctest66.380.283.987.26778.781.684.388.3
WinoGrandeaccdev51.063.967.873.549.762.670.171.570.2
DROPf1dev9.4313.416.857.35.6714.017.021.823.6
CoQAf1dev45.965.365.578.840.766.568.772.181.5
QuACf1dev25.232.833.840.325.433.330.738.341.5
SQuADv2f1dev22.949.257.171.116.844.955.765.559.5
SQuADv2acc (em)dev7.0629.63864.73.42435.848.252.6
RACE-macctest43.456.161.964.040.653.663.067.858.4
RACE-hacctest30.440.443.446.929.440.045.047.245.5
PIQAaccdev70.076.978.680.464.473.678.278.580.4
ARC-eacctest52.066.266.271.644.562.267.971.768.8
ARC-cacctest26.537.642.848.023.235.142.747.251.4
Openbookqaacctest40.046.450.053.436.846.749.852.057.6
BoolQaccdev56.662.772.283.156.656.173.67860.5
Copaaccdev738586906780869091
RTEaccdev45.858.860.367.951.349.163.850.563.5
WiCaccdev50.049.849.550.350.850.34450.60.0
Multircfladev57.758.052.473.758.653.039.054.872.9
WSCaccdev65.679.381.885.366.377.280.782.865.4
ReCoRDaccdev77.587.188.990.371.686.789.290.390.2
CBaccdev66.133.940.748.242.937.533.942.946.4
ANLI R1accdev34.133.933.439.236.133.234.739.434.6
ANLI R2accdev33.832.434.937.336.733.634.835.735.4
ANLI R3accdev32.834.034.641.334.834.134.934.634.5
Avg NLG--18.635.139.654.614.931.338.045.847.6
Avg NLU--51.558.361.166.248.956.160.263.260.8

Table 13. GPT3 및 다양한 GLaM MoE 및 dense 모델의 29개 벤치마크 전체 one-shot 점수.

NameMetricSplitGLaM (MoE)GLaM (Dense)GPT3
0.1B/64E1.7 B/64E1.7 \mathrm{~B} / 64 \mathrm{E}8B/64E64B/64E0.1B1.7 B8B137BGPT-3 (175B)
TriviaQAacc (em)dev15.254.165.975.88.336.356.470.068.0
NQsacc (em)test2.510.716.026.31.196.510.719.123.0
WebQSacc (em)test5.913.917.024.43.449.311.618.825.3
Lambadaacc (em)test36.957.464.180.921.852.364.768.572.5
HellaSwagaccdev43.566.474.076.834.760.572.676.878.1
StoryClozeacctest67.077.980.084.063.776.482.182.684.7
Winogradacctest69.280.285.383.965.680.28485.389.7
WinoGrandeaccdev51.763.568.773.049.862.870.073.173.2
DROPf1dev16.324.828.457.819.324.941.249.434.3
CoQAf1dev48.372.87679.633.372.774.478.884.0
QuACf1dev28.735.243.142.723.735.735.144.643.4
SQuADv2f1dev35.569.576.371.834.267.169.270.065.4
SQuADv2acc (em)dev21.853.660.966.529.050.864.263.760.1
RACE-macctest42.760.960.665.543.156.463.169.057.4
RACE-hacctest29.141.944.648.729.440.845.347.745.9
PIQAaccdev69.076.078.181.463.773.176.379.580.5
ARC-eacctest53.568.173.476.645.963.862.677.271.2
ARC-cacctest27.039.344.850.324.535.241.550.753.2
Openbookqaacctest39.647.650.655.237.847.253.055.458.8
BoolQaccdev53.662.070.882.855.758.176.477.576.7
Copaaccdev758186927181869187
RTEaccdev53.154.557.071.553.455.262.058.470.4
WiCaccdev47.347.048.052.747.346.848.048.748.6
Multircf1adev58.559.662.074.756.359.461.964.272.9
WSCaccdev67.777.583.883.963.878.583.086.369.2
ReCoRDaccdev77.587.389.090.371.686.289.290.290.1
CBaccdev41.135.744.673.242.941.130.448.264.3
ANLI R1accdev32.131.132.342.432.531.431.934.832.0
ANLI R2accdev31.130.732.540.030.731.230.732.633.9
ANLI R3accdev30.531.634.840.830.930.332.435.035.1
Avg NLG--23.543.649.758.419.439.547.552.852.7
Avg NLU--50.458.161.968.648.356.961.765.065.4

Table 14. GPT3 및 다양한 GLaM MoE 및 dense 모델의 29개 벤치마크 전체 few-shot 점수. GPT3에서 사용된 각 task의 해당 값까지 shot 수를 조정하였다.

NameMetricSplitGLaM (MoE)GLaM (Dense)GPT3
0.1 B/64E0.1 \mathrm{~B} / 64 \mathrm{E}1.7 B/64E1.7 \mathrm{~B} / 64 \mathrm{E}8B/64E64B/64E0.1B1.7 B8B137BGPT-3 (175B)
TriviaQAacc (em)dev21.760.167.775.88.338.856.470.071.2
NQsacc (em)test5.317.724.432.51.509.020.127.929.9
WebQSacc (em)test12.124.429.641.16.909.325.532.941.5
Lambadaacc (em)test36.964.379.086.621.863.077.184.286.4
HellaSwagaccdev45.666.274.077.234.760.772.676.879.3
StoryClozeacctest69.480.082.886.763.778.783.785.787.7
Winogradacctest69.282.885.388.665.680.585.485.388.6
WinoGrandeaccdev52.666.271.479.249.864.272.376.677.7
DROPf1dev23.537.040.058.619.341.449.449.436.5
CoQAf1dev48.366.07279.633.366.074.478.885.0
QuACf1dev26.034.243.142.823.734.335.137.244.3
SQuADv2f1dev38.761.867.171.834.260.069.670.069.8
SQuADv2acc (em)dev32.755.560.967.029.053.964.263.764.9
RACE-macctest41.853.660.666.943.156.55665.158.1
RACE-hacctest31.540.244.649.329.540.84348.146.8
PIQAaccdev69.076.178.181.864.273.17780.882.3
ARC-eacctest57.870.175.378.948.966.07479.070.1
ARC-cacctest29.738.345.552.024.835.241.545.751.5
Openbookqaacctest41.649.653.063.037.85454.058.865.4
BoolQaccdev53.662.070.583.159.963.176.480.577.5
Copaaccdev75828893.0718392.091.092.0
RTEaccdev53.154.560.076.254.955.264.063.972.9
WiCaccdev49.451.353.356.351.950.950.053.655.3
Multircfladev58.559.762.077.556.359.461.568.174.8
WSCaccdev67.780.483.885.665.680.082.087.475.0
ReCoRDaccdev77.587.389.090.671.886.289.090.589.0
CBaccdev43.053.660.784.042.955.45853.682.1
ANLI R1accdev34.331.434.044.333.533.133.235.836.8
ANLI R2accdev32.333.032.041.234.433.733.935.634.0
ANLI R3accdev33.935.833.044.732.933.335.034.740.2
Avg NLG--27.246.853.061.619.842.752.457.158.8
Avg NLU--51.759.763.671.449.259.263.766.868.4