관심 있는 NLP 논문을 읽어보고 간단히 정리했습니다.
혹시 부족하거나 잘못된 내용이 있다면 댓글 부탁드립니다 🙇♂️
[Microsoft, BIGAI]
- raw corpora로 continued pre-training을 수행하는 경우 도메인 지식은 늘어나지만 prompting 능력은 급격하게 감소함을 확인
- raw corpora를 reading comprehension texts로 바꾸는 간단한 방법을 제안
- 이는 어떤 종류의 pre-training corpora에도 적용 가능한 방식: 본 논문에서는 biomedicine, finace, law 분야에서 활용
출처 : https://arxiv.org/abs/2309.09530
1. Introduction
LLM이 주목을 받게 된 것은 굉장히 다양한 태스크에 대해 뛰어난 능력을 보여주었기 때문인데, 특정 도메인(분야)에서는 어쩔 수 없이 상대적으로 약한 모습을 보여 왔습니다.
당연하게도 LLM이 사전 학습 동안에 학습한 텍스트는 특정 분야에 국한되지 않는 범용적인 텍스트이기 때문입니다.
저희가 흔히 도메인이라고 부를 법한 영역에는 '법률, 의료, 금융' 등이 대표적인 키워드로 언급되고 있습니다.
하지만 언어 모델은 이런 분야의 데이터를 그렇게 많이 학습하지 못했고, 또 학습에 필요한 데이터를 확보하기도 쉽지는 않습니다.
어쨌든 특정 분야에서 LLM을 활용하고 싶어도 능력이 충분히 발휘되지 못하니 어려움을 겪고 있고, 이를 해결하기 위한 기존의 방법 중 대표적인 것 중 하나가 Domain Adaptive Pre-Training (이하 DAPT) 입니다.
아이디어는 굉장히 간단한 것이, 언어 모델의 기존 사전학습 방식인 Next Token Prediction을 이어 나가는 방식입니다.
최근 언어 모델의 학습 과정은 크게 사전학습(pre-training)과 사후학습(post training)으로 구분이 되는데요, 잘 알려진 fine-tuning은 사후학습 중 하나인데 학습 방식 자체는 크게 다르지 않지만 여기에 들어가는 데이터에 차이가 조금 있습니다.
이를테면 사전학습에는 위키백과에서처럼 쭉 설명하는 텍스트들이 많다면 사후학습에는 어떤 지시(instruction)를 따르도록 하는 구성이 많습니다.
직관적인 이해를 위한 간단한 예시 이미지는 아래와 같습니다.
보통은 특정 도메인에 관한 일반적인 지식을 모델에게 주입(instilling)하기 위해 전자를 택하는 경우가 많습니다.
그러나 본 논문에서는 이를 후자의 형식으로 바꿔 학습하는 것이 효과적임을 입증합니다.
그래서 LLM의 prompting 능력을 해치지 않으면서도 특정 도메인(biomedicine, finance, law)에 대한 지식까지도 획득할 수 있었다고 합니다.
2. Related Work
2.1. DAPT
LLaMA 모델을 biomedicine, finance, law 세 개 도메인 텍스트에 DAPT한 결과를 기존 LLM과 비교합니다.
DAPT를 통해서 각 도메인에 대한 지식이 확장되었음은 확실하지만, 반대로 Prompting 관련 능력이 소폭 하락한 것으로 확인됩니다.
이러한 문제점을 해결하기 위한 방식에 대한 연구 내용이 이 논문의 핵심 포인트라고 볼 수 있겠습니다.
2.2. Training from Scratch
finance 도메인에서 LLM을 scratch부터 학습하여 뛰어난 성능으로 주목을 받은 모델 중 BloombergGPT가 아주 유명합니다.
오직 이 분야를 잘 처리하기 위해 만든 모델이 무려 50B 사이즈를 자랑하니 얼마나 많은 공수가 들었을지 가늠이 잘 안됩니다.
그런데 결국 비용이 너무 많이 들어가다 보니 효율적인 방식이 아닙니다.
생각해보면 업데이트하기도 너무 힘들고..
세상에 뛰어난 능력을 보이는 LLM들이 많은데 이를 특정 도메인에 특화시키거나 지식을 불어넣을 수 있다면 좋지 않을까요?
2.3. Instruction Fine-tuning
question-answer 형식을 따라 학습하는 것으로 알려진 이 학습법은 아마 LLM 학습 방식 중 가장 사랑받는 것이 아닐까 싶습니다.
PLM을 직접 만들 필요도 없지만 학습 효과가 굉장히 뛰어나죠.
대신 특정 도메인에 특화시키는 것이 꽤 까다롭습니다.
학습에 필요한 데이터를 확보하기가 어렵기 때문입니다.
특히나 모델이 클수록 많은 양으 instruction fine-tuning 데이터가 요구되는데 특정 도메인 내에서 question-answer 형식을 갖춰 대량의 데이터셋을 구축하기란 쉽지 않은 일입니다.
2.4. Retrieval-augmented Prompting
언어 모델을 직접 학습하지 않고도 특정 도메인의 지식을 활용할 수 있도록 해주는 방법입니다.
처음에는 hallucination을 줄이기 위한 방법으로 많이 활용되었으나 지금은 모델의 능력과 지식을 확장하는 방식으로 널리 쓰이고 있습니다.
이 연구에서 중요하게 다루고 있는 내용은 아닙니다.
3. Adapting Large Language Models via Reading Comprehension
본 논문에서 제시하는 모델 학습 방식은 크게 두 단계로 나뉩니다.
우선 raw text를 "읽는(reading)" 단계와 이 내용을 "이해(comprehension)"하는 단계입니다.
이해 단계는 question-answering 형식을 따르고 있는데, 이는 input question에 대해 답하는 능력(prompting)을 따르도록 하기 위함입니다.
3.1. Creating Reading Comprehension Texts
pretraining corpora에 존재하는 intrinsic tasks를 획득하기 위한 방법은 이전 연구의 것을 따르고 있습니다.
(Kar et al. 2022, EMNLP 2022 main, https://aclanthology.org/2022.emnlp-main.509/)
이는 정규표현식 기반으로 intrinsic tasks를 mining하고 이를 모델에 fine-tuning 하여 zero-shot 성능을 높이는 방식입니다.
본 연구에서 추출하는 task를 종류별로 정리한 표는 아래와 같습니다.
3.1.1. Summarization
모델이 주어진 텍스트를 요약하도록 하는 태스크입니다.
'What is a summary?'와 같은 쿼리를 사용합니다.
여기서는 텍스트를 보고 제목을 맞히도록 하는 것과 동시에 반대로 제목을 보고 article을 작성해보도록 하는 것도 태스크로 사용하게 됩니다.
3.1.2. Word-to-Text
일부 키워드를 바탕으로 문장을 생성하는 태스크입니다.
특정 도메인과 관련된 vocabulary를 구축하기 위해 SentencePiece tool을 사용했다고 합니다.
raw text의 각 문장을 보고, domain-specific 단어가 세 개 이상인 문장을 Word-to-Text 데이터셋으로 사용합니다.
이를 응용하면 텍스트 내에 존재하는 특정 도메인과 관련된 단어를 추출하도록 만들 수도 있습니다.
3.1.3. Natural Language Inference
두 개의 문장을 대상으로 둘의 관계를 premise-hypothesis로 보고, 후자가 전자에 entailment 되는지 contradictory 일지 판단하는 태스크입니다.
이를 위해서 Therefore와 같은 연결어를 사이에 두고 있는 문장들은 'Entailment'로, However과 같은 연결어를 사이에 두고 있는 경우엔 'Contradictory'로 라벨링 합니다.
3.1.4. Common Sense Reasoning
"What is the reason of {SENT1}? {SENT2}" 와 같이 cause-and-effect logic을 갖추도록 하는 태스크입니다.
3.1.5. Paraphrase Detection
두 개의 문장이 의미적으로 동일한지 아닌지를 확인하는 태스크입니다.
여기서도 정규표현식 기반이고 특정 키워드(연결어)를 바탕으로 태스크를 추출한 것으로 보입니다.
그러나 일부 단어(Similarly)는 애매해서 두 문장이 의미적으로 동일하지 않은 경우도 존재한다고 합니다.
그래서 이를 한 문장이 다른 문장의 의미를 'support' 하는지 그렇지 않은지('different') 설명하는 태스크로 전환했습니다.
3.1.6. Text Completion
말 그대로 텍스트를 완성하는 태스크입니다.
주어진 텍스트 이후에 올 말을 알맞게 예측하면 됩니다.
이 태스크의 장점은 mining 이 필요하지 않다는 것입니다.
3.2. Mixing with General Instructions
본 연구에서 제시하는 방식만으로는 현실에 존재하는 다양한 태스크를 커버하는 것이 당연히 불가능합니다.
따라서 일반적인 instruction을 일정 비율로 포함하는 것이 더 좋은지를 확인한 결과도 포함되어 있습니다.
4. Experiment
4.1. Settings
4.1.1. Domain-adaptive Pre-training
Pile 데이터셋의 PubMed Abstracts & FreeLaw Opinion을 pre-training corpora로 사용합니다.
fiance 관련해서는 FinGPT의 코드 베이스를 사용하여 7천 개에 달하는 금융 뉴스를 수집했다고 합니다.
일반적인 instruction을 위해서는 LIMA, WizardLM, Orca 등을 사용했습니다.
실험은 LLaMA-7B 모델을 기준으로 진행했습니다.
4.1.2. Creating Reading Comprehension Texts
챕터 2에서 정리한 양식에 맞는 데이터셋을 사용합니다.
이때 특정 태스크가 지나치게 많이 등장하는 것을 방지하기 위해서 각 raw text에 대해 한 태스크가 최대 두 번만 추출될 수 있도록 제한합니다.
4.1.3. Domain-specific Tasks
- biomedicine
- PubMedQA, ChemProt, MQP, RCT, USMLE
- finance
- BloombergGPT, ConvFinQA, FPB, FiQA SA, Headline, NER
- law
- SCOTUS, CaseHOLD, UNFAIR-ToS, LexGLUE
4.2. Results
당연한 이야기지만.. 단순히 raw text로 continued pre-training을 했을 때에 비해 성능이 뛰어나다는 결과를 보여주고 있습니다.
언급된 세 개의 도메인에서 대표적인 베이스라인은 회색으로, 본 논문의 방법론을 적용한 AdaptLLM은 빨간색으로 표시되어 있습니다.
제일 기본이 되는 사전학습 모델은 초록색으로, 여기에 raw text를 이용하는 DAPT를 적용한 것은 파란색으로 표시되어 있습니다.
DAPT만 적용하더라도 성능의 향상이 소폭 있으나, domain 관련 knowledge를 습득하는 데 있어서 본 논문에서 제시하는 방식이 더욱 효과적이라는 것이 확인됩니다.
게다가 그림의 오른쪽을 보면 상대적으로 훨씬 뛰어난 prompting ability를 지녔다는 것 또한 할 수 있습니다.
기존 LLM과 DAPT 버전이 약세를 보이는 Summarize, Word-to-Text, Text Completion 태스크들은 주로 instrcution tuning과 같은 형식의 학습 방식에 크게 영향을 받는 것으로 보입니다.
즉, 단순히 다음 토큰을 예측하는 방식으로 얻어진 지식만으로는 수행하기 어려운 태스크라는 뜻이죠.
4. Conclusion
LLM을 특화시키는 것에 대한 수요는 요즘 엄청나게 높다고 느낍니다.
작은 기업들부터 큰 기업들까지 각자의 영역에 필요한 언어 모델을 얻고 싶어하죠.
하지만 처음에 언급했던 것처럼 언어 모델의 발전 방향 자체가 다양하고 범용적인 태스크들을 잘 처리하는 쪽으로 이루어져 왔다 보니, 그런 수요를 만족시키는 과정이 순탄하지는 않아 보입니다.
개인적으로 체감되었던 것은 Retrieval Augmented Generation에 대한 엄청난 수요입니다.
지난 해 중순부터 현재까지 제가 봤던 기업의 LLM 활용 방식 중에서 RAG를 빼고 이야기하는 경우는 거의 없었던 것 같습니다.
RAG 방식의 장점은 결국 LLM을 직접 학습하지 않아도 되므로 상당히 경제적이고, 또 학습용 데이터를 확보하기 어려운 분야나 태스크도 쉽게 처리할 수 있다는 것이죠.
물론 이에 대해서도 한계점이나 어려움에 대한 이야기가 끝이 없긴 하지만..
어쨌든 RAG는 기본적으로 언어 모델을 특정 분야에 fit 하게 만들어주는 것은 아니기 때문에 이와 같은 Domain Adapt 기법은 큰 의미를 갖는다는 생각이 듭니다.
RAG를 적용한다고 하더라도 단순 LLM보다는 해당 도메인에 특화되어 있는 LLM이 주어진 임무를 더 잘 수행할 것이라고 기대할 수 있겠죠.
특히나 여기서 언급하고 있는 도메인(법률, 의료/생명, 금융)은 또 자본이 많은 분야이기 때문에 앞으로 발전 가능성이 무궁무진할 것 같습니다.
한 가지 더 생각해 볼 수 있는 것은 본 연구에서와 달리 모델을 활용하여 task를 추출하는 것입니다.
여기서는 기존 corpora에서 task를 추출하기 위해 정규표현식 기반의 방법론을 사용했는데 여기에 많은 한계점이 존재할 거라고 생각이 들었습니다.
당연하게도 raw text에서 일관된 패턴과 규칙만으로 태스크를 추출하게 되면 모델이 학습할 수 있는 내용들이 너무 적을 것이고, 그렇기 때문에 일반적인(general) instruction tuning 데이터와 함께 섞어서 학습한 것이 더 좋은 효과를 보였을 것이라는 생각이 듭니다.
instruction tuning을 수행할 땐 최대한 다양한 종류의 태스크를 포함해야 한다는 것은 이미 잘 알려져 있으므로, 이를 위한 데이터셋을 만든다고 한다면 규칙 기반의 방법론보다는 모델 기반의 방법론이 더 효율적이지 않을까 하는 생각이 들었습니다.