튼튼발자 개발 성장기🏋️

파인 튜닝 본문

카테고리 없음

파인 튜닝

시뻘건 튼튼발자 2026. 3. 23. 20:42
반응형
파인 튜닝 완벽 가이드: Pre-training부터 LoRA까지

딥러닝 모델의 학습은 크게 프리트레이닝(Pre-training)파인튜닝(Fine-tuning)의 두 단계로 나뉜다. 이 글에서는 파인튜닝의 두 가지 접근 방식인 풀 파인튜닝PEFT의 특징과 효율적인 파인튜닝 기법을 살펴보자.

1. 딥러닝 모델의 학습 두 단계

프리트레이닝(Pre-training)

기본 지식을 학습하는 단계. 마치 학교에서 기초 교육을 받는 것과 같다.

파인튜닝(Fine-tuning)

특수 작업에 최적화하는 단계. 마치 대학 졸업 후 특정 직업을 위한 훈련을 받는 것과 비슷하다.

사전 학습(Pre-training, 프리트레이닝)

프리트레이닝은 모델이 세상의 기본적인 지식을 배우는 단계이다. 대규모 데이터(인터넷의 텍스트, 이미지 등)를 사용해 모델에게 기본적인 이해력을 가르친다. 사전 학습이라고도 하고 프리트레이닝이라고도 하며 두 가지 모두 자주 쓰이는 용어이다.

프리트레이닝의 특징

  • 엄청난 양의 데이터 필요 (수백~수천 기가바이트)
  • 매우 비싼 컴퓨팅 자원 필요 (수천만~수억 원의 비용)
  • 수백억~수천억 개의 파라미터 학습
  • 몇 주~몇 달의 훈련 시간 소요
  • GPT 모델은 프리트레이닝 과정에서 수조 개의 단어를 읽으며 언어의 패턴, 문법, 사실 정보 등을 학습
  • 거대 언어 모델의 경우 개인이 하기에는 어려운 편

미세 조정(Fine-tuning, 파인튜닝)

파인튜닝은 이미 기본 교육을 받은 모델에게 특수한 기술을 가르치는 과정이다. 이미 프리트레이닝된 모델에게 내가 가진 상대적으로 적은 양의 데이터를 추가적으로 학습한다. 여기서 적은 양이란 데이터 개수로는 수백 개에서 수십만 개로, 프리트레이닝 당시보다 매우 적은 양의 데이터이다. (미세 조정이라는 표현은 사실 잘 쓰이지 않으며 한글로 파인튜닝이라고 부르는 경우가 더 많다.)

파인튜닝의 특징

  • 상대적으로 적은 데이터로 가능 (수십 메가~수 기가바이트)
  • 더 적은 컴퓨팅 자원 필요 (몇 만~수백만 원의 비용)
  • 더 짧은 훈련 시간 (몇 시간~며칠)
  • 파인튜닝은 크게 풀 파인튜닝과 PEFT 튜닝으로 나누어 분류할 수 있다

2. 파인 튜닝의 두 가지 접근 방식

풀 파인튜닝(Full Fine-tuning)

모델의 모든 파라미터를 새로운 데이터로 업데이트하는 방식이다. 마치 전체 컴퓨터를 새로운 용도에 맞게 완전히 재구성하는 것과 같다.

PEFT(Parameter-Efficient Fine-Tuning)

모델의 일부만 업데이트하여 효율적으로 파인튜닝하는 방법들을 총칭한다. 마치 대형 기계 전체는 그대로 두고 일부 부품만 교체하는 것과 같다.

풀 파인튜닝(Full Fine-tuning)

풀 파인튜닝의 특징

  • 모델의 모든 가중치(수십억~수천억 개)를 조정
  • 최대한의 성능 개선 가능
  • 많은 메모리와 계산 자원 필요
  • 원본 모델의 일반적 능력이 손실될 위험 있음 (과적합)
  • 특정 작업에 완전히 최적화된 모델 생성
  • 필요한 GPU가 굉장히 많은 편 (개인도 가능은 하지만, PEFT란 대안이 좀 더 선호되는 편)

PEFT(Parameter-Efficient Fine-Tuning)

PEFT는 '파라미터 효율적 파인튜닝'의 약자로, 모델의 일부만 업데이트하여 효율적으로 파인튜닝하는 방법들을 총칭한다. 풀 파인튜닝은 대형 기계 자체를 완전히 바꾸는 것에 가깝기 때문에 이 둘은 엄연히 다르다.

PEFT가 필요한 이유:
  • 자원 문제: 최신 AI 모델은 너무 거대해서 모든 파라미터를 조정하려면 엄청난 GPU 메모리와 시간이 필요
  • 효율성: 실제로 모든 파라미터를 변경하지 않아도 좋은 결과를 얻을 수 있음
  • 재사용성: 기본 모델은 그대로 두고 필요할 때마다 작은 '추가 모듈'만 바꿔가며 여러 작업에 활용 가능

3. LoRA(Low-Rank Adaptation) 튜닝

LoRA란?

LoRA는 PEFT의 대표적인 기법으로, 낮은 랭크의 행렬을 사용해 원본 모델의 변화를 표현한다. 이것은 마치 거대한 건물의 구조는 그대로 두고 작은 증축 부분만 추가하는 것과 같다.

작동 원리

  • 원본 모델의 거대한 파라미터 행렬(W)은 그대로 유지
  • 작은 크기의 두 파라미터 행렬(A와 B)을 추가로 학습

실제 예시

파라미터 효율성 비교
  • 원본 모델: 10,000×10,000 크기의 파라미터 행렬(1억 개 파라미터) - 학습하지 않음
  • LoRA: 10,000×8 크기의 A와 8×10,000 크기의 B만 학습 (총 16만 개 파라미터)
  • 결과: 원본의 0.16%만 학습하면서도 풀 파인튜닝과 유사한 성능을 달성하기도 함

LoRA 튜닝의 강점

자원 효율성

  • 필요한 GPU 대폭 감소
  • Ex) 동일 모델에서 풀 파인튜닝시 A100 GPU가 64개에서 LoRA 튜닝 시 4개로 감소

시간 효율성

  • 훈련 속도 크게 향상
  • 몇 일 → 몇 시간으로 단축
  • 더 적은 훈련 데이터로도 좋은 결과

유연성

  • 거대한 언어 모델은 그대로 두고 여러 작업 별로 작은 LoRA 모듈만 교체하며 사용 가능
  • 원본 모델의 지식을 보존하면서 새로운 능력만 추가
주의: 문제가 매우 어려울 경우에는 아무래도 더 많이 학습하는 풀 파인튜닝이 유리한 경우들이 존재하기도 한다. 따라서 풀 파인튜닝과 LoRA 튜닝 중 어떤 것이 성능이 더 좋느냐는 어떤 문제를 학습시키고 있느냐와 데이터의 양에 따라서 다를 수 있다.

4. 파인튜닝 방식 비교

특징 풀 파인튜닝 LoRA 튜닝
학습 파라미터 모든 파라미터 (수십억~수천억 개) 일부 파라미터 (수백만~수천만 개)
GPU 필요량 매우 많음 (예: A100 64개) 적음 (예: A100 4개)
학습 시간 몇 일~몇 주 몇 시간~몇 일
원본 모델 보존 지식 훼손 위험 있음 대부분의 지식 보존
과적합 위험 높음 낮음
다중 작업 적용 어려움 쉬움 (모듈 교체)
반응형