AI

[LLM Pre-train, Fine Tuning] Pre-trained LLM과 Supervised Fine Tuning

lungjae 2025. 2. 14. 16:04

GPT, BERT, T5 등의 대규모 언어 모델들은 기본적으로 대량의 텍스트 데이터를 사전학습하여 언어의 패턴과 구조를 학습한다.

이 때 Pre-trained 모델만으로는 현실 세계의 다양한 Task를 완벽하게 해결하기 어려운 경우가 많다. 이를 위해 Fine Tuning의 작업이 필요하다.


Pre-trained 모델만으로는 부족한 이유

모델을 Pre-trained 하는 방식과 목적은, 방대한 양의 일반 텍스트 데이터를 통해 언어의 일반적인 특성을 학습하는것이다.

이를 통해 언어 자체에 대한 이해력을 가질 수 있게된다. 즉, 다양한 문맥을 이해하고, 문법적 규칙을 내재화하는 능력을 갖추게 된다.

 

하지만 이러한 모델은 단순히 일반 언어 이해에 초점을 맞추기 때문에, 특정한 Task에 필요한 미세한 조정이 이루어지지 않은 상태이다.

 

예를 들어, 번역, 요약, 감정 분석 등 특정 작업에서는 단순히 “자연스러운” 텍스트 생성 능력만으로는 부족하다.

각 Task마다 요구하는 출력 형식이나 정확도 기준이 다르기 때문에, Pre-trained 모델은 해당 Task에 대해 최적의 성능을 내지 못한다.

 

또한, 실제 서비스 환경에서는 모델이 사용자의 구체적인 요청(지시)에 따라 일관되고 정확한 답변을 내놓아야 하는데, 단순한 Pre-trained 모델은 단순히 사전학습한 내용을 기반으로 다음 올 단어로 가장 확률이 높은 단어를 예측하는것만 잘 할 뿐이지, 사용자가 원하는 형식과 스타일에 맞춘 응답을 생성한다고 보기에는 어려우며, 웹상에 존재하는 대량의 낮은 퀄리티의 Text 데이터를 학습한 것이기 때문에, 구체적인 Task 및 Domain에 대해 잘 알고있지 못한다.


Fine Tuning이 필요한 이유

이러한 지점을 해소하기 위해 별도의 Fine Tuning이 필요하다.

 

Fine Tuning은 Pre-train 모델에 특정 Task나 도메인의 데이터를 추가로 학습시킴으로써, 모델이 해당 Task에 대해 더 잘 동작하도록 한다.

 

즉, Pre-train을 통해 언어 자체에 대한 이해를 하고, Fine Tuning을 통해 특정 Task 및 Domain에 대한 지식을 배우게된다.


Supervised Fine Tuning

그 중에서도 Supervised Fine Tuning은 지도 학습(Supervised Learning) 방식을 활용하여, 모델이 입력에 대해 정답(또는 적절한 답변)을 내놓도록 학습하는 기법이다.

 

예를 들어, 번역 태스크라면 실제 번역된 문장들을 정답 데이터로 제공하여, 모델이 입력 문장을 올바른 타겟 언어로 번역할 수 있도록 만든다.

 

Supervised Fine Tuning의 목적은 다음과 같다.

  • 각 태스크에 맞는 형식(예: 번역, 요약, 질문 응답 등)을 모델이 학습하도록 함으로써 출력의 일관성과 정확성을 높인다.
  • 특정 도메인이나 태스크에 최적화된 데이터를 추가로 학습시켜, 단순 Pre-trained 모델이 놓치는 세부사항들을 보완한다.
  • 사용자의 구체적인 지시나 요구 사항(Instruction)에 맞추어 모델의 응답을 조정할 수 있게 한다. (Instruction Tuning)

예를 들어, 번역 시스템을 구축한다고 하자. Pre-trained 모델은 다양한 문장을 생성할 수 있지만, 번역 Task라는 구체적인 Task에 대해선 아직 최적화되어 있지 않다.

 

여기서 Supervised Fine Tuning은 다음과 같이 진행된다.

  1. 데이터 수집: 원본 문장과 그에 대응하는 정확한 번역문으로 구성된 퀄리티 좋은 데이터셋을 준비한다.
  2. 모델 파인튜닝: Pre-trained 모델에 이 데이터를 학습시켜, 주어진 입력 문장에 대해 올바른 번역문을 생성하도록 조정한다.

이와 같이, Supervised Fine Tuning은 모델이 특정 태스크에 대해 높은 정확도와 일관성을 보일 수 있도록한다.

 

최근의 Supervised Fine Tuning 데이터들은 대체로 Instruction Template형태(즉, Instruction-Input-Output형태)로 이루어져있다.

 

데표적인 데이터셋으로 Stanford Alpaca 데이터셋을 볼 수 있다.

Ref: https://github.com/tatsu-lab/stanford_alpaca/blob/main/alpaca_data.json

 

위와 같이 지시문(Instruction), 추가 정보(Input), 그리고 모델이 생성해야 하는 응답(Output)으로 구성된 데이터를 사용한다.

 

이런식으로 Instruction Tuning 데이터셋을 통해 모델은 단순히 ‘언어 생성’에 그치지 않고, 사용자의 지시(Instruction)에 더욱 정확하고 유용하게 반응할 수 있게된다.