Deep Learning/Algorithm

Parameter-Efficient Transfer Learning for NLP

나희와더기 2025. 5. 14. 19:31
반응형

이번 논문은 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보다 성능 낮음
  • 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이 필요한 상황
반응형