LLM) BloombergGPT 논문 읽기

2023. 11. 2. 23:15관심있는 주제/LLM

LLM 모델 중에서 파인 튜닝을 이용해 개발한 BloombergGPT에 대해서 알아보고자 합니다.

해당 논문을 통해, 어떻게 데이터 셋을 구성하고, 훈련하고 평가하는 지를 알아보고자 합니다.

개요

NLP(Natural Language Processing)의 금융 기술 분야에서의 활용은 다양하고 복잡하며, 감정 분석, 명명된 엔터티 인식부터 질문 응답까지 다양한 응용 분야에 걸쳐 있습니다. 

그러나 금융 분야를 위한 특화된 대형 언어 모델 (LLM)은 학문 문헌에서 보고된 바가 없습니다. 이 연구에서는 금융 데이터 범위에서 훈련된 500억 개 파라미터 언어 모델인 BloombergGPT를 제시합니다.

저자는 Bloomberg의 다양한 데이터 소스를 기반으로 3630억 토큰 데이터셋을 구축했으며, 이는 아마도 가장 큰 도메인 특화 데이터셋일 것으로 보이며, 3450억 토큰의 일반 목적 데이터셋으로 보완되었습니다.

BloombergGPT를 표준 LLM 벤치마크, 공개 금융 벤치마크 및 의도한 사용 사례를 가장 정확하게 반영하는 일련의 내부 벤치마크에서 검증합니다.

혼합 데이터셋 훈련은 일반 LLM 벤치마크에서의 성능을 희생하지 않으면서 금융 작업에서 기존 모델을 큰 마진으로 능가하는 모델을 만들어냅니다. 더불어 우리의 모델링 선택, 훈련 과정 및 평가 방법론을 설명합니다. BloombergGPT 훈련 경험을 상세히 설명하는 훈련 기록 (Appendix C)을 공개합니다.

 

Introduction

 

눈에 띄는 예로는 few-shot prompting을 통한 작업 수행 능력이 있습니다. 여기서 모델은 몇 가지 예제만으로 작업을 학습할 수 있습니다. 이 능력은 언어 모델의 크기를 증가시키면서 잘 발전합니다. 대체로, few-shot prompting은 모델이 지원하는 작업 범위를 크게 확장하고 새로운 언어 작업에 대한 자동화를 찾는 사용자들의 진입 장벽을 낮춥니다.

최근에는 도메인 특화된 데이터만을 사용하여 훈련된 모델들이, 비록 훨씬 작지만, 그 분야 내의 작업에서 일반 목적 LLMs를 뛰어넘는 결과를 가져왔습니다. 예로, 과학 (Taylor 등, 2022) 및 의학 (Bolton 등, 2023; Luo 등, 2022; Lehman 등, 2023) 등이 있습니다. 이러한 발견은 특정 도메인에 중점을 둔 모델의 추가 개발을 촉진합니다.

 

정리하자면, 2020년 GPT-3 출시 이후 대형 언어 모델의 장점이 드러났으며, 모델의 크기와 성능은 지속적으로 증가하고 있습니다. 일반적인 LLMs의 주요 초점은 다양한 주제와 도메인을 포괄하는 데 있었지만, 특정 도메인에 중점을 둔 모델의 필요성도 증가하고 있습니다. 금융 기술 분야에서는 NLP가 중요한 역할을 하며, 도메인 특화된 시스템의 필요성이 강조되었습니다.

 

1.1 BloombergGPT

BloombergGPT는 금융 산업 내의 다양한 작업을 지원하는 500억 파라미터 언어 모델로, 일반적인 LLM과 도메인 특화된 모델의 혜택을 모두 얻기 위해 혼합된 접근법을 채택했습니다. Bloomberg의 자체 데이터와 공개 데이터셋을 결합하여 대규모 훈련 데이터를 구축하였습니다. 결과적으로, BloombergGPT는 금융 관련 작업에서 뛰어난 성능을 보이면서도 일반적인 NLP 벤치마크에서도 경쟁력 있는 성능을 보였습니다.

 

1.2 기여한 점

저자가 논문에 작성한 기여한점은 다음과 같습니다.

No 장점 설명
1 Domain-specific LLMs 대부분의 LLMs는 특정 도메인 데이터로만 훈련됨.
Bloomberg의 접근법은 도메인 특화 데이터와 일반 데이터를 함께 사용.
결과: 도메인 특화 작업에 우수하며, 일반적인 벤치마크에서도 강력한 성능.
2 Training data 대부분의 모델은 웹에서 스크랩된 데이터를 기반으로 함.
데이터 중복 및 독성 언어 문제가 있음.
Bloomberg의 데이터는 신뢰할 수 있는 출처에서 큐레이션된 데이터를 포함.
3 Evaluation LLM 평가는 도전적이며 계속 발전 중.
도메인 특화된 작업에 대한 평가와 실제 사용 사례 사이에 불일치가 있음.
Bloomberg은 공개 금융 NLP 벤치마크와 내부 작업 모두에 대한 결과 제공.
4 Model Size 초기 LLMs는 큰 말뭉치에 대해 한 번만 훈련됨.
최근의 접근법은 더 작은 모델을 더 많은 데이터로 훈련.
Bloomberg은 7000억 토큰의 말뭉치에서 5690억 토큰에 대해 500억 파라미터 모델 훈련.
5 Tokenizer 토큰화는 LLM에 중요한 단계.
많은 모델이 동일한 토크나이저 사용.
Bloomberg은 유니그램 모델을 사용하여 추론 시 더 효과적인 토큰화 제공.
6 Model Building Challenges GPT-3와 이후의 모델들은 큰 팀의 작업이었으며, 많은 계산량이 필요함
초기 재현 시도는 원본 모델의 성능에 미치지 못함
각 모델의 출시와 함께 커뮤니티의 이해와 경험이 증가하고, 소프트웨어 도구가 발전함.
BloombergGPT 개발 시 BLOOM 프로젝트의 기존 코드의 혜택을 받음
중간 규모의 팀이 도메인 특화 데이터에서 경쟁력 있는 모델을 만들 수 있음을 증명함.

 

2 데이터셋

FinPile: Bloomberg 아카이브에서 추출된 금융 문서로 구성된 포괄적인 데이터셋입니다. 이 데이터에는 뉴스, 회사 제출 자료, 보도자료, 웹에서 스크랩한 금융 문서, 그리고 소셜 미디어 포스트 등의 정보가 포함되어 있습니다. 이 문서들은 지난 수십 년간의 비즈니스 프로세스를 통해 수집되었습니다.

공개 데이터와의 결합: FinPile 데이터셋은 LLM 훈련에 널리 사용되는 다른 공개 데이터와 함께 사용되며, 최종 훈련 데이터는 도메인 특정 텍스트와 일반적인 텍스트를 거의 반반으로 포함하고 있습니다.

데이터의 중복 제거: 데이터의 품질을 높이기 위해 중복 데이터를 제거하였습니다. 따라서 표 1에 제시된 통계는 다른 논문에서 보고된 통계와 다를 수 있습니다.


2.1 Financial Datasets (363B tokens { 51.27% of training)

 

 

Bloomberg Terminal은 지난 40년 동안 다양한 구조화된 및 비구조화된 금융 데이터와 분석에 대한 접근을 제공하였습니다. Bloomberg의 분석가들은 내부에서 생성하거나 외부에서 획득한 금융 문서들을 정리하였고, 이러한 문서들로 'FinPile'이라는 데이터셋을 구성하였습니다. FinPile은 회사 제출 자료, 금융 뉴스, 그리고 금융 시장과 관련된 기타 데이터를 포함하고 있습니다.

2007년 3월 1일부터 2022년 7월 31일까지의 날짜 정보를 포함하며, 시간이 지남에 따라 문서의 품질과 양이 증가하였습니다.

웹 (42.01% 훈련 데이터)  Bloomberg은 금융 관련 정보가 포함된 사이트를 식별하여 웹 컨텐츠를 수집합니다. 이는 FinPile의 주요 부분을 차지하며, 내용은 주로 웹 도메인의 위치에 따라 분류됩니다.
뉴스 (5.31% 훈련 데이터) Bloomberg 기자들이 작성한 뉴스를 제외한 모든 뉴스 소스를 포함하며, 블룸버그 TV 뉴스의 전사본과 같은 내용도 포함되어 있습니다.
제출 자료 (2.04% 훈련 데이터) 회사 제출 자료는 공개 회사가 작성한 금융 보고서로, 대부분의 제출 자료는 EDGAR(SEC의 온라인 데이터베이스)에서 가져왔습니다.
보도자료 (1.21% 훈련 데이터) 금융과 관련된 보도자료를 포함하며, 회사 제출 자료와 함께 회사의 대중 의사소통을 대표합니다.
Bloomberg (0.70% 훈련 데이터)  Bloomberg이 작성한 뉴스 및 의견, 분석 등의 문서를 포함하며, 주로 금융 커뮤니티에 관련된 내용에 중점을 둡니다.

 


2.2 Public Datasets (345B tokens { 48.73% of training)

The Pile (25.9% 훈련 데이터) GPT-Neo, GPTJ 및 GPT-NeoX에서 사용된 데이터셋입니다. The Pile을 훈련 데이터에 포함한 이유는 다음과 같습니다: 성공적으로 LLM을 훈련시키는 데 사용되었고, 상당한 데이터 정제 및 전처리 작업을 거쳤으며, 다양한 도메인을 포함하고 있어 새로운 도메인으로의 일반화와 금융 데이터에 대한 훈련 지원이 가능합니다. The Pile의 크기는 중복 제거되었기 때문에 상당히 감소하였습니다.
C4 (19.48% 훈련 데이터) C4는 LLM을 훈련시키기 위해 사용되는 일반적인 데이터셋으로, T5 훈련을 지원하기 위해 도입되었습니다. C4는 Pile-CC와 중복되지만 다르게 정제 및 처리되었기 때문에 The Pile과 추가로 C4를 포함시키는 것이 더 가치있는 문서를 제공할 것으로 생각됩니다. C4는 높은 품질의 자연어 문서를 포함하고 있으나, 특정 웹 도메인의 분포가 일반적이지 않다는 점이 지적되었습니다.
Wikipedia (3.35% 훈련 데이터) The Pile 및 C4는 오래된 위키백과 복사본을 포함하므로 모델의 사실성을 위해 최신 위키백과 페이지를 포함시키는 것이 유용할 수 있습니다. 따라서 2022년 7월 1일의 영어 위키백과 덤프를 포함시켰습니다. 이 데이터셋은 비효율적으로 토크나이징되었으며, 추가적인 정제가 모델 훈련에 도움이 될 수 있음을 나타냅니다.

2.3 Tokenization

 

토크나이제이션은 큰 텍스트를 작은 단위로 나누는 과정입니다. 이 섹션에서는 어떤 방법으로 토크나이제이션을 수행했는지와 그 이유를 설명합니다.

토크나이저 선택: Unigram 토크나이저를 선택했습니다. 이는 Kudo와 Richardson의 연구 및 Bostrom과 Durrett의 연구에서 나온 좋은 결과를 기반으로 합니다.

데이터 처리: GPT-2의 방법을 따라 데이터를 바이트 시퀀스로 취급하고 256 바이트 각각을 토큰으로 포함시켰습니다.

토큰 분리: 입력 바이트 시퀀스를 특정 규칙에 따라 부분으로 나누었습니다. 이 과정에서 알파벳, 숫자, 그 외의 문자들이 각각 다른 토큰으로 나누어졌습니다. 이렇게 하면 한 토큰에 여러 문자 클래스가 포함되는 것을 방지할 수 있습니다.

숫자 처리: 각 숫자를 별도의 청크로 배치하는 방법을 따랐습니다. 이는 숫자를 더 잘 처리하기 위함입니다.

토크나이저 훈련: 토크나이저는 'The Pile' 데이터셋에서 훈련되었습니다. 이 데이터셋은 다양한 도메인의 데이터를 포함하고 있습니다.

병렬 토크나이저 훈련: Unigram 토크나이저 구현은 The Pile 데이터셋 전체를 한 번에 처리하는 데에 비효율적이므로, 분할 및 병합 방법을 사용했습니다.

토크나이저 병합: 병합은 토크나이저들의 확률분포를 가중 평균하여 이루어졌습니다.

어휘 크기 결정: 큰 어휘 크기는 LLM에 더 많은 정보를 넣을 수 있는 장점이 있지만, 더 큰 모델 매개변수가 필요하게 됩니다. 실험을 통해 어휘 크기를 131,072 토큰으로 결정했습니다.

결과적으로, 사용된 토크나이저는 대략 50,000 토큰의 표준 어휘 크기에 비해 큰 것으로 나타났습니다.

 

예시)

Unigram 토크나이저: Unigram 토크나이저는 토큰의 확률 분포를 생성합니다. 간단히 말하면, 각 토큰이 얼마나 자주 나타나는지에 대한 확률을 알 수 있습니다.

예시: "사과", "바나나", "체리"라는 토큰이 있다고 가정해봅시다. 만약 "사과"가 가장 자주 나타나면, "사과"의 확률이 가장 높을 것입니다.

토크나이저 병합: 여러 토크나이저를 합치기 위해 각 토큰의 확률을 가중 평균하여 합칩니다. 이때 가중치는 토크나이저를 훈련하는 데 사용된 데이터의 크기에 따라 결정됩니다.

예시: 두 데이터셋 A와 B에서 토크나이저를 훈련했다고 가정해봅시다. A는 100MB, B는 200MB 크기입니다. "사과" 토큰의 확률이 A에서는 0.2, B에서는 0.3이라면, 가중 평균을 통해 "사과"의 최종 확률을 계산할 수 있습니다.

토크나이저 결과: 병합한 결과로 7백만 개의 토큰이 생성됩니다.

어휘 크기 줄이기: 전체 토큰 중에서 확률이 가장 낮은 토큰을 제거하여 어휘 크기를 131,072 토큰으로 줄입니다.

Out-of-vocabulary (OOV) 토큰: 어휘에 없는 단어나 문자를 처리하기 위해 OOV 토큰을 추가합니다. 여기서는 'The Pile'에 없는 36바이트와 추가 토큰을 포함시켰습니다.

간단히 말하면, 이 과정은 많은 토큰을 가지고 있는 여러 토크나이저들을 합쳐 하나의 효율적인 토크나이저로 만드는 과정입니다.

3. 모델

3.1 아키텍처

 decoder-only causal language model로 구성하였습니다.

모델에는 다음과 같이 정의된 트랜스포머 디코더 블록의 70개 층이 포함되어 있습니다:

여기서 SA는 Multihead Self Attention, LN은 층 정규화, FFN은 1개의 숨겨진 층을 가진 전방 피드 네트워크입니다.

FFN 내에서 비선형 함수는 GELU (Hendrycks와 Gimpel, 2016)입니다. ALiBi 위치 인코딩은 트랜스포머 네트워크의 Self Attention 구성 요소에서 additive bias을 통해 적용됩니다 (Le Scao 등, 2022). 입력 토큰 임베딩은 최종 소프트맥스 이전의 선형 매핑에 연결됩니다. Le Scao 등 (2022)을 따르고 Dettmers 등 (2022)에서 처음 사용되었듯이, 모델에는 토큰 임베딩 후 추가 층 정규화가 있습니다:


여기서 h0은 초기 토큰 임베딩이고 LNem은 임베딩 층 정규화의 새로운 구성 요소입니다.
두 번째 항은 두 개의 연속적인 층 정규화를 포함하고 있음을 주목하세요.

 

 

Alibi Position Encoding

(https://velog.io/@nawnoes/ALiBi-Postion-Embedding)

extrapolation: validation에서 모델이 학습한 수의 토큰들을 증가시켜서 테스트를 할때 모델이 얼마나 잘 동작하는지에 대한 능력으로 정의
기존에 LM에서 사용하는 sinusoidal position embedding의 경우 매우 취약한 extrapolation 능력을 가지고 있는데, 그이유는 position embedding의 한계 때문이다.
T5 bias의 경우 기존보다는 높은 extrapolation을 가졌지만 속도가 느리고, 추가적인 메모리와 파라미터를 사용하는 단점이 있다.
따라서 Attention with Linear Bias(ALiBi)를 제안하며, ALiBi는 네거티브한 바이어스를 어텐션 스코어에 추가하는 방법으로 쉽고 간편하게 적용할수 있다.
query와 key 사이의 거리에 따라 비율로 선형으로 페널티를 주는 방법을 사용.

 

즉, 고정된 선형 패널티를 주는 것을 의미한다.

 

3.2 Model Scaling

Size

저자들은 모델의 크기는 Chinchilla 스케일링 법칙 (Ho mann 등, 2022)을 기반으로 합니다,

특히 그들의 접근법 1과 접근법 2를 사용합니다. 우리는 40GB A100 GPU에서 1.3M GPU 시간의 전체 컴퓨트 예산으로 시작합니다. 메모리 사용량을 줄이기 위해 활성화 체크포인팅을 채택하기 때문에 반복된 전달로 인해 반복당 추가로 0.33x TFLOPs의 비용이 발생합니다. 이 추가 비용을 고려하기 위해 전체 금액 대신 Chinchilla 방정식에 0.75 x 1.3M을 대입합니다.

Ho mann 등 (2022)에서 접근법 1에 대한 표 3과 접근법 2에 대한 표 A3의 데이터를 사용하여 로그 스케일 버전에 회귀선을 맞춥니다. 이로 인해 다음과 같은 결과가 나옵니다:

이러한 계산은 우리의 약 700B 토큰의 데이터셋이 컴퓨터 예산에 주어진 "Chinchilla 최적" 구성에는 너무 작다는 것을 의미합니다 (데이터를 한 번만 통과한다고 가정). 일반 목적의 훈련 데이터 양을 늘릴 수는 있지만 사용 가능한 도메인 특정 훈련 데이터의 양에는 제한이 있습니다. FinPile은 이미 가장 큰 도메인 특정 훈련 세트 중 하나이며, 저자는 이를 전체 훈련의 절반 이하로 나타내기를 원하지 않습니다.

데이터가 제한되어 있기 때문에, 가능한 한 가장 큰 모델을 선택하면서 모든 토큰에서 훈련할 수 있도록 하고 예측하지 못한 실패, 재시도 및 재시작을 위한 전체 컴퓨터 예산의 약 30%를 버퍼로 남겨둡니다. 이것은 컴퓨터 예산에 대한 Chinchilla 최적 크기와도 대략 일치하는 50B 파라미터 모델로 이어집니다. 그림 1은 스케일링 법칙의 요약과 BloombergGPT가 다른 모델과 어떻게 비교되는지를 보여줍니다.

Shape

50B 파라미터를 다양한 모델 구성 요소에 할당하는 방법을 결정하기 위해 , Levine 등 (2020)의 제안을 따릅니다. 그들은 총 Self Attention 계층 수 L에 대해 최적의 숨겨진 차원 D는 다음과 같이 얻어진다고 제안합니다:

 

D = exp(5:039) exp(0:0555 x L)

 

저자는 L을 일련의 정수 값의 범위로 스윕하고 총 ~50B 파라미터를 생성하는 (L;D) 조합을 선택합니다. 이로 인해 저자의 목표 모양 파라미터로 L = 70 및 D = 7510을 선택합니다.

그러나 저자는 또한 숨겨진 차원이 Attention Head 수로 균등하게 나눌 수 있도록 전통을 따르기를 원하며, 몫은 attention head 차원을 제공합니다. 또한 Tensor Core 연산 (NVIDIA, 2023)에서 더 높은 성능을 달성하기 위해 차원이 8의 배수가 되도록 하고 싶습니다. 저자는 각각 차원이 192인 40개의 헤드에 정착하게 되어 총 숨겨진 차원이 D = 7680이 되며 총 50.6B 파라미터가 됩니다. 표 4는 BloombergGPT에서 사용된 하이퍼 파라미터의 요약을 제공합니다.

 

3.3 Training Configuration

Training

BloombergGPT는 표준 왼쪽에서 오른쪽까지 causal language 모델링 목표로 훈련된 PyTorch 모델입니다.

Brown 등 (2020)을 따라 모든 훈련 시퀀스의 길이를 GPU 활용도를 극대화하기 위해 2,048 토큰으로 정확하게 만듭니다. 이를 위해 토큰화된 모든 훈련 문서를 문서 구분자(<|endoftext|>)로 연결합니다.

그 후 이 토큰 시퀀스를 2,048 토큰의 덩어리로 나눕니다.

 

- 이 방법을 사용하면 하나의 훈련 시퀀스에 다른 도메인의 여러 문서가 포함될 수 있습니다.
- ALiBi 위치 인코딩 사용으로 BloombergGPT는 추론 시에도 2,048보다 긴 시퀀스에 적용 가능합니다.
- 훈련 시퀀스는 최적화 효율을 위해 묶음으로 그룹화됩니다.

 

Optimization

No  설정 특징 설명
1 옵티마이저 AdamW 옵티마이저를 사용하며, 이는 Loshchilov와 Hutter (2019)에 의해 제안되었습니다.
2 파라미터 설정 β1(또는 1): 0.9로 설정
β2(또는 2): 0.95로 설정
가중치 감소(weight decay): 0.1로 설정
3 학습률(learning rate) 최대 학습률을 6e-5로 설정합니다. Brown 등(2020)의 연구를 따라 cosine decay 학습률 스케줄러와 선형 warmup을 사용합니다.
처음 1800 단계 동안 학습률을 점진적으로 올립니다(warmup).
Hoffmann 등(2022)의 연구에 따라 최종 학습률은 최대 학습률의 0.1배, 즉 6e-6으로 설정됩니다.
4 배치 크기(batch size) warmup 처음 7,200 단계 동안 1,024의 배치 크기(2.1M 토큰)를 사용합니다.
그 후 훈련의 나머지 기간 동안 배치 크기를 2,048(4.2M 토큰)로 변경합니다.
5 드롭아웃(dropout) 초기 실행에서 모든 레이어의 드롭아웃을 0.0으로 설정합니다. 그러나 나중에 §4(Training Run)에서 설명한대로 드롭아웃을 추가합니다.
6 모델 파라미터 초기화 모델 파라미터는 평균이 0이고 표준 편차가 sqrt(1/3D) = 0.006588인 정규 분포로부터 무작위로 초기화됩니다. 이는 Smith 등(2022)에 기반합니다.
Megatron-LM(Shoeybi 등, 2019)을 따라, MLP의 두 번째 레이어와 attention의 출력 레이어의 표준 편차를 1/sqrt(2L)로 재조정합니다.
7 쿼리 키 레이어 스케일링 기법 이 기법은 FP16 혼합 정밀도 훈련의 수치 안정성을 향상시키기 위해 제안되었습니다(Shoeybi 등, 2019). 하지만 BF16에서도 도움이 될 수 있습니다.

 

Training Instability

LLMs 최적화의 복잡성: LLMs(Large Language Models)의 최적화는 매우 복잡한 비컨벡스(non-convex) 손실 표면 위에서 볼록 최적화 알고리즘을 실행하는 것을 필요로 합니다. 볼록 최적화는 일반적으로 수학적으로 잘 정의된 문제입니다. 그러나 비컨벡스 손실 표면은 많은 지역 최적점이 있을 수 있으므로 최적화가 훨씬 더 어렵습니다.


이전 연구에서의 불안정성: 이전 연구에서는 LLMs 훈련 중 다양한 불안정성을 보고했습니다. 이러한 불안정성은 학습률, 모델의 초기화 방법 또는 특정 데이터 배치와 같은 여러 요소 때문에 발생할 수 있습니다.


Chowdhery 등의 발견: Chowdhery 등(2022)은 PaLM을 훈련시킬 때 기울기 클리핑(gradient clipping)이 활성화된 상태임에도 불구하고 손실이 대략 20회 급증한다는 것을 발견했습니다. 그들은 이러한 문제를 완화하기 위해 스파이크가 시작되기 약 100단계 전의 체크포인트에서 훈련을 다시 시작하고, 200~500개의 데이터 배치를 건너뛰었습니다. 그들은 특정 데이터 배치와 특정 모델 파라미터 상태의 조합으로 인해 스파이크가 발생한다고 가설을 세웠습니다.


Zhang 등의 관찰: Zhang 등(2022a)은 OPT 훈련 중에 기울기와 활성화 규범에서의 스파이크 또는 훈련 perplexity의 발산을 발견했습니다. 이러한 행동 후, 그들은 학습률을 낮추어 이러한 규범을 안정화시키고 훈련을 계속할 수 있게 했습니다.


Scao 등의 보고: 흥미롭게도, Scao 등(2022)은 단 한 번의 손실 급증만을 보고했는데, 모델은 스스로 이 문제를 회복했습니다.


결론적으로, LLMs 훈련은 매우 복잡하며 다양한 불안정성 문제를 초래할 수 있습니다. 이러한 문제를 해결하기 위한 다양한 전략이 연구되고 있으며, 위에서 언급한 연구자들의 방법들은 그 예시 중 일부입니다.

HardWare Stack

BloombergGPT 훈련 및 평가를 위해 AWS에서 제공하는 Amazon SageMaker 서비스를 사용합니다. 훈련 시간에 사용 가능한 최신 버전을 사용하고 총 64개의 p4d.24xlarge 인스턴스에서 훈련합니다. 각 p4d.24xlarge 인스턴스에는 NVIDIA NVSwitch 내부 노드 연결 (600 GB/s) 및 NVIDIA GPUDirect를 사용한 AWS Elastic Fabric Adapter (EFA) 간 노드 연결 (400 Gb/s)이 있는 8개의 NVIDIA 40GB A100 GPU가 있습니다.



3.4 Large-scale Optimization

BloombergGPT의 훈련: BloombergGPT는 사용 가능한 클라우드 인스턴스의 GPU 메모리보다 큰 메모리 풋프린트를 가지고 있습니다. 이를 극복하기 위해 ZeRO 최적화의 3단계를 사용합니다.

SageMaker Model Parallelism (SMP) 라이브러리: AWS의 독점적인 SageMaker Model Parallelism (SMP) 라이브러리를 활용하여 대규모 모델을 여러 GPU 장치 및 인스턴스에 자동으로 분배합니다.

성능: 다양한 기술을 실험한 결과, 평균 102 TFLOPs의 성능을 달성하며 각 훈련 단계는 32.5초가 걸렸습니다.

방법 설명
ZeRO 최적화 (3단계) 1)모델의 파라미터, 2)그래디언트, 그리고 3)최적화 상태를 여러 GPU 그룹에 나누는 방식입니다.
모델은 128개의 GPU에 나누어져 있고, 훈련 중에는 모델의 4개 복사본이 있습니다.
MiCS 클라우드 훈련 클러스터의 통신 오버헤드와 메모리 요구사항을 줄이는 방법입니다. 계층적 통신, 2-hop 그래디언트 업데이트, 규모 인식 모델 파티셔닝과 같은 기능을 포함합니다.

Activation Checkpointing 추가적인 역방향 계산을 통해 활성화를 제거함으로써 훈련 메모리 소비를 최소화하는 방법입니다. 
활성화 체크포인트가 활성화된 레이어의 경우, 중간 텐서는 메모리에서 삭제됩니다. 역방향 패스 중에 이러한 중간 텐서는 다시 계산될 수 있습니다.
혼합 정밀도 훈련 (Mixed Precision Training) 메모리 요구사항을 줄이기 위해, 순방향 및 역방향 패스는 BF16에서 수행되며, 파라미터는 전체 정밀도 (FP32)에서 저장 및 업데이트됩니다.

Fused Kernels 여러 연산의 구성을 단일 GPU 연산으로 결합하는 최적화 가능성입니다. 중간 결과의 저장을 피함으로써 피크 메모리 사용량을 줄일 수 있으며 속도를 향상시킬 수도 있습니다.

 

 

 

4. Training Run

학습 곡선 Figure 2는 훈련 세트와 검증 세트에 대한 학습 곡선을 보여줍니다.
실선은 훈련 손실을, 점선은 검증 세트의 손실을 나타냅니다.
선의 색깔이 바뀌는 것은 최적화 하이퍼파라미터 구성의 변경을 나타냅니다.
손실 측정 training 손실은 현재 배치에서 5 단계마다 측정되었습니다.
이유는 원시 값은 크게 편차가 있어, 표시할 때 큰 진동을 일으키기 때문이라고 합니다.
이를 평활화하기 위해 훈련 손실에 대한 이동 평균을 보여줍니다.

evaluation 손실은 매 300단계마다 전체 검증 세트에서 측정되므로 평활화가 필요하지 않습니다.
훈련 기간 총 139,200 단계 (~53일) 동안 훈련을 진행했으며, 훈련 데이터의 약 80%를 완료했을 때 모델 훈련을 종료했습니다.
배치 크기 초기에는 1,024의 배치 크기로 7,200 단계 동안 훈련을 진행한 후, 2,048의 정규 배치 크기로 변경했습니다.
개입 STEP이 115,500 단계 이후 검증 손실이 평평하거나 증가하는 것을 관찰했습니다.
그 후 다음 수정 사항을 순차적으로 적용했습니다:
  1. 115,500 단계: 학습률을 2/3로 줄임
  2. 129,900 단계: 학습률을 반으로 줄이고 0.1의 확률로 드롭아웃 추가
  3. 137,100 단계: 학습률을 다시 반으로 줄임
종료 146,000 단계에서 evaluation 손실의 진척이 없는 것으로 판단하여 실행을 종료했습니다.
최종 모델은 139,200 STEP의 체크포인트를 기반으로 선택되었습니다.



상세한 내용은 "Training Chronicles (Appendix C)"에 나타나 있습니다.

 

5. Evaluation

Bloomberg GPT의 성능을 금융 특화 작업과 일반 목적 작업 두 카테고리에서 평가했다고 합니다.

금융 특화 작업은 고품질의 금융 데이터로 학습하면 금융 작업에서 더 나은 결과를 얻을 수 있을 것이라는 가설을 테스트하는데 도움을 줍니다.

일반적인 작업은 모델의 성능이 이전에 발표된 결과와 직접 비교할 수 있는지 조사합니다.

금융 작업을 위해 공개적으로 사용 가능한 금융 데이터 세트를 모았으며, Bloomberg GPT의 능력을 직접 테스트하기 위해 감정 분석과 명명된 엔터티 인식을 위한 Bloomberg 내부의 고품질 평가 세트에서 작업을 포함했습니다.

일반적인 작업을 위해 여러 기존 벤치마크에서 결과를 추출하고 그룹을 크게 BIGbench Hard, Knowledge Assessments, Reading Comprehension, 및 Linguistic Tasks로 나누었습니다.

세 개의 모델, GPT-NeoX, OPT66B, BLOOM176B와 Bloomberg GPT의 성능을 비교했습니다.

이 세 모델 모두 우리가 학습 말뭉치에서 사용한 일반 목적 데이터 세트의 일부를 사용합니다.

우리는 또한 외부에서 사용 가능할 때 원래의 GPT-3에서 결과를 비교합니다.

모델을 공정하게 비교하기 위해, 모든 작업은 표준 프롬프팅을 통해 테스트되었으며, 이는 기본 모델에 대한 어떤 매개변수 변경도 없이, 작업 설명도 없이, 그리고 생각의 연쇄 프롬프팅 없이 이루어졌다고 합니다.

표 5에서는 BloombergGPT를 고려한 평가 벤치마크를 보여주며, 이는 HELM, SuperGLUE, MMLU, GPT-3 세트에서 가져온 다운스트림 성능을 평가합니다. 벤치마크는 공공 금융 작업과 Bloomberg 금융 작업, 그리고 다양한 일반적인 NLP 작업으로 구분됩니다.

표 6에서는 다양한 모델의 크기와 계산 능력을 비교합니다. BloombergGPT는 569B의 토큰과 50.6B의 매개변수로 1.00x의 계산 능력을 가집니다. 이와 비교하여 다른 모델들은 서로 다른 크기와 계산 능력을 보여줍니다.

BloombergGPT는 §7에서 설명된 세 가지 모델과 비교됩니다: 모델 크기, 훈련 데이터 유형, 전체 성능 및 접근성을 기준으로 합니다. 

 

1. GPT-NeoX: 이 모델은 50B 매개변수 이하에서 가장 우수한 성능을 보여줍니다.
2. OPT66B: BloombergGPT와 유사한 크기와 구조를 가지고 있지만, 조금 더 작은 편입니다.
3. BLOOM176B: 이 모델은 BloombergGPT보다 큰 반면, 같은 구조와 소프트웨어를 사용합니다. BLOOM176B는 여러 언어에서의 데이터로 훈련되었습니다.


이 세 모델 모두 일반적인 훈련 데이터셋을 활용하며, 원래의 GPT-3의 결과도 참조됩니다. 평가를 통일하고 공정하게 비교하기 위해 모든 작업은 특별한 설정 없이 표준적인 방식으로 진행되었습니다. 각각의 결과 그룹은 모델 간 비교에서 'wins' 비율을 통해 표현됩니다.

 

5.1 Few-shot Methodology

주어진 후보군의 작업을 위해 우리는 Brown 등(2020)을 따라 확률 기반 분류(likelihood-basedclassification)를 수행합니다.
분류에는 정규(Regular), 보정(Calobration), 정규화(Normalization)의 세 가지 방법이 고려됩니다.

 

α는 후보, s는 맥락, len은 부분 단어 토큰의 수를 측정합니다.
각 모델과 작업에 대한 최적의 방법의 성능을 보고합니다.
다른 작업에 대해 우리는 탐욕스러운 디코딩(greedy decoding)을 통해 생성을 수행합니다.
가능한 경우 테스트 세트의 성능을 공식적으로 나누어 보고합니다. 

테스트 레이블이 공개적으로 사용할 수 없는 경우 개발 세트의 성능을 보고합니다.
데이터 세트에 대한 공식 분할이 없는 경우, 20%의 예제를 테스트로 선택하고 나머지를 훈련으로 사용하여 훈련 및 테스트 분할을 생성합니다.
몇 번의 시도 평가의 변동성을 줄이기 위해, 각 테스트 예제에 대해 다른 시도를 샘플링합니다.
일관성을 위해, 각 테스트 예제에 대해 모든 모델은 우리의 평가에서 동일한 표면 형태의 입력을 가지고 있습니다.

 

5.2 Heldout Loss

저자는 BloombergGPT 모델이 금융 데이터의 언어 분포를 얼마나 잘 표현하는지 테스트합니다.
저자는 FinPile의 모든 부분에서 예제를 포함한 테스트 데이터 세트에서 다른 모델의 바이트당 비트를 평가합니다.
Figure 3는 BloombergGPT가 다른 모델을 지속적으로 우수하게 수행한다는 것을 보여줍니다.

 

데이터셋은 훈련 세트보다 미래에 있는 것을 엄격하게 사용하며, 훈련 세트와 보류 세트 간의 중복을 제거합니다.
평가 중에 2,048 토큰보다 긴 문서에 대해서는 슬라이딩 윈도우 접근법(sliding window approach)을 사용하며, 컨텍스트로 윈도우 크기의 절반을 사용합니다. 이는 처음 2,048 토큰 이후의 모든 토큰이 예측 중에 적어도 1,024 토큰의 컨텍스트를 가진다는 것을 의미합니다.
FinPile의 문서 유형별로 손실 분해를 보고합니다.
Figure 3에 따르면 Bloomberg GPT는 다른 모델들에 비해 일관되게 우수한 성능을 보입니다. 이는 예상된 결과이며 주로 상식적인 점검으로 사용되지만, 다른 모델의 일반화 능력에 대한 중요한 통찰력을 제공합니다.
예를 들어, Bloomberg GPT와의 차이는 Filings 카테고리에서 가장 크며, 이는 이러한 문서들이 대중에게 공개되어 있지만 주로 PDF 형식이므로 기존의 데이터셋에 포함되어 있지 않기 때문입니다.

 

 

sliding window approach

 

 

5.3 Financial Tasks

금융 데이터에 대한 일반 NLP 업무는 독특한 특징과 도전 과제를 갖습니다. 

예를 들어, "COMPANY가 10,000개의 직업을 잘랐다(cut)"는 헤드라인은 일반적으로 부정적인 감정을 나타내지만, 주식 가격이나 투자자 신뢰도가 상승할 수 있기 때문에 금융적 감정으로는 긍정적으로 간주될 수 있습니다.
여러 모델의 성능을 평가하기 위해 공개 및 내부 벤치마크를 사용합니다. 이러한 업무의 예시 및 해당 프롬프트 템플릿은 표 7에 나와 있습니다.

 

 

5.3.1 ExternalFinancialTasks

FLUE 벤치마크와 ConvFinQA 데이터셋에서 4개의 공공 금융 업무를 포함합니다.
이러한 금융 업무에 대한 성능이 널리 보고되지 않았기 때문에 표준 테스트 프레임워크가 없습니다.
연구는 다양한 금융 업무에 대한 평가를 진행했으며, 그 중 몇 가지 주요 업무는 다음과 같습니다:
FPB: 금융 뉴스의 문장에서 감정 분류 작업을 포함합니다.
1.FiQASA: 금융 뉴스 및 마이크로블로그 헤드라인의 관점별 감정을 예측하는 작업입니다.
2.Headline: 금 시장 관련 뉴스 헤드라인에 특정 정보가 포함되어 있는지 여부를 결정하는 이진 분류 작업입니다.
3.NER: SEC에서 제출된 금융 협약에서 수집된 금융 데이터의 명명된 엔터티 인식 작업입니다.
4.ConvFinQA: S&P 500 수익 보고서에서 대화형 질문에 대한 답변을 제공하는 작업입니다.


BloombergGPT는 다섯 가지 작업 중 네 가지에서 최상의 성능을 보여주며, NER에서 두 번째로 나왔습니다.

 

 

5.3.2 Internal Task: Sentiment Analysis

 

 

표 10: 감정 분석 결과

이 표는 내부 측면 특정 감정 분석 데이터셋에 대한 결과를 제공합니다.
비교되는 모델은 BloombergGPT, GPT-NeoX, OPT₆₈ᵇ, BLOOM₁₇ᵍᵇ입니다.
BloombergGPT는 다양한 감정 분석 작업에서 다른 모델들보다 지속적으로 뛰어난 성능을 보여줍니다. 예를 들면, "Equity News"에서 BloombergGPT의 점수는 79.63으로, 그 다음으로 가장 높은 점수인 GPT-NeoX의 14.17보다 훨씬 높습니다.
모든 작업의 평균 성능을 보면, BloombergGPT의 점수는 62.47로 다른 모델보다 훨씬 높습니다.

 

표 11: NER 테스트 세트 개요

이 표는 내부 Named Entity Recognition (NER) 테스트 세트의 통계 개요를 제공합니다.
BFW, BN, Filings, Headlines, Premium, Transcripts, Social Media 등의 다양한 금융 문서가 표시됩니다.
NER 테스트 세트에서 예제당 LOCations, ORGanizations, 그리고 PERsons의 평균 숫자도 제공됩니다.

 

 

텍스트에서의 일반적인 관찰

Bloomberg 내부 작업은 금융 문헌에서 특히 일반적인 측면 특정 감정 분석에 중점을 둡니다.
이 데이터셋의 주석 과정은 절차 설정, 필요한 주석자 수 파악, 주석자에게 필요한 교육 수준 결정을 위한 발견 단계를 포함합니다.
감정 분석을 위한 데이터셋는 Equity News Sentiment, Equity Social Media Sentiment, Equity Transcript Sentiment, ES News Sentiment 및 Country News Sentiment가 포함됩니다.


BloombergGPT는 대부분의 감정 분석 작업에서 더 나은 성능을 보여주며, 때로는 다른 모델들보다 큰 차이로 성능을 뛰어넘습니다.

 

등등 이런식으로 다양한 평가를 했다고 주장합니다.

 

5.8 요약

모델을 여러 작업과 벤치마크에서 비교했을 때, BloombergGPT가 수십 억 개의 매개변수를 가진 다른 모델들 중에서 가장 성능이 좋다는 명확한 결과가 나타났다. 

특히, BloombergGPT는 몇몇 경우에 수백 억 개의 매개변수를 가진 더 큰 모델들의 성능과 경쟁하거나 이를 초과하기도 한다. BloombergGPT의 목표는 금융 분야에서 최고의 모델이 되는 것이었고, 일반적인 목적의 훈련 데이터도 포함되었지만, 이 모델은 유사한 크기의 다른 모델들보다 더 나은 성능을 보여주며, 경우에 따라 훨씬 큰 모델들의 성능과 맞먹거나 이를 뛰어넘는다.

 

6. Qualitative Samples

 

저자들은 도메인 특화 모델의 장점을 강조하기 위해 일부 질적 예시들을 공유했습니다.
Bloomberg Query Language의 생성: BloombergGPT는 금융 데이터와의 상호작용을 더 자연스럽게 만드는 한 가지 사용 사례를 제공합니다. 기존에는 Bloomberg Query Language(BQL)을 사용하여 데이터를 검색할 수 있었습니다. BloombergGPT는 자연 언어 쿼리를 유효한 BQL로 변환하여 BQL을 더 접근하기 쉽게 만들 수 있습니다.
뉴스 헤드라인 제안: 모델은 뉴스 분야에서도 잘 지원됩니다. 많은 뉴스 기사를 훈련한 덕분에 다양한 뉴스 애플리케이션에 사용할 수 있습니다. 예를 들면, 뉴스레터를 작성할 때 기자들은 각 뉴스 섹션에 대한 짧은 헤드라인을 작성해야 하는데, BloombergGPT는 이 작업을 돕습니다.
금융 질문 응답: 금융 분야 훈련 데이터 덕분에 BloombergGPT에 금융 세계와 관련된 지식을 쿼리할 수 있습니다. 예를 들어, 회사의 CEO를 식별하는 데 잘 작동합니다. 다른 모델들의 출력 예시를 포함한 여러 예시가 있습니다. BloombergGPT는 CEO를 올바르게 식별하지만, GPT-NeoX는 그렇지 않고, FLAN-T5-XXL은 완전히 실패한다. BloombergGPT는 이 작업을 완벽히 해결하지는 않지만, BloombergGPT가 해결하지 못했을 때 다른 모델들이 작업을 해결한 예시를 찾을 수 없었다고 합니다. .

 

 

7. Related Work

1. 언어 모델의 역사와 발전



언어 모델링은 NLP 커뮤니티에서 오랜 역사를 가지고 있습니다. 확률적 언어 모델을 훈련하여 단어 시퀀스를 평가하는 아이디어는 Jelinek(1976)에 의해 처음 소개되었을 것입니다. 수십 년 동안 N-gram 모델이 인기를 끌었으며(Brown et al., 1992), 2조 토큰에 달하는 말뭉치에서 훈련되었습니다(Brants et al., 2007). 지난 10년 동안 머신러닝 혁신, 데이터 접근성 증대, 계산 능력 향상으로 인해 언어 모델 훈련 연구가 가속화되었습니다. 초기의 자동 회귀 언어 모델링 연구(예: Mikolov et al., 2010; Sutskever et al., 2011)는 순환 신경망을 사용했지만, 이는 작은 데이터 세트에서 훈련된 작은 모델들이었습니다. 트랜스포머 아키텍처(Vaswani et al., 2017)의 도입은 모델의 데이터, 계산 능력, 매개 변수 수를 확장할 수 있는 길을 열었습니다.

큰 말뭉치에서 언어의 분포를 더 잘 근사할 수 있는 모델을 개발하는 과정은, 이 모델들이 생성하는 표현이 많은 다운스트림 작업에 유용한 출발점이 될 수 있음을 발견하게 했습니다. 이는 Radford et al.(2018)과 Howard and Ruder(2018)에 의해 증명되었으며, 자동 회귀 언어 모델링 목표로 생성적 사전 훈련을 수행하는 것이 전이 학습에서 강력한 성능을 달성한다고 보여주었습니다. Radford et al.(2019)은 모델 크기와 훈련 데이터를 확장하면 추가적인 감독 없이도 다른 다운스트림 작업에서 잘 수행하는 자동 회귀 언어 모델을 만들 수 있음을 추가로 보여주었습니다. Brown et al.(2020)은 모델을 더 확장하면 새로운 모델 능력이 나타나고 모델 견고성이 향상된다는 것을 보여주었습니다. GPT-3의 출시 이후(Brown et al., 2020), 많은 연구자들이 데이터 양, 데이터 품질, 네트워크 아키텍처, 매개 변수 확장, 데이터 확장, 토큰화, 오픈 소싱 전략을 연구하기 위해 큰 언어 모델을 구축했습니다

 

2. 도메인 특화 언어 모델

도메인별 특화 훈련의 가치는 마스크된(인코더만 있는) 언어 모델에 대해 잘 알려져 있습니다. 

일반적으로 받아들여지는 접근법은 BERT 모델을 도메인별 데이터로부터 처음부터 훈련시키거나, 기존 모델을 새로운 도메인별 데이터로 계속 선행 훈련시키는 것입니다. 

이러한 전략에 따라 BioBERT는 바이오메디컬 분야에 맞게 BERT를 조정하고, SciBERT는 과학 출판물에 훈련되었습니다. 이러한 연구 결과는 도메인 내 훈련이 모델들이 다양한 바이오메디컬 텍스트 마이닝 작업에서 이전의 최고 성능 모델들을 능가하도록 허용함을 보여주었습니다.

하지만 10B 이상의 매개변수를 가진 자동 회귀적(디코더만 있는) 언어 모델을 훈련하는 것은 1B 이하의 매개변수를 가진 마스크된 LM을 훈련하는 것보다 훨씬 비용이 많이 들기 때문에 도메인별 자동 회귀적 모델의 예는 훨씬 적습니다.

그러나 최근에 도메인별 데이터로부터 처음부터 훈련된 디코더만 있는 모델의 예들이 등장하기 시작했습니다.

예를 들어, Galactica는 과학 데이터셋만을 대상으로 훈련되었으며, 과학적 표기를 다루기 위한 특별한 처리를 포함합니다. Galactica는 과학적 작업뿐만 아니라 일반 NLP 작업에서도 놀랍도록 잘 수행합니다.

이러한 발견들은 충분한 데이터가 있는 경우, 특히 저자의 경우처럼, 도메인 내 선행 훈련의 이점을 강조하며, Galactica의 일반 능력에 영감을 받아 저자는 공개 데이터와 개인 데이터를 결합하여 모델이 도메인 내 능력을 얻으면서도 일반 도메인 성능을 희생하지 않는지 조사하는 것을 목표로 합니다.

3. 훈련 데이터

대규모 원시 텍스트 데이터는 대규모 언어 모델(LLM)의 훈련에 필수적입니다. 

결과적으로 다양한 출처를 포괄하는 여러 데이터셋이 이제 사용 가능합니다. Colossal Clean Crawled Corpus(C4)는 Common Crawl에서 추출하여 가공된 훈련 데이터셋을 만듭니다. 

The Pile은 다양한 데이터 출처를 포함하는 신중하게 큐레이션된 데이터셋입니다. 이 데이터셋들은 웹 크롤링(OpenWebText2)을 기반으로 하거나 고품질 출처의 데이터(예: Pubmed, Arxiv)로 보강됩니다. 다양한 노력이 웹 데이터에서 원하지 않거나 유해한 텍스트를 제거하여 데이터셋을 정제하는 데 초점을 맞추고 있습니다.

그러나 웹 데이터는 다양한 데이터를 대량으로 얻는 효과적인 전략이지만, 철저한 정제 노력에도 불구하고 데이터 아티팩트, 중복, 각종 유해 언어, 소수자 목소리의 비의도적인 소외와 같은 문제가 발생할 수 있습니다. 

연구에 따르면 C4는 기계 생성 텍스트를 포함하고 있으며, 제외 필터로 인해 편향이 발생할 수 있으며, NLP 작업의 평가 데이터셋에서 추출된 예시를 포함할 수 있다고 합니다.

이러한 인사이트는 고품질 훈련 데이터셋 구축의 중요성과 도전을 강조합니다. 

본문에서 언급된 바와 같이, 블룸버그의 핵심 사업은 데이터셋을 큐레이션하고 제공하는 것으로, 저자는 이를 사용하여 고품질의 데이터셋인 FinPile을 구축하고 Bloomberg GPT를 훈련시켜 최고 수준의 금융 성능을 달성합니다.

4. 모델 평가

언어 모델에 의해 다루어지는 과제들이 크게 증가하고 있으며, 전통적인 과제별 시스템과는 매우 다른 평가 과정이 필요합니다. 언어 모델 평가에는 두 가지 패러다임이 있습니다. 첫 번째는 다양한 시나리오에서 자동 평가를 통해 모델을 평가하는 것이고, 두 번째는 사용자 작업 흐름에 모델을 통합하여 외부적이고 과제별 평가를 수행하는 것입니다. 

두 번째 전략은 모델의 제품 배치를 평가하는 데 필수적이지만, 첫 번째 전략의 규모로 이러한 인간 평가를 수행하는 것은 불가능하므로 새로운 모델을 소개할 때 첫 번째 전략을 따르는 것이 일반적입니다.

저자의 경우에는 다양한 목표를 가진 여러 기존 벤치마크에서 다목적 일반 평가를 결합합니다. 

일반적인 평가 외에도, 저자는 특정 도메인 평가가 필요합니다.

예를 들어, Galactica와 같은 이전의 도메인별 모델은 모델이 잘 수행할 가능성이 높은 과제 세트를 선택했습니다.

그러나 재무 NLP 도메인에는 표준 벤치마크가 없습니다.

최근에 FLUE라는 벤치마크가 제안되었지만, 관련 과제의 범위가 제한적이고, 몇 샷 학습을 위한 평가 전략이 제안되지 않았으며, 일부 주석의 품질이 낮습니다.

외부적으로 비교 가능한 결과를 제공하기 위해 저자는 FLUE에 대한 몇 샷 전략을 개발했지만, 공개적으로 이용 가능한 평가 과제를 회사 내부 벤치마크로 보완하기로 결정했습니다.

5. Model Size

대규모 언어 모델 훈련은 여전히 계산 비용과 데이터를 조합하고 모델을 훈련시키기 위한 인간의 노력 측면에서 비용이 많이 듭니다. 자원을 최적으로 활용하기 위해 훈련 데이터의 최적 양과 모델의 형태와 크기를 결정하는 것이 중요합니다. Kaplan et al. (2020)은 처음으로 언어 모델 성능이 아키텍처, 매개변수 크기, 계산력 및 데이터 크기에 어떻게 의존하는지 연구했습니다. 그들은 모델 매개변수의 수, 데이터 크기 및 계산량이 power law에 따라 자동 회귀 언어 모델링 목표의 성능을 부드럽게 향상시킨다고 보고했습니다. Hernandez et al. (2021)의 유사한 조사에서는 다른 분포에 대한 데이터 전송을 조사하고 이것 역시 power law를 따른다는 것을 발견했습니다. Rae et al. (2021)은 모델 크기의 다양한 범위를 훈련함으로써 손실 효과를 연구하는 것을 넘어, 규모가 편향과 독성과 같은 바람직하지 않은 속성에 미치는 영향을 분석했습니다. 

모델 아키텍처를 비교할 때, Levine et al. (2020)은 자체 주의(self-attention)를 사용하는 모델의 확장을 연구하고 깊이와 너비 배분에 대한 지침을 도출했습니다. Tay et al. (2021)은 모델의 형태(깊이-너비 비율)가 사전 훈련 목표에 미미한 영향을 끼쳤음에도 불구하고 하류 작업에 대한 성능에 영향을 미친다고 보고했습니다. Tay et al. (2022a)은 다양한 모델 아키텍처의 확장 효과를 추가로 연구하고 아키텍처 선택이 확장 시 중요하며 바닐라 트랜스포머 아키텍처가 가장 잘 확장된다는 것을 보여주었습니다. 

이 작업에 특히 중요한 것은 Hoffmann et al. (2022)의 연구로, 고정된 계산 예산 하에서 모델 크기와 훈련 토큰의 수가 모델의 성능에 미치는 영향을 조사했습니다. 그들은 기존의 대규모 언어 모델이 훈련이 덜 되어 있으며 모델 크기와 훈련 토큰 수가 동등하게 확장되어야 한다고 주장했습니다. 그들은 Chinchilla라는 모델을 통해 이 가설을 입증했는데, 이 모델은 훨씬 더 작지만 대부분의 가장 큰 LLM보다 성능이 더 높았습니다. 이러한 발견은 강력한 성능을 달성하고 그들의 더 큰 동료들보다 추론을 훨씬 더 효율적으로 실행할 수 있는 "Chinchilla 최적화"된 더 작은 모델 훈련의 길을 열었습니다. 이러한 발견으로 인해 우리는 표준 아키텍처를 사용하는 초기 Chinchilla 최적화 모델을 고려하게 되었습니다.

 

 

6. Tokenization

토큰화와 어휘 선택은 모델이 의미 있는 표현을 학습하고 보이지 않은 단어들을 일반화하는 데 도움을 줄 수 있기 때문에 모델 성능에 있어 중요한 역할을 합니다. 

Byte-Pair Encoding(BPE)(Sennrich et al., 2016)은 학습 데이터 세트에서 가장 빈번한 시퀀스 쌍을 반복적으로 병합하여 그리디 방식으로 어휘를 학습하며, 미리 정해진 어휘 크기에 도달할 때까지 계속됩니다. 

Radford et al. (2018)은 모든 유니코드 문자가 아닌 가능한 모든 바이트를 기본 어휘로 제한하여 BPE를 적용했습니다. 

WordPiece 토큰화(Schuster and Nakajima, 2012) 역시 그리디 방식으로 어휘를 학습하지만, 학습 데이터의 가능성을 최대화하는 시퀀스 쌍을 반복적으로 병합하는 방식으로, Sennrich et al.(2016)의 방법에서 약간 벗어납니다.

BPE와 WordPiece와 대조적으로, Unigram 토크나이저(Kudo, 2018)는 큰 어휘를 초기화하고 손실(예: 학습 데이터의 로그 가능성)을 가장 적게 증가시키는 어휘 항목을 반복적으로 버리는 상위에서 하위로의 방식으로 어휘를 학습합니다. 

구조적으로, Unigram 모델은 입력 텍스트를 여러 가지 다른 방식으로 토큰화할 수 있습니다. 

즉, Unigram 모델은 추론 시 더 스마트한 토큰화를 위한 확률을 저장합니다.

마지막으로, SentencePiece(Kudo and Richardson, 2018)는 위에서 언급한 체계를 적응시켜 공백으로 분리되지 않는 언어들을 처리합니다. Beltagy et al.(2019)은 과학적 텍스트에 특화된 어휘를 구성하고, 그들의 도메인 특화 어휘가 일반 도메인 텍스트로 훈련된 BERT 어휘와 단 42%의 겹침을 보였음을 관찰했습니다. 

마찬가지로, Lewis et al.(2020)은 전용 생의학 어휘가 일관되게 시퀀스 라벨링 작업에서 성능을 향상시킴을 보여주었습니다. Lieber et al.(2021)은 토큰 효율성을 보장하기 위해 더 큰 어휘를 구성했으며, 저자들은 이것이 훈련 시간을 줄이고 더 나은 의미적 표현을 가져왔다고 주장합니다. 

이러한 발견들은 훈련 도메인을 가장 잘 반영하는 토크나이저와 어휘를 선택하는 것의 중요성을 입증합니다. 이러한 이유로, 우리는 기존의 공개 토크나이저에 의존하는 대신 자체 Unigram 토크나이저를 훈련하기로 결정했습니다.

 

 

7. PositionalEmbeddings.

Transformer 기반 모델들은 텍스트 내에서 단어의 위치와 위치 정보를 인코딩하기 위해 위치 임베딩에 의존합니다. 

이러한 시퀀스 위치 인코딩과 이 선택이 모델 성능에 미치는 영향에 대해서 광범위하게 연구되었습니다. 

여기에는 삼각 함수 형태의 임베딩(Vaswani et al., 2017), 회전 위치 임베딩(Su et al., 2021a), 상대적 위치 편향 추가(Raffel et al., 2020), 그리고 attention 메카니즘 헤드에 선형 편향을 추가하는 것(Press et al., 2022)이 포함됩니다.

Press et al.(2022)의 전략의 부수적인 효과 중 하나는 더 짧은 시퀀스에서 훈련을 진행하면서도 더 긴 시퀀스에 대한 성능 손실 없이 훈련할 수 있다는 것입니다. 

이것은 두 가지 이점을 가집니다: 첫째, 모델이 더 긴 시퀀스에 대해 일반화(외삽)하는 것을 학습하고, 둘째, 모델이 더 짧은 시퀀스에서 훈련되어 훈련 시간이 줄어듭니다.

8. Ethics, Limitations, and Implications

8.1 EthicalUse

금융은 기술에 있어 민감한 분야이며, 정확하고 사실적인 정보의 제공은 저자의 제품, 저자 고객 및 시장에서의 회사 명성에 대해 매우 중요합니다. 

한편, 저자의 고객들도 그들의 업무 흐름을 지원하기 위해 최신 기술을 채택하고자 하는 열망을 가지고 있습니다.

금융 커뮤니티에 자연어 응용 프로그램을 제공하기 위해, 저자는 엄격한 위험 및 테스트 평가 프로세스를 개발했습니다. 이 프로세스에는 주의 깊은 주석 가이드라인(Tseng et al., 2020), 중앙 위험 및 컴플라이언스 조직에 의한 다중 레벨의 사전 출시 검토, 그리고 적용 가능한 경우 제품 리더들(예: 뉴스룸)에 의한 검토, 그리고 출시 후 모니터링이 포함됩니다.

또한, 저자는 모든 적용 가능한 규제에 따라 NLP 및 AI 시스템의 연구, 개발 및 배포를 수행합니다.

마찬가지로, 독성과 편향(toxicity and bias)은 저자의 회사가 인간이나 기계에서 생성된 모든 콘텐츠에 대해 특별한 주의를 기울이는 분야입니다. 저자 모델의 독성 및 편향 측정은 그것의 적용 분야에 따라 달라지므로, 유해한 언어의 생성 가능성을 정량화하는 것은 여전히 열린 질문입니다. 저자는 특히 FinPile이 (예: 보도 자료 등에서) 더 깨끗하고 노골적으로 편향되거나 독성 있는 언어의 예가 적어 모델이 부적절한 내용을 생성할 경향을 줄이는지 여부를 연구하는 데 관심이 있습니다. 이 기술을 기반으로 한 제품 개발로 이동함에 따라, 안전한 사용을 보장하기 위해 기존의 테스트 절차 및 위험 및 컴플라이언스 제어를 적용할 것입니다.

8.2. Openness

LLM 커뮤니티 내에서는 LLM들이 어떻게, 혹은 전혀 공개되어야 하는지에 대한 지속적인 논쟁이 있습니다. 공개되지 않은 모델들은 커뮤니티에 의해 완전히 평가될 수 없지만, 모델을 배포하는 것은 그릇된 목적으로 이어질 수 있습니다. 특히 BloombergGPT와 같은 모델은 보도자료, 뉴스 기사, 신고서 등 상당한 양의 데이터에 기반하여 훈련되었기 때문에, 공개는 모방을 통한 남용의 큰 위험을 안고 있습니다.

LLM의 배포와 관련된 위험을 완화하기 위한 다양한 전략을 저자들는 목격했습니다. 한 전략은 훈련된 모델을 자유롭고 개방적으로 공유하고, 모델이 어떻게 사용되어야 하고 사용되어서는 안 되는지를 규정하는 라이선스에 의존하는 것입니다(Scao et al., 2022). 또 다른 전략은 개인들이 훈련된 모델 파라미터에 접근하기 위해 신청을 해야 하는 것입니다(Zhang et al., 2022a; Touvron et al., 2023). 더 제한적인 접근 방식은 모델에 대한 API 접근을 제공하지만, 기초 모델 파라미터나 모델이 훈련된 데이터에 대한 상세한 정보에 대한 접근은 제공하지 않는 것입니다(Brown et al., 2020). 마지막으로, 일부는 모델에 대한 어떠한 접근도 제공하지 않았습니다(Chowdhery et al., 2022; Hoffmann et al., 2022). 각각의 결정은 모델 사용, 잠재적 피해, 비즈니스 결정을 포함한 여러 요소의 조합을 반영합니다.

Bloomberg의 핵심 비즈니스 제안 중 하나는 수십 년에 걸쳐 수집된 데이터에 대한 접근을 제공하는 것입니다. 잘 알려져 있듯이, LLM은 데이터 유출 공격에 취약하며 모델 가중치를 통해 상당한 텍스트 부분을 추출할 수 있습니다(Carlini et al., 2020, 2022). 게다가, 심지어 연구자들에게 선택적으로 접근을 제공한다 하더라도, 모델이 유출되지 않는다는 보장은 없습니다. 강력한 개인정보 보호 보증 없이, 저자는 모델 가중치에 대한 접근을 제공하는 것이 FinPile에 대한 접근을 제공하는 것을 포함한다는 사실에 대해 우려해야 합니다. 이러한 이유로, 저자는 조심스럽게 접근하며 다른 LLM 개발자들의 관행을 따라 저자의 모델을 공개하지 않기로 결정했습니다.

그럼에도 불구하고, Bloomberg GPT의 훈련 및 평가에 대한 우리의 통찰력과 경험은 이러한 모델들에 대한 이해를 발전시키는 데 기여합니다. 특히, 우리의 경험은 도메인 특화 모델을 구축하는 이들에게 유용할 수 있습니다. Bloomberg GPT를 개발하는 과정에서, 우리는 OPT 연대기, BLOOM 팀의 경험, 그리고 GPT-3, PaLM, Chinchilla, Gopher와 같은 비공개 모델의 작업이 저자 작업의 중요한 촉진제임을 발견했습니다. 이 전통을 지원하기 위해, 저자는 저의 훈련 연대기(부록 C)를 포함합니다.

 

9. Conclusion

제공된 내용은 금융 자연어 처리(NLP)를 위해 특별히 설계된 최첨단 언어 모델인 블룸버그 GPT에 대한 것입니다. 여기에는 몇 가지 주요 요점이 있습니다:

1. **도메인별 훈련**: 블룸버그 GPT는 도메인별 모델을 효과적으로 훈련시키는 방법의 한 예입니다. 도메인별 데이터와 일반적인 데이터를 통합함으로써 모델은 두 도메인 모두에서 균형 잡힌 성능을 달성합니다.

2. **모델 크기**: 이 연구는 친칠라 연구에서 얻은 통찰력에 따라 최적 크기의 모델을 선택하는 것의 중요성에 대한 또 다른 데이터 포인트를 제공합니다.

3. **훈련 로그 가이드**: 블룸버그 GPT의 훈련 로그는 다른 사용자가 자신의 LLM을 훈련할 때 과정과 의사 결정에 대한 통찰력을 제공하기 위한 자료로 사용될 예정입니다.

앞으로의 연구 방향은 다음과 같습니다:

1. **작업별 미세 조정**: 작업별 미세 조정을 통해 금융 분야에서 모델 정렬에 대한 독특한 기회를 탐구하며, 이는 LLM에서 상당한 개선을 보여줍니다.

2. **데이터 선택**: FinPile 데이터에 대한 훈련이 최종 모델에 미치는 영향을 조사합니다. 이 데이터는 덜 독성이 있고 편견이 있는 언어를 표시할 수 있습니다.

3. **토큰화 전략**: 토큰화 전략 선택이 결과 모델에 어떻게 영향을 미치는지 검토합니다.

성능 측면에서 블룸버그 GPT는 일반 LLM 벤치마크에서 강력한 결과를 보이며 금융 작업에서 비교 가능한 모델보다 뛰어난 성능을 보입니다. 이러한 성공은 다음에 기인합니다:

1. 잘 구성된 내부 데이터셋.
2. 토큰화에 대한 독특한 선택.
3. 최신 아키텍처.

해당 내용은 블룸버그 GPT를 사용하여 금융 애플리케이션을 지속적으로 개발하여 이러한 모델링 선택의 이점을 더욱 탐구하겠다는 약속으로 마무리됩니다. 전체적인 초점은 금융 분야의 특정성을 강화하는 동시에 다양한 작업에 적용 가능하고 견고성을 보장하는 것입니다.

 

Appendix A.Architecture

이 부록은 언어 모델 또는 기타 신경망 아키텍처에 사용되는 수학적 표기법과 연산자에 대한 세부 정보를 제공합니다. 주요 구성 요소는 다음과 같습니다:

표기법 스타일링:

스칼라(scalar)는 스타일이 없는 변수로 표시됩니다.
[열] 벡터는 볼드체 소문자 변수로 나타납니다.
행렬은 볼드체 대문자 변수로 표현됩니다.
예를 들어, hi,j는 벡터 hj의 요소일 수 있고, hj는 행렬 H의 j번째 열일 수 있습니다.
명명된 함수는 비기울임체 정규 타입으로 표기됩니다 (예: softmax(·), FFN(·)).
빨간색은 훈련 가능한 매개변수나, 훈련 가능한 매개변수로 매개변수화된 함수 (예: W 또는 FFN(·))를 나타내는 데 사용됩니다.


시퀀스:

n개의 요소를 갖는 시퀀스 (x1,...,xn)은 {xi}n i=1로 표기됩니다.
(열) 벡터의 시퀀스는 행렬로 간주됩니다, 즉, X={xi}n i=1 ∈ Rm×n, 여기서 각 xi ∈ Rm.
연산자:

f : Rn → Rn: 벡터에 작용하는 함수입니다. 예를 들어, y=f(x)에서 x, y ∈ Rn은 n차원 실수 벡터입니다.
AB: 같은 모양의 행렬이나 벡터 A와 B의 요소별(또는 하다마드) 곱셈입니다.
1(P): P가 참이면 1을 반환하고 거짓이면 0을 반환하는 지시 함수입니다.
[n]: 정수 n에 대해, 1부터 n까지(포함) 모든 양의 정수의 집합, 즉 {1,...,n}입니다.
A+b: 행렬에 벡터를 더하는 것은 각 열에 반복적으로 더하는 것으로 정의됩니다. 즉, A+b={ai+b}n i=1.
Softmax: softmax(x)= exp(x) n iexp(xi) 여기서 exp(·)는 벡터에 요소별로 적용됩니다.
Dropout: dropp(x)= 1 1−p·mx 여기서, m=[mi]n i=1 , 그리고 mi ∼ Bernoulli(1−p). mi는 각 예제의 제시마다 독립적으로 추출된 확률 변수입니다.

 

A.1 Full Architecture

'

 

 

 

 

A.2 SelfAttention with ALiBi(SA)

 

A.3 LayerNorm(LN)

 

A.4 FeedForwardNetwork(FFN)

 

 

AppendixC.TrainingChronicles

 

C.0 Stil

 

당신이 논의한 내용은 기계 학습 문맥에서 교육 과정 학습에 관한 실험, 특히 FinPile이라는 데이터 세트에서 대규모 모델을 훈련시키는 것에 관한 것으로 보입니다. 실험과 발견에 대한 주요 포인트를 요약해 드리겠습니다:

1. **교육 과정 학습을 사용한 훈련 (v0):**
   - 초기 훈련 실행(v0)에서는 모델이 점진적으로 복잡해지는 훈련 데이터에 노출되는 교육 과정 학습 전략을 사용했습니다.
   - 훈련 데이터를 시간 순으로 정리하여, 오래된 데이터(2007년)부터 시작했고, 정보가 시간에 따라 변함에 따라 모델이 미래 문서에서 더 잘 수행하기를 기대했습니다.

2. **관찰 결과:**
   - 훈련 손실과 검증 손실 사이에 큰 차이가 관찰되었으며, 이는 교육 과정 학습 전략으로 인해 예상된 바였습니다.
   - 일주일 후, 모델은 훈련 및 검증 손실에서 더 이상의 진전을 보이지 않아 잠재적인 문제를 나타냈습니다.

3. **잠재적 문제와 결정:**
   - 시간이 지남에 따라 훈련 데이터가 검증 데이터와 더 유사해짐에 따라 손실 문제가 해결될 것이라고 생각했습니다.
   - 그러나 진단 신호가 없어 다른 잠재적 문제를 시간 내에 식별하지 못할 위험이 너무 높다고 판단되었습니다.
   - 이로 인해 교육 과정 학습 접근 방식을 중단하기로 결정했습니다.

4. **조정 및 새 실행 (v1.0):**
   - 교육 과정 학습을 제거하고 모든 훈련 데이터를 섞어, 모델이 항상 다양한 데이터에 노출되도록 했습니다.
   - 새 실행(v1.0)은 검증 손실에서 훨씬 빠른 개선을 보여, 교육 과정 학습 접근 방식이 모델의 일반화 능력을 저해했을 가능성을 시사합니다.

5. **결론:**
   - 실험은 교육 과정 학습이 부정적인 영향을 미쳤는지, 아니면 손실이 정체된 다른 요인이 있는지 결론을 내리지 못했습니다.

당신이 설명한 시나리오는 기계 학습 모델이 훈련 과정의 구조에 얼마나 민감할 수 있는지와 다른 전략을 평가하여 성능을 최적화하는 것의 중요성을 잘 보여줍니다. 이론적으로 잘 작동할 것 같은 것(교육 과정 학습과 같은)이 실제로는 예상치 못한 결과를 낳을 수 있기 때문에, 실제 결과에 기반하여 전략을 변경할 준비가 되어 있는 것이 중요하다는 것을 상기시켜 줍니다.

 

C.1 Elbow

교육 학습 방법을 배제한 새로운 훈련 런(v1.0)에서는 약 12k 단계(~4.5일의 훈련) 후 그래디언트 노름이 지속적으로 증가하는 것을 관찰하였으며, 때때로 급격한 증가가 발생했습니다. 이는 검증 손실에서 갑작스러운 점프를 동반하여, 모델이 가중치의 작은 변화에 너무 민감해지고 있음을 시사합니다. 훈련 손실도 다시 정체되는 것 같았습니다. 저자는 그래디언트 노름의 증가가 검증 손실 문제를 일으키고 있다고 의심하였습니다. 그래디언트 노름 증가를 해결하기 위해 여러 모델 런에 걸쳐 다음과 같은 변경을 시도하였습니다:

v1.1: v1.0의 10.8k 단계에서 시작하여 어떤 그래디언트 증가도 발생하기 전이며, 최대 학습률을 낮췄습니다.
v1.2: v1.1의 20.1k 단계에서 계속하여 학습률을 더욱 낮추고 그래디언트 클리핑을 줄였습니다.
v1.3: v1.1과 비슷하지만 언어 모델 헤드 계산에 FP32 정밀도를 사용하였습니다.
v1.4: v1.2와 v1.3의 전략을 결합하였습니다.


이러한 변경은 그래디언트 노름 증가 추세나 문제가 될 가능성이 있는 경로의 초기 징후를 발견한 후 이루어졌습니다. 우리는 무게 자체의 노름을 조사하여, 큰 그래디언트 노름에 기여하는 특정 레이어나 구성 요소가 있는지에 대해 특별히 관심을 가졌습니다. 1레이어의 입력 레이어 노름에서 약 12k 단계부터 시작하여 그래디언트 노름의 초기 증가와 일치하는 증가 패턴을 발견했습니다.

Layer Norm 곱셈 가중치를 포함한 모든 매개변수에 가중치 감소가 적용되는 버그를 발견했는데, 이는 원래 값이 1로 시작하기 때문에 적용되지 않아야 합니다. 이는 BERT 구현에서 상속된 것입니다. 네 번의 실패한 시도 후, 우리는 이 런을 포기하고 학습률을 줄이거나 그래디언트 클리핑과 같은 기법을 포함한 더 보수적인 하이퍼파라미터 설정을 처음부터 적용하기로 시작하는 것을 고려했습니다. 또한, 병리학적인 경향 변경이 입력 레이어 노름(LNin 1)에 국한되어 있으며, 이는 제거된 임베딩 레이어 노름(LNem)에 매우 가까운 것이므로, 다른 대부분의 언어 모델 구조가 이 구성 요소를 사용하지 않음에도 불구하고 추가적인 예방 조치로 LNem을 다시 도입하기로 결정했습니다.

C.2 Slide

이 논문 부분은 AI 모델의 하이퍼파라미터 조정과 관련된 실험을 설명하고 있습니다. 

저자들은 "팔꿈치 문제(elbow issue)"를 해결하기 위해 여러 시도를 한 후, 학습 동태를 가능한 안정적으로 유지하기 위해 처음부터 보수적인 하이퍼파라미터 선택을 하기로 결정했습니다. 다음과 같은 변경 사항과 하이퍼파라미터를 적용했습니다:

  • LM-head(방정식 (6)의 softmax)에 FP32 정밀도 사용
  • 최대 학습률을 1e-4에서 6e-5로 변경
  • 그래디언트 클리핑 값을 1.0에서 0.3으로 변경
  • 데이터를 완전히 섞기
  • 다른 초기화와 데이터 순서를 보장하기 위해 다른 시드 사용
  • 임베딩 레이어에 LayerNorm (LNem) 다시 도입
  • 학습률 워밍업 기간을 1800단계로 늘리기
  • LayerNorm 배수에 잘못된 가중치 감소 사용 제거
  • Megatron 초기화 재조정 사용 (부록 A.5의 z0 사용 참조)
  • 쿼리 키 레이어 스케일링 적용 (Shoeybi et al., 2019)
  • 배치 크기 워밍업 적용: 7200회 반복에 대해 1024의 배치 크기 사용 후 2048로 증가

하이퍼파라미터 변경 외에도, 문제를 더 일찍 발견하기 위해 추가적인 모니터링을 수행했습니다. 첫 번째 LayerNorm 구성 요소에서 병리학적 행동을 관찰한 후, 1/root(D)로 조정된 가중치의 규범을 모니터링하기 시작했습니다.

v2.0에서 보수적인 하이퍼파라미터 선택을 적용한 결과, 약 42일간(~115,500회 반복) 매우 부드럽고 (다행히도) 사건이 없는 학습을 관찰했습니다. 훈련 및 검증 성능 곡선(그림 11 참조)뿐만 아니라 그래디언트의 규범에서도 놀라운 점을 거의 보지 못했습니다. 이 기간 동안 필요한 유일한 개입은 기본 플랫폼의 작업 기간에 대한 엄격한 제한으로 인해 28일 후에 작업을 다시 시작하는 것이었습니다.

C.3 Suspense


v2.0 훈련의 약 48일 후에, 검증 손실(validation loss)이 일주일 동안 개선되지 않았음을 관찰했습니다. (115,500번 반복에서 133,200번 반복까지, 그림 12 참조, v2.0 곡선). 동일한 기간 동안 훈련 손실도 주로 2.10 주변에서 안정화되었습니다(표준 흔들림은 있었습니다). 모델이 더 이상 제대로 학습하지 않고 있는 것으로 의심되어 개입하기로 결정했습니다.

두 가지 옵션 고려

1) 최대 학습률 변경,

2) 이전 체크포인트로 되돌아가 나머지 데이터를 재섞어 다른 최적화 경로를 찾는 것.

학습률을 변경하는 데 두 가지 제안이 있었습니다. 학습률을 증가시키는 이유는 지역 최적점에 갇혀있을 수 있는 가능성이었습니다. 옵티마이저가 더 큰 점프를 할 수 있게 하면 모델이 최적점을 벗어나 계속 학습할 수 있을 것입니다. 반면에 학습률을 감소시키는 이유는 Zhang et al. (2022a)에서 지역 최적점에 갇혔을 때 학습률을 축소한 후 개선을 관찰한 것에 기초하고 있었습니다. 또한, Chinchilla 스케일링 법칙을 따르기 때문에 BLOOM이나 GPT-3와 같은 모델과 비교하여 전체 학습률 스케줄의 고학습률 영역에서 더 많은 단계를 진행했습니다.
다른 옵션은 이전 체크포인트로 돌아가 나머지 데이터를 재섞어 훈련을 계속하는 것이었습니다. Chowdhery et al. (2022)는 검증 손실이 급증할 때 해당 급증이 시작된 약 100 단계 전의 체크포인트에서 훈련을 다시 시작하고 대략 200~500 데이터 배치를 건너뛰었습니다." 이것은 데이터 순서가 중요하며 나쁜 데이터/그래디언트 경로에서 벗어나는 것이 도움이 될 수 있다는 것을 시사합니다. 이것이 curriculum learning (v0.x)에서의 문제였을 수도 있지만 v1.0에서 해결한 다른 문제일 수도 있습니다.
결국, 우리는 학습률을 줄이고 검증 손실이 증가하는 추세가 시작된 7일 전으로 돌아가 나머지 데이터를 재섞어 훈련을 계속하기로 결정했습니다.
또한, 우리는 우리의 선택이 하나의 큰 개발 세트를 기반으로 하고 있다는 점에서 걱정되었습니다. 우리의 검증 세트는 2022년 7월 데이터만 포함하고 있었으며(약 105백만 토큰), 반면 훈련 세트는 2007년부터 2022년 6월까지 범위를 가지고 있었으므로 검증 세트는 약간 분포에서 벗어나 있었습니다. 우리는 미래 지향적인 평가를 보장하고 훈련 세트에 유출된 검증 데이터가 없도록하기 위해 이렇게 한 것이지만, 단 하나의 달 데이터만으로는 모델의 능력을 충분히 반영하지 못할 수 있으므로 검증 데이터를 과하게 맞추고 있다는 결정을 내릴 수도 있습니다. 우리는 훈련 데이터가 완전히 섞였기 때문에 이 검증 세트는 보유한 시간 기간이 아닌 것입니다.
검증 손실의 진전이 하향평가(evaluation) 성능의 진전 부재로 전환되는지를 평가하기 위해 두 가지 인기 있는 벤치마크를 사용했습니다: BBH의 다중 선택 하위 집합(bbhsub)과 MMLU 전체. 이들은 검증 손실의 변화가 실제 모델 개선을 추적하고 있는지에 대한 추가적인 확신을 제공했습니다. 이러한 벤치마크에서 체크포인트를 실행하는 데에는 검증 손실을 계산하는 것보다 훨씬 더 많은 시간이 걸립니다.

 

v2.0의 115,500번째 단계에서 시작
최대 학습률을 6e-5에서 4e-5로 줄임
v2.2

v2.0의 115,500번째 단계에서 시작
드롭아웃을 0.0에서 0.1로 증가시킴
v2.3

v2.1의 129,900번째 단계에서 시작
최대 학습률을 6e-5에서 2e-5로 줄임
드롭아웃을 0.0에서 0.1로 증가시킴
v2.4

v2.1의 129,900번째 단계에서 시작
최대 학습률을 6e-5에서 2e-5로 줄임
v2.5

v2.3의 137,100번째 단계에서 시작
최대 학습률을 6e-5에서 1e-5로 줄임
드롭아웃을 0.0에서 0.1로 증가시킴
v2.6

v2.1의 129,900번째 단계에서 시작
최대 학습률을 6e-5에서 2e-5로 줄임
가중치 감쇠(weight decay)를 0.1에서 0.01로 줄임

 

학습률을 낮추고 모델을 되돌리면 초기에 급격한 개선을 관찰했지만 검증 손실이 빨리 안정화되었습니다. 하향 평가 결과가 혼재되어 나타나면서 우리는 드롭아웃을 0.1의 확률로 처음으로 활성화하기로 결정했습니다. 드롭아웃을 적용한 결과, 예상대로 훈련 손실이 증가했습니다. 그러나 초기에는 검증 손실이 감소했습니다. 그러나 실행이 진행됨에 따라 검증 손실이 다시 상승하여 원래 실행(v2.0, 파란색)의 값과 만나게 되었습니다.

 

이러한 관찰을 토대로 학습률을 더 낮추는 것이 계속해서 성공적으로 학습을 이어나가기에 가장 좋은 기회를 제공할 것으로 판단했습니다. 우리는 그 후 학습률을 더 작은 값들로 조합해보았습니다. 학습률이 2e-5인 v2.3(빨간색)과 드롭아웃률이 0.1인 v2.5(갈색)를 고려해봅니다. 이 두 실행은 그림 12에 나와 있습니다. 표 20에서 우리는 v2.3이 퍼플렉서티(perplexity)가 훨씬 개선되고 약간 더 나은 하향 평가 성능을 보여주며, v2.5는 처음에는 v2.3과 비교하여 하향 평가 성능을 계속 개선하면서 퍼플렉서티를 약간 감소시킨다는 것을 관찰했습니다. v2.4(보라색)는 드롭아웃 없이 최대 학습률을 2e-5로 시도한 것입니다. 이때 유일하게 이상한 실행은 v2.6(분홍색)이며, 여기서는 가중치 감쇠를 0.01로 줄여보았습니다(원래 0.1). 그러나 이것은 거의 동일한 곡선을 생성하며, v2.4와 v2.6의 차이는 가중치 감쇠만 다르며, 동일한 곡선을 생성하기 때문에 v2.6은 그래프에서 완전히 감추고 v2.4는 보이지 않게 만듭니다.

요약적으로, 모든 실행(v2.0 요약 도표에 포함)은 검증 손실의 최종 안정화와 때로는 손실 증가라는 동일한 결과를 보였습니다. 특정 변경이 하향 평가와 검증 손실을 크게 개선하지 않았습니다. 이 시점에서 우리는 훈련 데이터의 77%를 사용하고 있으며 훈련에 할당한 예산이 거의 소진되고 있어 모든 훈련 데이터를 통과하지 않았음에도 불구하고 훈련을 종료하기로 결정했습니다. 또 다른 동기는 나중에 다른 유형의 훈련과 파인튜닝 실행에 남은 보이지 않는 훈련 데이터를 사용할 가능성이었습니다.

 

개인 생각

Finance 관련해서 LLM 만든 논문을 쭉 읽어 봤는데, 모델 구조 입장에서는 Attention 이나 LayerNorm(Embedding) 이 좀 변경된 부분이 있는 것 같다.

속도와 좀 더 장기적인 시퀀스를 효율적으로 처리하기 위해서 Attention에 Alibi를 추가한 것 같다.

저자들은 정말 다양한 실험을 해본 것 같고, 여러가지 학습이 잘 안되니, 다양한 스케줄링 방식으로 학습의 안정성을 높이려고 한 것 같다.

저 값을 하나 하나 무슨 기준으로 선택했는 지는 모르겠지만, 많은 실패가 있어보인다. 

특정 도메인에 잘하는 모델을 만들기 위해서는 모델이 고정되어있다면은 데이터도 중요하지만, 학습에 대한 스케줄링 전략이 중요해보인다.

 

 

참고

https://arxiv.org/abs/2303.17564

 

BloombergGPT: A Large Language Model for Finance

The use of NLP in the realm of financial technology is broad and complex, with applications ranging from sentiment analysis and named entity recognition to question answering. Large Language Models (LLMs) have been shown to be effective on a variety of tas

arxiv.org

https://medium.com/@pajakamy/alibi-attention-with-linear-biases-942abe042e9f

 

ALiBi: Attention with Linear Biases

Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation

medium.com

https://velog.io/@nawnoes/ALiBi-Postion-Embedding

 

ALiBi Postion Embedding

매우 간단하면서도 쉽게 적용가능한 Ralative position embedding의 한 종류인 ALiBi

velog.io

 

728x90