BLOOM: 176B 파라미터의 오픈 액세스 다국어 언어 모델
BLOOM은 수백 명의 연구자들이 협력하여 구축한 176B 파라미터의 오픈 액세스 다국어 거대 언어 모델(LLM)로, 강력한 AI 기술의 민주화를 목표로 합니다. 이 모델은 46개의 자연어와 13개의 프로그래밍 언어로 구성된 ROOTS 코퍼스를 사용하여 학습된 decoder-only Transformer 아키텍처를 기반으로 합니다. BLOOM은 다양한 벤치마크에서 경쟁력 있는 성능을 달성했으며, multitask prompted finetuning을 통해 성능이 더욱 향상되었습니다. 모델과 코드는 Responsible AI License에 따라 공개되어 LLM에 대한 연구 및 응용 프로그램 개발을 촉진합니다. 논문 제목: BLOOM: A 176B-Parameter Open-Access Multilingual Language Model
Workshop, BigScience, et al. "Bloom: A 176b-parameter open-access multilingual language model." arXiv preprint arXiv:2211.05100 (2022).
BLOOM: A 176B-Parameter Open-Access Multilingual Language Model
Abstract
대규모 언어 모델(LLM)은 소수의 demonstration 또는 자연어 지시를 기반으로 새로운 task를 수행할 수 있음이 입증되었다. 이러한 능력은 광범위한 채택으로 이어졌지만, 대부분의 LLM은 자원이 풍부한 조직에 의해 개발되며 대중에게 공개되지 않는 경우가 많다.
이 강력한 기술을 민주화하기 위한 한 걸음으로, 우리는 수백 명의 연구자들의 협력을 통해 설계 및 구축된 1,760억 개의 파라미터를 가진 오픈 액세스 언어 모델인 BLOOM을 소개한다.
BLOOM은 decoder-only Transformer 언어 모델로, 46개의 자연어와 13개의 프로그래밍 언어(총 59개)로 구성된 ROOTS 코퍼스 데이터셋으로 학습되었다.
우리는 BLOOM이 다양한 벤치마크에서 경쟁력 있는 성능을 달성하며, multitask prompted finetuning을 거친 후에는 더 강력한 결과를 보인다는 것을 확인했다.
LLM을 활용한 향후 연구 및 응용을 촉진하기 위해, 우리는 Responsible AI License 하에 모델과 코드를 공개한다.
1. Introduction
사전학습된 language model은 적은 양의 labeled data로도 더 나은 성능을 제공하는 경우가 많기 때문에, 현대 자연어 처리(NLP) 파이프라인의 핵심 요소가 되었다. ELMo (Peters et al., 2018), ULMFiT (Howard and Ruder, 2018), GPT (Radford et al., 2018), BERT (Devlin et al., 2019)의 개발은 사전학습된 모델을 다운스트림 task의 fine-tuning을 위한 초기화 도구로 널리 사용하게 만들었다. 이후 사전학습된 language model이 추가 학습 없이도 유용한 task를 수행할 수 있다는 발견 (Radford et al., 2019; Brown et al., 2020)은 그 유용성을 더욱 입증하였다.
또한, language model의 성능이 모델 크기가 커질수록 증가하는 경향이 있다는 경험적 관찰 (Hestness et al., 2017; Kaplan et al., 2020; Hoffmann et al., 2022)과 때로는 예측 불가능하게 급격히 증가하는 현상 (Wei et al., 2022)은 모델 규모를 지속적으로 확장하는 추세로 이어졌다 (Zeng et al., 2021; Rae et al., 2021; Smith et al., 2022; Chowdhery et al., 2022).
환경 문제 (Strubell et al., 2019; Lacoste et al., 2019; Schwartz et al., 2020)를 제외하고도, 대규모 language model (LLM) 학습 비용은 자원이 풍부한 조직만이 감당할 수 있는 수준이다. 게다가 최근까지 대부분의 LLM은 공개적으로 출시되지 않았다. 그 결과, 대부분의 연구 커뮤니티는 LLM 개발에서 소외되어 왔다. 이러한 소외는 구체적인 결과를 낳았는데, 예를 들어 대부분의 LLM은 주로 영어 텍스트로 학습되었다 (중국어 및 한국어의 주목할 만한 예외는 Wang et al., 2021; Zeng et al., 2021; Kim et al., 2021 참조).
이러한 문제들을 해결하기 위해 우리는 **BigScience Large Open-science Open-access Multilingual Language Model (BLOOM, BigScience Workshop, 2022)**을 제시한다. BLOOM은 46개의 자연어와 13개의 프로그래밍 언어로 학습된 1,760억 개의 파라미터를 가진 language model로, 수백 명의 연구자 협력을 통해 개발 및 출시되었다. BLOOM 학습을 위한 컴퓨팅 자원은 프랑스 공공 보조금인 GENCI와 IDRIS를 통해 제공되었으며, IDRIS의 Jean Zay 슈퍼컴퓨터를 활용하였다. BLOOM을 구축하기 위해 우리는 **학습 데이터셋 (Section 3.1), 모델 아키텍처 및 학습 목표 (Section 3.2), 분산 학습을 위한 엔지니어링 전략 (Section 3.4)**을 포함한 각 구성 요소에 대해 철저한 설계 과정을 거쳤다. 또한 우리는 **모델의 능력에 대한 분석 (Section 4)**도 수행하였다. 우리의 전반적인 목표는 최근 개발된 시스템과 비교할 만한 성능을 가진 대규모 다국어 language model을 공개적으로 출시하는 것뿐만 아니라, 그 개발 과정에 투입된 협력적인 프로세스 (Section 2.2)를 문서화하는 것이다. 본 논문의 목적은 이러한 설계 단계에 대한 높은 수준의 개요를 제공하고, BLOOM 개발 과정에서 우리가 작성한 개별 보고서들을 참조하는 것이다.
2. Background
BLOOM 모델 자체를 설명하기 전에, 이 섹션에서는 LLM에 대한 필수적인 배경 지식과 BigScience 프로젝트의 조직적 개요를 제공한다.
2.1 Language Modeling
Language modeling은 텍스트 내 토큰 시퀀스의 확률을 모델링하는 task를 의미한다 (Shannon, 1948). 여기서 토큰은 텍스트의 단위(예: 단어, subword, 문자 또는 바이트 등, Mielke et al., 2021에서 논의됨)이다. 본 연구(및 대부분의 현재 language modeling 응용 분야)에서는 텍스트 내 토큰들의 결합 확률을 다음과 같이 모델링한다:
여기서 는 토큰 시퀀스, 는 토큰, 그리고 는 앞에 오는 토큰들의 시퀀스이다. 이 접근 방식은 autoregressive language modeling이라고 불리며, 다음 토큰의 확률을 반복적으로 예측하는 것으로 볼 수 있다.
초기 Language Model
Language model은 NLP 분야에서 오랜 적용 역사를 가지고 있다. 초기 language model (예: Shannon, 1948이 개발한 모델)은 주로 -gram model이었으며, 학습 코퍼스에 나타나는 빈도에 따라 길이 의 토큰 시퀀스 확률을 추정했다. 실제로는 -gram model은 두 가지 주요 문제에 직면했다: 첫째, 이 증가함에 따라 크기가 기하급수적으로 커진다; 둘째, 학습 데이터에 나타나지 않는 토큰 시퀀스에 대한 확률을 직접적으로 생성할 방법이 없다. 이러한 문제들에 대한 발전 덕분에 -gram model은 NLP의 대부분 영역에서 널리 사용될 수 있었다 (Goodman, 2001).
Neural Language Model
-gram model의 대안으로, Miikkulainen과 Dyer (1991) 및 Schmidhuber와 Heil (1996)이 처음 제안하고 Bengio et al. (2000)이 나중에 대중화한 방식은 신경망을 사용하여 이전 토큰이 주어졌을 때 다음 토큰의 확률을 추정하는 것이다. 초기 연구에서는 고정 길이의 history window를 가진 feed-forward network를 사용했지만, Mikolov et al. (2010); Sutskever et al. (2011); Graves (2013)는 대신 recurrent neural network를 사용할 것을 제안했고, 이는 성능을 크게 향상시켰다. 최근에는 Transformer 아키텍처 (Vaswani et al., 2017) 기반의 language model이 recurrent neural network보다 더 효과적임이 입증되었다 (Radford et al., 2018; Al-Rfou et al., 2019; Kaplan et al., 2020). 결과적으로 Transformer는 language model의 사실상의 표준(de facto choice)이 되었다.
Transfer Learning
신경망을 이용한 language modeling의 발전과 함께, NLP 파이프라인은 transfer learning 프레임워크를 점점 더 많이 채택해왔다. transfer learning에서는 모델의 파라미터가 먼저 데이터가 풍부한 task에서 사전학습(pretrain)된 후, 다운스트림 task에서 fine-tuning된다. 사전학습된 파라미터를 얻는 역사적으로 일반적인 접근 방식은 word vector (Mikolov et al., 2013) 였는데, 이는 함께 나타나는 단어 벡터의 내적(dot product)이 커지도록 학습되었다. 그러나 Peters et al. (2018); Howard and Ruder (2018); Radford et al. (2018); Devlin et al. (2019)의 후속 연구는 Collobert et al. (2011)의 프레임워크, 즉 전체 모델을 사전학습한 후 fine-tuning하는 방식이 더 강력한 성능을 달성할 수 있음을 보여주었다. 특히 Radford et al. (2018); Devlin et al. (2019)은 사전학습된 Transformer language model을 사용하여 강력한 결과를 시연했으며, 이는 점진적으로 더 나은 모델 (Liu et al., 2019; Yang et al., 2019; Lewis et al., 2020; Raffel et al., 2020; Zhang et al., 2019 등)에 대한 연구를 촉발했다.
Few- and Zero-Shot Learning
사전학습된 모델을 fine-tuning하는 것이 제한된 labeled 데이터로 높은 성능을 달성하는 효과적인 방법으로 남아있지만, 병렬적인 연구 흐름은 사전학습된 language model이 추가적인 학습 없이도 task를 수행하도록 유도될 수 있음을 보여주었다. Vinyals와 Le (2015)가 신경망 대화 모델에서 제한적인 task 수행 행동을 관찰한 후, Radford et al. (2019)은 웹에서 스크랩한 텍스트로 학습된 Transformer 기반 language model이 다양한 task를 다양한 정도로 수행할 수 있음을 입증했다. 특히 Radford et al. (2019)은 모델 규모가 커질수록 성능이 향상됨을 발견했으며, 이는 규모의 이점을 특성화하고 (Kaplan et al., 2020; Hoffmann et al., 2022) 활용하는 (Shoeybi et al., 2019; Brown et al., 2020; Smith et al., 2022; Chowdhery et al., 2022; Rae et al., 2021; Wang et al., 2021; Zeng et al., 2021; Zhang et al., 2022) 연구에 영감을 주었다. 이 접근 방식의 성공에 중요한 요소는 task-specific 예시가 모델에 입력될 때 포맷되는 방식이다. Brown et al. (2020)은 task에 대한 자연어 설명을 제공하고 몇 가지 입출력 행동 데모를 입력할 수 있는 "prompt"를 설계하는 아이디어를 대중화했다.
LLM 개발의 사회적 한계
대규모 language model의 지속적인 크기 증가는 광범위한 task에서 성능 향상을 가져왔지만, 동시에 개발 및 사용상의 문제점들을 악화시켰다 (Bender et al., 2021). 대규모 모델의 막대한 계산 비용은 대다수의 연구 커뮤니티가 개발, 평가 및 일상적인 사용에 참여하는 것을 어렵게 만든다. 더욱이, 이러한 계산 비용은 대규모 language model의 학습 및 사용으로 인한 탄소 발자국에 대한 우려로 이어졌으며 (Strubell et al., 2019; Lacoste et al., 2019; Schwartz et al., 2020; Bannour et al., 2021), 기존의 탄소 발자국 연구들은 배출량을 과소평가했을 가능성이 높다 (Bannour et al., 2021). 전 세계 탄소 발자국 증가에 기여하는 것은 기후 변화를 악화시키며, 이는 이미 소외된 지역사회에 가장 심각한 영향을 미친다 (Westra and Lawson, 2001).
또한, 주로 기술 전문성을 가진 소수의 (대개 산업) 기관에 자원이 집중되는 것은 기술의 포괄적이고 협력적이며 신뢰할 수 있는 거버넌스 전망을 저해한다. 첫째, 산업 주체에 의해 주도되는 기술에 대한 대중적 서사는 사용 적합성에 대한 과도한 기대로 이어질 수 있으며 (Brennen, 2018; Brennen et al., 2022), 이는 잘못된 연구 및 정책 우선순위 (Raji et al., 2022)와 의료 응용 분야 등에서 잠재적으로 심각한 결과 (Wong et al., 2021)를 초래할 수 있다. 둘째, 기술이 매개하는 세상에서 개발의 모든 단계에서의 선택은 사람들의 삶을 규제와 가장 유사한 방식으로 형성하게 된다 (Winner, 1977, 2017). 비록 그 과정에서 이해관계자들과의 명시적인 협의는 없지만 말이다. 개발 노력이 사회에 미치는 영향보다 내부적인 성능 정의를 우선시하여 진행될 때, 개발자의 가치가 직접 및 간접 사용자의 가치보다 강조된다 (Birhane et al., 2022). 이 기술이 기업에 의해 일방적으로 개발되도록 허용하는 데에는 상당한 사회적 위험이 있음에도 불구하고, BigScience Workshop이 소집되기 전까지 중국 외에서 대규모 language model을 개발하던 비기업 단체는 EleutherAI (Phang et al., 2022)가 유일했다.
2.2 BigScience
참여자 (Participants)
BLOOM의 개발은 BigScience라는 오픈 연구 협력체에 의해 조정되었으며, 그 목표는 LLM의 공개 출시였다. 이 프로젝트는 GENCI로부터 IDRIS/CNRS의 Jean Zay 슈퍼컴퓨터 사용을 위한 컴퓨팅 보조금을 수여받은 후 시작되었다. 처음에는 Hugging Face와 프랑스 NLP 커뮤니티("창립 멤버")의 공동 노력을 중심으로 구축되었으나, 언어적, 지리적, 과학적 다양성이라는 목표를 지원하기 위해 빠르게 더 넓은 국제 협력으로 확장되었다. 최종적으로 1200명 이상의 사람들이 BigScience 참여자로 등록되었고, 커뮤니케이션 채널에 접근 권한을 부여받았다. 이들은 머신러닝 및 컴퓨터 과학뿐만 아니라 언어학, 통계학, 사회문화 인류학, 철학, 법학 등 다양한 분야의 배경을 가지고 있었다. 이들 중 수백 명의 개인이 프로젝트의 공개된 결과물 중 하나에 직접 기여했다. 최종적으로 가장 많은 참여자가 미국 출신이었지만, 총 38개국이 대표되었다.
조직 (Organization)
BigScience의 노력으로 다루어진 관련 연구 질문들은 프로젝트의 워킹 그룹(working group) 조직에 반영되었다. 각 워킹 그룹은 다양한 수준의 참여도를 가진 여러 참여자들로 구성되었으며, 여기에는 전체 프로젝트의 특정 측면을 중심으로 자율적으로 조직하는 역할을 맡은 의장(chair)도 포함되었다. 중요한 점은, 참여자들은 경험과 정보를 공유하기 위해 하나 이상의 워킹 그룹에 참여하도록 권장되었고, 그 결과 Figure 1에 제시된 30개의 워킹 그룹이 만들어졌다. 대부분의 워킹 그룹은 BLOOM 개발과 직접적으로 연결된 task에 집중했다. 또한, 몇몇 그룹은 생물의학 텍스트 (Fries et al., 2022b) 및 역사 텍스트 (De Toni et al., 2022)와 같은 특정 도메인에서의 LLM 평가 및 데이터셋 개발에 집중했다. 이 이니셔티브의 동기, 역사 및 얻은 교훈에 대한 더 넓은 개요는 Akiki et al. (2022)에서 찾을 수 있다.
Figure 1: BigScience 워킹 그룹 조직도.
BigScience 내 윤리적 고려사항 (Ethical Considerations within BigScience)
BigScience 내 LLM 개발의 사회적 한계를 인식하고 해결하기 위해, 워크숍은 **협력적으로 설계된 윤리 헌장 **과 **미국 외 관할권에서의 적용 가능한 규제에 대한 독창적인 연구 **에 의존하여 프로젝트 전반의 선택을 안내했다. 특히, 이 헌장은 포괄성(inclusivity)과 다양성(diversity), 개방성(openness)과 재현성(reproducibility), 그리고 조직의 다양한 측면에서의 책임(responsibility)이라는 가치를 강조한다 (Akiki et al., 2022). 이러한 각 가치는 프로젝트의 데이터셋 큐레이션 (Section 3.1), 모델링 (Section 3.2), 엔지니어링 (Section 3.4), 평가 (Section 4), 그리고 기타 사회적 영향 (전반적으로) 측면에서 다양한 방식으로 구현되었다.
3. BLOOM
이 섹션에서는 BLOOM의 설계를 문서화한다. 여기에는 학습 데이터셋(Section 3.1), 아키텍처(Section 3.2), 토크나이저(Section 3.3), 컴퓨팅 인프라(Section 3.4), 그리고 학습 하이퍼파라미터(Section 3.5)가 포함된다.
3.1 Training Dataset
BLOOM은 ROOTS 코퍼스 (Laurençon et al., 2022)로 학습되었다. ROOTS 코퍼스는 498개의 Hugging Face 데이터셋 (Lhoest et al., 2021)을 합성하여 구성되었으며, 46개의 자연어와 13개의 프로그래밍 언어를 포함하는 총 1.61테라바이트의 텍스트 데이터이다. 이 데이터셋의 개요는 Figure 3에서 확인할 수 있으며, 각 언어의 언어학적 속성(genus), 계통(family), 그리고 거시 지역(macroarea)을 포함한 상세 목록은 Table 1에 제시되어 있다. 코퍼스 자체 외에도, 이 과정에서 Figure 2에 나타난 것과 같은 여러 조직적 및 기술적 도구들이 개발 및 공개되었다. 이 섹션의 나머지 부분에서는
BigScience Workshop
| Language | ISO-639-3 | catalog-ref | Genus | Family | Macroarea | Size in Bytes |
|---|---|---|---|---|---|---|
| Akan | aka | ak | Kwa | Niger-Congo | Africa | 70,1554 |
| Arabic | arb | ar | Semitic | Afro-Asiatic | Eurasia | 74,854,900,600 |
| Assamese | asm | as | Indic | Indo-European | Eurasia | 291,522,098 |
| Bambara | bam | bm | Western Mande | Mande | Africa | 391,747 |
| Basque | eus | eu | Basque | Basque | Eurasia | 2,360,470,848 |
| Bengali | ben | bn | Indic | Indo-European | Eurasia | 18,606,823,104 |
| Catalan | cat | ca | Romance | Indo-European | Eurasia | 17,792,493,289 |
| Chichewa | nya | ny | Bantoid | Niger-Congo | Africa | 1,187,405 |
| chiShona | sna | sn | Bantoid | Niger-Congo | Africa | 6,638,639 |
| Chitumbuka | tum | tum | Bantoid | Niger-Congo | Africa | 170,360 |
| English | eng | en | Germanic | Indo-European | Eurasia | 484,953,009,124 |
| Fon | fon | fon | Kwa | Niger-Congo | Africa | 2,478,546 |
| French | fra | fr | Romance | Indo-European | Eurasia | 208,242,620,434 |
| Gujarati | guj | gu | Indic | Indo-European | Eurasia | 1,199,986,460 |
| Hindi | hin | hi | Indic | Indo-European | Eurasia | 24,622,119,985 |
| Igbo | ibo | ig | Igboid | Niger-Congo | Africa | 14078,521 |
| Indonesian | ind | id | Malayo-Sumbawan | Austronesian | Papunesia | 19,972,325,222 |
| isiXhosa | xho | xh | Bantoid | Niger-Congo | Africa | 14,304,074 |
| isiZulu | zul | zu | Bantoid | Niger-Congo | Africa | 8,511,561 |
| Kannada | kan | kn | Southern Dravidian | Dravidian | Eurasia | 2,098,453,560 |
| Kikuyu | kik | ki | Bantoid | Niger-Congo | Africa | 359,615 |
| Kinyarwanda | kin | rw | Bantoid | Niger-Congo | Africa | 40,428,299 |
| Kirundi | run | rn | Bantoid | Niger-Congo | Africa | 3,272,550 |
| Lingala | lin | ln | Bantoid | Niger-Congo | Africa | 1,650,804 |
| Luganda | lug | Bantoid | Niger-Congo | Africa | 4,568,367 | |
| Malayalam | mal | ml | Southern Dravidian | Dravidian | Eurasia | 3,662,571,498 |
| Marathi | mar | mr | Indic | Indo-European | Eurasia | 1,775,483,122 |
| Nepali | nep | ne | Indic | Indo-European | Eurasia | 2,551,307,393 |
| Northern Sotho | nso | nso | Bantoid | Niger-Congo | Africa | 1,764,506 |
| Odia | ori | or | Indic | Indo-European | Eurasia | 1,157,100,133 |
| Portuguese | por | pt | Romance | Indo-European | Eurasia | 79,277,543,375 |
| Punjabi | pan | pa | Indic | Indo-European | Eurasia | 1,572,109,752 |
| Sesotho | sot | st | Bantoid | Niger-Congo | Africa | 751,034 |
| Setswana | tsn | tn | Bantoid | Niger-Congo | Africa | 1,502,200 |
| Simplified Chinese | - | zhs | Chinese | Sino-Tibetan | Eurasia | 261,019,433,892 |
| Spanish | spa | es | Romance | Indo-European | Eurasia | 175,098,365,045 |
| Swahili | swh | SW | Bantoid | Niger-Congo | Africa | 236,482,543 |
| Tamil | tam | ta | Southern Dravidian | Dravidian | Eurasia | 7,989,206,220 |
| Telugu | tel | te | South-Central Dravidian | Dravidian | Eurasia | 2993407,159 |
| Traditional Chinese | - | zht | Chinese | Sino-Tibetan | Eurasia | 762,489,150 |
| Twi | twi | tw | Kwa | Niger-Congo | Africa | 1,265,041 |
| Urdu | urd | ur | Indic | Indo-European | Eurasia | 2,781,329,959 |
| Vietnamese | vie | vi | Viet-Muong | Austro-Asiatic | Eurasia | 43,709,279,959 |
| Wolof | wol | wo | Wolof | Niger-Congo | Africa | 3,606,973 |
| Xitsonga | tso | ts | Bantoid | Niger-Congo | Africa | 707,634 |
| Yoruba | yor | yo | Defoid | Niger-Congo | Africa | 89,695,835 |
| Programming Languages | - | - | - | - | 174,700,245,772 |
Table 1: ROOTS 코퍼스의 언어 구성.
이러한 노력들을 코퍼스 구축 과정에 대한 간략한 요약을 제공함으로써 맥락화하고자 한다. 전체 데이터셋 큐레이션 과정 및 결과에 대한 더 자세한 문서는 Laurençon et al. (2022)를 참조하라.
동기 (Motivation)
Section 2에서 언급된 기술의 개발자와 (비)자발적 사용자 간의 단절은 최근 대규모 머신러닝 프로젝트를 지원하는 데이터셋 큐레이션 과정에서 특히 두드러지게 나타난다. 이 과정에서 의도적인 "데이터 작업(Data work)"은 일반적으로 저평가된다 (Sambasivan et al., 2021).
LLM의 맥락에서 이러한 경향은 데이터 주체의 필요와 권리를 고려하기보다는, 가능한 한 적은 비용으로 "고품질" 데이터를 최대한 많이 확보하는 것을 우선시하는 다양한 휴리스틱 기반 필터링 접근 방식에서 잘 드러난다. 여기서 "품질"은 일반적으로 다운스트림 task에서 성능을 극대화하는 것으로 정의되며, 개발자가 불쾌하다고 판단하는 콘텐츠는 가끔 제거된다.
이러한 접근 방식은 비교적 적은 인적 노력으로 테라바이트 규모의 데이터를 생성하지만, 원본 자료(예: CommonCrawl 덤프)의 편향과 필터링 방법의 편향이 결합되어 소외된 집단에게 부정적인 결과를 초래하는 경우가 많다.
한 사례에서는 "음란물" 텍스트를 제거하기 위한 블록 리스트(block list) 사용이 LGBTQ+ 및 아프리카계 미국인 영어(AAE) 텍스트를 코퍼스에서 함께 억제하는 것으로 나타났다 (Dodge et al., 2021).
또 다른 사례에서는 Reddit의 외부 링크를 시드 코퍼스(seed corpus)의 품질 지표로 사용했을 때 (Radford et al., 2019), 학습된 모델이 출력에서 암묵적으로 미국 중심적인 관점을 우선시하는 결과를 낳았다 (Johnson et al., 2022).
또 다른 프로젝트에서는 머신러닝 이미지-텍스트 정렬 모델에 의존하는 필터링 접근 방식이 생성된 멀티모달 데이터셋에서 편향을 악화시키는 것으로 나타났다 (Birhane et al., 2021).
또한, 이러한 추상적인 데이터 큐레이션 접근 방식은 사후에 의미 있게 문서화하고 관리하기 어려운 코퍼스를 만든다. 이는 개별 항목의 출처와 저작권이 일반적으로 이 과정에서 손실되기 때문이다 (비록 Gao et al. (2020)과 같이 크롤링된 데이터보다 이전에 문서화된 개별 소스의 편집을 우선시하는 작업은 이러한 문제를 해결하기 위한 한 걸음을 제공하지만 (Biderman et al., 2022)).
BigScience 워크숍의 맥락에서, 그리고 그 윤리 헌장 에 따라, 우리는 다음 섹션에서 설명하는 바와 같이 데이터 큐레이션 및 문서화 과정에서 인간의 참여, 지역 전문성, 언어 전문성을 우선시하는 것을 목표로 삼았다.
3.1.1 Data Governance
대규모 텍스트 코퍼스는 사람들에 의해 생성되고 사람들에 대한 텍스트를 포함한다. 이들은 **데이터 주체(data subjects)**이다. 다양한 개인과 기관이 해당 데이터를 법적으로 "소유"할 수 있으며, 이들을 **데이터 권리 보유자(data rights-holders)**로 만든다. 머신러닝 개발자들이 더 큰 모델 학습을 지원하기 위해 데이터를 점점 더 큰 데이터셋으로 수집하고 정리함에 따라, 개발자, 데이터 주체, 권리 보유자 등 모든 관련 당사자의 이해관계를 고려하는 새로운 방법을 개발하는 것이 점점 더 중요해지고 있다.
BigScience 프로젝트는 기술, 법률, 사회학적 전문 지식을 결합한 다학제적 관점을 통해 이러한 요구를 해결하고자 했다. 이 그룹은 두 가지 주요 상호 연관된 목표에 집중했으며, 이는 두 가지 다른 시간 척도를 가진다: (i) 데이터 권리 보유자의 주체성을 우선시하는 장기적인 국제 데이터 거버넌스 구조 설계, (ii) BigScience 프로젝트에서 직접 사용되는 데이터 처리에 대한 구체적인 권고 사항.
첫 번째 목표에 대한 진전은 Jernite et al. (2022)의 연구에서 제시되었으며, 이 연구는 데이터 거버넌스의 필요성과 요구 사항을 더욱 강조하고, 데이터 관리자(data custodians), 권리 보유자 및 기타 당사자들의 네트워크가 공유 데이터를 적절하게 관리하는 데 필요한 구조를 설명한다. 이러한 행위자들 간의 상호작용은 데이터 및 알고리즘 주체의 프라이버시, 지적 재산권, 사용자 권리를 고려하여 지역 지식과 가치 표현을 우선시하도록 설계되었다. 특히, 이 접근 방식은 데이터 제공자와 데이터 호스트 간의 구조화된 계약에 의존하며, 이 계약은 데이터가 무엇에 사용될 수 있는지 명시한다.
프로젝트 시작과 모델 학습 사이의 비교적 짧은 시간 안에 국제 조직을 완전히 설립할 수는 없었지만, 우리는 이러한 노력에서 얻은 교훈을 통합하고(동시에 우리가 겪고 있던 실제 문제에 맞게 조정하며) 다음과 같은 주요 방식으로 작업했다: (i) 가능할 때마다 BigScience의 맥락에서 특정 제공자로부터 데이터 사용에 대한 명시적인 허가를 구했다 (예: Lo et al. (2020)의 AI2가 관리하는 S2ORC 코퍼스 또는 프랑스 신문 Le Monde의 기사). (ii) 개별 소스를 전처리 최종 단계까지 분리하여 추적성을 유지하고 각 소스의 특정 맥락에 따라 처리할 수 있도록 했다. (iii) 전체 코퍼스를 구성하는 다양한 데이터 소스에 대해 복합적인 공개 접근 방식을 채택하여, 이러한 소스별 요구 사항을 존중하면서도 재현성 및 후속 연구를 촉진했다.
ROOTS 코퍼스를 시각화하고 접근하기 위한 리소스는 Hugging Face Hub 조직 "BigScience Data"에서 찾을 수 있다. 이 조직은 전체 코퍼스에 대한 통찰력을 얻는 데 사용할 수 있는 여러 데모(또는 "Spaces")와 함께, 라이선스 상태, 프라이버시 위험 및 원본 관리자와의 계약을 고려하여 배포 가능한 223개(총 498개 중) 구성 요소에 대한 직접적인 접근을 제공한다. 마지막으로, BLOOM 모델에 대한 향후 조사를 위해 전체 코퍼스에 대한 완전한 접근이 필요할 수 있음을 이해하고 있으므로, 관련 연구 프로젝트를 염두에 둔 연구자들을 대상으로 데이터 분석을 위한 지속적인 노력에 참여하도록 초대하고 있다.
3.1.2 Data Sources
데이터 거버넌스 전략이 수립된 후, 다음 단계는 학습 코퍼스의 구성을 결정하는 것이었다. 이 단계는 여러 목표에 의해 추진되었으며, 때로는 내재적인 긴장 관계가 존재했다. 이러한 긴장 관계 중 일부는 다음과 같다:
- 전 세계 가능한 한 많은 사람들이 접근할 수 있는 language model을 구축하는 것.
- 이전 노력들과 비슷한 규모(그리고 더 적은 정도로 구성)의 데이터셋을 큐레이션할 충분한 전문 지식을 가진 언어만을 포함하는 것.
- 데이터 및 알고리즘 주체의 권리에 대한 문서화 및 존중의 기준을 개선하는 것.
언어 선택 (Language Choices)
이러한 고려 사항들은 코퍼스에 포함될 언어를 선택하는 점진적인 과정으로 이어졌다. 우리는 프로젝트 초기 단계에서 유창한 화자들을 데이터 작업에 참여시키기 위해 적극적으로 홍보 활동을 펼쳤던, 화자 수 기준으로 세계에서 가장 큰 8개 언어 목록으로 시작했다.
그 후, 언어 커뮤니티의 권고에 따라 (Nekoto et al., 2020) 원래 선택했던 스와힐리어를 Niger-Congo 언어 범주로 확장하고, 힌디어와 우르두어를 Indic 언어 범주로 확장했다 (Kunchukuttan et al., 2020).
마지막으로, 우리는 추가 언어에 유창한 3명 이상의 참가자 그룹이 소스 선택 및 언어 처리 지침에 전념한다면, 해당 언어를 지원 목록에 추가할 수 있도록 제안했다. 이는 특정 언어 전문 지식 없이 자동 언어 식별을 통해 선택된 코퍼스에서 발생하는 일반적인 문제를 피하기 위함이었다 (Caswell et al., 2022).
소스 선택 (Source Selection)
코퍼스의 가장 큰 부분은 워크숍 참가자들과 연구 집단에 의해 큐레이션되었으며, 이들은 **"BigScience Catalogue"**를 공동으로 편집했다. 이는 광범위한 언어를 다루는 처리된 소스와 처리되지 않은 소스의 대규모 목록이었다. 이 작업은 Machine Learning Tokyo, Masakhane, LatinX in AI와 같은 커뮤니티가 공동 주최한 해커톤 형태로 진행되었다 (McMillan-Major et al., 2022). 이러한 노력에 더해, 다른 워킹 그룹 참가자들은 아랍어 중심의 Masader 저장소와 같은 언어별 리소스를 편집했다 (Alyafeai et al., 2021; Altaher et al., 2022). 이 상향식(bottom-up) 접근 방식을 통해 총 252개의 소스가 식별되었으며, 각 언어 범주당 최소 21개의 소스가 포함되었다. 또한, 일부 스페인어, 중국어, 프랑스어, 영어 소스의 지리적 범위를 넓히기 위해, 참가자들은 Common Crawl 스냅샷에서 해당 웹사이트를 얻는 방법인 pseudocrawl을 통해 코퍼스에 추가할 자신들의 언어로 된 지역 관련 웹사이트를 식별했다.
GitHub 코드 (GitHub Code)
카탈로그는 Google BigQuery의 GitHub 데이터 컬렉션에서 수집된 프로그래밍 언어 데이터셋으로 더욱 보완되었으며, 이후 정확히 일치하는 항목들은 중복 제거되었다. 포함할 언어 선택은 AlphaCode 모델 학습을 위해 Li et al. (2022)이 도입한 설계 선택을 반영했다.
OSCAR
웹을 사전학습 데이터 소스로 사용하는 표준 연구 관행에서 벗어나지 않으려는 노력 (Radford et al., 2018; Raffel et al., 2020)과, BLOOM의 크기를 고려할 때 우리의 컴퓨팅 예산에 필요한 데이터 볼륨을 충족시키기 위해, 우리는 Common Crawl의 2021년 2월 스냅샷에 해당하는 OSCAR 버전 21.09에서 추가 데이터를 확보했다 (Ortiz Suárez et al., 2019; Abadji et al., 2021). 이 데이터는 **코퍼스의 38%**를 차지하게 되었다.
3.1.3 Data Preprocessing
소스가 식별된 후, 데이터 처리에는 데이터 큐레이션의 여러 측면을 다루기 위한 여러 단계가 포함되었다. ROOTS를 구축하기 위한 전반적인 관점과 처리 파이프라인은 Figure 2에서 확인할 수 있다. 이 과정에서 개발된 모든 도구는 GitHub에서 이용 가능하다.
소스 데이터 확보
첫 번째 단계는 Section 3.1.2에서 식별된 모든 텍스트 데이터 소스에 대한 데이터를 확보하는 것이었다. 이는 다양한 형식의 NLP 데이터셋(예: question answering, summarization, dialogue 데이터셋 포함)에서 텍스트 필드를 다운로드하고 추출하는 작업, 아카이브(예: 프랑스 과학 논문 저장소)에서 대량의 PDF 파일을 스크랩하고 처리하는 작업, 그리고 카탈로그에서 192개의 웹사이트 항목과 데이터 워킹 그룹 구성원이 선정한 지리적으로 다양한 456개의 웹사이트에서 텍스트를 추출하고 전처리하는 작업을 포함했다. 후자의 경우 Common Crawl WARC 파일의 HTML에서 텍스트를 추출하기 위한 새로운 도구 개발이 필요했으며, 이 도구는 주요 데이터 준비 저장소에서 제공된다. 우리는 539개 웹사이트에 있는 모든 URL에서 사용 가능한 텍스트 데이터를 찾아 추출할 수 있었다.
Figure 2: ROOTS Corpus 생성 파이프라인. 파이프라인의 보라색 소싱 단계와 노란색 처리 단계는 각각 Section 3.1.2와 Section 3.1.3에서 설명된다.
"품질" 필터링: 인간이 인간을 위해 생산한 텍스트
텍스트를 확보한 후, 대부분의 소스에 전처리 오류, SEO 페이지, 스팸(음란성 스팸 포함)과 같이 자연어가 아닌 텍스트가 상당량 포함되어 있음을 발견했다. 자연어가 아닌 텍스트를 필터링하기 위해, 우리는 "인간이 인간을 위해 작성한" 텍스트를 고품질 텍스트로 정의하고, 내용(콘텐츠 선택은 전적으로 더 책임감 있는 인간 소스 선택의 영역으로 두려 했으므로)이나 문법성에 대한 사전 판단 없이 품질 지표 세트를 정의했다. 지표의 전체 목록은 (Laurençon et al., 2022)에 설명되어 있다. 중요한 점은, 이 지표들이 두 가지 주요 방식으로 각 소스의 필요에 맞게 조정되었다는 것이다. 첫째, 임계값 및 지원 용어 목록과 같은 매개변수는 각 언어에 대해 유창한 화자가 개별적으로 선택했다. 둘째, 각 개별 소스를 수동으로 검토하여 자연어가 아닌 텍스트를 식별할 가능성이 가장 높은 지표를 파악했다. 두 과정 모두 그 영향을 시각화하는 도구의 지원을 받았다.
Figure 3: ROOTS 코퍼스의 그래픽 개요. 왼쪽: 모든 46개 자연어의 어족을 나타내는 트리맵 플롯으로, 면적은 바이트 수에 비례한다. 인도유럽어족과 중국티베트어족이 총 1321.89 GB로 플롯을 압도한다. 얇은 주황색 면적은 18 GB의 인도네시아어 데이터를 나타내고, 녹색 직사각형은 니제르-콩고어족 하위 집합을 구성하는 0.4 GB를 나타낸다. 오른쪽: 13개 프로그래밍 언어의 크기별 분포를 나타내는 와플 플롯으로, 한 사각형은 약 200 MB를 나타낸다.
중복 제거 및 개인 정보 수정
마지막으로, 우리는 두 단계의 중복 제거를 통해 거의 중복되는 문서들을 제거하고, **OSCAR 버전의 코퍼스에서 식별할 수 있는 개인 식별 정보(예: 주민등록번호)**를 수정했다. OSCAR 버전이 가장 높은 개인 정보 위험을 내포한다고 판단되었기 때문에, 표현식에 일부 오탐(false positive)이 있는 경우에도 정규식(regex) 기반의 수정을 적용했다.
3.1.4 Prompted Datasets
Figure 4: prompted dataset인 xP3의 언어 분포는 ROOTS의 분포와 매우 유사하다.
Multitask prompted finetuning (또는 instruction tuning이라고도 함)은 사전학습된 language model을 자연어 prompt를 통해 지정된 다양한 task들로 구성된 대규모 학습 혼합물(training mixture)에 대해 fine-tuning하는 것을 포함한다. T0 (Sanh et al., 2022) (BigScience 프로젝트의 일환으로 개발됨)는 prompted dataset의 multitask mixture로 fine-tuning된 language model이 강력한 zero-shot task generalization 능력을 가지고 있음을 입증했다. 더욱이, T0는 한 자릿수 더 큰 규모이지만 이러한 fine-tuning을 거치지 않은 language model보다 더 우수한 성능을 보였다. 이러한 결과에 동기 부여를 받아, 우리는 기존 자연어 데이터셋을 활용하여 multitask prompted finetuning을 수행하는 것을 탐구했다.
T0는 **Public Pool of Prompts (P3)**의 하위 집합으로 학습되었다. P3는 다양한 기존 및 오픈소스 영어 자연어 데이터셋을 위한 prompt 모음이다. 이 prompt 모음은 BigScience 협력자들이 참여한 일련의 해커톤을 통해 만들어졌으며, 해커톤 참가자들은 170개 이상의 데이터셋에 대해 총 2000개 이상의 prompt를 작성했다. P3의 데이터셋은 감성 분석, 질문 응답, 자연어 추론을 포함한 다양한 자연어 task를 다루며, 유해한 콘텐츠나 프로그래밍 언어와 같은 비자연어는 제외한다. **PromptSource (Bach et al., 2022)**는 오픈소스 툴킷으로 (역시 BigScience의 일환으로 개발됨) 자연어 prompt를 생성, 공유 및 사용하는 것을 용이하게 했다. 수집 과정에 대한 자세한 내용은 (Sanh et al., 2022; Bach et al., 2022)에 나와 있다.
BLOOM 사전학습 후, 우리는 동일한 대규모 multitask finetuning 방식을 적용하여 BLOOM에 다국어 zero-shot task generalization 능력을 부여했다. 그 결과 모델을 BLOOMZ라고 부른다. BLOOMZ를 학습시키기 위해 우리는 P3를 확장하여 영어 외의 다른 언어 데이터셋과 번역과 같은 새로운 task를 포함시켰다. 그 결과 xP3가 탄생했는데, 이는 46개 언어와 16개 task를 포함하는 83개 데이터셋에 대한 prompt 모음이다. Figure 4에서 강조된 바와 같이, xP3는 ROOTS의 언어 분포를 반영한다. xP3의 task는 crosslingual (예: 번역) 및 monolingual (예: 요약, 질문 응답) 모두를 포함한다. 우리는 PromptSource를 사용하여 이러한 prompt를 수집했으며, 입력 및 대상 언어와 같은 추가 메타데이터를 prompt에 추가했다. 다국어 prompt의 중요성을 연구하기 위해, 우리는 또한 xP3의 영어 prompt를 해당 데이터셋 언어로 기계 번역하여 xP3mt라는 모음을 생성했다. xP3 및 xP3mt의 prompt 수집에 대한 자세한 내용은 Muennighoff et al. (2022b)에 나와 있다.
3.2 Model Architecture
이 섹션에서는 BLOOM 모델의 설계 방법론 및 아키텍처에 대해 논의한다. 심층적인 연구와 실험은 Le Scao et al. (2022) 및 Wang et al. (2022a)에서 찾아볼 수 있다. 우리는 먼저 설계 방법론을 검토한 다음, causal decoder-only 모델을 학습하기로 결정한 이유를 설명한다. 마지막으로, 우리 모델 아키텍처가 표준적인 관행에서 벗어나는 방식을 정당화한다.
3.2.1 Design Methodology
가능한 아키텍처의 설계 공간은 방대하여, 모든 경우를 탐색하는 것은 불가능하다. 한 가지 방법은 기존 대형 언어 모델의 아키텍처를 정확히 복제하는 것이다. 반면에, 기존 아키텍처 개선에 대한 많은 연구가 상대적으로 적게 채택되었다 (Narang et al., 2021). 이러한 권장 사항 중 일부를 채택하면 훨씬 더 나은 모델을 얻을 수 있을 것이다. 우리는 중간 지점을 택하여 확장성이 입증되었고, 공개적으로 사용 가능한 도구 및 코드베이스에서 합리적인 지원을 받는 모델 계열에 중점을 둔다. 우리는 최종 연산 예산을 최대한 활용하기 위해 모델의 구성 요소와 하이퍼파라미터를 ablation한다.
Ablation을 위한 실험 설계
LLM의 주요 매력 중 하나는 "zero/few-shot" 방식으로 task를 수행하는 능력이다. 충분히 큰 모델은 in-context 지침과 예시만으로 새로운 task를 수행할 수 있으며 (Radford et al., 2019), supervised 샘플에 대한 별도의 학습 없이도 가능하다.
16. github.com/bigscience-workshop/promptsource
따라서, 그리고 100B+ 모델을 fine-tuning하는 것이 다루기 어렵기 때문에, 우리는 아키텍처 결정에 대한 평가를 zero-shot generalization에 집중했으며, transfer learning은 고려하지 않았다. 구체적으로, 우리는 다양한 task 집합에 대한 zero-shot 성능을 측정했다: EleutherAI Language Model Evaluation Harness (EAI-Eval, Gao et al. (2021))의 29개 task와 T0 (T0-Eval, Sanh et al. (2022))의 평가 세트에서 9개 task. 이 두 가지 사이에는 상당한 중복이 있다: T0-Eval의 task 중 StoryCloze 하나만 EAI-Eval에 포함되지 않지만, 두 평가의 모든 prompt는 서로 다르다. task 및 baseline의 자세한 목록은 Le Scao et al. (2022)를 참조하라. 또한, 우리의 task 집합은 GPT-3 (Brown et al., 2020) 평가의 31개 task 중 17개를 공유한다.
우리는 더 작은 모델을 사용하여 ablation 실험을 수행했다. pretraining objective ablation에는 6.7B 파라미터 규모를 사용했으며 (Wang et al., 2022a), position embedding, activation, layer normalization을 포함한 나머지 실험에는 1.3B 규모를 사용했다 (Le Scao et al., 2022). 최근 Dettmers et al. (2022)는 6.7B보다 큰 모델에서 "outliers features"의 출현이 관찰되는 상전이(phase transition) 현상을 확인했다. 이는 1.3B 규모에서 얻은 결과가 최종 모델 크기로 외삽될 수 있는지에 대한 의문을 제기한다.
범위 외 아키텍처 (Out-of-scope Architectures)
우리는 mixture-of-experts (MoE) (Shazeer et al., 2017)를 고려하지 않았다. 이는 대규모 학습에 적합한 널리 사용되는 GPU 기반 코드베이스가 부족했기 때문이다. 마찬가지로, state-space model (Gu et al., 2020)도 고려하지 않았다. BLOOM 설계 당시에는 자연어 task에서 지속적으로 성능이 저조했다 (Gu et al., 2021). 이 두 가지 접근 방식 모두 유망하며, 현재는 MoE의 경우 대규모에서 (Fedus et al., 2022; Srivastava et al., 2022), state-space model의 경우 H3를 통해 소규모에서 (Fu et al., 2023) 경쟁력 있는 결과를 보여주었다.
3.2.2 Architecture and Pretraining Objective
대부분의 최신 language model이 Transformer 아키텍처에 기반하고 있지만, 아키텍처 구현에는 상당한 차이가 존재한다. 특히, 오리지널 Transformer는 encoder-decoder 아키텍처에 기반하는 반면, 많은 인기 모델들은 encoder-only (예: BERT [Devlin et al., 2019]) 또는 decoder-only (예: GPT [Radford et al., 2018]) 접근 방식을 채택했다. 현재 1,000억 개 이상의 파라미터를 가진 모든 state-of-the-art language model은 causal decoder-only 모델이다 [Brown et al., 2020; Rae et al., 2021; Chowdhery et al., 2022]. 이는 encoder-decoder 모델이 transfer learning에서 decoder-only 모델보다 훨씬 뛰어난 성능을 보인다는 Raffel et al. (2020)의 연구 결과와는 상반된다.
우리의 연구 이전에, 다양한 아키텍처와 사전학습(pretraining) objective의 zero-shot generalization 능력에 대한 체계적인 평가는 문헌에서 부족했다. 우리는 Wang et al. (2022a)에서 이 질문을 탐구했으며, encoder-decoder 및 decoder-only 아키텍처와 이들이 causal, prefix, masked language modeling 사전학습 objective와 상호작용하는 방식을 평가했다. 우리의 결과는 사전학습 직후에는 causal decoder-only 모델이 가장 좋은 성능을 보였으며, 이는 state-of-the-art LLM의 선택을 뒷받침한다. 또한, 이 모델들은 사전학습 후 non-causal 아키텍처 및 objective로 더 효율적으로 적응될 수 있으며, 이 접근 방식은 Tay et al. (2022)에 의해 추가적으로 탐구되고 확인되었다.
3.2.3 Modeling Details
아키텍처와 사전학습 objective를 선택하는 것 외에도, 오리지널 Transformer 아키텍처에 여러 가지 변경 사항이 제안되었다. 예를 들어, 대체 positional embedding 방식 (Su et al., 2021; Press et al., 2021) 또는 새로운 activation function (Shazeer, 2020) 등이 있다. 이에 우리는 Le Scao et al. (2022)에서 causal decoder-only 모델에 대한 이러한 각 수정 사항의 이점을 평가하기 위해 일련의 실험을 수행했다. 우리는 BLOOM에서 두 가지 아키텍처적 변경 사항을 채택했다:
ALiBi Positional Embeddings
ALiBi는 embedding layer에 positional 정보를 추가하는 대신, key와 query가 얼마나 떨어져 있는지에 따라 attention score를 직접적으로 감쇠시킨다 (Press et al., 2021). ALiBi는 원래 더 긴 시퀀스로의 외삽(extrapolation) 능력 때문에 제안되었지만, 우리는 원래 시퀀스 길이에서도 더 부드러운 학습과 더 나은 다운스트림 성능을 보인다는 것을 발견했다. 이는 학습된(learned) embedding (Vaswani et al., 2017)과 rotary embedding (Su et al., 2021) 모두를 능가하는 결과였다.
Embedding LayerNorm
104B 파라미터 모델을 학습시키는 예비 실험에서, 우리는 embedding layer 바로 뒤에 추가적인 layer normalization을 적용하는 실험을 진행했다. 이는 bitsandbytes 라이브러리 (Dettmers et al., 2022)의 StableEmbedding layer에서 권장하는 방식이다. 우리는 이 방식이 학습 안정성을 크게 향상시킨다는 것을 발견했다. 비록 Le Scao et al. (2022)에서는 zero-shot generalization 성능을 저해한다는 것을 발견했지만, 우리는 학습 불안정성을 피하기 위해 첫 번째 embedding layer 뒤에 추가적인 layer normalization을 적용하여 BLOOM을 학습시켰다. 참고로, 104B 예비 실험은 float16으로 수행되었고, 최종 학습은 bfloat16으로 진행되었다. 이후 float16은 LLM 학습에서 관찰된 많은 불안정성의 원인으로 지목되었다 (Zhang et al., 2022; Zeng et al., 2022). bfloat16이 embedding LayerNorm의 필요성을 완화할 가능성도 있다.
참고를 위해 BLOOM의 전체 아키텍처를 Figure 5에 나타냈다.
Figure 5: BLOOM 아키텍처. ALIBI의 기울기 파라미터는 헤드 수 과 에 대해 로 설정된다.
- github.com/TimDettmers/bitsandbytes
3.3 Tokenization
토크나이저 학습 시의 설계 결정은 종종 "기본(default)" 설정에 밀려 간과되는 경향이 있다 (Mielke et al., 2021). 예를 들어, OPT (Zhang et al., 2022)와 GPT-3 (Brown et al., 2020)는 모두 영어 학습용으로 개발된 GPT-2의 토크나이저를 사용한다. 이는 특정 선택이 모델의 다운스트림 성능에 미치는 영향을 평가하는 것이 학습에 드는 막대한 계산 비용으로 인해 제약받기 때문에 정당화될 수 있다. 그러나 BLOOM의 학습 데이터가 가진 다양한 특성은 토크나이저가 문장을 정보 손실 없이 인코딩하도록 신중한 설계 결정을 요구한다.
검증 (Validation)
우리는 기존의 단일 언어 토크나이저와 비교하여 우리의 토크나이저의 fertility (Ács, 2019)를 건전성 검사(sanity check) 지표로 사용한다. Fertility는 토크나이저가 단어당 또는 데이터셋당 생성하는 subword의 수로 정의되며, 우리는 관심 언어의 Universal Dependencies 2.9 (Nivre et al., 2017) 및 OSCAR (Ortiz Suárez et al., 2019)의 하위 집합을 사용하여 이를 측정했다. 단일 언어 토크나이저에 비해 특정 언어에서 매우 높은 fertility는 모델의 다운스트림 다국어 성능 저하를 나타낼 수 있다 (Rust et al., 2021). 우리의 목표는 다국어 토크나이저와 해당 언어의 단일 언어 토크나이저를 비교했을 때, 각 언어의 fertility가 10% 포인트 이상 저하되지 않도록 하는 것이었다. 모든 실험에서 Hugging Face Tokenizers 라이브러리 (Moi et al., 2019)가 테스트된 토크나이저를 설계하고 학습하는 데 사용되었다.
| Tokenizer | fr | en | es | zh | hi | ar |
|---|---|---|---|---|---|---|
| Monolingual | 1.30 | 1.15 | 1.12 | 1.50 | 1.07 | 1.16 |
| BLOOM |
Table 2: 기존 단일 언어 토크나이저가 있는 언어의 Universal Dependencies treebank에서 얻은 fertility. 사용된 단일 언어 토크나이저는 CamemBERT (Martin et al., 2020), GPT-2 (Radford et al., 2019), DeepESP/gpt2-spanish, bert-base-chinese, monsoon-nlp/hindi-bert 및 Arabic BERT (Safaya et al., 2020)의 토크나이저이며, 모두 HuggingFace Hub에서 이용 가능하다.
토크나이저 학습 데이터 (Tokenizer Training Data)
우리는 처음에 ROOTS의 중복 제거되지 않은 하위 집합을 사용했다. 그러나 토크나이저의 어휘에 대한 정성적 연구 결과, 학습 데이터에 문제가 있음이 밝혀졌다. 예를 들어, 토크나이저의 초기 버전에서는 많은 수의 중복 문서를 포함하는 문제로 인해 전체 URL이 토큰으로 저장되는 현상을 발견했다. 이러한 문제들은 토크나이저 학습 데이터에서 중복된 줄을 제거하도록 동기를 부여했다. 그 후, 우리는 학습 데이터와 동일한 언어별 샘플링 비율을 적용했다.
어휘 크기 (Vocabulary Size)
큰 어휘 크기는 일부 문장의 과도한 분할 위험을 줄여준다. 특히 저자원 언어의 경우 더욱 그렇다. 우리는 기존의 다국어 모델링 문헌 (Conneau et al., 2020; Xue et al., 2021)과의 비교를 용이하게 하기 위해 150k 및 250k 어휘 크기를 사용하여 검증 실험을 수행했다. 우리는 궁극적으로 단일 언어 토크나이저와 비교하여 초기 fertility 목표를 달성하기 위해 250k 토큰의 어휘를 선택했다. 어휘 크기는 임베딩 행렬 크기를 결정하므로, GPU 효율성을 위해 128로 나누어 떨어져야 했고, Tensor Parallelism을 사용하기 위해 4로 나누어 떨어져야 했다. 우리는 최종적으로 250,680개의 어휘 항목을 사용했으며, 이 중 200개의 토큰은 placeholder 토큰을 사용하여 개인 정보를 제거하는 등 향후 가능한 응용을 위해 예약해 두었다.
바이트 수준 BPE (Byte-level BPE)
토크나이저는 Gage (1994)가 도입한 Byte Pair Encoding (BPE) 알고리즘을 사용하여 학습된 subword 토크나이저이다. 토큰화 과정에서 정보 손실을 방지하기 위해, 토크나이저는 문자 대신 바이트를 가장 작은 단위로 하여 병합을 생성한다 (Radford et al., 2019). 이러한 방식으로, 모든 256개의 바이트가 토크나이저의 어휘에 포함될 수 있으므로 토큰화는 결코 알 수 없는 토큰(unknown token)을 생성하지 않는다. 또한, 바이트 수준 BPE는 언어 간 어휘 공유를 극대화한다 (Wang et al., 2020).
정규화 (Normalization)
BPE 토큰화 알고리즘의 상위 단계에서는 가능한 가장 일반적인 모델을 만들기 위해 텍스트에 대한 정규화가 수행되지 않았다. 모든 경우에, 우리는 NFKC와 같은 유니코드 정규화를 추가하는 것이 고려된 모든 언어에서 fertility를 0.8% 이상 감소시키지 않았지만, 모델의 일반성을 떨어뜨리는 대가를 치렀음을 관찰했다. 예를 들어, 와 22가 동일한 방식으로 인코딩되도록 만들었다.
Pre-tokenizer
우리의 pre-tokenization은 두 가지 목표를 가진다: 텍스트의 첫 번째 분할을 생성하는 것 (일반적으로 공백과 구두점을 사용)과 BPE 알고리즘에 의해 생성되는 토큰 시퀀스의 최대 길이를 제한하는 것이다. 사용된 pre-tokenization 규칙은 다음 정규식이었다: " ? . . . 이 정규식은 모든 문자를 보존하면서 단어를 분리하며, 특히 프로그래밍 언어에 중요한 공백 및 줄 바꿈 시퀀스를 보존한다. 우리는 다른 토크나이저에서 흔히 사용되는 영어 중심의 분할 (예: 'nt 또는 'll 주변 분할)을 사용하지 않는다. 또한, 아랍어 및 코드에서 문제를 일으켰던 숫자 및 자릿수 분할도 사용하지 않았다.
3.4 Engineering
3.4.1 Hardware
모델은 Jean Zay에서 학습되었다. Jean Zay는 GENCI가 소유하고 IDRIS(프랑스 국립과학연구센터(CNRS)의 국립 컴퓨팅 센터)에서 운영하는 프랑스 정부 지원 슈퍼컴퓨터이다. BLOOM 학습은 완료하는 데 약 3.5개월이 소요되었고, 1,082,990 컴퓨팅 시간을 소비했다. 학습은 48개의 노드에서 진행되었으며, 각 노드에는 8개의 NVIDIA A100 80GB GPU가 장착되어 있었다(총 384개의 GPU). 학습 중 발생할 수 있는 하드웨어 오류에 대비하여 4개의 예비 노드도 유지했다. 노드에는 2개의 AMD EPYC 7543 32-Core CPU와 512GB RAM이 장착되었고, 스토리지는 SpectrumScale (GPFS) 병렬 파일 시스템을 사용하여 모든 노드와 슈퍼컴퓨터 사용자 간에 공유되는 풀 플래시 및 하드 디스크 드라이브의 혼합으로 처리되었다. 노드당 4개의 NVLink GPU-to-GPU 인터커넥트는 노드 내 통신을 가능하게 했고, 노드당 4개의 Omni-Path 100Gbps 링크는 향상된 hypercube 8D 글로벌 토폴로지로 구성되어 노드 간 통신에 사용되었다.
3.4.2 Framework
BLOOM은 대규모 분산 학습을 위한 프레임워크인 Megatron-DeepSpeed를 사용하여 학습되었다. 이 프레임워크는 두 부분으로 구성된다:
- Megatron-LM은 Transformer 구현, tensor parallelism, 데이터 로딩 기본 요소를 제공한다.
- DeepSpeed는 ZeRO optimizer, model pipelining, 그리고 일반적인 분산 학습 구성 요소를 제공한다.
이 프레임워크를 통해 우리는 3D parallelism (Narayanan et al., 2021, Figure 6 참조)을 사용하여 효율적으로 학습할 수 있었는데, 이는 분산 학습의 세 가지 보완적인 접근 방식을 융합한 것이다. 이러한 접근 방식은 다음과 같다:
Figure 6: DP+PP+TP 조합은 3D parallelism으로 이어진다.
**Data parallelism (DP)**은 모델을 여러 번 복제하여 각 복제본을 다른 장치에 배치하고 데이터의 일부를 공급한다. 처리는 병렬로 이루어지며, 모든 모델 복제본은 각 학습 단계가 끝날 때 동기화된다.
**Tensor parallelism (TP)**은 모델의 개별 layer를 여러 장치에 분할한다. 이 방식은 전체 activation 또는 gradient tensor가 단일 GPU에 상주하는 대신, 이 tensor의 shard를 별도의 GPU에 배치한다. 이 기술은 때때로 horizontal parallelism 또는 intra-layer model parallelism이라고 불린다.
**Pipeline parallelism (PP)**은 모델의 layer를 여러 GPU에 분할하여, 모델 layer의 일부만 각 GPU에 배치되도록 한다. 이는 때때로 vertical parallelism이라고 불린다.
마지막으로, **Zero Redundancy Optimizer (ZeRO; Rajbhandari et al., 2020)**는 서로 다른 프로세스가 학습 단계에 필요한 데이터(파라미터, gradient, optimizer state)의 일부만 보유하도록 허용한다. 우리는 ZeRO stage 1을 사용했는데, 이는 optimizer state만 이러한 방식으로 sharding된다는 것을 의미한다.
위에 설명된 네 가지 구성 요소는 함께 결합되어 수백 개의 GPU로 확장하면서도 극도로 높은 GPU 활용률을 달성할 수 있게 한다. 우리는 A100 GPU를 사용한 가장 빠른 구성에서 156 TFLOPs를 달성했으며, 이는 float32 또는 bfloat16에서 이론적 최고 성능인 312 TFLOPs의 절반이라는 목표를 달성한 것이다.
3.4.3 Floating Point Format
NVIDIA V100 GPU에서 104B 파라미터 모델을 사용한 초기 실험에서, 우리는 되돌릴 수 없는 학습 발산(training divergences)을 야기하는 수치적 불안정성을 관찰했다. 우리는 이러한 불안정성이 매우 제한적인 동적 범위(dynamic range)를 가진 16비트 부동 소수점 형식인 IEEE float16의 초기 사용에서 비롯되었으며, 이것이 오버플로우(overflow)를 유발할 수 있다고 가정한다.
우리가 최종적으로 사용할 수 있었던 NVIDIA A100 GPU는 float32와 동일한 동적 범위를 가진 bfloat16 형식을 지원한다 (Wang and Kanwar, 2019; Kalamkar et al., 2019). 반면에 bfloat16은 여전히 **훨씬 낮은 정밀도(precision)**를 가지고 있었고, 이는 mixed-precision training (Micikevicius et al., 2018)을 사용하게 된 동기가 되었다. 이 기술은 gradient accumulation 및 softmax와 같은 특정 정밀도에 민감한 연산을 float32 정밀도로 수행하고, 나머지 연산은 더 낮은 정밀도로 수행하여 높은 성능과 학습 안정성 사이의 균형을 달성할 수 있게 한다. 궁극적으로 우리는 bfloat16 mixed precision으로 최종 학습을 수행했으며, 이는 불안정성 문제를 해결하는 것으로 입증되었다 (Smith et al., 2022의 이전 관찰과 일치).
3.4.4 Fused CUDA Kernels
일반적으로 GPU는 연산을 수행하기 위해 데이터를 검색하는 것과 동시에 연산을 수행할 수 없다. 더욱이, 최신 GPU의 연산 성능은 모든 연산(GPU 프로그래밍에서는 종종 kernel이라고 불림)에 필요한 메모리 전송 속도보다 훨씬 빠르다. Kernel fusion (Wu et al., 2012)은 여러 연속적인 연산을 단 하나의 kernel 호출로 수행함으로써 GPU 기반 연산을 최적화하는 접근 방식이다. 이 접근 방식은 데이터 전송을 최소화하는 방법을 제공한다: 중간 결과는 VRAM으로 복사되는 대신 GPU 레지스터에 남아 오버헤드를 절약한다.
우리는 Megatron-LM에서 제공하는 여러 커스텀 fused CUDA kernel을 사용했다. 첫째, LayerNorm을 수행하는 최적화된 kernel과 스케일링, 마스킹, softmax 연산의 다양한 조합을 융합하는 kernel을 사용했다. bias term의 추가 또한 PyTorch의 JIT 기능을 사용하여 GeLU activation과 융합되었다. fused kernel 사용의 결과로, GeLU 연산에서 bias term을 추가하는 데 추가 시간이 들지 않는다. 이는 해당 연산이 **메모리 바운드(memory-bound)**이기 때문이다: 추가적인 연산은 GPU VRAM과 레지스터 간의 데이터 전송에 비해 무시할 수 있으므로, 두 연산을 융합하면 본질적으로 실행 시간이 절반으로 줄어든다.
3.4.5 Additional Challenges
384개의 GPU로 확장하기 위해서는 최종적으로 두 가지 변경 사항이 필요했다:
- 비동기 CUDA kernel launch 비활성화: 디버깅 용이성과 교착 상태(deadlock) 방지를 위해
- 파라미터 그룹을 더 작은 서브그룹으로 분할: 과도한 CPU 메모리 할당을 피하기 위해
학습 중에는 하드웨어 문제에 직면했다. 평균적으로 매주 1~2개의 GPU 오류가 발생했다. 백업 노드가 자동으로 사용 가능했고, 3시간마다 체크포인트가 저장되었기 때문에, 이러한 오류는 학습 처리량에 큰 영향을 미치지 않았다. PyTorch 데이터 로더의 교착 상태 버그와 디스크 공간 문제로 인해 5~10시간의 다운타임이 발생하기도 했다. 하지만 엔지니어링 문제의 상대적인 희소성과 모델이 빠르게 복구한 단 한 번의 loss spike를 고려할 때, 유사한 프로젝트(Zhang et al., 2022)에 비해 인간의 개입이 덜 필요했다. BLOOM 학습 경험에 대한 전체 세부 정보와 우리가 직면했던 모든 문제에 대한 상세 보고서는 공개적으로 이용 가능하다.
3.5 Training
| Hyperparameter ( ) | BLOOM-560M | BLOOM-1.1B | BLOOM-1.7B | BLOOM-3B | BLOOM-7.1B | BLOOM |
|---|---|---|---|---|---|---|
| Architecture hyperparameters | ||||||
| Parameters | 559 M | |||||
| Precision | float16 | bfloat16 | ||||
| Layers | 24 | 24 | 24 | 30 | 30 | 70 |
| Hidden dim. | 1024 | 1536 | 2048 | 2560 | 4096 | 14336 |
| Attention heads | 16 | 16 | 16 | 32 | 32 | 112 |
| Vocab size | 250,680 | 250,680 | ||||
| Sequence length | 2048 | 2048 | ||||
| Activation | GELU | GELU | ||||
| Position emb. | Alibi | Alibi | ||||
| Tied emb. | True | True | ||||
| Pretraining hyperparameters | ||||||
| Global Batch Size | 256 | 256 | 512 | 512 | 512 | 2048 |
| Learning rate | ||||||
| Total tokens | 341B | 366B | ||||
| Warmup tokens | 375 M | 375 M | ||||
| Decay tokens | 410B | 410B | ||||
| Decay style | cosine | cosine | ||||
| Min. learning rate | ||||||
| Adam ( ) | (0.9, 0.95) | (0.9, 0.95) | ||||
| Weight decay | ||||||
| Gradient clipping | 1.0 | 1.0 | ||||
| Multitask finetuning hyperparameters | ||||||
| Global Batch Size | 1024 | 1024 | 2048 | 2048 | 2048 | 2048 |
| Learning rate | ||||||
| Total tokens | 13 B | 13B | ||||
| Warmup tokens | 0 | 0 | ||||
| Decay style | constant | constant | ||||
| Weight decay | 1e-4 | 1e-4 |
Table 3: BLOOM & BLOOMZ Training Hyperparameters.
사전학습 모델 (Pretrained Models)
우리는 Table 3에 상세히 설명된 하이퍼파라미터를 사용하여 BLOOM의 6가지 크기 변형 모델을 학습시켰다.
아키텍처 및 학습 하이퍼파라미터는 **우리의 실험 결과 (Le Scao et al., 2022)**와 **대규모 language model 학습에 대한 이전 연구 (Brown et al., 2020; Kaplan et al., 2020)**에서 가져왔다.
176B 모델을 제외한 모델들의 깊이(depth)와 너비(width)는 기존 문헌 (Brown et al., 2020; Zhang et al., 2022)을 대략적으로 따르며, 3B 및 7.1B 모델의 경우 학습 설정에 더 쉽게 맞추기 위해 일부 조정되었다.
BLOOM은 더 큰 다국어 vocabulary를 사용하기 때문에 embedding 파라미터 크기가 더 크지만, scaling 관련 문헌에서는 embedding 연산을 할인하여 계산한다 (Kaplan et al., 2020).
104B 파라미터 규모의 개발 과정에서, 우리는 안정성을 목표로 Adam 파라미터, weight decay, gradient clipping의 다양한 값들을 실험했지만, 유의미한 개선을 찾지는 못했다.
모든 모델에 대해, 우리는 410B 토큰에 걸쳐 cosine learning rate decay schedule (Loshchilov and Hutter, 2016)을 사용했으며, 이는 연산이 허용하는 경우 학습 길이의 상한선으로 간주되었다. 또한 375M 토큰 동안 warmup을 수행했다.
우리는 weight decay, gradient clipping을 사용했으며, dropout은 사용하지 않았다.
ROOTS 데이터셋은 약 3410억 개의 텍스트 토큰을 포함하고 있으므로, 우리는 모든 모델을 이에 상응하는 토큰 양으로 학습시키는 것을 목표로 했다.
그러나 학습 중에 발표된 수정된 scaling law (Hoffmann et al., 2022)를 고려하여, 우리는 대규모 모델을 반복된 데이터로 250억 토큰 추가 학습하기로 결정했다.
warmup 토큰 + decay 토큰의 합이 총 토큰 수보다 많았기 때문에, learning rate decay의 끝에는 도달하지 않았다.
Multitask Finetuning
Finetuning된 BLOOMZ 모델 (Muennighoff et al., 2022b)은 BLOOM 모델과 동일한 아키텍처 하이퍼파라미터를 유지한다.
finetuning 하이퍼파라미터는 T0 (Sanh et al., 2022) 및 FLAN (Wei et al., 2021)을 기반으로 한다.
Learning rate는 각 사전학습 모델의 최소 learning rate를 두 배로 늘린 후 반올림하여 결정된다.
Global batch size는 처리량(throughput)을 높이기 위해 작은 모델 변형의 경우 4배로 증가시켰다.
모델은 130억 토큰 동안 finetuning되지만, 최적의 체크포인트는 별도의 validation set을 기준으로 선택된다.
우리는 10억~60억 토큰의 finetuning 이후 성능이 정체되는 것을 확인했다.
Contrastive Finetuning
우리는 또한 SGPT Bi-Encoder recipe (Muennighoff, 2022)를 사용하여 13억 및 71억 파라미터 BLOOM 모델의 contrastive finetuning을 수행하여 고품질 텍스트 embedding을 생성하는 모델을 학습시켰다.
우리는 다국어 정보 검색에 특화된 SGPT-BLOOM-7.1B-msmarco와 다국어 의미론적 텍스트 유사성(STS)을 위한 SGPT-BLOOM-1.7B-nli를 만들었다.
그러나 최근 벤치마킹 결과, 이 모델들은 bitext mining, reranking 또는 다운스트림 분류를 위한 feature extraction과 같은 다양한 다른 embedding task에도 일반화되는 것으로 나타났다 (Muennighoff et al., 2022a).
3.5.1 Carbon Footprint
대부분의 언어 모델 탄소 발자국 추정 연구들이 모델 학습 중 소비되는 에너지로 인한 배출량(예: Patterson et al., 2021; Strubell et al., 2019)에 초점을 맞추었지만, 다른 배출원들도 고려하는 것이 중요하다. BLOOM의 탄소 배출량을 추정하기 위한 노력에서 우리는 전과정 평가(Life Cycle Assessment, LCA) 접근 방식 (Klöpffer, 1997)에서 영감을 받아 다음과 같은 측면들을 고려하고자 했다:
장비 제조, 중간 모델 학습, 그리고 배포 과정에서의 배출량. 우리의 추정치에 따르면, BLOOM 학습으로 인한 탄소 배출량은 약 **81톤의 **에 달하며, 이 중 14%는 장비 제조 과정(11톤), 30%는 학습 중 소비된 에너지(25톤), 그리고 **55%는 학습에 사용된 장비 및 컴퓨팅 클러스터의 유휴 소비(45톤)**로 인해 발생했다.
| Model <br> name | Number of <br> parameters | Power <br> consumption | eq <br> emissions |
|---|---|---|---|
| GPT-3 | 175 B | 502 tons | |
| Gopher | 280 B | 352 tons | |
| OPT | 175 B | 324 MWh | 70 tons |
| BLOOM | 176 B | 433 MWh | 25 tons |
Table 4: BLOOM과 유사한 LLM들의 탄소 배출량 비교. 이탤릭체 숫자는 모델을 설명하는 논문에 제공된 데이터를 기반으로 추론된 값이다.
BLOOM 학습의 탄소 배출량을 다른 유사 모델들과 비교해보면 (Table 4 참조), BLOOM의 에너지 소비량은 OPT (Zhang et al., 2022)보다 약간 높지만 (OPT의 324 MWh에 비해 433 MWh), 배출량은 약 2/3 적다 (70톤 대비 25톤). 이는 BLOOM 학습에 사용된 에너지 그리드의 낮은 탄소 집약도 덕분인데, BLOOM 학습에 사용된 그리드는 를 배출하는 반면, OPT 학습에 사용된 그리드는 를 배출한다. 특히, Jean Zay가 사용하는 프랑스의 국가 에너지 그리드는 주로 원자력 에너지로 구동되며, 이는 석탄이나 천연가스와 같은 에너지원에 의해 구동되는 그리드에 비해 저탄소이다. 원자력 에너지의 지속 가능성에 대한 논쟁이 있지만, 현재 사용 가능한 에너지원 중 탄소 집약도가 가장 낮은 축에 속한다. BLOOM과 OPT 모두 GPT-3 (Patterson et al., 2021에 의해 보고됨)보다 훨씬 적은 탄소 배출량을 발생시켰는데, 이는 더 효율적인 하드웨어와 탄소 집약도가 낮은 에너지원을 포함한 여러 요인에 기인한다.
우리는 또한 (1) Big Science 워크숍 범위 내에서 Jean Zay에서 수행된 계산의 탄소 발자국, 그리고 (2) BLOOM 모델 API를 실시간으로 실행하는 것의 탄소 발자국에 대한 추가 탐색을 진행했다. 전체 계산의 발자국 측면에서, 최종 BLOOM 학습은 전체 배출량의 약 **37%**를 차지하며, 중간 학습 실행 및 모델 평가와 같은 다른 프로세스들이 나머지 **63%**를 차지하는 것으로 추정된다. 이는 OPT 논문의 저자들이 실험, baseline, ablation 등으로 인해 모델의 총 탄소 발자국이 약 2배 더 높다고 언급한 추정치 (Zhang et al., 2022)보다 약간 낮은 수치이다. BLOOM API의 탄소 배출량에 대한 우리의 지속적인 탐색 결과, us-central1 지역에서 16개의 GPU를 사용하여 GCP 인스턴스에서 모델을 실시간으로 배포할 경우 배포 하루당 약 20 kg의 eq가 배출되는 것으로 추정되었다 (시간당 0.83 kg). 이 수치는 모든 배포 사용 사례를 대표하는 것은 아니며, 사용되는 하드웨어, 모델 구현의 세부 사항 (예: batching 사용 여부), 그리고 모델이 받는 요청 수에 따라 달라질 것이다. BLOOM의 탄소 발자국에 대한 추가 정보는 Luccioni et al. (2022)에서 확인할 수 있다.
3.6 Release
**개방성(Openness)**은 BLOOM 개발의 핵심이었으며, 우리는 커뮤니티가 BLOOM을 쉽게 사용할 수 있도록 보장하고자 했다. 이에 따라 우리는 Model Card (Mitchell et al., 2019) 형태의 문서와 프로젝트의 특정 목표를 다루는 새로운 라이선스를 제작하는 데 힘썼다.
Model Card
머신러닝 모델 공개의 모범 사례에 따라, BLOOM 모델은 상세한 Model Card (Mitchell et al., 2019)와 함께 공개되었다. 이 Model Card에는 기술 사양, 학습 세부 정보, 의도된 사용 목적, 범위 외 사용 사례, 그리고 모델의 한계점이 기술되어 있다. 여러 워킹 그룹의 참여자들이 협력하여 최종 Model Card와 각 checkpoint에 대한 유사한 카드들을 제작했다. 이 작업은 주로 각 섹션을 함께 고민하고 토론하며 "실시간으로" 구성되었고, 이후 참여자들이 토론 과정에서 자연스럽게 만들어낸 분류와 구분에 따라 하위 섹션으로 세분화되었다.
라이선싱 (Licensing)
BLOOM이 초래할 수 있는 잠재적으로 해로운 사용 사례를 염두에 두고, 우리는 행동 사용 조항(behavioral-use clauses) (Contractor et al., 2022)을 포함하여 무제한적인 오픈 액세스와 책임 있는 사용 사이의 균형을 맞추기로 결정했다. 이는 모델의 적용 범위를 잠재적으로 해로운 사용 사례로 제한하기 위함이다. 이러한 조항들은 커뮤니티가 모델을 공개할 때 채택하고 있는 "Responsible AI Licenses (RAIL)" 라는 새로운 종류의 라이선스에 점차적으로 포함되고 있다. BLOOM을 위해 개발된 RAIL 라이선스의 특징적인 측면은 "소스 코드"와 "모델"의 라이선스를 분리한다는 점이다. 여기서 "모델"은 학습된 파라미터로 참조된다. 또한, 모델의 "사용" 및 "파생 작업(derived works)"에 대한 상세한 정의를 포함하여, prompting, fine-tuning, distillation, logits 및 확률 분포 사용과 같은 예상되는 다운스트림 사용이 명시적으로 식별되도록 보장한다. 이 라이선스에는 BLOOM Model Card에 설명된 의도된 사용 목적 및 한계점, 그리고 BigScience 윤리 헌장을 기반으로 식별된 13가지 행동 사용 제한 사항이 포함되어 있다. 이 라이선스는 모델을 무료로 제공하며, 사용자는 약관(사용 제한 포함)을 준수하는 한 모델을 자유롭게 사용할 수 있다. BLOOM의 소스 코드는 Apache 2.0 오픈 소스 라이선스로 제공되었다.
4. Evaluation
우리의 평가는 zero-shot 및 few-shot 설정에 중점을 둔다. 우리의 목표는 모델이 실제로 사용될 가능성이 가장 높은 방식을 반영하는 설정에서 BLOOM이 기존 LLM과 어떻게 비교되는지에 대한 정확한 그림을 제시하는 것이다. 이러한 모델의 규모 때문에, 현재는 prompt 기반 적응(adaptation)과 few-shot "in-context learning"이 fine-tuning보다 더 일반적이다. 따라서 우리는 SuperGLUE (4.2), 기계 번역 (4.3), 요약 (4.4) 등 다양한 task와 언어에 대해 zero-shot 및 one-shot prompt 기반 설정에서의 결과를 보고하며, multitask fine-tuning 이후의 결과(Section 4.7)도 함께 제시한다. 또한 우리는 코드 생성 (4.5) 을 수행하고, BLOOM에서 파생된 텍스트 임베딩을 표현(representation) task (4.8)에 사용하며, 다국어 probing (Section 4.9) 관점에서 BLOOM의 일반화 능력을 해석한다.
4.1 Experimental Design
4.1.1 Prompts
최근 prompting이 language model 성능에 미치는 영향에 대한 연구를 바탕으로, 우리는 기본 task 데이터와 task를 contextualize하는 데 사용되는 prompting을 모두 변경할 수 있는 language model 평가 스위트를 구축하기로 결정했다.
우리의 prompt는 BLOOM 출시 이전에 개발되었으며, 어떤 모델을 사용한 사전 정제 과정도 거치지 않았다. 즉, 우리가 평가에 사용하는 prompt는 인간이 language model로부터 원하는 task 동작을 유도하는 합리적인 방법이라고 믿었던 것들이다.
이러한 방식으로 prompt를 설계한 목표는 새로운 사용자가 BLOOM으로부터 기대할 수 있는 현실적인 zero-shot 또는 one-shot 결과를 시뮬레이션하는 것이다. 이는 prompt 설계에 대한 여러 차례의 시행착오를 통해 얻을 수 있는 최상의 성능을 제시하는 것과는 대조적이다. 우리는 후자가 체계적으로 재현하기 어렵고, 평균적인 환경에서 모델이 작동하는 방식을 덜 대표하며, 레이블된 데이터를 사용할 수 없는 진정한 zero-shot learning을 대표하지 않기 때문에 전자를 보고하기로 결정했다.
우리는 **promptsource (Bach et al., 2022)**를 사용하여 task당 여러 개의 prompt를 생성한다. 우리는 Sanh et al. (2022)이 사용한 절차를 따랐는데, 이 방식에서는 prompt 생성이 크라우드소싱되므로, prompt 간에 길이와 스타일에서 상당한 다양성을 볼 수 있다. 품질과 명확성을 향상시키기 위해, 각 prompt에 대해 artifact 및 일관성에 대한 여러 차례의 동료 검토가 수행되었다.
Table 5는 WMT'14 task에 사용된 결과 prompt의 예시를 보여준다. 우리는 자원 제약으로 인해 본 논문에 포함되지 않은 많은 task에 대해서도 prompt를 생성했다. 모든 task에 대한 우리의 모든 prompt (논문에서 분석된 것과 아직 분석되지 않은 것 모두)는 공개적으로 이용 가능하다.
| Prompt name | Prompt | Target |
|---|---|---|
| a_good_translation-source+target | Given the following source text: [source sentence], a good L2 translation is: | [target sentence] |
| gpt3-target | What is the L2 translation of the sentence: [source sentence]? | [target sentence] |
| version-target | if the original version says [source sentence]; then the L2 version should say: | [target sentence] |
| xglm-source+target | L1: [source sentence] = L2: | [target sentence] |
Table 5: MT 평가를 위한 WMT'14 데이터셋 (Bojar et al., 2014)의 네 가지 prompt.
위 표에서 "L1"과 "L2"는 언어 이름(예: "Bengali"와 "Russian")으로 대체된다.
4.1.2 Infrastructure
우리의 프레임워크는 EleutherAI의 Language Model Evaluation Harness (Gao et al., 2021)를 Section 3.1.4에서 설명된 promptsource (Bach et al., 2022) 라이브러리와 통합하여 확장한다. 우리는 이 Prompted Language Model Evaluation Harness를 사람들이 사용할 수 있도록 오픈 소스 라이브러리로 공개한다. 우리는 이 프레임워크를 사용하여 실험을 실행하고 결과를 집계한다.
4.1.3 Datasets
SuperGLUE
우리는 SuperGLUE (Wang et al., 2019) 평가 스위트의 분류 task 중 다음 하위 집합을 사용한다: Ax-b, Ax-g, BoolQ, CB, WiC, WSC, RTE task. 나머지 task들은 우리가 고려한 모든 task를 합친 것보다 훨씬 더 많은 연산 자원을 필요로 하므로 제외하였다. 이 task들은 **영어 전용(English-only)**이며, 주로 영어 전용 모델에 초점을 맞춘 이전 연구들과의 비교를 용이하게 하기 위해 포함되었다. 또한, 이 task들에 대한 성능은 zero-shot 및 one-shot prompt 기반 설정에서는 아직 널리 보고되지 않았다는 점에 주목한다. T0 (Sanh et al., 2022)가 첫 번째 예외이지만, 이 모델은 instruction-tuned되었으므로 BLOOM 및 OPT와 같은 모델과 직접 비교하기는 어렵다. 각 task에 대해 우리는 promptsource에서 5개의 prompt를 무작위로 샘플링하고, 해당 prompt 세트에 대해 모든 모델을 평가한다. Evaluation Harness (Gao et al., 2021)의 다른 prompting task와 마찬가지로, 주어진 prompt에 대한 모델의 예측은 prompt와 관련된 지정된 후보 레이블 문자열 세트 중에서 최대 log likelihood를 사용하여 측정된다.
Machine Translation (MT)
우리는 BLOOM을 세 가지 데이터셋(언어 참조 시 ISO-639-1 코드를 사용)으로 평가한다: WMT14 en fr 및 en hi (Bojar et al., 2014), Flores-101 (Goyal et al., 2022), DiaBLa (Bawden et al., 2020). 평가는 BLEU (Papineni et al., 2002)의 sacrebleu (Post, 2018) 구현을 사용하며, WMT 및 DiaBLa에는 기본 토큰화를, Flores에는 spm-flores-101을 사용한다. 우리는 EOS 토큰까지 또는 1-shot의 경우 추가적으로 까지 생성되는 greedy decoding을 사용한다. 최대 생성 길이는 일반적으로 문헌에서 사용되는 기준에 맞춰 데이터셋별로 설정되었다. 구체적으로, WMT14의 경우 64 토큰, Flores-101 및 DiaBla의 경우 512 토큰으로 설정되었다. Task별 실험 설계 세부 사항은 아래와 같다.
Summarization
우리는 WikiLingua (Ladhak et al., 2020) 데이터셋으로 요약(summarization)을 평가한다. WikiLingua는 WikiHow 기사와 단계별 요약 쌍으로 구성된 다국어 요약 데이터셋이다. 쌍들은 여러 언어에 걸쳐 정렬되어 있으며, 원문과 요약의 번역은 국제 번역 팀에 의해 추가로 검토되었다. BLOOM과 비슷한 크기의 모델에서는 one-shot 조건부 자연어 생성(conditional natural language generation)이 일반적으로 보고되지 않았다. PaLM (Chowdhery et al., 2022)이 첫 번째 예외이며, WikiLingua에 대한 점수를 보고하지만, 모델의 영어 요약 능력(-> en)만 조사되었다. 이와 대조적으로, 우리는 BLOOM의 내재된 다국어 능력을 평가하기 위해 원어(source language)에서의 추상적 요약(abstractive summarization)을 평가하기로 결정했다 (예: vi -> vi). 우리는 BigScience 프로젝트의 목표 언어였던 아랍어, 영어, 스페인어, 프랑스어, 힌디어, 인도네시아어, 포르투갈어, 베트남어, 중국어의 9개 언어에 중점을 둔다.
자연어 생성은 평가하기가 매우 어렵고, 다국어 생성은 측정 지표 부족으로 인해 이러한 어려움을 더욱 가중시킨다. Gehrmann et al. (2022b)의 제안에 따라, 우리는 ROUGE-2, ROUGE-L (Lin, 2004), 그리고 Levenshtein distance를 보고한다. ROUGE에 대한 한 가지 중요한 수정 사항은 Flores-101 데이터셋 (Goyal et al., 2022)에서 구축된 SentencePiece tokenizer (Kudo and Richardson, 2018)를 사용하는 것이다. 순진한 접근 방식은 영어 기반 토크나이저를 사용하겠지만, 다국어 토크나이저를 사용하면 다국어 생성의 충실도를 측정하는 능력이 향상된다. 모델의 추론 시간을 최소화하기 위해 우리는 **업데이트된 GEM 벤치마크 (Gehrmann et al., 2022a)의 하위 샘플 (3000개의 균일하게 샘플링된 테스트 예시)**을 사용한다. 저자들은 하위 샘플과 전체 테스트 세트 간의 모델 성능 비교에서 최소한의 차이가 있음을 언급한다. 디코딩 및 생성을 위해 우리는 MT에 대해 위에서 설명한 것과 동일한 절차를 사용한다.
4.1.4 Baseline Models
우리는 적절한 경우 (예: 평가 데이터셋의 언어를 지원하는 환경에서) 다음 baseline 모델들을 사용한다:
- mGPT (Shliazhko et al., 2022): Wikipedia와 Common Crawl에서 수집된 60개 언어로 학습된 GPT-style 모델.
- GPT-Neo (Black et al.), GPT-J-6B (Wang and Komatsuzaki, 2021), GPT-NeoX (Black et al., 2022): The Pile (Gao et al., 2020)로 학습된 GPT-style 모델 계열.
- T0 (Sanh et al., 2022): T5 (Raffel et al., 2020)의 변형으로, P3 (Bach et al., 2022)의 데이터셋으로 multitask prompted finetuning을 거친 모델.
- OPT (Zhang et al., 2022): RoBERTa Liu et al. (2019) 및 The Pile (Gao et al., 2020)의 데이터셋을 포함한 혼합 데이터셋으로 학습된 GPT-style 모델 계열.
- XGLM (Lin et al., 2021): CC100 (Conneau et al., 2020)의 변형으로 학습된 GPT-style 다국어 모델.
- M2M (Fan et al., 2021): 100개 언어 간 번역을 위해 학습된 대규모 다국어 모델.
- AlexaTM (Soltan et al., 2022): Wikipedia와 mC4 (Xue et al., 2021)의 데이터로 masked 및 causal language modeling을 혼합하여 학습된 encoder-decoder 모델.
- mTk-Instruct (Wang et al., 2022b): T5의 변형으로, Super-NaturalInstructions의 데이터셋으로 multitask prompted finetuning을 거친 모델.
- Codex (Chen et al., 2021): GitHub의 코드로 finetuning된 GPT 모델 계열.
- GPT-fr (Simoulin and Crabbé, 2021): 프랑스어 텍스트로 학습된 GPT-style 모델.
4.2 SuperGLUE
Figure 7은 SuperGLUE 벤치마크에서 zero-shot 및 one-shot 성능을 보여준다. 두 설정 모두에서, **entailment task (BoolQ 및 CB)**의 경우, BLOOM, T0, OPT, GPT-J 모델의 성능이 무작위 추측보다 훨씬 높게 나타났다. 다른 task에서는 가장 좋은 prompt가 더 나은 성능을 보였지만, prompt 전반의 평균 성능은 무작위 추측 수준에 머물렀다. 이는 개별 prompt의 성공이 주로 통계적 변동에 기인함을 시사한다. BLOOM의 경우 진단(Ax-b 및 Ax-g) 데이터셋에서 일부 유의미한 신호가 관찰되었다. 예외적으로 T0 모델은 강력한 성능을 보였다. 그러나 이 모델은 zero-shot prompting 설정에서 성능을 향상시키기 위해 multitask 설정으로 fine-tuning되었으므로 (BLOOMZ와 유사, Section 4.7 참조), 여기에 제시된 다른 모델들과 직접적으로 비교하기는 어렵다.
모델이 zero-shot에서 one-shot으로 전환됨에 따라, 모든 prompt와 모델에서 가변성이 감소하고 성능은 약간, 그리고 일관성 없이 증가한다. 특히 BLOOM은 zero-shot에서 one-shot으로 갈 때 유사 모델들보다 성능 증가폭이 더 크다. 이는 BLOOM이 zero-shot 설정에서는 일반적으로 OPT에 뒤처지지만, one-shot 설정에서는 OPT와 같거나 더 나은 성능을 보이기 때문이다. BLOOM이 영어로만 부분적으로 학습되었음에도 이러한 결과가 나타난 것은, 다국어 language model이 더 긴 context를 통해 입력 및 출력 언어에 대한 확신을 더 얻기 때문일 수 있다.
Figure 7: SuperGLUE 벤치마크의 하위 task에 대한 다양한 LLM의 zero-shot 및 one-shot prompt 기반 설정에서의 성능.
우리는 모델 크기별 BLOOM 모델을 비교하는 추가 분석을 수행했다. baseline으로, 유사한 크기의 OPT 모델(350M 파라미터에서 175B 파라미터)의 평균 one-shot 정확도도 측정했다. Figure 8은 모델 규모에 따른 각 task에서 각 prompt의 정확도를 보여준다. OPT와 BLOOM 모델 계열 모두 규모가 커질수록 매우 미미하게 성능이 향상되며, 20억 개 이상의 파라미터를 가진 모델에서만 유의미한 신호를 보였다. 또한, 모든 task에서 두 계열 간에 일관된 차이는 없었다. one-shot 설정에서 BLOOM-176B는 Ax-b, CB, WSC, WiC에서 OPT-175B보다 앞섰으며, 다른 task에서는 동일한 성능을 보였다. 이는 다국어 특성이 zero-shot 설정에서 BLOOM의 영어 전용 task 성능을 제한하지 않음을 시사한다.
Figure 8: 각 SuperGLUE one-shot task에서 BLOOM과 OPT의 스케일링 비교. 각 점은 BLOOM 또는 OPT 모델 계열 내의 한 모델이 5가지 task prompt 중 하나에서 얻은 평균 정확도를 나타낸다. x축의 파라미터 수는 로그 스케일로 표시된다.
4.3 Machine Translation
여기 제시된 결과 외에도, BLOOM의 MT 품질에 대한 더 자세한 분석은 (Bawden and Yvon, 2023)에서 확인할 수 있다.
4.3.1 WMT
WMT 벤치마크에서 BLOOM-176B의 zero-shot 및 1-shot 설정 결과는 Table 6에 제시되어 있다. 가장 좋은 prompt는 더 장황한(verbose) 경향이 있으며, 특히 "version-target" prompt는 일관되게 더 나은 성능을 보였다. 반면 "gpt3-target" 및 "xglm-source+target" prompt는 특히 zero-shot에서 매우 저조한 성능을 나타냈다. 1-shot 설정에서 BLOOM은 적절한 prompt를 사용하면 능숙한 번역 성능을 보이지만, M2M-100과 같은 전용 (supervised) 모델보다는 뒤처진다. (예: 영어 프랑스어의 경우 M2M-100은 43.8 BLEU, 프랑스어 영어의 경우 40.4 BLEU인 반면, BLOOM은 각각 34.2 BLEU와 35.4 BLEU). 특히 zero-shot 설정에서 관찰된 두 가지 주요 문제는 다음과 같다: (i) 과도한 생성(over-generation) (ii) 올바른 언어를 생성하지 못하는 문제 (이는 좋은 번역의 명백한 전제 조건이다). 이 두 가지 측면은 few-shot 예시의 수가 증가함에 따라 크게 개선된다.
| Prompt | en fr | fr en | en hi | hi en |
|---|---|---|---|---|
| Shots | 0 | 1 | 0 | 0 |
| a_good_translation-source+target | 15.38 | 14.15 | 1.90 | 10.19 |
| gpt3-target | 7.90 | 12.73 | 0.26 | 0.66 |
| version-target | 21.96 | 26.79 | 1.96 | 11.48 |
| xglm-source+target | 14.91 | 15.52 | 6.80 | 12.05 |
Table 6: BLOOM-176B의 WMT'14 zero-shot 및 one-shot 결과 (BLEU). 사용된 prompt는 Table 5에 설명되어 있다.
4.3.2 DiaBLA
| 1-shot context | Truncate | en fr | fr en | ||
|---|---|---|---|---|---|
| BLEU | COMET | BLEU | COMET | ||
| Rand. | 5.7 | 0.342 | 12.1 | 0.614 | |
| 37.6 | 0.634 | 41.4 | 0.757 | ||
| Prev. | 6.1 | 0.328 | 12.3 | 0.617 | |
| 38.5 | 0.614 | 41.6 | 0.751 |
Table 7: DiaBLa 1-shot 결과 (BLEU)
"xglm-source+target" prompt를 사용했을 때, 1-shot 예시로 이전 문장 또는 무작위 문장을 사용한 경우의 결과 (출력 truncation 여부 포함). 각 방향별 최고 결과는 굵게 표시되어 있다.
Table 7은 비공식 이중 언어 대화 병렬 데이터셋인 DiaBLa를 사용하여 언어적 context 활용을 테스트한 결과를 보여준다. 1-shot context에서 "xglm-source + target" prompt를 사용하여, 1-shot 예시로 무작위 테스트 세트 예시를 사용하는 것과 이전 대화 발화를 사용하는 것의 효과를 비교한다. 관찰된 과잉 생성(overgeneration) 문제와 과잉 생성과 무관하게 예측의 품질을 평가하기 위해, 우리는 원본 출력과 사용자 정의 truncation 함수를 적용한 후의 결과를 모두 보고한다. 자동 평가 결과는 결정적이지 않으며 점수 간 차이가 거의 없다 (이전 context의 경우 BLEU 점수는 높지만 COMET 점수는 낮다). 이러한 결과에도 불구하고, 모델이 1-shot 예시의 context를 사용하여 번역 선택을 할 수 있다는 예측 자체에서 증거가 나타난다. 예시 및 추가 분석은 (Bawden and Yvon, 2023)을 참조하라.
| Src | en | bn | hi | sw | yo | |
|---|---|---|---|---|---|---|
| en | BLOOM | - | 24.6 | 27.2 | 20.5 | 2.6 |
| M2M | - | 23.0 | 28.1 | 26.9 | 2.2 | |
| bn | BLOOM | 29.9 | - | 16.3 | - | - |
| M2M | 22.9 | - | 21.8 | - | - | |
| hi | BLOOM | 35.1 | 23.8 | - | - | - |
| M2M | 27.9 | 21.8 | - | - | - | |
| sw | BLOOM | 37.4 | - | - | - | 1.3 |
| M2M | 30.4 | - | - | - | 1.3 | |
| yo | BLOOM | 4.1 | - | - | 0.9 | - |
| M2M | 4.2 | - | - | 1.9 | - |
(a) Low-resource languages
| Src | ar | en | es | fr | zh | |
|---|---|---|---|---|---|---|
| ar | BLOOM | - | 40.3 | 23.3 | 33.1 | 17.7 |
| M2M | - | 25.5 | 16.7 | 25.7 | 13.1 | |
| AlexaTM | - | 41.8 | 23.2 | 35.5 | - | |
| en | BLOOM | 28.2 | - | 29.4 | 45.0 | 26.7 |
| M2M | 17.9 | - | 25.6 | 42.0 | 19.3 | |
| AlexaTM | 32.0 | - | 31.0 | 50.7 | - | |
| es | BLOOM | 18.8 | 32.7 | - | 24.8 | 20.9 |
| M2M | 12.1 | 25.1 | - | 29.3 | 14.9 | |
| AlexaTM | 20.8 | 34.6 | - | 33.4 | - | |
| fr | BLOOM | 23.4 | 45.6 | 27.5 | - | 23.2 |
| M2M | 15.4 | 37.2 | 25.6 | - | 17.6 | |
| AlexaTM | 24.7 | 47.1 | 26.3 | - | - | |
| zh | BLOOM | 15.0 | 30.5 | 20.5 | 26.0 | - |
| M2M | 11.55 | 20.9 | 16.9 | 24.3 | - | |
| AlexaTM | - | - | - | - | - |
(c) High-resource language pairs.
| Src | ca | es | fr | gl | it | pt | |
|---|---|---|---|---|---|---|---|
| ca | BLOOM | - | 28.9 | 33.8 | 19.2 | 19.8 | 33.0 |
| M2M | - | 25.2 | 35.1 | 33.4 | 25.5 | 35.2 | |
| es | BLOOM | 31.2 | - | 24.8 | 23.3 | 16.5 | 29.1 |
| M2M | 23.1 | - | 29.3 | 27.5 | 23.9 | 28.1 | |
| fr | BLOOM | 37.2 | 27.5 | - | 24.9 | 24.0 | 38.9 |
| M2M | 28.7 | 25.6 | - | 32.8 | 28.6 | 37.8 | |
| gl | BLOOM | 37.5 | 27.1 | 33.8 | - | 18.3 | 32.2 |
| M2M | 30.1 | 27.6 | 37.1 | - | 26.9 | 34.8 | |
| it | BLOOM | 31.0 | 25.4 | 31.4 | 20.2 | - | 29.2 |
| M2M | 25.2 | 29.2 | 34.4 | 29.2 | - | 31.5 | |
| pt | BLOOM | 39.6 | 28.1 | 40.3 | 27.1 | 20.1 | - |
| M2M | 30.7 | 26.9 | 40.2 | 33.8 | 28.1 | - |
(b) Romance languages
| Src | en | fr | hi | id | vi | |
|---|---|---|---|---|---|---|
| en | BLOOM | - | 45.0 | 27.2 | 39.0 | 28.5 |
| M2M | - | 42.0 | 28.1 | 37.3 | 35.1 | |
| fr | BLOOM | 45.6 | - | 18.5 | 31.4 | 32.8 |
| M2M | 37.2 | - | 22.9 | 29.1 | 30.3 | |
| hi | BLOOM | 35.1 | 27.6 | - | - | - |
| M2M | 27.9 | 25.9 | - | - | - | |
| id | BLOOM | 43.2 | 30.4 | - | - | - |
| M2M | 33.7 | 30.8 | - | - | - | |
| vi | BLOOM | 38.7 | 26.8 | - | - | - |
| M2M | 29.5 | 25.8 | - | - | - |
(d) High mid-resource language pairs.
Table 8: Flores-101 devtest 세트에서의 1-shot MT 결과 (spBLEU)
4.3.3 Flores
1-shot 설정에서 우리는 Flores-101 (Goyal et al., 2022) devtest 세트에서 **"xglm-source+target" prompt (Lin et al., 2021)**를 사용하여 여러 언어 방향을 테스트한다. 1-shot 예시는 dev 세트에서 무작위로 추출된다. 우리는 결과를 저자원 언어 쌍 (Table 8a), 로망스어족 내 관련 언어 간 (Table 8b), 고자원 언어 쌍 (Table 8c), 그리고 **고-중자원 언어 쌍 (Table 8d)**으로 나누어 제시한다.
언어는 ROOTS에서의 표현 정도에 따라 저자원, 중자원, 고자원으로 분류된다. 우리는 6억 1,500만 개의 파라미터를 가진 M2M-100 모델 (Fan et al., 2021)의 supervised 결과와 비교하며, 이 모델의 점수는 Goyal et al. (2022)에 의해 계산되었다. 또한, **고자원 언어 쌍에 대한 32-shot AlexaTM 결과 (Soltan et al., 2022)**와도 비교한다.
고자원 언어 간 번역과 고-중자원 언어 간 번역 모두에서 전반적으로 좋은 결과가 나타났으며, 이는 BLOOM의 우수한 다국어 능력을 시사한다. 이는 서로 다른 문자 체계(여기서는 라틴어(또는 확장 라틴어), 중국어, 아랍어, 데바나가리 문자) 간에도 해당된다. supervised M2M-100 모델과 비교했을 때, 이 1-shot 설정에서 결과는 종종 비슷하거나 때로는 더 좋았으며, AlexaTM의 결과(비록 AlexaTM은 32-shot 결과임에도 불구하고)와도 많은 경우에 비교할 만한 수준이었다.
많은 저자원 언어에 대한 번역 품질은 좋았으며, supervised M2M 모델과 비슷하거나 심지어 약간 더 나은 수준이었다. 그러나 스와힐리어(Swahili)와 요루바어(Yoruba) 간의 번역 결과는 매우 좋지 않았다. 이 언어들은 BLOOM의 학습 데이터에 존재하지만 **과소 대표(각각 50k 토큰 미만)**되어 있다. 이는 로망스어(따라서 관련 언어) 간의 번역 결과와 대조적이다. 로망스어 간 번역에서는 전반적으로 좋은 결과가 나타났으며, 이는 학습 데이터에 포함되지 않았지만 다른 로망스어, 특히 포르투갈어(por)와 많은 유사점을 공유하는 갈리시아어(glg)로부터의 번역에서도 마찬가지였다. 그러나 이 결과는 학습 데이터에 포함된 과소 대표 저자원 언어에 대한 BLOOM의 품질에 의문을 제기한다.
4.4 Summarization
Figure 9는 BLOOM 모델과 비교를 위한 OPT-175B의 one-shot 결과를 보여준다. 각 점은 **프롬프트당 점수(per-prompt score)**를 나타낸다. 주요 시사점은 BLOOM이 OPT보다 다국어 요약에서 더 높은 성능을 달성하며, 모델의 파라미터 수가 증가함에 따라 성능도 향상된다는 것이다. 우리는 이것이 BLOOM의 다국어 중심 학습 때문이라고 추정한다.
Section 4.1에서 논의했듯이, 우리는 이전 연구와의 비교 가능성과 생성 평가를 위한 대안의 부족 때문에 ROUGE-2 점수를 보고한다. 그러나 우리는 많은 경우에 ROUGE-2 점수가 시스템이 생성한 요약의 품질을 과소평가한다는 것을 정성적으로 관찰한다.
4.5 Code Generation
BLOOM의 사전학습 코퍼스인 ROOTS는 약 11%의 코드로 구성되어 있다. Table 9에서는 HumanEval (Chen et al., 2021) 벤치마크에서 BLOOM의 성능 결과를 보고한다. 우리는 사전학습된 BLOOM 모델의 성능이 **유사한 크기의 GPT 모델(Pile 데이터셋으로 학습된)**과 비슷하다는 것을 발견했다 (Gao et al., 2020). Pile 데이터셋은 영어 데이터와 약 **13%의 코드(GitHub + StackExchange)**를 포함하고 있으며, 이는 ROOTS의 코드 데이터 소스 및 비율과 유사하다. 코드만으로 fine-tuning된 Codex 모델은 다른 모델들보다 현저히 강력한 성능을 보인다. Multitask fine-tuned BLOOMZ 모델은 BLOOM 모델에 비해 크게 개선되지 않았다. 우리는 이러한 현상이 fine-tuning 데이터셋인 xP3에 순수한 코드 완성(pure code completion) 작업이 충분히 포함되어 있지 않기 때문이라고 추정한다. 오히려 xP3는 주어진 Python 코드 스니펫의 시간 복잡도를 추정하는 것과 같은 코드 관련 task를 포함하고 있다. 추가 분석은 Muennighoff et al. (2022b)에 제시되어 있다.
Figure 9: WikiLingua One-shot 결과. 각 플롯은 프롬프트별 ROUGE-2 F-measure 점수를 나타내는 다른 언어를 나타낸다.
4.6 HELM benchmark
완전성을 위해, 우리는 **HELM 벤치마크 (Liang et al., 2022)**의 평가 결과를 여기에 재현한다. 이 벤치마크는 영어 전용 task에서 다양한 language model에 대한 5-shot 평가를 수행했다.
다국어 학습에도 불구하고, BLOOM은 GPT3-davinci v1 및 J1-Grande v1과 같은 이전 세대의 영어 전용 모델과 정확도 면에서 거의 동등하지만, InstructGPT davinci v2, Turing NLG v2, Anthropic-LM v4-s3, OPT와 같은 최신 단일 언어 모델보다는 뒤처진다.
이 크기의 다른 대형 language model과 마찬가지로, calibration은 좋지 않지만 상당히 견고하다.
마지막으로, 이 벤치마크에서 BLOOM은 fairness 측면에서 가장 우수한 모델 중 하나이며, 영어에서 평균보다 약간 더 toxic하고, bias는 평균 수준이다.
4.7 Multitask Finetuning
최근의 멀티태스크 fine-tuning 연구 (Sanh et al., 2022; Wei et al., 2021; Wang et al., 2022a)를 기반으로, 우리는 다국어 멀티태스크 fine-tuning을 사용하여 BLOOM 모델의 zero-shot 성능을 향상시키는 방안을 탐구한다. 우리는 Section 3.1.4에 설명된 xP3 코퍼스를 활용하여 BLOOM 모델에 대한 다국어 멀티태스크 fine-tuning을 수행하였다. 그 결과, zero-shot 성능이 크게 향상됨을 확인하였다. Figure 11에서는 사전학습된 BLOOM 및 XGLM 모델의 zero-shot 성능과 멀티태스크 fine-tuned된 BLOOMZ, T0, mTk-Instruct (Wang et al., 2022b)의 성능을 비교한다. BLOOM과 XGLM의 성능은 NLI (XNLI)의 경우 33%의 무작위 기준선과, coreference resolution (XWinograd)의 경우 50%의 무작위 기준선에 가깝다.
BigScience Workshop
| PASS@k | |||
|---|---|---|---|
| GPT-Neo 1.3 B | 4.79% | 7.47% | 16.30% |
| GPT-Neo 2.7 B | 6.41% | 11.27% | 21.37% |
| GPT-J 6B | 11.62% | 15.74% | 27.74% |
| GPT-NeoX 20B | 15.4% | 25.6% | 41.2% |
| Codex-300M | 13.17% | 20.37% | 36.27% |
| Codex-679M | 16.22% | 25.7% | 40.95% |
| Codex-2.5B | 21.36% | 35.42% | 59.5% |
| Codex-12B | 28.81% | 46.81% | 72.31% |
| BLOOM-560M | 0.82% | 3.02% | 5.91% |
| BLOOM-1.1B | 2.48% | 5.93% | 9.62% |
| BLOOM-1.7B | 4.03% | 7.45% | 12.75% |
| BLOOM-3B | 6.48% | 11.35% | 20.43% |
| BLOOM-7.1B | 7.73% | 17.38% | 29.47% |
| BLOOM | 15.52% | 32.20% | 55.45% |
| BLOOMZ-560M | 2.18 % | 4.11% | 9.00% |
| BLOOMZ-1.1B | 2.63% | 6.22% | 11.68% |
| BLOOMZ-1.7B | 4.38% | 8.73% | 16.09% |
| BLOOMZ-3B | 6.29% | 11.94% | 19.06% |
| BLOOMZ-7.1B | 8.06% | 15.03% | 27.49% |
| BLOOMZ | 12.06% | 26.53% | 48.44% |
Table 9: HumanEval (Chen et al., 2021) 성능. 비-BLOOM 모델 결과는 이전 연구 (Chen et al., 2021; Fried et al., 2022)에서 가져왔다. Codex 모델은 코드에 대해 fine-tuning된 language model이며, GPT 모델 (Black et al.; Wang and Komatsuzaki, 2021; Black et al., 2022)은 BLOOM과 마찬가지로 코드와 텍스트를 혼합하여 학습되었다.
sentence completion (XCOPA 및 XStoryCloze) task에서 zero-shot 성능이 크게 향상된다. T0 또한 multitask fine-tuning되었음에도 불구하고, monolingual English 모델이기 때문에 제시된 다국어 데이터셋에서는 성능이 좋지 않다. 그러나 Muennighoff et al. (2022b)에서 제공된 추가 결과에 따르면, xP3로 fine-tuning된 모델은 크기와 아키텍처를 통제했을 때 English 데이터셋에서도 T0보다 우수한 성능을 보인다. 이는 T0의 fine-tuning 데이터셋(P3)이 xP3보다 덜 다양한 데이터셋과 prompt를 포함하고 있기 때문일 가능성이 높다. Multitask fine-tuning 성능은 데이터셋과 prompt의 양과 상관관계가 있는 것으로 나타났다 (Chung et al., 2022).
4.8 Embeddings
Section 3.5에서는 SGPT-BLOOM 텍스트 임베딩 모델을 생성하기 위한 contrastive fine-tuning 절차를 설명했다. Table 10에서는 **Massive Text Embedding Benchmark (MTEB, Muennighoff et al., 2022a)**에서 가져온 두 개의 다국어 데이터셋에 대한 벤치마킹 결과를 보고한다.
Figure 10: 5-shot HELM 벤치마크에서 다양한 언어 모델들의 결과. Liang et al. (2022)에서 발췌.
우리는 SGPT-BLOOM-7.1B-msmarco가 여러 분류(classification) 및 의미론적 텍스트 유사도(semantic textual similarity) split에서 state-of-the-art 성능을 제공한다는 것을 발견했다. 그러나 이 모델은 71억 개의 파라미터를 가지고 있어, 그림에 표시된 다국어 MiniLM 및 MPNet과 같은 모델보다 한 자릿수 이상 크다. SGPT-BLOOM-1.7B-nli는 파라미터 수가 적고 fine-tuning 기간이 짧았기 때문에(NLI는 MS-MARCO보다 훨씬 작은 데이터셋임) 성능이 현저히 낮았다. BLOOM 모델 외에, ST5-XL은 12억 개의 파라미터를 가진 가장 큰 모델이다. 그러나 영어 전용 모델이기 때문에 비영어권 언어에서의 성능은 좋지 않다.
Figure 11: BLOOMZ zero-shot task generalization. 각 데이터셋에 대해 튜닝되지 않은 5개의 prompt를 평가하여 플로팅하였다. T0는 단일 언어(영어) 모델인 반면, 다른 모델들은 다국어 모델이다. T0의 성능은 일부 비영어 텍스트를 토큰화하지 못하는 능력 때문에 저하될 수 있다.
표시된 언어들은 BLOOM 사전학습 코퍼스의 일부이다. 더 많은 언어와 데이터셋에서의 성능은 MTEB 리더보드에서 확인할 수 있다.
4.9 Multilingual Probing
Probing은 LLM의 내부 작동 방식을 분석하고 해석하기 위한 중요한 평가 패러다임으로 부상했다 (Ettinger et al., 2016; Adi et al., 2017; Belinkov et al., 2017; Hupkes et al.,
| ST5-XL | LASER2 | MiniLM-L12 | MPNet | LaBSE | SGPT-BLOOM-1.7B | SGPT-BLOOM-7.1B | |
|---|---|---|---|---|---|---|---|
| Embedding classification performance on MASSIVE (FitzGerald et al., 2022) scored using accuracy | |||||||
| Arabic (ar) | 4.18 | 37.16 | 51.43 | 45.14 | 50.86 | 54.59 | 59.25 |
| Bengali (bn) | 2.60 | 42.51 | 48.79 | 35.34 | 58.22 | 57.76 | 61.59 |
| English (en) | 72.09 | 47.91 | 69.32 | 66.84 | 61.46 | 66.69 | 69.67 |
| Spanish (es) | 57.97 | 45.44 | 64.43 | 59.66 | 58.32 | 61.77 | 66.35 |
| French (fr) | 60.99 | 46.13 | 64.82 | 60.25 | 60.47 | 64.58 | 66.95 |
| Hindi (hi) | 3.02 | 40.20 | 62.77 | 58.37 | 59.40 | 60.74 | 63.54 |
| Indonesian (id) | 41.53 | 45.81 | 65.43 | 59.85 | 61.12 | 60.07 | 64.06 |
| Kannada (kn) | 2.79 | 4.32 | 50.63 | 40.98 | 56.24 | 48.56 | 53.54 |
| Malayalam (ml) | 2.98 | 41.33 | 54.34 | 42.41 | 57.91 | 55.10 | 58.27 |
| Portuguese (pt) | 57.95 | 48.55 | 64.89 | 61.27 | 60.16 | 62.52 | 66.69 |
| Swahili (sw) | 30.60 | 31.89 | 31.95 | 29.57 | 51.62 | 43.90 | 49.81 |
| Tamil (ta) | 1.79 | 29.63 | 50.17 | 36.77 | 55.04 | 52.66 | 56.40 |
| Telugu (te) | 2.26 | 36.03 | 52.82 | 40.72 | 58.32 | 49.32 | 54.71 |
| Urdu (ur) | 2.70 | 26.11 | 56.37 | 52.80 | 56.70 | 51.00 | 56.75 |
| Vietnamese (vi) | 21.47 | 44.33 | 59.68 | 56.61 | 56.67 | 59.85 | 64.53 |
| Semantic textual similarity on STS22 (Madabushi et al., 2022) scored using spearman correlation of cosine similarities | |||||||
| Arabic (ar) | 29.60 | 42.57 | 52.19 | 46.20 | 57.67 | 48.64 | 58.67 |
| English (en) | 64.32 | 39.76 | 63.06 | 61.72 | 60.97 | 60.97 | 61.45 |
| Spanish (es) | 58.16 | 54.92 | 59.91 | 56.56 | 63.18 | 61.81 | 65.41 |
| French (fr) | 77.49 | 58.61 | 74.30 | 70.55 | 77.95 | 73.18 | 80.38 |
| Chinese (zh) | 33.55 | 49.41 | 61.75 | 58.75 | 63.02 | 58.53 | 66.78 |
Table 10: MTEB (Muennighoff et al., 2022b)의 분류 및 STS 데이터셋에 대한 sentence embedding으로 fine-tuning된 BLOOM 모델의 성능.
2018; Tenney et al., 2018; Belinkov and Glass, 2019; Teehan et al., 2022). 하지만 이러한 방식에도 몇 가지 단점이 존재한다 (Belinkov, 2022). LLM의 embedding을 분석하는 것은 모델의 학습 목표 손실(training objective loss)이나 다운스트림 task 평가와는 별개로, 모델의 일반화 능력(generalizing abilities)을 밝히는 데 도움이 될 수 있다. 이는 특히 annotated dataset이나 벤치마크가 부족한 언어를 연구할 때 매우 유용하다.
4.9.1 Method
BLOOM의 다국어 일반화 능력을 해석하기 위해, 우리는 104개 언어와 80개 형태통사론적 feature에 대한 체계적인 probing 분석을 위해 "Universal Probing" 프레임워크를 활용한다 (Serikov et al., 2022). 이 프레임워크는 SentEval 스타일 (Conneau et al., 2018)의 probing 설정과 **Universal Dependencies (UD; Nivre et al., 2016)**에서 사용 가능한 각 언어에 대한 데이터셋을 제공한다. 우리는 BLOOM의 사전학습 코퍼스 (Section 3.1)와 UD treebank에 존재하는 7개 어족의 다음 17개 언어를 고려한다: 아랍어 (AfroAsiatic), 밤바라어 (Mande), 바스크어 (language isolate), 벵골어, 카탈루냐어, 영어, 프랑스어, 힌디어, 마라티어, 포르투갈어, 스페인어, 우르두어 (Indo-European), 중국어 (Sino-Tibetan), 인도네시아어 (Austronesian), 타밀어 (Dravidian), 월로프어, 요루바어 (Niger-Congo). 우리의 설정은 총 38개의 형태통사론적 feature를 다루며, 이는 언어별 언어학적 정보를 나타낸다. 데이터셋 샘플은 Table 11에 제시되어 있다.
probing 절차는 다음과 같이 수행된다. 첫째, 우리는 **1.7B 파라미터 BLOOM 변형 모델 ("BLOOM 1B7")과 BLOOM (176B 파라미터)**의 각 layer에서 입력 문장의 <s>-pooled representation을 계산한다.
| Language | Label | Sentence |
|---|---|---|
| English | Sing | The scheme makes money through sponsorship and advertising . |
| Plur | Still, there are questions left unanswered. | |
| Spanish | Sing | Eligio no ir tras un tercer período en el siguiente ciclo de elecciones . |
| Plur | Todavía quedan preguntas sin responder . |
Table 11: 영어와 스페인어의 Number task 예시. 주어의 수(number) 지표는 굵게 표시되어 있다. 이 task는 문장이 단수 주어(위 문장)를 포함하는지, 복수 주어(아래 문장)를 포함하는지 예측하는 것이다.
둘째, 우리는 이진 로지스틱 회귀 분류기를 훈련하여 문장 내 형태통사론적 feature의 존재 여부를 예측한다. 로지스틱 회귀는 비선형 probing 분류기 (Hewitt and Liang, 2019)에 비해 더 높은 선택성(selectivity) 때문에 선택되었다. 우리는 여기에서 원래의 UD 훈련, 검증, 테스트 분할을 사용한다. 셋째, 대부분의 probing task에서 대상 클래스 불균형이 존재하므로, probing 성능은 weighted score로 평가된다. 결과는 서로 다른 random seed를 사용하여 세 번 실행한 후 평균을 낸다.
Baselines
우리는 probing 성능을 random guessing과 다음 TF-IDF feature (Salton and Yang, 1973)로 훈련된 로지스틱 회귀 분류기와 비교한다: word unigram, character N-gram, BPE token N-gram, SentencePiece (SP; Kudo and Richardson, 2018) token N-gram. 우리는 N-gram 범위를 로 사용하고, TF-IDF 어휘를 상위 25만 개 feature로 제한한다.
Correlation
우리는 probing 성능과 언어학적, 데이터셋, 모델 구성 기준 간의 상관관계를 분석하기 위해 통계 테스트를 실행한다:
- Language script: 결과는 언어 스크립트(Latin 및 기타(Devanagari, Tamil, Arabic))에 따라 두 그룹으로 나뉜다. 여기서는 비모수 검정인 Mann-Whitney U (Mann and Whitney, 1947)를 사용한다.
- Language family: 결과는 어족에 따라 7개 그룹으로 나뉜다. 그룹 간의 분산을 분석하기 위해 ANOVA를 적용한다.
- Probing 및 pretraining 데이터셋 크기: probing 성능과 이러한 데이터 구성 기준 간의 상관관계를 계산하기 위해 Pearson 상관 계수 테스트 (Pearson, 1895)를 실행한다.
- 모델 크기의 영향: 결과는 BLOOM 버전에 따라 두 그룹으로 나뉜다. 여기서는 Mann-Whitney U 테스트를 사용하여 파라미터 수와 probing 결과 간에 상관관계가 있는지 확인한다.
| BLOOM-1B7 | BLOOM | Random | TF-IDF (Char) | TF-IDF (Word) | TF-IDF (BPE) | TF-IDF (SP) | |
|---|---|---|---|---|---|---|---|
| Arabic | |||||||
| Bambara | |||||||
| Basque | |||||||
| Bengali | |||||||
| Catalan | |||||||
| Chinese | |||||||
| English | |||||||
| French | |||||||
| Hindi | |||||||
| Indonesian | |||||||
| Marathi | |||||||
| Portugese | |||||||
| Spanish | |||||||
| Tamil | |||||||
| Urdu | |||||||
| Wolof | |||||||
| Yoruba |
Table 12: BLOOM 기반 분류기 및 count-based baseline의 probing 성능 (은 layer별로 평균). 결과는 probing task 및 각 언어 내 세 번의 실험 실행에 걸쳐 평균화되었다. 표준 편차는 언어 task에 따른 결과로 결정된다.
Figure 12: 언어 및 task 카테고리별 probing 분류기 결과. 흰색 사각형은 해당 형태통사론적 카테고리가 해당 언어에 존재하지 않음을 나타낸다.
4.9.2 Results
Probing
Table 12는 각 언어 내의 probing task 및 실험 실행(experiment runs)에 대해 평균화된 probing 실험 결과를 보여준다. 전반적인 패턴은 BLOOM1B7이 BLOOM과 동등하거나 더 나은 성능을 보이며, 두 LLM 모두 count-based baseline보다 우수하다는 것이다. 특히, LLM은 아랍어, 바스크어, 그리고 인도유럽어족 언어(예: 카탈루냐어, 프랑스어, 힌디어, 포르투갈어, 스페인어, 우르두어)에서 더 견고한 성능을 달성하는 반면, 벵골어, 월로프어, 요루바어는 가장 낮은 점수를 받았다. 우리는 이러한 행동을 전이 능력(transfer abilities) 때문이라고 본다: BLOOM은 상당량의 데이터를 구성하는 밀접하게 관련된 언어에 대해 언어적 속성을 더 잘 추론한다. 예를 들어, 로망스어족 언어의 성능은 영어보다 좋으며, 인도어족 언어의 결과는 고자원 언어의 결과와 유사하다.
| Criterion | Model | Test | p-value |
|---|---|---|---|
| BLOOM | 0.72 | ||
| Language script | BLOOM-1B7 | Mann-Whitney U | 0.13 |
| BLOOM | <0.01 | ||
| Language family | BLOOM-1B7 | ANOVA | <0.01 |
| BLOOM | 0.63 | ||
| Probing dataset size | BLOOM-1B7 | Pearson | 0.02 |
| BLOOM | 0.46 | ||
| Pretraining dataset size | BLOOM-1B7 | Pearson | <0.01 |
| Difference between versions | BLOOM & BLOOM-1B7 | Mann-Whitney U | <0.01 |
Table 13: Probing 성능과 언어적, 데이터셋, 모델 구성 기준 간의 통계 테스트 및 상관 분석 결과.
Figure 12는 최소 5개 언어에서 표현된 형태통사론적(morphosyntactic) feature에 대한 언어별 probing 성능 결과를 보여준다. 두 LLM의 probing 성능은 크기 차이에도 불구하고 유사하다. 우리는 LLM이 언어에 관계없이 Mood와 Person을 잘 추론한다는 것을 발견했다. Number, NumType (수사 유형), Voice는 대부분의 언어에서 중간 정도로 추론된다. 모델은 일반적으로 다른 범주에서는 더 낮은 품질을 보여주며, 이는 그러한 형태론적 정보를 인코딩하지 않음을 나타낸다. 이러한 성능 차이의 가능한 설명은 이러한 범주의 가능한 값들의 다양성일 수 있다. 예를 들어, Mood와 Person은 제시된 언어들 전반에 걸쳐 유사한 값을 공유하는 반면, Case 값의 집합은 언어에 따라 크게 달라진다.
상관관계 (Correlation)
상관 분석 결과는 probing 성능에 대한 결론을 뒷받침하고 기여 요인을 밝혀낸다 (Table 13 참조). 두 모델 모두 다른 언어 스크립트를 가진 언어에서 유사한 결과를 보여준다. BLOOM-1B7의 결과는 언어군(language family), probing dataset 크기, pretraining dataset 크기와 높은 상관관계를 보인다. Mann-Whitney U test 결과에 따르면, **BLOOM-1B7은 BLOOM보다 유의미하게 더 나은 결과()**를 보여준다. 그러나 BLOOM은 pretraining 동안 본 데이터의 양에도 불구하고 다른 언어에서 더 안정적인 성능을 보여준다. 이는 더 많은 파라미터를 가진 모델의 더 나은 일반화 능력을 나타낼 수 있다.
논의 (Discussion)
다음 질문들은 추가 연구를 위해 남아있다는 점에 유의해야 한다:
- 일반화 능력 (Generalizing abilities). BLOOM-1B7은 Table 12의 언어에 대한 형태통사론적 feature 분류의 평균 성능에서 선두를 달리고 있다. BLOOM의 결과는 더 낮으며, 이는 앞서 언급된 언어들에 대한 문법적 일반화가 더 나쁘다는 것으로 해석될 수 있다. 그러나 BLOOM-1B7의 probing 상관관계 결과는 pretraining dataset 크기와 같은 요인들과 더 두드러지게 나타나, 더 큰 버전보다 저자원 언어에 대한 일반화 능력이 잠재적으로 낮을 수 있다는 것을 시사한다.
- 다국어 능력 (Multilingual abilities). 별도의 연구 관심사는 모델의 pretraining corpus에 명시적으로 포함되지 않은 언어를 고려하는 것을 의미한다. probing을 위한 언어 세트를 확장하면 유형론적 해석과 더 넓은 범위에서 가장 학습하기 쉽고 어려운 언어적 feature에 대한 심층 분석이 가능해질 것이다.
- 저자원 언어 평가 (Under-resourced language evaluation). pretraining corpus에 더 적은 비율로 포함된 인도어족 및 니제르-콩고어족의 저자원 언어는 향후 probing을 위한 별도의 주제를 나타낸다. 우리는 또한 고자원 언어와 저자원 언어의 결과를 조사하여 이 두 그룹에서 가능한 언어학적 통찰력을 밝혀낼 계획이다.
- 다른 layer 및 학습 역학 (Different layers and training dynamics). 분석은 모든 layer의 평균 표현과 학습 종료 시점에 초점을 맞추었다. 다른 layer를 분석하면 처리 과정에서 형태통사론적 표현이 어떻게 구축되는지를 밝힐 수 있다. 유사하게, pre-training 과정에서 속성이 어떻게 습득되는지 조사하는 것 (Choshen et al., 2022; Zhang et al., 2021; Voloshina et al., 2022)은 연구를 위한 실행 가능한 방향이다.
4.10 Bias
BLOOM이 학습한 편향에 대한 예비 연구로서, 우리는 다국어 CrowS-Pairs 데이터셋에 대한 평가를 제시한다. 이 데이터셋은 Nangia et al. (2020)이 개발한 CrowS-Pairs 데이터셋의 수정 버전과 Névéol et al. (2022)이 도입한 프랑스어 버전의 CrowS-Pairs를 결합한 것이다. 이 평가의 한 가지 과제는 원래 masked language model을 위해 고안된 데이터셋을 BLOOM과 같은 autoregressive language model에 맞게 조정하는 것이었다. CrowS-Pairs는 고정관념적인 문장과 비고정관념적인 문장을 비교하기 위해 최소 쌍(minimal pairs)을 사용한다 (예: "Women can't drive."는 성별 고정관념이지만 "Men can't drive"는 그렇지 않다). 두 문장은 고정관념의 대상이 되는 사회적 범주에서만 차이가 나며, 그 사회적 범주는 고정관념적인 문장에는 존재하지만 비고정관념적인 문장에는 존재하지 않는다. 이 평가는 모델이 고정관념적인 문장을 체계적으로 선호하는지 여부를 평가하는 것을 목표로 한다. 원래의 "metric score"는 쌍을 이루는 문장들의 pseudo-loglikelihood를 비교하여 어떤 문장이 masked language model로부터 더 높은 점수를 받았는지 결정했다. Prompt는 모델이 묘사된 상황의 "개연성"과 "현실성"을 바탕으로 두 문장 중 하나를 선택하도록 요구하도록 설계되었다.
Figure 13은 BLOOM의 전반적인 prompt 정확도가 .50에 가까웠음을 보여주는데, 이는 전반적인 편향의 부재를 시사한다. 영어와 프랑스어 점수가 매우 유사하여, 두 언어에서 모델의 전반적인 동작이 비슷함을 알 수 있다. 또한, 단일 언어 autoregressive model인 GPT-Neo (Black et al.)와 GPT-FR (Simoulin and Crabbé, 2021)에 대한 결과도 각각 영어와 프랑스어에 대해 제시한다.
Table 14는 CrowS-Pairs 데이터셋의 편향 유형별 결과를 보여준다. 결과는 범주별로 상당히 균일하며, 이는 masked language model에 대한 이전 연구들과 대조된다. 이전 연구들은 모델이 특정 범주에서 편향에 취약하며, 이는 테스트된 모델마다 달랐음을 시사했다. 그럼에도 불구하고, 표의 별표로 표시된 바와 같이, 두 언어 모두에서 전반적으로, 그리고 여러 편향 범주에서 정확도가 50과 유의미하게 다르다 (T-test, ).
Figure 13: 영어와 프랑스어에 대한 CrowS-Pairs의 prompt별 BLOOM의 전반적인 정확도. 가장 작은 두 BLOOM 모델과 유사한 크기의 단일 언어 GPT 모델에 대한 결과도 함께 제시되어 있다.
| Bias type | support | English | French |
|---|---|---|---|
| ethnicity color | 460 | 50.05 | 50.48* |
| gender | 321 | 51.17* | 51.24* |
| socioeconomic status | 196 | 51.05* | 52.22* |
| nationality | 253 | 49.25* | 48.49* |
| religion | 115 | 53.82* | 53.01* |
| age | 90 | 49.35 | 50.13 |
| sexual orientation | 91 | 50.00 | 49.9 |
| physical appearance | 72 | 48.20 | 49.67 |
| disability | 66 | 48.49* | 49.16* |
| other | 13 | 50.18 | 42.1* |
| All | 1,677 | 49.78* | 50.61* |
Table 14: 영어와 프랑스어에 대한 8회 실행 평균 CrowS-Pairs 편향 범주별 BLOOM 정확도 결과. 단일 표본 T-test ( )의 유의미성은 *로 표시된다.
한계점
Blodgett et al. (2021)은 원본 CrowS-Pairs 코퍼스의 유효성 문제를 논의한다. 여기서 사용된 CrowS-Pairs 버전은 Blodgett et al. (2021)이 지적한 일부 문제를 해결하고, 프랑스어 화자로부터 수집된 고정관념을 기반으로 200개의 추가 문장 쌍을 구성하여 원본과 차이가 있다. 영어와 프랑스어 masked language model의 편향에 대한 최근 평가에서, 수정된 데이터셋에서 얻은 결과는 원본 데이터셋에서 얻은 결과와 유의미하게 다르지 않았다 (Névéol et al., 2022).
그러나, 원래의 유효성 검사는 여기에 자연스럽게 적용되지 않으며, 다른 CrowS-Pairs 결과와의 비교는 더 어렵다. 편향에 대한 더 강력한 평가를 위해서는 CrowS-Pairs로 얻은 결과를 다른 편향 측정치와 비교하고, 모델의 모든 언어에 대해 평가해야 한다. 하지만 Talat et al. (2022)이 지적했듯이, 다국어 편향 평가를 위한 자료(코퍼스, 측정치)는 매우 부족하다.
우리의 조사는 모델에 편향이 제한적으로 존재함을 시사하지만, 가능한 모든 사용 시나리오를 포괄할 수는 없다. 모델이 더 큰 영향을 미 미칠 수 있는 시나리오 중 하나는 언어적 다양성과 언어 변이에 관한 것이다. BLOOM의 학습 자원은 신중하게 선별되었기 때문에, 다른 모델보다 일부 언어 변이를 더 많이 포착할 수도 있다. 이는 또한 학습된 모델이 다양한 변이를 공정하게 표현하는 능력에도 영향을 미친다. 이러한 차이는 일부 언어 변이가 다른 변이보다 전파되고 정당화되는 데 도움이 될 수 있다. 모델의 편향에 대한 우리의 평가는 다국어 CrowS-Pairs가 다루는 상황, 언어 및 언어 변이에 국한된다. 따라서 우리는 CrowS-Pairs를 사용한 우리의 발견과 더 넓은 모델 사용 간에 차이가 있을 것으로 예상한다 (이러한 차이에 대한 더 자세한 탐색은 Raji et al., 2021 참조).
5. Conclusion
본 연구에서는 1,760억 개의 파라미터를 가진 오픈 액세스 다국어 language model인 BLOOM을 소개한다. BLOOM은 수백 명의 연구자들이 참여한 BigScience 협력을 통해 개발되었으며, 프랑스 정부가 지원하는 Jean Zay 슈퍼컴퓨터에서 3.5개월 동안 학습되었다. 본 논문에서는 BLOOM의 개발 과정을 상세히 기록하였다. 이는 학습 데이터셋인 ROOTS의 생성부터 아키텍처 및 tokenizer 설계에 이르기까지의 전 과정을 포함한다. 또한, BLOOM과 다른 대규모 language model들의 평가 결과를 논의하며, multitask fine-tuning 이후 성능이 향상되는 경쟁력 있는 결과를 확인하였다.
우리는 강력한 다국어 language model의 공개가 대규모 language model 분야에서 새로운 응용 분야와 연구 방향을 개척하기를 기대한다. 나아가, 우리의 개발 경험을 문서화하는 것이 머신러닝 연구 커뮤니티가 BigScience와 유사한 새로운 대규모 협력 프로젝트를 조직하는 데 도움이 되기를 바란다. 이러한 형태의 조직은 개별 연구 그룹이 달성하기 불가능한 결과를 가능하게 할 뿐만 아니라, 다양한 배경을 가진 더 많은 사람들이 아이디어를 공유하고 해당 분야의 주요 발전에 참여할 수 있도록 할 것이다.