[금융 LLM 시리즈 4] 금융 전문 AI 모델 선정과 학습 방법

금융 전문 AI 모델을 어떻게 학습해야 할까요? 일단 좋은 퀄리티의 금융 데이터도 확보해야 하지만, 파인 튜닝 전 파운데이션 모델도 잘 선택해야 합니다. 올거나이즈는 EEVE 모델을 선택해 QLoRA, Neftune, DPO 방법을 사용해 학습을 진행해 봤습니다. 금융 LLM 시리즈 4편, 금융 전문 AI 학습 방법에서 올거나이즈 AI팀의 고민과 진행과정을 공유합니다.

[금융 LLM 시리즈 4] 금융 전문 AI 모델 선정과 학습 방법

금융 LLM 시리즈는 온프렘 구축이 가능한 오픈소스 모델 중에서 성능 좋은 금융 AI 모델을 만들기 위한 올거나이즈 AI 팀의 고민과 진행 과정을 공유하고 있습니다.

앞서 아래 세 편을 소개해 드렸는데요.

  1. 좋은 금융 모델의 정의와 평가 방법론
  2. 데이터셋 구축과 학습 예시
  3. 금융 전문 LLM 평가 전략

이제 네 번째로 금융 전문 모델의 학습 방법을 올거나이즈 김지수 AI 엔지니어가 자세히 설명해 드리겠습니다.


파운데이션 모델 선택의 중요성

좋은 금융 모델을 만들기 위해서는 높은 퀄리티의 금융 데이터와 잘 계획된 모델 학습도 중요하지만, 모델 성능에 제일 큰 영향을 미치는 요소를 꼽자면 바탕이 되는 파운데이션 모델의 기존 성능이 학습 후 최종 성능에 가장 영향을 많이 미치게 됩니다. 따라서 학습의 바탕이 될 오픈소스 모델의 선정 기준을 크게 세가지로 잡았습니다.

  • 범용성: 모델 아키텍처가 새로운 기술에 유연하게 대응 가능하고, 오픈소스 커뮤니티에서 활발하게 사용되는지
  • 한국어 능력: 한국어 지식을 잘 갖추고 있으며(e.g. '철수'를 이름으로 보는가), 다른 언어가 나오는 오류가 빈번하지 않은지
  • 성능: 모델의 기본 성능이 뛰어나며, 파인튜닝 시 이런 성능을 유지하는 지

이런 기준에 따라 고른 모델은 다음과 같습니다.

  • Qwen-14B-Base
  • Orion-14B-Base
  • EEVE-Korean-10.8B

각 모델은 장단점이 꽤 뚜렷한 편입니다.
Qwen은허깅페이스에 올라온 모델만 해도 76개나 될 만큼 선택지가 다양하고, 다국어에 강점 또한 가지고 있습니다(24년 5월 현재).
Orion모델은 중국어, 영어, 일본어, 한국어 등 2.5T 다국어 코퍼스를 대상으로 학습했으며, 한국어 텍스트 데이터의 총량이 500억 토큰입니다. 한국어의 성능이 우수하고, 기본 성능도 기본 성능도 경쟁력 있는 편입니다.
EEVE는 Solar 모델에 한국어 토큰이 더해져 Stage를 이용해 학습된 모델로, 한국어 성능이 아주 뛰어난 장점이 있습니다.

이 후보 모델들은 금융 데이터로 학습되기 전에 먼저 Instruct 데이터셋으로 학습하여 정량적, 정성적 테스트를 거쳤습니다. 올거나이즈는 최종적으로 EEVE 모델을 중심으로 학습을 진행했습니다. 모델 선택뿐만 아니라, 산업 특화 파인 튜닝(Domain fine-tuning)을 하면서 맞닥뜨린 다양한 문제들에 대한 해결 방법에 대한 가설을 세우고 이를 진행하고 평가하여 해결하는 식으로 학습을 진행했는데요. 파운데이션 모델 선택에 대한 이야기는 여기까지로 줄이고, 모델 학습의 세부사항을 좀 더 자세히 설명 드리겠습니다.

금융을 이해하기 위한 모델 학습

올거나이즈는 학습의 빠른 프로토타이핑을 위해, 학습의 구체적인 설정을 Yi Technical Report(Yi: Open Foundation Models by 01.AI)를 참고하여 구성하였습니다. Yi의 경우 LIMA(LIMA: Less Is More for Alignment)의 ‘고퀄리티의 적은 데이터셋' 법칙을 따라서 학습되었지만, 올거나이즈 모델은 '도메인 지식 전달’이 파인튜닝의 중요한 부분이기 때문에 이 법칙에 따라서만 학습을 진행할 수는 없었습니다. 효율적인 지식 전달을 위한 고민이 사실상 학습 파트(의 고민)의 대부분이었습니다. 실험 과정은 다음과 같습니다.

지식 전달

‘파인튜닝으로 모델에 지식을 전달할 수 있는가?’는 명확히 정립되지 않은 논쟁거리 중 하나입니다. 특히 ‘LoRA 어댑터를 이용한 파인튜닝이 모델에 지식을 전달할 수 있는가?’는 더 복잡한 문제입니다. 데이터셋 구축 전략편에서도 언급했던 (Improving Domain Adaptation through Extended-Text Reading Comprehension) 논문을 보면, Full fine-tuning보다 오히려 256 Rank의 LoRA학습이 더 좋은 결과를 보여주었습니다(아래 이미지 참고).

하지만 Why Methods Like QLoRA Fall Short in Domain Knowledge Injection와 같이 Full fine-tuning의 성능이 더 낫다는 내용의 글 혹은 논문도 많으니 이 부분은 선택의 여지로 남겨두겠습니다.

위의 결론에 따라 올거나이즈의 금융 모델 알파-F(Alpha-F)는 QLoRA 256 랭크로 axolotl(GitHub - OpenAccess-AI-Collective/axolotl: Go ahead and axolotl questions )을 이용하여 H100 SXM*8장을 이용해 DDP로 학습되었고, DPO 학습은 unsloth(GitHub - unslothai/unsloth: Finetune Llama 3, Mistral & Gemma LLMs 2-5x faster with 80% less memory)를 이용하였습니다. DPO에 관해서는 뒤에서 좀 더 자세히 설명하겠습니다.

Human preference

올거나이즈 AI 팀은 모델의 도메인 성능도 중요하지만 생성 결과의 사용자 선호도(human preference)도 소홀히 해서는 안 된다는 공통의 의견이 있었고, 따라서 human preference(이하 HP)의 학습과 평가 부분도 진지하게 검토했습니다.

'생성 벤치마크'에 대한 진지한 고민과 적용은 금융 전문 AI를 위한 평가 전략에 자세히 나와있으니, 이번 글에서는 HP를 잘하기 위해 사용한 방법 두 가지-Neftune과 DPO-에 대해서 중점적으로 설명하겠습니다.

Neftune

Yi의 테크니컬 리포트를 보면, 추가로 neftune(NEFTune: Noisy Embeddings Improve Instruction Finetuning)의 alpha를 45로 두고 학습을 진행했는데요. 짧게 요약하면 임베딩에 노이즈를 줘서 학습을 시키면 generalize된 데이터의 영향으로 대답을 더 구체적으로 하게 되고, 이로써 AlpacaEval(GitHub - tatsu-lab/alpaca_eval: An automatic evaluator for instruction-following language models. Human-validated, high-quality, cheap, and fast.)에서 더 높은 승률을 보였다는 방법입니다. 흔하게 사용되는 방식은 아니지만 일단 올거나이즈팀도 동일 조건에서 neftune만 변경한채로 테스트를 진행했으며, 그 결과는 다음과 같습니다.

전체적으로 좋은 점수를 보이지는 않았고, 특히 출처 표기(citation)와 같이 포맷을 따르는 Task에서는 눈에 띄는 성능 저하가 보여서 이후에는 사용하지 않았습니다.

DPO

2023년 5월, Direct Preference Optimization: Your Language Model is Secretly a Reward Model 알고리즘이 발표되었습니다. DPO의 목표는 언어 모델을 인간의 선호도에 맞게 개선한다는 점에서 RLHF의 목표와 동일합니다. DPO는 인간 피드백을 통한 강화 학습(RLHF)의 직접적인 대안으로 제시되었으며 보상 모델이 필요하지 않기 때문에 많은 인기를 얻고 있는 방식입니다. DPO를 적용한 가장 유명한 모델 중 하나인 Mistral 기반의 7B 파라미터 언어 모델인 Zephyr가 그 예시인데요. 올거나이즈도 Alpha-F 모델의 개선을 위해 DPO를 테스트하고 적용하였습니다.

Preference 데이터셋으로는 argilla/dpo-mix-7k · Datasets at Hugging Face을 사용하였고, 그 결과는 다음과 같습니다.

DPO의 적용은 HP을 평가하는 내부 벤치마크에서도 뛰어난 성능을 보였기 때문에, 이후로도 모델 성능 향상의 중요한 열쇠로 자리매김할 것 같습니다. 일반적인 instruct 데이터셋으로도 금융 데이터셋 벤치마크에서 성능 향상이 있음을 보여줬습니다.

올거나이즈 팀은 오픈소스 커뮤니티를 항시 살펴보며 적용할만한 방식을 연구하고 저희 모델에 적용하는데요. 그 중에도 확실히 높은 잠재력을 보여준 방법이 있습니다.

Model Merging

모델 병합은 같은 아키텍처를 활용하는 두 개 이상의 모델을 활용하여 병합하거나 수정하여 새로운 모델을 생성하는 방식입니다. 가중치를 합치는 개념은 직관적으로 이해하기엔 어렵지만 성능면에서 우수하거나 독특한 새로운 모델을 만드는데 사용되는 방식입니다. 방식에 대한 자세한 설명과 사용법은 링크(GitHub - arcee-ai/mergekit: Tools for merging pretrained large language models.)를 참고하세요.

올거나이즈도 알파-F 모델을 다른 Instruct 모델과 병합을 테스트 해보았으며, 생성형 벤치마크 평가에서 꽤 유의미한 결과를 얻었습니다. 이 병합 방식에 대해서는 곧 다른 새로운 글과 모델로 만나보실 수 있습니다.


5편에서는 학습 파이프라인과 메타의 Llama 3 공개로 인한 여파에 대해 말씀드리고 금융 LLM 시리즈를 마무리하고자 합니다.

온프렘 금융 LLM 구축 방법 및 관련해 궁금한 점이 있으시다면 언제든지 올거나이즈에 문의 남겨 주세요.

Contact Us