Transfer Learning
전이학습
- 현실에서는 레이블이 적고 데이터 도메인이 자주 바뀜
→ 매번 처음부터 큰 모델을 학습하기 어려움
- 해결책
- source task 에서 대규모 데이터로 프리트레이닝을 해줌
- target task 에서 적은 레이블로 파인튜닝
→ 일반화가 좋아지고 샘플 효율성이 올라감
pretraining ↔ fine tunning
- pretraining
: 언어, 이미지처럼 자기지도학습으로 좋은 표현(피처 추출기)을 먼저 만들기
- fine tuning
: target task의 작은 레이블 데이터로 헤드(출력부) 혹은 전체를 미세 조정
: source-target 입력 형태/통계가 유사할수록 전이가 잘 된다
파인튜닝 방식 3종
- HEAD 만 학습(Feature Extractor 고정)
- full finetuning(모든 파라미터 업데이트)
- PEFT(Parameter-Efficient Fine-Tuning)
PEFT
PEFT = 적게 고쳐서 많이 얻기
- Addition-based: 새 모듈을 추가해서 그 작은 부분만 학습
- Specification-based: 원래 파라미터 중 일부만 선별해 학습
- Reparameterization-based: 저랭크 근사(LoRA) 등으로 변화를 압축 학습
- Adapter - Addition 계열의 대표주자
- Transformer 블록 사이에 작은 모듈을 추가하고 그 부분만 학습하는 기법(순차적으로 삽입해 그 부분만 학습)
- 태스크별로 Adapter만 교체 가능 → 다중 태스크 운영 효율적
- 새로운 지식은 Adapter에 선택적으로 주입되어 기존의 일반적 지식은 보존됨
- BUT, LoRA와 달리 Adapter는 최종적으로 원래 모델에 완전히 병합할 수 없음
- prompt / prefix 튜닝 - Addition 계열
- LoRA(Low-Rank Adaptation) - Reparameterization 계열
- 아이디어: 가중치 변화량을 저랭크로 근사
- 효과: 학습 파라미터 수·메모리 대폭⬇️, 성능은 풀 튜닝 근접
PEFT
- 장점: 저장 공간 절약, 메모리 사용량 절약, 연산량 절약, 그리고 성능 손실 최소화
LoRA는 최종적으로 원래 모델에 병합 가능, Adapter를 병합 불가능
Multi-Task Learning, MTL
- 여러 태스크를 동시에 학습하면서 샘플 효율성 향상과 오버피팅 방지 효과를 얻을 수 잇음
- 태스크 간 지식을 공유하면서 정규화 효과도 생김
Continual Learning
- 시간이 지나면서 새로운 태스크들이 순차적으로 주어지고, 과거 데이터에 다시 접근할 수 없는 상황에서 학습을 이어가는 방식
- 핵심 과제
Stability: 과거 지식을 잊지 않고 유지하는 것Plasticity: 새로운 지식을 빠르게 받아들이는 것