반응형

1. 주요 개념

1.1. 언어 모델(LM)의 주요 변화

언어 모델(Language Model, LM)은 시간이 지나면서 지속적으로 발전하고 있습니다. 과거에는 통계 및 어휘 빈도 기반의 방법론을 채택한 Statistical LM(예시 : TF-IDF)를 활용했지만, 이는 제한적 활용만 가능하고 그때마다 전용 사전을 구축해야 하는 등 많은 비용이 소모됐습니다.

 

이를 극복하기 위해 단어를 고정된 크기의 벡터로 표현하고 딥러닝 기술을 적용한 Neural LM이 유행하기도 했습니다. 이는 여전히 일부 작업(감성 분석 등)에 활용되기도 하지만, 단어의 맥락 의미를 파악하는데 제한이 있기 때문에 여전히 부족했습니다.

 

Pretrained LM은 작업별로 Fine-tuning을 통해 목적별 모델을 구축하였습니다. 즉, 하나의 모델을 이용해 하나의 작업을 해결했고 GPT-1 & 2나 BERT 등과 같은 트랜스포머 초창기 모델이 그 예시입니다. 꽤 혁명적인 방법이었지만, 목적에 따라 사전학습된 언어모델에만 활용할 수 있었고 비교적 창의성을 요구하는 시스템에는 적용이 어려웠습니다.

 

이들을 모두 극복하고 등장한 것이 Large Language Model(LLM)입니다. LLM은 범용적인 작업이 가능한 LM으l로 사전학습 데이터 및 파라미터 수가 매우 큰 모델을 종합적으로 지칭합니다. 즉, 하나의 모델을 다양한 작업이 가능하기 때문에 현재 사용자들을 꾸준히 늘려가고 있고 지속적인 발전을 이룩하고 있습니다.

1.2. LLM 작동방식 구분

LLM은 프롬프트(prompt)를 입력받아 텍스트를 생성하는 작업을 수행합니다. 여기서 '프롬프트'란 LLM의 입력되는 데이터로 크게 수행할 작업을 설명하는 Description, 작업의 예시인 Demonstration, 그리고 입력 데이터 Input 3가지로 구분할 수 있습니다. 

 

LLM은 모델이 프롬프트만으로 작업을 수행하는 Zero shot learning과 예시(Demonstration)을 주고 작업을 수행하는 Few shot learning으로 구분됩니다. 이 두가지 학습의 개념은 이전에 이미지 분류 문제에서도 살펴본 적이 있었습니다. 그 당시에는 데이터의 양에 따라 구분하긴 했는데, LLM에서는 데이터가 프롬프트이기 때문에 프롬프트의 구성방식에 따라 학습을 나눌 수 있습니다. 

 

2024.09.19 - [노트/Computer Vision] - [CV] 이미지 분류 문제에 대한 분류 | Binary vs Multi-, Coarse vs Fine-grained, N-shot learning 까지

 

[CV] 이미지 분류 문제에 대한 분류 | Binary vs Multi-, Coarse vs Fine-grained, N-shot learning 까지

1. 문제 정의이미지 분류 문제는 주어진 이미지 데이터에 대해 사전에 정의된 클래스(혹은 '레이블')로 할당하는 문제입니다. 이미지가 가지고 있는 다양한 의미(색, 형태 등)를 해석해 클래스로

seanpark11.tistory.com

 

1.3. LLM 모델의 구조

LLM은 적은 데이터만을 갖고 있는 프롬프트를 통해 동작해야 하기 때문에 사전학습을 하는 것이 매우 중요합니다. 사전학습을 하는 방식은 모델의 구조 방식에 따라 달라지게 되는데, 모델 구조 방식은 크게 두 가지로 나눌 수 있습니다.

✅ Encoder-Decoder 구조

이 구조는 입력 데이터를 이해하는 Encoder와 문장을 생성하는 Decoder로 분리합니다. 대표적인 사전학습 방식은 Span Corruption인데 손상된 입력 문장의 일부를 복원하도록 생성하는 방식입니다. 간단한 절차는 다음과 같습니다.

 

1) 입력 문장의 임의의 span을 마스킹

2) 각 마스킹 id 부여

3) span corruption 된 문장을 인코더에 입력

4) 마스킹 id와 복원 문장을 디코더에 입력

5) 디코더가 복원된 문장 생성

✅ Decoder Only 구조

이는 단일 모델을 통해 이해 및 생성하는 방식으로 Language Modeling 으로 사전학습합니다. 이 사전학습 방식은 입력 토큰 기반으로 다음 토큰 예측해서 생성하는 것입니다. 사실상 현존하는 LLM은 Decoder Only 구조이기 때문에 우선 이 방식을 우선적으로 이해하면 될 것 같습니다. 

 

1) 토큰 단위로 입력

2) 토큰 마다 다음 토큰을 예측하도록 학습

2. LLM의 사전학습

2.1.  Corpus

GPT-3 이후 모델 크기가 점차 확장되면서 대형 모델을 훈련하기 위한 사전학습 Corpus 구축이 필요합니다. 여기서 Corpus란 말뭉치로 언어 연구를 위해 특정 목적을 가지고 추출된 텍스트 데이터 집합을 말합니다. LLM 사전학습에서는 목적이 훈련을 위한 데이터를 말하는 것이겠죠. 

 

Corpus를 수집하는 과정은 크게 다음과 같습니다. 세부적으로 살펴보면 어려운 점이 많겠지만, 큰 틀에서 보면 2단계로 비교적 단순합니다. 

 

1) 온라인에서 최대한 많은 데이터(원시 데이터) 수집

2) 불필요한 데이터(중복, 혐오, 개인정보 등)에 대해 정제 작업

 

여기서 정제 작업이 필요한 이유는 LLM이 정제되지 않은 데이터셋으로 학습을 하게 될 경우에는 모델이 데이터를 기억(Memorization)하게 되기 때문에 중복된 데이터를 많이 생성하게 되기 때문에 생성형 모델로 의미가 많이 떨어지게 되기 때문에 중복 텍스트는 지워줄 필요가 있습니다. 개인정보 역시 유출될 우려가 있기 때문에 지워줘야 합니다.  

2.2. Instruction Tuning 

LLM은 사용자들의 다양한 입력들에 대해 신뢰할 수 있는 대답을 제공해야 합니다. 혐오 등의 발언이 없이 안전(Safety)하면서도 이용자에게 도움(Helpfulness)이되는 답변을 하도록 Fine-tuning하는 과정이 Instruction Tuning입니다. Instruction Tuning을 위해서 다양한 연구가 이뤄졌는데, 여기서는 강화학습을 사용하는 방식을 기준으로 설명하고자 합니다.[2]

1️⃣Supervised Fine-Tuning (SFT) 

SFT는 광범위한 사용자 입력에 대해 정해진 문장을 생성하도록 Fine Tuning하는 과정입니다. 다양한 프롬프트에 대해 답변이 있는 학습데이터로 지도학습합니다.

2️⃣ Reward Modeling

Reward Modeling은 LLM 생성문에 대한 선호도를 계산합니다. 판별하는 학습 방법은 사용자의 다양한 요청 프롬프트를 LLM이 생성한 답변 후보를 입력하여 Helpfulness & Safety 만족도를 기준으로 점수 산출합니다. 

 

3️⃣ Reinforcement Learning with Human Feedback (RLHF)

RLHF는 광범위한 사용자 입력에 대해 인간이 선호하는 답변을 출력하도록 강화학습을 진행합니다. Reward Model이 높은 점수를 부여하는 답변을 선호도 높은 것으로 해서 점수를 높이는 방향으로 SFT 모델 학습을 시킵니다. 

3. 참고자료

[1] 강필성. "Text Generation 1: LLM Pretrained Models". boostcamp ai tech. 

[2] Ouyang et al. "Training language models to follow intructions with human feedback" 

 

반응형