-
논문 리뷰) Efficient Continual Pre-training for Building DomainSpecific Large Language ModelsAI 논문 리뷰 2024. 8. 18. 00:00
본 글은 [Open-Up] 오픈소스 소프트웨어 통합지원센터로부터 지원받아 작성하였습니다.
총평 :
- Pythia를 파인튜닝하여, 금융 분야에 특화된 FinPythia를 학습함.
- Continual Pretraining을 비용-효과적으로 수행하기 위한, 'Data-Selection' 전략을 제안함.
1) Task 데이터셋이 존재할 경우, Task 데이터셋과의 임베딩 유사도를 기준으로 Task-similar Domain 데이터셋을 구함
2) Task 데이터셋이 없을 경우, Perplexity(새로움)와 Entropy(다양성)를 기준으로 데이터 샘플링을 수행함.
- Task/Domain 데이터를 가지고 LLM에 task-adaptive 및 domain continual pre-training을 수행하는 것이 효과적임 보였음.
- Open-Domain에서도 성능 Degradation이 없다고 말하고 있으나, 이 부분은 개인적으로 동의하기 어려웠음
- Continual Pre-training 보다는 비용 효과적인 Domain Adaptation에 좀 더 비중있는 연구로 보임.
[ Abstract ]
전통적으로, 특정 도메인을 위한 LLM은 해당 도메인에 특화된 작업을 처리하기 위해 처음부터 새로 학습된다.
본 논문에서는 FinPYthia라는 금융에 특화된 LLM을 학습하였다.
여기서 continual pretraining을 위한 효과적인 'data selection' 전략을 제안하였고,이는 open-domain에 대한 degradation없이 금융 Task에 성능향상을 보였다.(라고 주장)
또한 이는 cost-effective 한 방법이다.[ Introduction ]
도메인 특화 LLM을 구축하는 접근 방식은 두 가지로 분류할 수 있다:
1. 처음부터 도메인 특화 LLM을 학습시키는 방법
2. 기존 LLM을 도메인 데이터로 계속적인 사전 학습을 통해 사용하는 방법.
대부분의 연구자들은 처음부터 도메인 특화 LLM을 구축하는 첫 번째 방법을 채택해 왔다.본 연구에서는 2번째 접근 방식에 관련하여, 다음과 같은 3개의 질문에 대해 탐구하였다.
1) domain-adaptive continual pre-training이 도메인 특화 LLM을 구축하는 데 도움이 되는가?
2) 더 효과적인 domain-adaptive continual pre-training을 위해 'data selection' 전략이 효과적인가?
3) domain-adaptive continual pre-training이 LLM의 범용(open-domain) 성능에 부정적인 영향을 미치는가?
이러한 질문에 답하기 위해,본 논문에서는 Pythia 모델을 기반으로 금융 도메인에서 계속적인 사전 학습을 거친 모델인 FinPythia를 훈련시켰다.
첫 번째 질문에 대한 답으로, Pythia가 학습한 데이터의 8% 크기의 도메인 데이터를 사용하여 계속적인 사전 학습을 수행한 후 금융 벤치마크 [33]에서 성능 향상을 보였다.
두 번째 질문에 답하기 위해, 우리는 두 가지 간단한 데이터 선택 기법, ETS-DACP와 ETA-DACP을 제안한다.
이 방법들은 선택된 도메인 데이터의 10% 또는 Pythia의 학습 말뭉치의 0.8%만으로도 도메인 적응 계속 사전 학습의 성능을 능가했다.
데이터 선택을 위해 similarity, perplexity, token type entropy의 세 가지 지표를 사용하였다.세 번째 질문에 답하기 위해 , MMLU와 TruthfulQA와 같은 네 가지 범용(open-domain) 표준 작업에서 도메인 학습한 모델을 평가하였다, 그 결과, 도메인에 적응하면서도 LLM이 여전히 범용적인 기능을 유지한다는 점에서 유의미한 성능 변화가 없음을 관찰했다.
따라서, 본 논문이 기여하는 바는 아래와 같다고 말한다.
첫째, 금융 데이터셋에서 수집된 160억 단어로 구성된 대규모 금융 말뭉치를 구성했습니다.
둘째, 계속적인 사전 학습을 통해 도메인 특화 LLM을 구축할 수 있는 가능성
셋째, 적은 학습 비용으로도 더 나은 성능을 달성하는 data selection이라는 새로운 domain adaptive continual pretraining 전략을 제안[ Methodology ]
2.1 Financial Corpus Curation
데이터 소스를 평가할 때 공개 가능성, 라이선스, 그리고 규모를 고려하였고 금융 말뭉치를 위해 두 가지 데이터 소스( Financial News CommonCrawl과 SEC 보고서)를 사용했다:
데이터 중복이 성능에 부정적인 영향을 미친다는 상반된 증거가 있지만 [4, 14],중복이 학습 데이터에 이점을 제공한다는 증거도 없기때문에, 더 효율적인 학습을 위해 [4]를 따르는 중복 제거를 사용했다그리고 그 중복처리 방법은 Pythia suite [4]의 중복 제거 절차를 따랐다.
( - Pythia 논문을 빠르게 훑었을때는 중복 제거절차가 보이지는 않았다. github에서도 그런 기능을 제공하지는 않았다.)
Data Curation에 관한 디테일한 부분은 Appendix E에 존재하는데, 읽어보면 아래와 같다.
<Appendix E>
collection에서 financial news를 판단하기 위해서, 2개의 필터링 장치를 사용하였다.1. domain filter
- 금융, 경제 및 비즈니스 뉴스에 주로 초점을 맞춘 신뢰할 수 있는 뉴스 매체에 해당하는 웹 도메인 포트폴리오를 구축.전체 데이터셋에서 큰 비중을 차지.
2. URL keyword filter
- 많은 웹뉴스들이 URL에서 하위 도메인을 지정한다는 점을 활용하여, 비즈니스, 경제, 금융 뉴스 전용 섹션을 긁어왔다.2.2 Domain-adaptive Continual Pre-training (DACP)
DACP는 언어 모델이 도메인 내 분포에 더 잘 적응하도록 하는 능력을 보여주었으며 [8, 12, 32, 21], 새로운 데이터가 등장함에 따라 새로운 지식을 습득할 수 있게 해왔다. [11, 10].
PRETRAINED LANGUAGE MODEL IN CONTINUAL LEARNING 논문 [32]에 따른,
기존의 DACP 방법론들을 보면 아래와 같다. (본 논문에서 제안한 방법과 비교군으로 활용될 예정)
(1) Vanilla : 이 방법은 이전 작업에서 학습된 모델을 초기화로 사용하고, 현재 작업에 대한 파라미터를 최적화한다. 이 기본 방법은 이전 작업의 데이터를 접근하지 않고 각 작업을 탐욕적으로 학습하므로, 심각한 망각 문제가 발생할 가능성이 크다. 이는 평균 정확도 측면에서 약한 하한을 제공한다.
(2) Joint: 이 방법은 전체 훈련 세트를 동시에 학습시키는 일반적인 지도 학습을 따른다. 따라서 Joint는 망각 문제를 겪지 않으며 성능의 상한을 나타낸다. (Replay based)
(3) EWC(Kirkpatrick et al., 2017): 이 방법은 중요한 네트워크 가중치의 업데이트를 느리게 하는 정규화 항을 손실 함수에 추가한다. (정규화 기반)
(4) HAT(Serra et al., 2018): 이 방법은 동적 아키텍처 방법으로, 네트워크에 추가 유닛을 할당하여 필요할 때 비타협성을 방지하는 휴리스틱 전략을 사용한다. (아키텍쳐 기반)
(5) ER : 이 방법은 리허설 기반 방법으로, 학습 배치에 이전 샘플과 현재 데이터를 교차 배치하여 학습한다. (Replay 기반)
(6) DERPP(Buzzega et al., 2020) : 이 방법은 리허설과 정규화 전략을 결합하여, 기억된 샘플의 예측 로짓이 변화하지 않도록 하는 하이브리드 방법이다. (Replay + 정규화 혼합)2.3 Task-Adaptive Continual Pre-training (TACP)
TACP는 특정 작업의 성능 향상을 목표로 하는 계속적인 사전 학습을 의미한다.
TACP는 BERT와 같은 소형 언어 모델의 맥락에서 연구되어 왔으며, 작업의 레이블이 있는 데이터와 레이블이 없는 데이터에서 언어 모델을 사전 학습시킴으로써 작업 성능을 향상시키는 것으로 나타났다. [8, 1, 6].
TACP는 대표적으로 ULMFiT(Universal Language Model Fine-tuning for Text Classification)에서 확인할 수 있다.
Pre-training한 general-domain 데이터가 아무리 다양하게 이루어져 있어도,target task의 데이터는 다른 분포를 이룰 것이기 때문에 fine-tuning을 해야한다.는 가정이다.
classification task를 위한 200개의 텍스트/레이블 쌍이 있다면, 해당 학습에서는 200개의 텍스트만을 활용하여 pretraining(MLM, autoregressive 등)하는 것이다.
더불어, Don’t Stop Pretraining: Adapt Language Models to Domains and Tasks 논문에서는
task domain에 맞게 pretraining하는 것은 LLM을 task 특화하게 만드는 효과가 있으며,Task Dataset으로 pretraining하는 것이 task 성능 향상에 직접적으로 기여한다는 것을 보여주었다.
task 데이터는 일반적으로 매우 획득하기 어렵지만,TACP는 BERT와 같은 소형 언어 모델에서 상당한 효과를 보여왔다.
그래서 TACP 또한 네 가지 금융 평가 작업에서 벤치마킹하여 제안한 방법과 같이 성능을 평가하였다.2.4 Towards an Efficient Domain-adaptive Continual Pre-training
TACP의 주요 제한 사항은 레이블이 없는 task 데이터만을 사용하여 작업 특화 LLM을 구축하는 데 중점을 두기 때문에 Foundation LLM을 구축하는 데는 한계가 있다는 것이다.
이러한 한계를 극복하고자, ETS-DACP(Efficient Task-Similar-DACP)는 DACP를 조정하여 특정 작업의 중요성을 강조함으로써 여러 작업을 위한 기초 LLM을 구축하는 것을 목표로 한다.
반면, ETA-DACP(Efficient Task-Agnostic-DACP) 는 더 일반적인 방법으로 도메인 말뭉치에서 가장 유용한 샘플을 선택하여 계속 사전 학습을 진행한다 (Task-Agnostic: Task와 무관한, Task를 몰라도되는)두 가지 시나리오를 고려할 수 있다. 바로 레이블이 없는 작업 말뭉치의 존재 여부이다.
첫째, Task Corpus가 존재하는 경우,Task Corpus (T)는 단일 작업이거나 여러 작업의 집합일 수 있으며, 이는 그림 1에서 빨간색 영역을 의미한다.
이때, data selection의 목표는 바로 LLM 모델의 사전 학습에 가장 유용한 부분 집합 D(이때, D⊂U) 를 선택하는 것이다.
또한, 선택된 Domain Corpus의 부분 집합이 Task Corpus보다 훨씬 크다고 가정한다.이는 pretraining 동안 domain에 align함으로써,
LLM이 Task에도 align될 수있을 거라는 아이디어에서 기인한 것이다.(Domain Adaption을 위한 학습에서 Task Align을 먼저 생각하는 이유는 잘 모르겠다)
잠시, 이후에 있을 Data Selection을 이해하기 위해서는
아래 Domain Adversarial Training of Neural Networks [7] 논문을 Background로 이해해야 한다.
Domain Adversarial Training of Neural Networks [7] 논문은 domain의 특성을 타지 않고 데이터에서 최대한 Task의 특성으로써만 feature를 뽑아, domain 특성을 타지 않게 Task를 수행하도록 한 이름 그대로 Domain Adversarial한 Training 기법이다.
DANN 아키텍쳐에 source domain과 target domain의 같은 Task 데이터를 인풋으로 넣었을때,즉 domain은 다르고 task만 같은 데이터를 인풋으로 넣었을때,
1) feature extractor에서 feature를 뽑아낸 뒤,
2) label predictor는 class를 예측하는 것을 수행하고(Task 중심),
3) domain classifier는 domain을 분류하도록 (domain 중심) 하였다.
이때, Loss 펑션 적용시 domain classifier에서의 loss에 -lambda를 곱해 feature extractor 가중치를 업데이트 하도록 한다.
이렇게 되면, feature를 뽑는데 있어, domain의 특성은 무관해지고 오롯이 task의 특성으로만 feature를 뽑게 되는 것으로 기대할수 있다.
그리고 위와 같은 학습 방식으로 domain 간의 거리(Domain Divergence)를 줄일수 있음을 수식적으로 증명하였다.이에 더하여, A conditional adversarial architecture 논문 [35]에서 최소 불일치 거리 d_HpΔHp(D,T)의 최적 상태는
도메인 분류기가 예측을 잘 못하는(무작위 예측) 상태이며, 이때는 최대 엔트로피 상태라고 증명하였다.
즉, 도메인 분류기가 더이상 예측하지 못할 정도로, task 중심의 Feature가 뽑힌 상태라는 것이다.해당 논문에서는 이러한 방식을 활용하여, 두 도메인(Target Data, T와 Task-similar Domain Data, D - 둘다 이미 금융 도메인인데, 왜 two domain이라는 표현을 쓰는지 모르겠다)에서 샘플의 표현이 가장 유사할 때, 즉 두 데이터셋 분포를 구분할 수 없는 무작위 도메인 분류기가 생성될 때 이 최대 엔트로피 상태가 달성된다고 주장한다.
이에 기반하여, 해당 논문에서는 작업 데이터셋 T와 가장 유사한 표현을 가진 샘플이 Task-similar Domain Data D라는 전략을 사용한다. (비약이 심하다)
결국 T와 임베딩값이 비슷한 샘플을 D라고 명명한셈이다.즉, 핵심은 Task 데이터셋을 통해 Task-similar Domain 데이터셋을 구하고자 하였고,
그 방법은 임베딩 유사도를 활용하였다는 것이다.
2.4.1 Efficient Task-Similar Domain-adaptive Continual Pre-training
앞서 설명한 방법으로,
도메인 데이터의 일부를 선택하여 작업 데이터에 훨씬 더 가까운 최적의 집합 D를 형성할 수 있다고 가정하였고,
이를 ETS-DACP라 칭하였다.
잘 알려져 있다시피 LLM을 미세 조정하는 데는 상당한 양의 instruction이 필요하며, 이는 생성하는 데 많은 비용이 든다.
ETS-DACP는 Task 데이터를 활용하여 Domain Corpus에서 유사한 샘플을 추출하여 Task-similar Domain Data를 획득하여, 유사 Instruction 데이터를 얻는 효과를 누릴수 있다.타겟 도메인과 작업에 밀접하게 정렬된 token을 통해 비지도 학습이 성능 향상으로 이어질 수 있다는 이전 연구에서 동기를 얻어 [8, 1, 6], 레이블이 없는 Task 데이터로 contunal pretraining 학습을 진행하면, 모델을 task token의 분포에 적응시킴으로써 타겟 task 성능에 유익할 것이라고 가정했다.
앞서 설명했듯이, Task 데이터와 Domain 말뭉치 샘플 간의 임베딩 유사성(코사인 유사도)을 사용하여 데이터 선택을 수행하는데, 전체 말뭉치에 대해 LLM을 사용하여 임베딩을 계산하려면, 전체 말뭉치에 대해 LLM을 사전 학습하는 데 사용되는 컴퓨팅 자원의 25% 수준의 비용이 발생한다.
이는 비용 비효율적이라고 판단하여, Spacy model을 채택하여 임베딩에 활용하였다.(Domain Specific하지 못한 임베딩 모델이 얼마만큼의 유사도를 판단해줄수 있을까? 이 또한 동의하기 어려운 부분이다)
2.4.2 Efficient Task-Agnostic Domain-adaptive Continual Pre-training
이전 경우는 작업 데이터가 제공되는 시나리오를 다루었으나, 이번에는 Task 데이터가 없는 시나리오를 탐색한다.
해당 방법은 LLM이 Task 데이터에 지나치게 맞춰지는 한계를 극복할 수 있다.사전 학습 도메인 데이터의 부분 집합에서 도메인 정보를 얻기 위해 두 가지 차원(새로움(novelty)과 다양성(diversity)) 이 중요하다고 가정하였다.
새로움(Novelty)은 LLM이 이전에 본 적이 없는 정보를 의미한다.
문서의 새로움 수준을 LLM이 기록한 perplexity을 기반으로 측정한다.
perplexity가 높은 문서는 원래의 학습 말뭉치에서 덜 나타났기 때문에 모델에 새로운 지식을 포함할 가능성이 더 크다
그러나 perplexity를 기준으로 평가할때, 상당한 비용이 발생하게 된다.추론시, 약 25%의 학습 컴퓨팅 자원이 필요하기 때문이다.
이 비용을 최소화하기 위해, Pythia70m을 대리 모델로 사용하였다.
샘플 데이터셋을 사용한 예비 실험에서 Pythia-1B와 Pythia-70m 사이의 Perplexity 사이에 0.97의 강한 상관관계를 발견했고, 대리 모델로 사용하는 것을 정당화할수있다고 생각하였다.다양성(Diversity)은 domain corpus에서 token type 분포의 다양성으로 간주하였다.
본 논문에서는 POS Tag 엔트로피를 활용하였다.
[데이터, noun] 뒤에 [검토, noun], [을, jko],..., [학습, noun] 중에 어떤 것이 올 확률이 높을까? 아마 비슷비슷하기 때문에 엔트로피가 크다고 볼수 있다. 반면에 [컴퓨-, noun] 뒤에는 [터, noun]나 [팅, noun]이 올 가능성이 크다. 따라서 엔트로피가 낮을 것이다. (이런 방식으로 형태소 분석도 가능해진다. 문자열이 연속될때 특정 문자열에서 엔트로피가 높다면, 단어의 경계선일 확률이 높다고 볼수 있기 때문이다.)
2.4.3 Data Sampling Strategy
data sampling을 위한 3가지 측정 기준은 아래와 같다. (중복 설명이므로 간단하게 표현하고 넘어가겠다)
1. 작업 데이터와의 유사성 (ETS-DACP)
2. 새로움을 표현하는 perplexity (ETA-DACP)
3. token type entropy로 측정된 다양성 (ETA-DACP)추가적으로, Sampling 가중치를 적용하는 방식에 있어서 Hard sampling과 Soft sampling으로 구분지었다.
- Hard sampling : 측정 기준에 따라 상위 k개의 샘플을 확정적으로 선택. 상위 k개 외는 제외시킴
- Soft sampling : binary 가중치가 아닌, soft 가중치를 적용하여 그림 1의 파란색 영역 바깥의 샘플도 볼 수 있게함.
( => 사전 학습 데이터에 약간의 다양성을 추가)
[ Experimental Setup ]
3.1 Evaluation tasks
모델 평가는 'FLARE 프레임워크' [33]를 활용하였다.
FLARE는 다양한 금융 작업을 포함하여 LLM 평가 프레임워크 lm-evaluation-harness를 지원한다.평가 Task는 아래와 같다.
- Financial Phrase Bank (FPB): FPB는 금융 뉴스에 대한 감성 분류 작업. 긍정적/중립적/부정적으로 구분
- FiQA SA: 금융 뉴스와 헤드라인을 기반으로 한 aspect based sentiment classification task.
- Headline: 금융 엔티티에 대한 헤드라인이 특정 정보를 포함하고 있는지에 대한 이진 분류 작업. 각 뉴스 기사는 “가격 여부”, “가격 상승”, “가격 하락”, “가격 안정”, “과거 가격”, “자산” 등 9개의 태그와 연관되어 있음.
- NER: 금융 명명 엔티티 추출 작업3.2 Training Setup and Infrastructure
Pythia SUITE [4]에서 1B 및 6.9B 파라미터 모델을 선택하였으며,
Pythia SUITE에서 제공하는 training setup을 활용하였다.
FinPythia-6.9B에는 1.2e-05의 학습률을, FinPythia-1B에는 3e-05의 학습률을 설정하였는데
망각을 완화하기 위해 작은 학습률을 적용하였다..
batch는 반으로 줄여 512로 하였다.Pythia에서 쓰인 fp16 말고 bf16을 적용하였다.
추가적으로 AWS SageMaker에서 DeepSpeed ZeRO를 활용하였다고 한다.
[ Results and Analysis ]
4.1 Domain-adaptive Continual Pre-training
모델에 대한 평가는 Fin Test(FiQA SA, FPB 등)와 Pile dataset에서 test 데이터로 이루어졌다.
여기서 Pile dataset이란, 아래와 같다.
Table1은 Fin Test에 대한 평가 결과이다.
BloombertGPT를 제외하고, FinPythia 7B가 제일 성능이 좋은 모습을 보였다.
BloombergGPT와의 비교에 대해서는
FLARE에서 확인한 테스트 결과와 BloombergGPT에서 보고된 결과는 직접적으로 비교할 수 없고,
BloombergGPT의 경우, 데이터 분할(학습/검증/테스트)과 prompt가 공개되지 않았기 때문에 비교하기 어렵다.라고 표현하였다.
또한, Figure2를 통해서 Fin test를 통한 손실 로그는 Pythia를 금융 도메인에 성공적으로 적응시켰음을 보이며,
Pile test의 경우, 손실의 경미한 증가를 보였다.라고 주장하였다.(Fin test의 loss가 0.4 줄어들고, Pile test의 loss가 0.2 증가하였는데 경미하다고 볼수있는 건가?)
또한, Pythia-6.9B와 FinPythia-6.9B가 생성한 정성적 예시로(Table 2)
FinPythia-6.9B가 금융 관련 질문에 대해 더 관련성이 높고 세부적인 응답을 생성하는 것과 2021년 이후에 대한 지식이 업데이트 된 것을 확인할 수 있었다.4.2 Efficient Domain-adaptive Continual Pre-training
본 논문에서 제안한 ETS-DACP / ETA- DACP 방법론과 TACP, DACP, base 모델과의 금융 도메인 성능을 비교한 결과이다.
추가된 실험 군에 대한 설명은 아래와 같다.
- ETADACP-ppl은 perplexity를 사용하는 ETA-DACP를 의미
- ETADACP-ent는 엔트로피를 사용하는 ETA-DACP를 의미
- ETS-DACP-com은 ETS- DACP에 퍼플렉시티, 유사성(similarity), 엔트로피의 세 가지 지표를 모두 평균하여 데이터 선택을 수행해본 것. (추가적으로 해본듯 하다)이 결과는 라벨이 없는 Task 데이터를 가지고 LLM에 task-adaptive 및 domain continual pre-training을 수행하는 것이 효과적임을 뒷받침하며, 이는 다른 모델 유형에서 관찰된 결과와 일치한다 [1, 8]
또한, 도메인 데이터의 10%(2.39B)는 Pythia가 원래 학습한 3,000억 개의 토큰 중 1% 미만에 해당한다.
적은 학습량을 통한 도메인 성능 향상은 continual pre-training 과정에서 데이터를 선택적으로 선별하는 것이 적은 비용으로 도메인 성능에 큰 영향을 미칠 수 있음을 보여준다.
Table 4는 가장 핵심이 될 Open-Domain에서의 성능 변화여부를 보여준다.
본 논문에서는
Table 4 shows the performance on the standard four non-finance tasks. We do not observe any significant change in the performance on the four out-of-domain tasks except for DACP with 100% data
라며 성능 Degradation이 없다고 표현하고 있다.
그러나, 개인적인 견해로는 Foundation 학습량의 1% 미만의 Domain Adaptation 학습량으로
성능 Degradation은 그 이상을 보이는 것 같다.
가장 아쉬운 대목이다.
728x90'AI 논문 리뷰' 카테고리의 다른 글