AI: PEFT/Fine-tuning 초기화/설정 – A
ㅁ PEFT/Fine-tuning 초기화/설정
ㅇ 정의:
사전 학습된 대규모 언어 모델(LLM)이나 딥러닝 모델을 특정 작업에 맞게 효율적으로 미세 조정하기 위해, 전체 파라미터를 업데이트하지 않고 일부 파라미터만 학습하거나 초기값을 조정하는 기법.
ㅇ 특징:
– 기존 모델의 가중치를 그대로 두고, 추가된 작은 모듈(어댑터, LoRA 등)만 학습 가능
– 학습 속도와 메모리 사용량 절감
– 데이터가 적어도 과적합 위험이 낮음
– 초기화 전략에 따라 수렴 속도와 성능이 크게 달라짐
ㅇ 적합한 경우:
– 리소스 제약이 있는 환경에서 대규모 모델을 특정 도메인에 맞게 적응
– 원본 모델의 성능을 유지하면서 새로운 태스크에 빠르게 적용
– 다수의 태스크에 대해 모델 버전을 효율적으로 관리해야 하는 경우
ㅇ 시험 함정:
– 전체 파라미터를 학습하는 Full Fine-tuning과 혼동
– 초기화 시 기존 가중치를 변경하는지 여부를 잘못 이해
– PEFT 방법 중 어떤 부분이 학습되는지 구분 못함
ㅇ 시험 대비 “패턴 보기” 예시:
O: “LoRA 방식은 원본 모델의 대부분 파라미터를 고정하고 일부 랭크 감소 행렬만 학습한다.”
X: “PEFT는 항상 모든 파라미터를 학습하여 성능을 최적화한다.”
================================
ㅁ 추가 학습 내용
PEFT 초기화 전략 정리
1. 주요 기법 비교
– Adapter: 기존 모델의 각 층 사이에 작은 모듈을 삽입하여 학습. 전체 파라미터 중 일부만 업데이트.
– LoRA(Low-Rank Adaptation): 가중치 행렬을 저랭크 행렬로 분해하여 추가 파라미터만 학습.
– Prefix Tuning: 입력 시퀀스 앞에 학습 가능한 가상 토큰(prefix)을 추가하여 조건부 생성 성능 향상.
– Prompt Tuning: 프롬프트 토큰만 학습하여 모델의 출력 조정. Prefix Tuning보다 더 제한된 범위.
2. 학습 파라미터 범위
– Full Fine-tuning: 전체 파라미터 학습.
– Adapter: 전체 대비 소수의 추가 파라미터.
– LoRA: 특정 가중치 행렬의 일부 저랭크 파라미터만 학습.
– Prefix/Prompt Tuning: 입력 전처리 단계에서의 토큰 임베딩 파라미터만 학습.
3. Fine-tuning 시 주요 설정
– 초기 학습률: 너무 높으면 발산, 너무 낮으면 수렴 속도 저하.
– 가중치 초기화 방법: Xavier, He 초기화 등 선택에 따라 학습 안정성과 속도 차이.
– Layer Freezing 범위: 하위 계층을 고정하면 학습 파라미터 수 감소, 상위 계층만 조정.
4. PEFT 적용 시 주의 사항
– 기존 모델 체크포인트 로드 방식: 사전 학습된 가중치를 올바르게 불러와야 함.
– Optimizer 상태 초기화 여부: 초기화 시 수렴 속도에 영향. 기존 상태 유지 시 이전 학습 정보 활용 가능.
5. 메모리 및 추론 관련
– GPU 메모리 사용량: PEFT는 Full Fine-tuning보다 메모리 사용량이 적음.
– Inference 시 추가 모듈 로딩: Adapter, LoRA 등 추가 모듈을 함께 로드해야 함.
– 다중 태스크 학습: 태스크별로 모듈 교체 전략 필요, 공통 기반 모델에 모듈만 교체하여 효율적 활용 가능.