안녕하세요 시안입니다. 우리는 컴퓨터가 말을 듣고 이해하며, 대화하고 소통 할 수 있는 놀라운 시대를 살아가고 있습니다. 그 비밀은 바로 ‘대규모 언어 모델(LLM)‘에 있습니다. 대규모 언어 모델(LLM)은 여러분의 질문에 답하고, 소설을 쓰고, 책을 번역하며, 문서를 요약하는 등의 다양한 역할을 수행합니다. 우리의 세상을 변화시키고 있는 대규모 언어 모델(LLM)에 대해 소개하겠습니다.
1. 대규모 언어 모델(LLM)의 정의
대규모 언어 모델(LLM)은 딥러닝의 하위 집합으로, 사전에 훈련된 후 특정 목적을 위해서 정교하게 튜닝될 수 있는 범용언어모델(general-purpose Language model) 입니다.
대규모 언어 모델(LLM)과 생성형AI 는 모두 딥러닝의 일부입니다.
대규모 언어 모델(LLM)은 다음과 같은 언어 문제들을 해결하기 위해 훈련됩니다.
- 텍스트 분류
- 질문응답
- 문서요약
- 텍스트 생성
그런 다음 상대적으로 작은 사이즈의 필드 데이터 세트를 사용하여 소매, 금융 및 엔터테인먼트와 같은 다양한 분야의 특정 문제를 해결하도록 모델을 튜닝할 수도 있습니다.
2. 대규모 언어 모델(LLM)의 주요 특징
1. 대규모(Large)
LLM(Large Language Model)에서의 Large는 두가지 의미를 가지고 있습니다.
- 거대한(Large) 교육 데이터 set
- 학습데이터 세트가 방대하다는 의미로, 페타바이트 규모가 되기도 합니다.
- 거대한(Large) 규모의 파라미터 수
따라서 특정 조직만이 대규모 데이터 세트와 엄청난 수의 파라미터를 사용하여 대규모 언어 모델(LLM)을 훈련시킬 수 있는 능력을 가집니다. 그렇다면 그 조직에게 다른 조직이 사용할 수 있는 모델을 만들게 하면 어떨까요 ? 이 아이디어에서 도달한 결론은 pre-trained 와 fine tune 입니다. pre-trained 와 fine tune의 내용은 3번에서 살펴볼 수 있습니다.
2. 범용(General purpose)
대규모 언어 모델(LLM)은 대부분의 일반적인 문제들을 해결하는데 충분한 리소스를 가지고있습니다.
3. pre-trained 와 fine tune
pre-trained 와 fine tune : 일반적인 목적을 위해 거대한 데이터들로 대규모 언어 모델(LLM)을 사전훈련하고 특정 목적을 위해 아주 작은 데이터들로 미세하게 튜닝될 수 있습니다.
예를 들어 디지엠유닛원은 대규모 언어 모델(LLM)을 개발할 충분한 리소스를 가지고 있지 않으니 구글에서 사전훈련(pre-trained)된 범용적인 대규모 언어 모델(LLM)을 fine-tuning 하여 디지엠유닛원 조직의 목적에 부합하는 대규모 언어 모델(LLM)을 가질 수 있는 것을 의미합니다.
3. 대규모 언어 모델(LLM)의 이점
- 단일 모델을 여러 작업에 사용할 수 있습니다.
- 대규모 언어 모델은 페타바이트 데이터로 학습하고 수십억 개의 매개변수를 생성하므로 다양한 작업을 해결할 수 있을 만큼 똑똑합니다.
- ex) 언어 번역, 문장 완성 텍스트 분류, 질의응답 등의 작업을 수행합니다.
- 미세조정 과정에는 최소한의 필드 학습 데이터만 필요합니다.
- 대규모 언어 모델은 최소한의 필드 학습 데이터만 있으면 모델을 조정하여 특정 문제를 해결할 수 있습니다.
- 도메인 학습 데이터가 거의 없어도 괜찮은 성능을 얻을 수 있습니다. 이는 퓨샷(Few-Shot) 또는 제로샷(Zero-Shot) 시나리오에 사용할 수 있다는 것을 의미합니다.
- Zero-shot : 데이터가 없는 상태에서 새로운 class 에 대해 예측하고 분류하는 기술
- Few-shot : 제로샷보다 데이터가 약간 더 제공됨. 기존에 학습된 모델을 활용해 적은 데이터로도 새로운 클래스를 예측할 수 있도록 학습됨
- 대규모 언어 모델(LLM)의 성능은 지속적으로 개선되고있습니다.
4. Prompt design 과 Prompt engineering
Prompt design 과 Prompt engineering은 자연어 처리에서 밀접하게 관련된 두 가지 개념이며, 모두 명확하고 간결하며 유익한 프롬프트를 만드는 프로세스를 포함합니다.
Prompt Design
Prompt Design은 언어 모델에서 원하는 응답을 이끌어내는 프롬프트를 생성하는 프로세스로, Prompt Design은 Prompt Engineering 보다 일반적인 개념입니다.
- ex ) 시스템에서 텍스트를 영어에서 프랑스어로 번역하도록 요청하는 경우, 프롬프트는 영어로 작성되어야 하며 번역이 프랑스어로 되어야 한다고 지정해야 합니다.
Prompt Engineering
Prompt Engineering은 성능을 향상시키도록 design 된 prompt 를 만들어내는 과정으로, Prompt Design보다 더 전문화된 개념입니다. Prompt Design 은 필수적이지만, Prompt Engineering은 높은 정확도나 성능을 요구할때만 필요합니다.
- ex ) 도메인별 지식 사용, 원하는 출력 예시 제공 또는 특정 시스템에 효과적인 것으로 알려진 키워드 사용이 포함될 수 있습니다.
5. 대규모 언어 모델(LLM)의 Prompting 표현을 위한 3가지 방법
1. generic language model (일반 언어 모델)
이들은 훈련 데이터의 언어를 기반으로 다음 단어를 예측합니다.
일반 언어 모델이 예측하는 다음 단어, 즉 전문 용어로 ‘토큰’은 학습 데이터의 언어를 기반으로 합니다. 이것은 일반 언어 모델의 예입니다. 다음 단어는 학습 데이터의 언어를 기반으로 하는 토큰입니다. 예를 들어 ‘cat sat on’ 다음에 올 단어는 ‘the’여야 하는데, ‘the’가 다음 단어일 가능성이 가장 크다는 것을 알 수 있습니다. 검색에서 사용하는 ‘자동 완성’이라고 생각하시면 됩니다.
2. instruction tuned (명령어 튜닝)
입력에 주어진 명령에 대한 응답을 예측하도록 훈련하는것입니다.
fine-tuning 된 명령에서는 모델이 입력에서 제공된 명령에 대한 응답을 예측하도록 학습됩니다. 예를 들어, ‘x’의 텍스트를 요약하고 ‘x’ 스타일의 시를 생성하고 ‘x’에 대한 시맨틱 유사성을 기반으로 키워드 목록을 제공합니다. 이 예에서는 텍스트를 중립, 부정 또는 긍정으로 분류합니다. 조정된 대화에서는 다음 응답에 따라 대화하도록 모델이 학습됩니다.
3. dialogue tuned
다음 반응을 예측하여 대화를 하도록 교육합니다.
dialogue tuned 모델은 instruction tuned 모델의 특수한 사례이며 요청은 일반적으로 채팅 봇에 대한 질문으로 표현됩니다. dialogue tuned 모델은 더 긴 앞뒤 대화의 맥락에서 이루어지며, 일반적으로 자연스러운 질문과 같은 구문에서 더 잘 작동합니다.
Chain of Thought Resoning (생각의 연쇄적 추론)
생각의 연쇄적 추론은 모델이 처음에 답변의 이유를 설명하는 텍스트를 출력하는 경우 올바른 답을 더 잘 찾는다는 관찰 결과입니다. 또한 주어진 정보를 활용하여 여러 단계로 이어지는 추론과정을 거쳐 복잡한 문제를 해결하는 방법입니다.
- ex ) A는 B보다 크고, B는 C보다 작다
- 생각의 연쇄적 추론을 통해 “A는 C보다 크다.”라는 결론을 도출할 수 있습니다.
- 이러한 추론 과정은 한 단계씩 진행되며, 이전 단계의 결론이 다음 단계의 전제로 사용됩니다.
모든 것을 할 수 있는 모델에는 실질적인 한계가 있고, 작업에 맞춰 fine-tuning 하면 대규모 언어 모델(LLM)을 더 안정적으로 사용할 수 있습니다.
6. 매개변수의 효율적인 조정방법 PETM (Parameter-Efficient Tuning Method)
fine-tuning 은 비용이 많이들고 현실적이지 않은 경우가 많습니다. 더 효율적인 조정 방법이 없을까요? 있습니다.
PETM은 다중 언어를 지원하는 사전 학습 모델로, 기존의 pre-trained 모델을 활용하면서, 새로운 언어나 사용자 정의 데이터에 대해서도 적용할 수 있도록 하는 방법입니다. 일반적으로 pre-trained 모델은 주로 인기 있는 언어들에 대해서만 사전 학습되고, 새로운 언어나 특정 도메인의 언어에 대해서는 성능이 떨어지는 경우가 있습니다. 또한 기존 모델에 새로운 데이터를 추가하거나 변경하는 것은 복잡하고 비용이 많이 들기 때문에 어려운 일이죠. PETM은 이러한 문제를 해결하기 위해 고안된 방법으로, 기존의 사전 학습 모델을 변경하지 않고, 소수의 추가적인 계층(layer)을 조정하여 새로운 언어나 사용자 정의 데이터에 대해 성능을 향상시킵니다.
참고자료 및 출처 Generative AI learning path ※ 사용된 도표 이미지는 모두 구글 클라우드의 Introduction to Generative AI 강의 영상에서 가져왔습니다.