반응형
이번 논문은 2019년 Google Brain에서 발표한 "Parameter-Efficient Transfer Learning for NLP"입니다. 이 논문은 대형 언어 모델을 위한 파라미터 효율적인 전이 학습 방법으로 Adapter라는 간단하면서도 강력한 구조를 제안하였으며, 최근까지 다양한 형태로 변형되어 활용중입니다.
Parameter-Efficient Transfer Learning for NLP
Fine-tuning large pre-trained models is an effective transfer mechanism in NLP. However, in the presence of many downstream tasks, fine-tuning is parameter inefficient: an entire new model is required for every task. As an alternative, we propose transfer
arxiv.org
GitHub - google-research/adapter-bert
Contribute to google-research/adapter-bert development by creating an account on GitHub.
github.com
🎯 왜 Adapter가 필요한가?
- 기존 방식의 한계
- Fine-tuning: 모든 파라미터를 복사해서 작업별로 새롭게 학습
- N개의 작업이면 N개의 모델, 저장공간 낭비 + 유지보수 어려움
- Feature-based transfer: 단어/문장 임베딩만 추출해 downstream 모델로 사용
- 일반적으로 Fine-tuning보다 성능 낮음
- Fine-tuning: 모든 파라미터를 복사해서 작업별로 새롭게 학습
- Adapter의 아이디어
- 기존 모델의 파라미터는 고정(freeze)
- 각 Transformer 층에 작고 얕은 모듈(adapter layer) 을 삽입
- 오직 adapter 파라미터만 학습 → 파라미터 수 100분의 1 이하
- 이렇게 하면 기존 모델은 공유되고, 각 작업에 필요한 소량의 파라미터만 따로 저장
🧠 Adapter 구조: 작지만 강력한 Bottleneck 모듈
- Transformer Layer 내부에 Adapter 2개를 삽입합니다:
- 위치:
- (1) Multi-head Attention 뒤
- (2) Feed-forward Layer 뒤
- 구조 (Adapter):
- d차원 → m차원으로 Down Projection
- 비선형 활성화 함수 (ReLU)
- m차원 → d차원으로 Up Projection
- Skip Connection 추가 (초기값은 거의 Identity)
- 총 파라미터 수: $2md + d + m$ $(m \ll d)$
- 보통 $m=64, d=768$ or $1024$, 따라서, 추가 파라미터는 매우 작음
- 위치:
🧩 Adapter 튜닝의 장점
- Adapter는 각 task마다 새로운 작은 모듈만 추가되기 때문에 기존 task를 전혀 건드리지 않음. 즉, 완전한 lifelong learning 가능.
항목 | Adapter Tuning | Full Fine-tuning |
파라미터 수 (task당) | 1~5% | 100% |
기존 파라미터 재사용 | ✅ | ❌ |
학습 속도 | 빠름 | 느림 |
추론 속도 | 약간 느림 | 빠름 |
기억력 (Continual Learning) | 완전 보존 | 쉽게 망각 |
📊 실험 결과 요약
- GLUE Benchmark (BERTLARGE)
- GLUE 성능이 0.4%밖에 차이 안 나는데, 파라미터는 90% 이상 절감!
- 추가 분류 작업 (17개 데이터셋)
- 평균 정확도 약 73.3%, 파라미터 사용량 약 1.19$\times$
- SQuAD v1.1 (질문응답 태스크)
방법 | F1점수 | 파라미터 비율 |
Fine-Tune | 90.7 | 100% |
Adpater (size=64) | 90.4 | 2% |
Adpater (size=2) | 89.9 | 0.1% |
- Ablation 실험: 어디에 Adapter가 중요한가?
- 상위 층의 Adapter를 제거하면 성능 하락이 더 큼 → 모델은 상위층에서 task-specific 정보를 주로 처리함
- Adapter를 완전히 제거하면 성능 급락
- MNLI: 84% → 37%
- CoLA: 84% → 69%
- Adapter 초기화는 near-identity로 해야 학습 안정적
📝 결론: Adapter는 어떤 상황에 적합할까?
- 다수의 태스크를 처리해야 하는 환경
- 클라우드 서비스처럼 파라미터 공유가 중요한 경우
- 파라미터 수를 최소화하면서도 높은 성능이 필요한 경우
- Continual Learning이 필요한 상황
반응형
'Deep Learning > Algorithm' 카테고리의 다른 글
Prefix-Tuning: Optimizing Continuous Prompts for Generation (1) | 2025.05.23 |
---|---|
Soft-DTW: a Differentiable Loss Function for Time-Series (1) | 2025.05.22 |
LoRA: Low-Rank Adaptation of Large Language Models (0) | 2025.05.13 |