Skip to main content

[LLM] 19. 파인 튜닝 개요


파인 튜닝


파인튜닝이란 사전 학습된 LLM을 특정 task에 맞게 추가로 학습시키는 과정입니다. LLM은 대규모 데이터셋에서 학습되어 일반적인 언어 패턴을 이해하지만 특정한 분류 작업을 수행하려면 추가적인 학습이 필요합니다.

파인 튜닝 유형

  1. Classification Fine-Tuning (분류 파인튜닝)
  • 정해진 카테고리 중 하나를 예측하는 작업
  • ex: 감성 분석, 스팸필터 등..
  1. Instruction Fine-Tuning (명령어 파인튜닝)
  • LLM이 특정 명령을 이해하고 원하는 방식으로 답변하도록 훈련
  • ex: 챗봇, 고객 지원 등..

결론

파인튜닝은 다음과 같은 경우에 필요합니다.

  • 모델이 특정 도메인의 데이터를 이해해야할 때 (법, 의료기록)
  • 일반적인 LLM보다 높은 성능 필요한 경우

파인튜닝 준비방법


파인튜닝을 하려면 데이터를 준비해야합니다. 데이터 준비과정은 다음과 같습니다.

  1. 데이터 수집
  2. 데이터 전처리
  3. 데이터 나누기 (훈련, 검증, 테스트)
    • 훈련 데이터는 80% : 모델 학습 데이터
    • 검증 데이터는 10% : 학습 중 모델 성능 평가
    • 테스트 데이터는 10% : 최종 성능 평가

데이터 로더


PyTorch의 DataLoader는 대량의 데이터를 효과적으로 처리할 수 있도록 도와줍니다.

학습 과정에서 한 번에 모든 데이터를 메모리에 올릴 수 없기 때문에 배치단위로 데이터를 불러와 모델에 전달하는 방식이 필요합니다.

  • 기능

    • 데이터를 배치 단위로 나눠서 모델에 전달
    • 셔플링을 지원하여 학습 성능 향상
    • 병렬처리로 빠르게 데이터 로딩
  • 과정

    1. 데이터셋 정의
    2. 데이터 로더 생성
    3. 배치 인덱싱을 위한 collate function 활용

사전 학습 모델로 초기화


새로운 모델로 학습하는 것은 매우 많은 데이터와 연산 비용이 필요합니다. 사전 학습된 모델을 사용하여 파인튜닝을 하면 다음과 같은 장점이 있습니다.

  • 빠른 학습
  • 적은 데이터 필요
  • 하드웨어 비용 절감
  • 일반화 능력 향상

분류 헤드


사전 학습된 LLM은 기본적으로 언어를 이해하고 생성하는 능력이 있습니다. 특정한 작업을 수행하려면 모델 최상단에 추가적인 학습 가능한 레이어(헤드)를 추가해야합니다.