[NLP] PEFT(Parameter-Efficient Fine-Tuning)

eenzeenee·2025년 9월 18일

DeepLearning

목록 보기
9/9

Adaptor vs Delta Tuning를 비교하며

대형 언어모델(LLM)이 점점 커지면서, 모든 파라미터를 학습하는 Full Fine-tuning은 현실적으로 부담이 커졌습니다.

  • 메모리 사용량 ↑

  • 학습 시간 ↑

  • 저장해야 할 모델 버전 ↑

이를 해결하기 위해 등장한 방법이 PEFT(Parameter-Efficient Fine-Tuning)입니다.
즉, “모델 전체를 학습하지 않고, 일부만 학습해서 효율성을 높이는 방법”이라고 볼 수 있습니다.

Adaptor 계열: 모듈을 추가하는 방식

Adaptor 방식은 기존 모델 파라미터를 전부 고정(freeze) 하고,그 위에 작은 모듈(Adaptor)을 삽입한 뒤 그 모듈만 학습하는 접근입니다.

대표 기법:

  • Adapter : Transformer 레이어 사이에 작은 FFN 모듈을 추가하고, 해당 모듈만 학습
  • Prefix-tuning : 입력 토큰 앞에 학습 가능한 prefix 벡터를 붙임
  • Prompt-tuning : 입력 임베딩에 학습 가능한 프롬프트 벡터를 추가

💡 공통점: 원래 모델 구조는 그대로 두고, “옆에” 모듈을 달아 학습한다는 점입니다.

Delta Tuning 계열: 변화량(ΔW)만 학습하는 방식

Delta Tuning은 Adaptor처럼 새 모듈을 붙이지 않고,기존 파라미터에 대한 변화량(ΔW)만 학습하는 방식입니다.

기본 아이디어

사전학습된 모델의 가중치가 𝑊라고 할 때,Full Fine-tuning은 𝑊 자체를 업데이트합니다.
Delta Tuning은 원래 모델의 𝑊를 고정하고, 학습 가능한 Δ𝑊를 정의하여 모델 가중치를 다음과 같이 사용합니다.

𝑊=𝑊+Δ𝑊𝑊^* = 𝑊+Δ𝑊

즉, 학습은 Δ𝑊에만 수행하고 원래 모델의 가중치인 𝑊는 건드리지 않습니다.

Δ𝑊를 효율적으로 학습하는 방법

LoRA(Low-Rank Adaptation)

  • Δ𝑊를 저랭크 행렬곱으로 표현하여 학습 파라미터 수를 크게 줄입니다.

Δ𝑊=𝐴𝐵Δ𝑊 = 𝐴⋅𝐵

  • (𝐴𝑅𝑑×𝑟,𝐵𝑅𝑟×k)(𝐴∈𝑅^{𝑑×𝑟},𝐵∈𝑅^{𝑟×k})
  • 𝑟𝑑,𝑘(lowerrank)𝑟≪𝑑,𝑘 (lower rank)
  • 학습 시에는 Δ𝑊 전체를 저장하지 않고 작은 행렬 A, B만 업데이트

BitFit

  • Δ𝑊를 bias 항에만 적용, 매우 가볍게 학습

Diff-pruning

  • Δ𝑊 중 일부만 활성화하여 학습

핵심: Δ𝑊 전체(Dense Delta)를 두는 대신, ΔW를 만들기 위한 작은 파라미터만 학습합니다.

“Δ𝑊를 학습한다”는 것의 의미

Full Fine-tuning : 𝑊 자체를 업데이트
Delta Tuning : 𝑊는 고정, 학습 가능한 Δ𝑊만 업데이트

  • 학습 후 forward 시에는 𝑊+Δ𝑊를 사용
  • 기존 모델은 그대로 두고, 필요한 부분만 보정

LoRA는 Δ𝑊를 직접 저장하지 않고 저랭크 근사(AB)를 사용하여 효율적으로 학습합니다.

정리

Adaptor 계열

  • 원래 모델 파라미터 고정 + 모듈 추가
  • Adapter, Prefix-tuning, Prompt-tuning
  • 구조 확장, 모듈만 학습

Delta Tuning 계열

  • 원래 모델 파라미터 고정 + ΔW 학습
  • LoRA, BitFit, Diff-pruning
  • 구조 그대로, ΔW만 학습
profile
Steadily

0개의 댓글