상세 컨텐츠

본문 제목

텍스트 분류를 위한 미세 튜닝

Developer/IT 도서

by cepiloth 2025. 11. 28. 17:22

본문

728x90
반응형

여러 가지 미세 튜닝 방법


  • 가장 일반적인 언어 모델 미세 튜닝 방법은 지시 미세 조정 및 분류 미세 튜닝입니다.
  • 이 장의 주제인 분류 미세 튜닝(Classification finetuning)은 머신 러닝에 대한 배경 지식이 있다면 이미 익숙할 수 있는 절차입니다. 예를 들어, 손글씨 숫자를 분류하기 위해 합성곱 신경망을 훈련하는 것과 유사합니다.
  • 분류 미세 튜닝에서는 모델이 출력할 수 있는 특정 개수의 클래스 레이블(예: "스팸" 및 "스팸아님")이 있습니다.
  • 분류 미세 튜닝된 모델은 훈련 중에 본 클래스(예: "스팸" 또는 "스팸아님")만 예측할 수 있는 반면, 지시 미세 튜닝된 모델은 일반적으로 많은 작업을 수행할 수 있습니다.
  • 분류 미세 튜닝된 모델을 매우 특수화된 모델로 생각할 수 있습니다. 실제로는 다양한 작업에서 잘 수행되는 일반 모델보다 특수 모델을 만드는 것이 훨씬 쉽습니다.

미세 튜닝의 목표는 다음과 같습니다:

  1. 텍스트 분류를 위한 데이터셋 준비.
  2. 사전 훈련된 LLM(대규모 언어 모델)을 미세 튜닝.
  3. 미세 튜닝된 LM을 평가하고 새로운 데이터에 적용하여 분류가 잘 되는지 확인하는 것입니다.

 

지시 미세 튜닝과의 차이점

일반적인 챗봇 사용(예: ChatGPT)에서는 모델에게 지시문을 추가하여 ("아래 텍스트가 스팸인지 아니냐고 물어보고 예/아니오로 대답해 줘") 응답을 유도할 수 있습니다. 하지만 토큰 샘플링 과정에는 확률적 요소가 있기 때문에 대답이 항상 '예' 또는 '아니오'로만 나오지 않을 수 있습니다.

반면, 분류 미세 튜닝은 전문적인 분류 작업을 장기간 실행하기 위해, 스팸/넌스팸과 같이 정해진 두 개의 클래스 레이블만 출력하도록 LLM을 만드는 과정입니다.

 

분류 헤드 추가 및 모델 수정


분류 작업을 위해 모델의 아키텍처를 수정해야 합니다. 특히 **마지막 출력층(선형 출력층)**을 수정하는 것이 핵심입니다.

모델 구조 변경 상세

  1. 기존 GPT 모델의 출력 구조: 사전 훈련된 GPT 모델은 텍스트 완성(다음 토큰 예측)을 위해 설계되었습니다. 트랜스포머 디코더 블록 12개를 통과한 최종 출력 벡터(단어 임베딩 크기인 768차원)가 최종 선형 출력층을 통과하여 50257개의 출력(어휘 사전 크기)을 생성합니다. 이 출력은 각 토큰에 대한 확률(로짓)을 계산하는 데 사용됩니다.
  2. 분류를 위한 출력 구조 변경: 스팸/넌스팸과 같이 두 개의 클래스 레이블만 출력하도록 모델을 수정해야 합니다.

    ◦ 768개의 입력을 받아서 2개의 출력 뉴런을 갖는 선형 계층(Linear layer)으로 마지막 층을 교체합니다.

    ◦ 이진 분류임에도 불구하고 뉴런을 두 개 사용하는 이유는, 일반적으로 GPT 모델의 옵티마이저나 손실 함수 세팅이 다중 분류(Multi-class Classification)를 기반으로 되어 있기 때문에, 이를 유지하며 훈련하는 것이 더 유용하기 때문입니다.

어떤 토큰의 출력을 사용할 것인가

모델이 여러 개의 토큰(가령 10개)을 입력받으면, 각 토큰에 대해 768차원의 벡터가 출력됩니다. 이 중 어떤 토큰의 출력을 사용하여 분류 예측을 수행할지가 중요합니다.

일반적으로는 마지막 토큰의 벡터를 사용합니다. 그 이유는 인과 마스킹(Causal Masking) 처리 방식 때문에, 가장 뒤쪽에 있는 토큰이 앞선 전체 텍스트에 대한 문맥 정보를 가장 많이 잘 담고 있기 때문입니다. 첫 번째 토큰은 미래 토큰에 대한 정보를 참고하지 못하지만, 마지막 토큰은 이전 모든 토큰의 문맥 정보를 충분히 기록하고 있습니다.

728x90
반응형

관련글 더보기

댓글 영역