어쩌다데싸
LLM(Large Language Model)이란? 본문
회사에서 sLLM 모델을 Fine-Tuning 하는 미니 과제를 받게 되었습니다. 이번 기회로 NLP에 대한 글을 차근차근 작성해 보려하는데, 그 시작으로 최근 가장 핫한 주제 중 하나인 LLM에 대한 기본적인 개념을 정리해보겠습니다.
1. LM (Language Model)
LLM에 앞서 LM에 대해 먼저 알아 보겠습니다. 언어 모델(Language Model)은 기계에게 언어를 학습시키기 위해, 단어 시퀀스(문장)에 확률을 할당하는 모델입니다. 이전 단어들을 기반으로 다음으로 올 단어들의 확률을 계산해서 자연스러운 문장을 만들거나, 양쪽의 단어들로부터 가운데 단어를 예측하는 등의 언어 모델들이 있습니다.
LM에 대한 연구는 지속적으로 진행되고 있으며, 크게 4가지 개발 단계가 있습니다.
- 통계적 언어 모델(SLM) : 제한된 양의 텍스트 데이터를 학습해서, 작업 전반에 걸쳐 국소적인 문맥을 이해하는데 초점을 맞춥니다. 작은 규모에도 불구하고, SLM은 가볍고 실행 속도도 빠른 특징을 갖고 있습니다.
- 신경 언어 모델(NLM) : 순환 신경망(RNN)과 같은 신경망을 통해 단어 시퀀스의 확률을 특성화하는 모델을 의미합니다. 기존 SLM보다 더 정확한 성능을 제공하며 주로 단어 임베딩, 문장 완성, 기계 번역 등 다양한 NLP 작업에 사용됩니다.
- 사전 학습된 언어 모델(PLM) : 대규모 언어 데이터셋을 사전에 학습한 모델을 의미하며, 다양한 NLP 작업에 전이학습(Transfer Learning)을 통해 적용됩니다. 많이 들어보셨을 BERT와 GPT 같은 주요 모델들이 PLM에 속하게 됩니다.
연구자들은 PLM을 확장하면서 다운스트림 작업(사전훈련된 모델을 사용해서 풀어야 할 구체적인 과제)에서 모델 용량이 향상될 수 있다는 사실과, 소규모의 PLM과 다르게 대형 PLM이 일련의 복잡한 작업을 해결할 때 훨씬 좋은 성능을 보인다는 점을 발견했습니다. 이러한 대형 PLM을 두고 '대규모 언어 모델(LLM)'이라는 용어를 사용하기 시작해 LLM이 4가지 개발 단계의 마지막인, 현재 언어 모델의 최종 개발 단계라고 할 수 있습니다.
2. LLM (Large Language Model)
LLM은 트랜스포머 모델을 사용해 방대한 양의 데이터를 기반으로 사전 학습된 초대형 딥러닝 모델로, 하나의 모델이 챗봇, 문서요약, 언어번역 등 여러가지 다른 Task들을 수행할 수 있습니다. LLM 모델들은 대용량의 언어 학습데이터를 확보해야 하고, 수 천 억 개의 파라미터를 가지고 있어 고성능의 GPU가 필요하기 때문에 모델을 학습시키는데는 진입장벽이 높습니다. 이러한 이유로, 최근에는 오픈소스로 공개된 LLM 모델을 자신들의 데이터로 Fine-Tuning 하는 작업이 활발히 이루어지고 있습니다.
여기서 NLP와 LLM 개념을 짚어 보면, NLP는 인간의 언어를 이해하고 처리하는데 초점을 맞춘 인공지능 분야로, 문장 구문 분석, 텍스트 분류, 기계 번역, 질의응답, 감정 분석 등 다양한 텍스트 데이터에 관련한 Task들이 있습니다. LLM은 NLP의 Task들을 수행하는데 사용되는 대규모 자연어 데이터셋으로 사전에 훈련된 '대용량 언어 모델'로, LLM 덕분에 자연어 처리 기술 성능이 크게 발전했습니다.
그림의 나무에서 볼 수 있듯이, LLM 모델은 크게 인코더-디코더 모델, 인코더 모델, 디코더 모델로 나눌 수 있습니다. 개발 초기에는 디코더 전용 모델이 다른 방식에 비해 인기가 없었지만, 2021년 이후 GPT-3가 도입되면서 디코더 전용 모델이 주목받게 됐습니다. 다만, GPT-3의 도입과 함께 기업들은 PaLM, LaMDA, GPT-4와 같은 모델을 클로즈 소싱하며 점점 폐쇄적인 경향을 보였는데, 그러던 중 메타가 오픈소스로 LLama를 공개하며 해당 연구를 촉진시켰습니다. 구글이 크게 기여한 인코더-디코더 모델은 대부분 오픈소스이고 현재도 활발히 연구가 진행되고 있지만, 디코더 모델의 유연성과 다양성으로 인해 비교적 관심이 떨어지고 있습니다.
다음으로는, 각 유형별 모델의 특징과 대표적인 LLM을 간략하게 정리한 표를 살펴 보겠습니다.
Characteristic | Models | |
Encoder-Decoder or Encoder-only (BERT-style) |
- Training : Masked Langauge Models - Model Type : Discrimivative - Pretrain task : Predict masked words |
BERT, RoBERTa, ALBERT, T5, GLM ... |
Decoder-only (GPT-Style) |
- Training : Autoregressive Language Models - Model Type : Generative - Pretrain task : Predict next word |
GPT-3, OPT, PALM ,BLOOM, LLama... |
1) BERT 스타일 언어 모델 : 인코더-디코더 또는 인코더
주변 문맥을 고려해 문장에서 마스킹 된 단어를 예측하는 훈련 패러다임을 마스크드 언어 모델이라고 하는데, 이러한 유형의 훈련을 통해 모델은 양방향으로 문맥을 학습하며 단어와 단어가 사용되는 문맥 간의 관계를 심층적으로 이해할 수 있게 됩니다. 이러한 모델은 Transformer 아키텍처와 같은 기술을 사용해서 대규모 텍스트 말뭉치를 학습해 감정 분석, 명명된 개체 인식 등과 같은 NLP Task에서 최첨단 결과를 달성했습니다. 마스크드 언어 모델의 대표적인 예는 BERT, RoBERTa, T5 등이 있습니다.
2) GPT 스타일 언어 모델 : 디코더 전용
GPT는 트랜스포머의 디코더 부분만을 사용해 앞의 단어들로 다음 단어를 생성해서 학습하는 자동회귀 모델입니다. GPT 연구자들은 한 번의 사전 학습으로 다양한 과제에 적용할 수 있는 모델을 만들고자 했고, 이를 위해 다양한 작업을 수행하는데 도움이 되는 자료들을 넓은 범위에서 구하고 사람과 기계를 통해 품질을 검증한 데이터셋을 구축하는데 집중했습니다. 한편으로는, 디코더가 문장을 '생성'해내는 부분이라는 점을 이용해 모델이 해야 할 일을 설명하는 부분을 문장의 시작 부분으로 넣는 시도를 통해 다음 문장을 생성하게 했습니다. GPT-3에서는 이를 'In-context learning'이라고 명명했고, 모델의 답변 정확도를 높이기 위해 질문과 함께 주는 답변 예시가 많아야 3~4회이기 때문에 'Few-shot Learning'이라고 불렀습니다. 현재는 Chat-GPT처럼 어떠한 예시도 없이 답변하는 'Zero-shot'도 가능해질 정도로 발전했고, 텍스트 생성 및 질문 답변과 같은 텍스트 생성 다운스트림 작업에서 널리 사용되고 있습니다.
최근에는 디코더 모델들이 LLM 개발을 주도해가고 있는데, GPT-3은 GPT-2와 기본 구조는 거의 동일하고 LLama와 PaLM도 기본 트랜스포머 구조에서 크게 바뀐 것이 없다고 논문에서 언급했습니다. 그럼에도 성능이 좋아진 이유는 바로 파라미터의 수입니다. 첫 GPT의 파라미터 수는 1700만 개였는데, 최근에 발표된 GPT-4는 1조 8천 억 개의 파라미터를 갖고 있다고 알려져 있습니다. 구글의 PaLM의 파라미터 수도 5400억 개고, 그나마 파라미터 수를 줄이려고 노력한 LLaMA는 700억 개의 파라미터를 가지고 있습니다. LLM 관련 모델을 보게 되면 13b, 7b 등의 숫자를 보게 되는데 이것이 바로 해당 모델의 파라미터 수를 의미합니다.
3. LLM 작동 방식
LLM은 딥러닝의 방식으로 방대한 양을 사전 학습(Pre-Trained)한 전이학습(Transfer) 모델입니다. 문장에서 가장 자연스러운 단어 시퀀스를 찾아내기 위해 딥러닝 기술을 사용해 문장에서 단어와 구문을 인식하고, 이를 연관시켜 언어적 의미를 파악할 수 있습니다. 이 때, 모델은 우리가 문장을 이해할 때처럼 문법 규칙이나 단어의 사전적 의미와 같은 규칙을 고려하는 것이 아닌 학습한 데이터에서의 빈도수나 문법적인 특성을 학습해서 문장을 생성합니다.
예를 들어, '오늘 날씨는 어때?' 라는 질문을 던졌을 때 우리는 당연히 '맑음', '흐림' 등의 대답을 기대하지만 모델은 이 문장이 질문인 것을 알 수 없기 때문에 학습한 데이터에 따라 '오늘 날씨에 대해 궁금해' 등의 후속 문장이 나올 수도 있습니다. 기억해야 할 것은, LLM은 대화시스템이 아닌 데이터를 통해 학습된 이어질 단어들의 확률을 예측하는 모델이라는 점입니다. 딥러닝 모델을 공부할 때면 종종 느끼지만, 인간이 쉽게 할 수 있는 일도 AI가 해내기 위해서는 '패턴'을 학습시켜야 하는데 이 점이 참 어려운 것 같습니다.
LLM 모델들의 근간이 되는 Transformer 모델에 대해서는 다음 포스팅에서 구체적으로 다뤄보도록 하겠습니다.
4. sLLM의 등장
LLM은 다양한 소통이 필요한 상황에 적합해서, 이를 기반으로 산업 전반에 AI가 활용되는 범위가 넓어졌습니다.
사람이 수행하는 수많은 작업을 자동화할 수 있고, 6시면 종료되는 고객센터 대신 24시간 답변이 가능한 챗봇을 만들수도 있습니다. 인간의 고유 영역이라고 느꼈던 '창작' 영역도 가능해졌습니다.
수 천 억 개의 파라미터가 있는 LLM 모델을 직접 구축하는 것은 어렵지만, 오픈소스로 공개된 기초 모델을 사용하고 싶은 산업/분야에 대한 데이터로 Fine-Tuning 해 사용하는 연구는 계속되고 있습니다. 앞서 언어 모델은 '대화시스템'이 아닌 단어 확률을 학습한다고 언급했지만, 거대한 데이터를 학습시킨 LLM 모델은 하나의 대화형 시뮬레이션으로 성장하고 있습니다. 이러한 모델과 도메인 지식을 잘 활용하면 기업 맞춤형 솔루션을 구축하는 등 다방면으로 활용도가 높아지게 되는데, 덕분에 글로벌 기업뿐만 아니라 우리나라 기업들도 LLM에 대해 적극적으로 투자하고 있는 상황입니다.
하지만 LLM의 수 천 억 개의 파라미터에 대한 부담으로, 최근에는 꼭 파라미터 수가 많아야만 성능이 좋을까에 대한 연구도 진행되고 있습니다. 매개변수가 많을수록 성능이 높아지고 더욱 정교한 기능을 수행할 수 있지만, 때로는 비즈니스 목표에 맞게 최적화 된 경량 모델을 이용하는 것이 더 유리할 수 있습니다. 이러한 배경에서 등장한 게 바로 소형 언어 모델(sLLM) 입니다. sLLM 모델은 파라미터가 수 십 억 혹은 수 백 억대로 비교적 크기가 작은 언어 모델을 말합니다.
이 sLLM이 주목을 받기 시작한 건 올해 초 메타에서 '라마(LLaMA)'가 공개되고 부터인데요, 메타는 라마를 파라미터 수에 따른 4가지 버전을 공개했는데 그 중 가장 작은 모델은 파라미터 수가 70억 개의 불과했습니다. 오히려 작은 파라미터 수를 내세워 다른 모델 용량의 1/10이 된 점과 훨씬 적은 컴퓨팅 파워로도 사용할 수 있는 실용성을 강조했고, 이러한 강점을 살려 오픈소스 형태로 공개 했습니다. 훨씬 적은 파라미터 수를 사용했지만 연구진에 따르면 GPT-3.5와 비교했을 때 질적으로 비슷한 성능을 보이며 sLLM에 대한 기대감을 높였습니다. 경량화를 통해 운영 비용을 줄이고 대신 자신의 산업 분야 등의 데이터로 특화된 모델을 만들고자 하는 접근법이 새로운 트렌드로 떠오르고 있습니다.
현재 진행하고 있는 sLLM 모델인 LlaMA2를 튜닝해 보는 과제의 배경도 공공기관 등의 프로젝트에서 해당 기술을 요구하는 곳이 늘어남에 따라 해당 역량을 미리 갖추기 위해서였습니다.
이렇게 LLM에 대한 기본적인 개념을 알아 보았습니다. 여전히 낯선 단어들도 보이는데요, LLM을 본격적으로 이해하기 위해 다음 포스팅은 Transformer 모델의 인코더-디코더 방식에 대해 정리해 보겠습니다.
< Reference >
1. The Practical Guides for Large Language Models https://github.com/Mooler0410/LLMsPracticalGuide?fbclid=IwAR2jeFAXvKfGh6FGVovC7M5ww2PJgaWpawGAsHf61ISJ8owoBKRcOU5an5M
2. LLM이란 무엇인가? - 정의, 원리, 주요 모델, 적용 사례 https://www.thedatahunt.com/trend-insight/what-is-llm#wae-llm-rarge-ranguage-model-i-jungyohalkka
3. [번역]거대언어모델(LLM) 가이드 https://brunch.co.kr/@brunchgpjz/50
4. LLM (Large Language Model)의 현재와 미래 https://blog.testworks.co.kr/present-and-future-of-large-language-model/
5. 작지만 오히려 좋아! 소형 언어 모델(sLLM) https://www.igloo.co.kr/security-information/%EC%9E%91%EC%A7%80%EB%A7%8C-%EC%98%A4%ED%9E%88%EB%A0%A4-%EC%A2%8B%EC%95%84-%EC%86%8C%ED%98%95-%EC%96%B8%EC%96%B4-%EB%AA%A8%EB%8D%B8sllm/
'Generative AI' 카테고리의 다른 글
LLM - Fine Tuning(미세조정) (0) | 2024.03.17 |
---|---|
LangChain으로 RAG 구현하기 (0) | 2024.02.04 |
Transformer 쉽게 이해하기 1편 (2) | 2024.01.21 |