Adapter는 "기존 대규모 언어 모델(LLM)을 모두 수정하지 않고도, 중간에 작고 가벼운 네트워크를 덧붙여서 파인튜닝하는 방식"입니다.

즉, 원래 모델은 그대로 두고, 작은 덧붙임 모듈만 학습해서 모델을 바꾸는 방식이에요.

🎒 비유: 새로운 옷을 전부 갈아입는 대신, 기존 옷 위에 얇은 조끼(조정기)를 덧입는 것입니다.

 


🧠 Adapter가 필요한 이유

기존방식 문제점
Full Fine-Tuning 모델 전체 학습 → 비용 비쌈, 메모리 큼
Adapter 전체 모델 유지 + 일부만 훈련 → 효율적, 빠름

LLM을 수백 개, 다양한 목적에 맞게 쓰려면 매번 전체 학습은 너무 무거워요.
→ Adapter 방식으로 효율적인 다목적 튜닝이 가능해집니다.


🔧 Adapter의 구조와 작동 방식

Transformer 블록 내부에 **작은 추가 계층(레이어)**을 삽입합니다:

[Input] → [Transformer Layer]
                             ↓
                [Adapter Module]
                             ↓
                     [출력값 보정]
 
 

Adapter는 보통 다음 구조를 가집니다:

 
Linear ↓ (줄이기: down-projection)
ReLU
Linear ↑ (늘리기: up-projection)
  • 입력 벡터의 차원을 잠깐 줄였다가 다시 늘리면서,
  • 그 사이에서 도메인 특화 정보를 학습합니다.
  • 전체 파라미터 중 극히 일부만 훈련 대상이 됩니다.

 

🧠 작동 방식 비교 (비유로 설명)

🧪 Adapter 비유

“기존 Transformer 사이에 **보조 장치(컨버터 박스)**를 끼워 넣는 느낌”

  • 원래 길을 그대로 두고,
  • 중간에 짧게 우회로를 만들어, 그 길에서만 학습을 수행

⚙️ LoRA 비유

“기존 가중치 행렬 옆에 작은 벡터(조정기)를 덧붙여 살짝 방향만 틀어주는 방식

  • 기존 가중치는 그대로 두고,
  • 작은 방향 조정 행렬을 덧붙여 응답 스타일이나 도메인 특성을 보정

✅ Adapter의 특징 요약

항목 설명
🧠 기존 모델 유지 원래 모델 파라미터는 수정하지 않음 (freeze)
📦 추가 모듈만 학습 Adapter Layer만 업데이트
💾 경량화 파라미터 수 매우 적음 (1% 미만 가능)
🔁 유연성 다양한 Task마다 adapter만 교체 가능

 

 


💡 예시

예: GPT 모델을 의료 상담용으로 튜닝하고 싶을 때

  • 원래 GPT는 그대로 둔 채,
  • “의료 도메인 정보”만 반영하는 Adapter Layer를 삽입
  • 결과:
    • ✅ 원래 문법/문장력 유지
    • ✅ 의료 용어/문장 스타일 반영

🔁 Adapter vs LoRA vs Full Fine-Tuning

구분 Adapter LoRA
🎯 개념 Transformer 블록 사이에 추가 모듈(layer) 삽입 기존 가중치에 저랭크 행렬을 덧붙여 보정
🏗 삽입 위치 Transformer의 각 층 중간에 새 레이어 삽입 기존 가중치(W)의 곱셈 연산 위치에 직접 연결
🎯 학습 대상 추가된 Adapter Layer만 학습 새로 추가된 A, B 행렬만 학습
💾 메모리 효율 높음 (1~5% 파라미터) 더 높음 (0.1~2% 파라미터)
🔄 기본 모델 수정 ❌ 기존 가중치는 고정 ❌ 기존 가중치는 고정
성능/효율 균형 비교적 일반적 성능 향상 고속·고효율에서 강점
💼 도입 난이도 상대적으로 간단 Hugging Face 기반 시 사용 용이

 

항목 Full FT Adapter LoRA
수정 대상 전체 파라미터 Adapter 모듈 저랭크 보정 행렬
메모리 ❌ 매우 큼 ✅ 적음 ✅ 매우 적음
성능 ✅ 최고 ✅ 높음 ✅ 높음
유연성 ❌ 낮음 ✅ 높음 ✅ 높음
훈련 파라미터 수 100% ~1–5% 0.1–2%
 

📊 기술적 구조 요약

항목 Adapter LoRA
수식 형태 추가 레이어: x → down → ReLU → up → output 가중치 수정: W → W + A·B
메모리 높음 (~5%) 매우 낮음 (~0.1%)
병렬성 높음 높음
LoRA보다 유연한가? ✅ 다양한 구조 설계 가능 ❌ 구조 고정적
프레임워크 AdapterHub, Transformers Hugging Face PEFT, QLoRA 등
 

🧩 언제 어댑터를 쓰면 좋을까?

  • 💼 기업별/부서별로 다양한 특화 모델이 필요한 경우
  • 💾 모델 저장 공간이 부족하거나, GPU 리소스가 제한적일 때
  • 🔁 하나의 LLM에 다양한 Adapter 모듈만 갈아 끼워서 사용하고 싶을 때

 

실제 사용 선택 기준
상황 추천방식
파인튜닝 효율성과 경량화가 중요할 때 LoRA
여러 작업을 동시에 지원하고 싶을 때 Adapter
GPU 메모리 매우 부족한 경우 LoRA
다양한 모듈을 독립적으로 실험하고 조합하고 싶을 때 Adapter

 


🧠 Adapter 정리 요약

항목 설명
무엇인가요? 기존 모델은 그대로 두고, 중간에 조정 모듈을 삽입하여 학습하는 방식
어떤 상황에 유리한가요? 빠르고 경량화된 튜닝, 다목적 확장, 비용 절감
장점은? 메모리/속도 효율, 파라미터 절감, 멀티태스킹 유연성
대표 활용 Hugging Face AdapterHub, LLM 튜닝, 개인화 AI

'인공지능' 카테고리의 다른 글

멀티모달 모델  (0) 2025.05.26
MCP(Model Context Protocol)란?  (0) 2025.05.26
PEFT란? Parameter-Efficient Fine-Tuning  (0) 2025.05.26
LLM Fine-Tuning이란?  (0) 2025.05.26
🔍 RAG란?  (0) 2025.05.26

+ Recent posts