Develop/AI

파인튜닝을 알아보자.

YOOZI. 2025. 3. 16. 20:34
728x90
AI 맞춤형 학습의 핵심 기술

 

 

 

오늘은 파인튜닝(Fine-tuning) 알아보자.

오늘의 배움
  • 파인튜닝의 개념과 필요성
  • 프롬프트 엔지니어링과 파인튜닝의 차이
  • 소규모 언어모델(sLLM) 파인튜닝
  • 파인튜닝 모델 평가 및 활용 사례

1. 파인튜닝(Fine-tuning)

 

  • 정의: 이미 학습된 대규모 언어 모델(LLM)을 특정 작업이나 데이터셋에 맞춰 재학습시키는 과정
  • 한 줄 요약: "범용 AI를 특정 분야의 전문가로 만드는 맞춤형 학습 기술"
  • 특징:
    • 사전 학습된 모델의 지식을 유지하면서 특정 영역에 최적화
    • 도메인 특화된 용어와 맥락 이해 능력 향상
    • 특정 작업에 대한 성능과 정확도 개선
  • 필요성:
    • 일반적인 LLM은 특정 도메인에서 최적의 성능을 내지 못함
    • 프롬프트 엔지니어링만으로는 도메인별 깊은 이해가 어려움
    • 일관된 형식과 출력 스타일이 요구되는 비즈니스 환경
  • 장점/단점:
    • 장점: 높은 정확도, 도메인 특화 성능, 일관된 결과
    • 단점: 높은 비용과 시간 소요, 데이터 의존성, 과적합 위험
  • 예시: 법률 문서 분석 법률 회사는 계약서 검토를 자동화하기 위해 AI를 도입하려 한다. 범용 LLM은 법률 용어와 계약 구조에 대한 이해가 부족하다. 회사는 수천 개의 과거 계약서와 그 분석 결과를 데이터셋으로 구성하여 모델을 파인튜닝했다. 그 결과:
# 파인튜닝 전
Q: 이 계약서의 불가항력 조항을 분석해주세요.
A: 불가항력은 예측할 수 없고 피할 수 없는 사건을 의미합니다. 일반적으로 자연재해, 전쟁, 파업 등이 포함됩니다.
# 파인튜닝 후
Q: 이 계약서의 불가항력 조항을 분석해주세요.
A: 본 계약의 불가항력 조항(제12조)은 다음과 같은 문제점이 있습니다:
1. 통지 기한이 명시되어 있지 않음 (표준 계약은 7일 이내 통지 요구)
2. 불가항력 상황의 지속 기간에 따른 계약 해지 조건이 불명확함
3. 코로나19와 같은 팬데믹이 불가항력 사유에 명시적으로 포함되어 있지 않음
권장사항: 제12조 3항에 통지 기한(발생 후 3일 이내)과 지속 기간(60일 초과시 해지 가능) 명시 추가

 


2. 핵심개념정리

2-1. 프롬프트 엔지니어링 vs 파인튜닝

 

  • 정의: 두 가지 다른 접근 방식으로 AI 모델의 출력을 최적화하는 방법
  • 작동 원리:
    • 프롬프트 엔지니어링: 입력 텍스트 조정을 통해 모델의 출력 유도
    • 파인튜닝: 모델의 가중치와 파라미터를 재학습시켜 성능 최적화
  • 특징:
    • 프롬프트 엔지니어링: 빠른 구현, 낮은 비용, 즉시 적용 가능
    • 파인튜닝: 높은 정확도, 일관된 결과, 도메인 특화 지식
  • 장점/단점:
    • 프롬프트 엔지니어링 장점: 비용 효율적, 빠른 실험, 유연성
    • 프롬프트 엔지니어링 단점: 복잡한 작업에서 한계, 일관성 부족
    • 파인튜닝 장점: 높은 정확도, 도메인 특화, 일관된 결과
    • 파인튜닝 단점: 높은 비용, 시간 소요, 데이터 요구사항
  • 필요성: 문제의 복잡성과 특수성에 따라 적절한 접근법 선택 필요
# 프롬프트 엔지니어링 예시
프롬프트: "너는 의사야. 환자의 증상을 듣고 가능한 진단과 다음 단계를 추천해줘."

# 파인튜닝 예시
의료 데이터로 파인튜닝된 모델은 별도 지시 없이도:
질문: "가슴 통증과 호흡 곤란이 있어요."
응답: "급성 심근경색의 가능성이 있습니다. 즉시 응급실로 가셔야 합니다. 니트로글리세린을 복용하고 계신다면 혀 밑에 놓으세요..."

 


 

2-2. PEFT (Parameter-Efficient Fine-Tuning)

 

  • 정의: 모델의 일부 파라미터만 조정하여 효율적으로 파인튜닝하는 기법
  • 작동 원리: 전체 모델 대신 중요한 일부 파라미터만 선택적으로 학습시킴
  • 특징:
    • 적은 연산 비용으로 효과적인 파인튜닝 가능
    • 원본 모델의 성능을 유지하면서 특화 성능 향상
    • 저장 공간과 메모리 요구사항 감소
  • 장점/단점:
    • 장점: 비용 효율적, 빠른 학습, 원본 모델 보존
    • 단점: 일부 복잡한 작업에서는 전체 파인튜닝보다 성능 부족
  • 필요성: 제한된 컴퓨팅 리소스로 대형 모델을 효율적으로 활용하기 위함
# LoRA(Low-Rank Adaptation) 기법 개념 코드
import torch

# 원본 가중치 행렬
W = original_model.layer.weight

# LoRA 파라미터 (저차원 행렬)
r = 8  # 랭크 (작을수록 효율적)
A = torch.nn.Parameter(torch.zeros((r, W.shape[1])))
B = torch.nn.Parameter(torch.zeros((W.shape[0], r)))

# 파인튜닝 시 가중치 계산
# W' = W + BA
updated_weight = W + torch.matmul(B, A)

 


 

2-3. 소규모 언어모델(sLLM) 파인튜닝

 

  • 정의: 비교적 작은 규모의 언어 모델을 특정 작업에 맞게 최적화하는 과정
  • 작동 원리: 적은 파라미터를 가진 모델을 특정 데이터셋으로 효율적으로 훈련
  • 특징:
    • 빠른 학습 및 추론 속도
    • 적은 컴퓨팅 리소스 요구
    • 모바일 및 엣지 디바이스 배포 가능
  • 장점/단점:
    • 장점: 낮은 비용, 빠른 배포, 로컬 실행 가능
    • 단점: 복잡한 작업에서 성능 제한, 일반화 능력 부족
  • 필요성: 제한된 환경에서 AI 기능 제공, 실시간 응답 필요 시
# Llama 2 7B 모델 파인튜닝 예시
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import get_peft_model, LoraConfig

# 모델 및 토크나이저 로드
model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-2-7b")
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-2-7b")

# LoRA 설정
peft_config = LoraConfig(
    r=8,                    # 랭크
    lora_alpha=16,          # 스케일링 파라미터
    target_modules=["q_proj", "v_proj"],  # 타겟 레이어
    lora_dropout=0.1,
    bias="none"
)

# PEFT 모델 생성
peft_model = get_peft_model(model, peft_config)

# 학습 가능한 파라미터 확인
trainable_params = sum(p.numel() for p in peft_model.parameters() if p.requires_grad)
total_params = sum(p.numel() for p in peft_model.parameters())
print(f"훈련 가능한 파라미터: {trainable_params}/{total_params} ({trainable_params/total_params*100:.2f}%)")

 


 

2-4. RLHF (Reinforcement Learning with Human Feedback)

 

  • 정의: 인간의 피드백을 강화학습에 활용하여 AI 모델을 최적화하는 기법
  • 작동 원리:
    • 모델이 다양한 응답 생성
    • 인간 평가자가 응답의 품질 평가
    • 좋은 평가를 받은 출력을 더 생성하도록 모델 조정
  • 특징:
    • 인간의 선호도와 가치를 모델에 반영
    • 유해하거나 원치 않는 출력 감소
    • 유용성과 안전성 향상
  • 장점/단점:
    • 장점: 인간 가치 정렬, 높은 품질의 응답, 안전성 향상
    • 단점: 높은 비용, 인간 평가자 편향 가능성, 복잡한 구현
  • 필요성: 단순한 정확성 이상의 유용하고 안전한 AI 출력을 위해 필요
# RLHF 프로세스 개념적 설명

1. 초기 모델 학습 (SFT: Supervised Fine-Tuning)
   - 기본 LLM + 고품질 데이터셋 → 초기 파인튜닝 모델

2. 보상 모델 생성
   - 모델 출력 A와 B를 생성
   - 인간 평가자: "A가 B보다 좋다" 또는 "B가 A보다 좋다" 판단
   - 이 선호도 데이터로 보상 모델 학습

3. 강화학습 적용
   - 정책 모델(Policy): 응답 생성
   - 보상 모델(Reward): 응답 품질 점수 부여
   - PPO 알고리즘으로 보상 최대화하도록 정책 모델 업데이트

 

 

728x90