ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [unsloth] LoRA Hyperparameters Guide 번역
    AI/NLP 2025. 7. 6. 15:30
    728x90
    [unsloth] LoRA Hyperparameters Guide 번역 

     

    얘는 노라다

     

    나중에 LoRA로 튜닝할 때 써먹을 것 

     


    LoRA 하이퍼파라미터 가이드

    개요

    • LoRA 하이퍼파라미터 모범 사례
    • 파인튜닝 프로세스에 미치는 영향 분석

    핵심 개념

    • 수백만 가지 하이퍼파라미터 조합 존재
    • 올바른 값 선택이 파인튜닝 성공의 핵심
    • 수백 개 연구 논문 및 실험 결과 기반
    • 목표: 정확도 향상 + 과적합 방지
    • 과적합: 모델이 데이터 암기 → 새로운 질문 처리 어려움
    • 지향점: 암기가 아닌 일반화 모델

    학습률 (Learning Rate)

    • 정의: 모델 가중치의 훈련 단계별 조정 정도
    • 높은 학습률
      • 빠른 훈련 속도
      • 과적합 감소 효과
      • 주의사항: 너무 높으면 과적합 발생
    • 낮은 학습률
      • 안정적인 훈련 과정
      • 더 많은 에포크 필요
    • 일반적인 범위: 1e-4 (0.0001) ~ 5e-5 (0.00005)

    에포크 (Epochs)

    • 정의: 모델이 전체 훈련 데이터셋을 보는 횟수
    • 권장값: 1-3 에포크
    • 3 이상 비권장 (환각 감소 vs 창의성 감소 trade-off 고려 시 예외)
    • 더 많은 에포크
      • 장점: 더 나은 학습
      • 단점: 과적합 위험 증가
    • 적은 에포크
      • 단점: 모델 과소훈련 가능성

    LoRA 순위 (LoRA Rank)

    • 정의: 적응용 저순위 인수의 개수 제어
    • 범위: 4-128

    LoRA 알파 (LoRA Alpha)

    • 정의: 가중치 업데이트용 스케일링 팩터
    • 권장값: LoRA 순위 × 1 또는 2

    최대 시퀀스 길이 (Max Sequence Length)

    • 정의: 모델이 학습할 수 있는 최대 컨텍스트
    • 조정 기준: 데이터셋 필요에 따라 설정

    배치 크기 (Batch Size)

    • 정의: 훈련 단계당 처리 샘플 수
    • 높은 값: 더 많은 VRAM 필요
    • 권장값
      • 긴 컨텍스트: 1
      • 짧은 컨텍스트: 2 또는 4

    LoRA 드롭아웃 (LoRA Dropout)

    • 정의: 과적합 방지용 드롭아웃 비율
    • 범위: 0.1-0.2

    웜업 단계 (Warmup Steps)

    • 정의: 훈련 시작 시 점진적 학습률 증가
    • 권장값: 전체 단계의 5-10%

    스케줄러 유형 (Scheduler Type)

    • 정의: 훈련 중 학습률 동적 조정
    • 권장값: 선형 감쇠 (Linear Decay)

    시드 또는 랜덤 상태 (Seed or Random State)

    • 정의: 결과 재현성 보장
    • 설정값: 고정된 숫자 (예: 42)

    가중치 감쇠 (Weight Decay)

    • 정의: 과적합 방지용 큰 가중치 업데이트 페널티
    • 권장값: 1.0 또는 0.3 (문제 발생 시)

    수동 조정 옵션

    • Unsloth 자동 기본값 사용 권장
    • 필요 시 수동 조정 가능

    순위 (Rank)

    • 정의: 파인튜닝 프로세스의 순위
    • 특성
      • 큰 숫자: 메모리 사용량 증가, 속도 저하, 정확도 향상 가능
      • 권장값: 8 (빠른 파인튜닝) ~ 128
      • 주의사항: 너무 큰 값은 과적합으로 모델 품질 저하

    모듈 선택

    • 권장: 모든 모듈 파인튜닝
    • 일부 제거 가능하나 비권장
      • 메모리 사용량 감소
      • 훈련 속도 향상
      • 품질 저하 위험

    스케일링 팩터

    • 정의: 파인튜닝용 스케일링 팩터
    • 특성
      • 큰 숫자: 데이터셋 학습량 증가, 과적합 위험 증가
      • 권장값: 순위 r과 동일 또는 2배

    드롭아웃 설정

    • 권장값: 0 (빠른 훈련)
    • 과적합 감소 효과 제한적

    바이어스 설정

    • 권장값: 0
    • 빠른 훈련 + 과적합 감소

    시드 설정

    • 정의: 결정론적 실행을 위한 숫자
    • 필요성: 훈련/파인튜닝의 랜덤 숫자 필요
    • 효과: 실험 재현성 확보

    고급 기능

    • lora_alpha = 16 자동 설정
    • 선택적 사용 가능

    초기화 기능

    • 정의: LoRA 행렬을 가중치의 상위 r개 특이벡터로 초기화
    • 장점: 정확도 향상 가능
    • 단점: 시작 시 메모리 사용량 급증

    과적합 (Overfitting)

    • 정의: 모델이 훈련 데이터 암기 → 새로운 입력 일반화 실패
    • 해결책
      • 학습률 조정
        • 짧은 훈련: 학습률 감소
        • 긴 훈련: 학습률 증가
        • 권장: 둘 다 테스트 후 최적값 선택
      • 배치 크기 증가
      • 훈련 에포크 수 감소
      • 데이터셋 확장: ShareGPT 등 일반 데이터셋 결합
      • 드롭아웃 비율 증가 (정규화 효과)

    과소적합 (Underfitting)

    • 정의: 낮은 순위 모델의 학습 가능 매개변수 부족 → 일반화 실패
    • 발생 빈도: 상대적으로 드문 현상
    • 해결책
      • 학습률 조정
        • 짧은 훈련: 학습률 증가
        • 긴 훈련: 학습률 감소
      • 에포크 수 증가
      • 순위 및 알파 증가
        • 알파 ≥ 순위 숫자
        • 순위 크기: 작은 모델/복잡한 데이터셋일수록 증가
        • 일반 범위: 4-64
      • 도메인 관련성 높은 데이터셋 사용

     


    https://docs.unsloth.ai/get-started/fine-tuning-guide/lora-hyperparameters-guide

     

    LoRA Hyperparameters Guide | Unsloth Documentation

    Optimal lora rank. alpha, number of epochs, batch size & gradient accumulation, QLoRA vs LoRA, target modules and more!

    docs.unsloth.ai

     

    728x90
Designed by Tistory.