이전 포스팅에서는 LLM의 학습 과정과 Fine-Tuning 방식에 대해 살펴보았는데요.
2025.03.18 - [AI/LLM] - LLM의 학습 과정
이번에 Fine-Tuning의 한계를 극복하고 보다 효율적인 LLM 튜닝을 가능하게 하는 Parameter Efficient Fine-Tuning (PEFT) 기법에 대해 살펴보겠습니다.
PEFT는 전체 모델을 다시 학습하는 Full Fine-Tuning과 비교하여 연산 비용과 메모리 사용량을 줄이면서도 특정 작업에 모델을 적응시키는 방법입니다. 이번 포스팅에서는 PEFT의 주요 기법인 Adapter Layers, LoRA, Prompt-Tuning에 대해 다뤄보려고 합니다.
1. Fine-Tuning의 한계와 PEFT의 필요성
LLM을 Fine-Tuning할 때는 모든 모델의 가중치를 업데이트해야 하는 Full Fine-Tuning 방식이 일반적이었지만, 이는 비용과 메모리 사용량 증가, Catastrophic Forgetting 문제를 야기할 수 있습니다.
1-1. LLM Fine-Tuning의 한계
- 연산 비용이 크다
모든 모델의 가중치를 업데이트해야 하므로 GPU 메모리 사용량이 증가하고 연산 비용이 매우 높아집니다. 대규모 모델을 학습하려면 여러 개의 GPU나 고성능 클러스터가 필요할 수 있습니다. - 저장 공간이 많이 필요하다
Fine-Tuning을 수행할 때, task 별로 별도의 fine-tuned 모델을 저장해야 하므로 저장 공간 부담이 커집니다. 모델이 많아질수록 관리가 어려워지고, 배포 비용도 증가할 수 있습니다. - Catastrophic Forgetting 위험
특정 도메인이나 작업에 맞게 모델을 Fine-Tuning하면, 기존에 학습한 정보가 손실될 위험이 있습니다. 이를 Catastrophic Forgetting 이라고 하며, 모델이 원래 가지고 있던 범용적인 지식을 잃어버릴 가능성이 있습니다.
1-2. PEFT의 필요성
- 효율적인 모델 튜닝
전체 모델을 다시 학습하는 것이 아니라, 일부 중요한 가중치만 조정하여 연산량을 크게 줄일 수 있습니다. - 메모리 절약
적은 수의 파라미터만 학습하기 때문에 단일 GPU에서도 Fine-Tuning이 가능하며, 저장 공간도 최소화할 수 있습니다. - 태스크 간 전환 용이
PEFT 기법을 사용하면, 각 태스크별로 추가 학습된 가중치만 저장하면 되므로, 필요할 때 가중치를 불러와 사용하면 됩니다. 이를 통해 하나의 기본 모델을 유지하면서 여러 작업에 쉽게 적응할 수 있습니다.
2. PEPT의 주요 기법
PEFT에는 여러 가지 방법이 있지만, 대표적으로 Adapter Layers, LoRA, Prompt-Tuning이 많이 사용됩니다.
각 기법이 어떤 원리로 작동하는지 구체적으로 살펴보겠습니다.
2-1. Adapter Layers
Adapter Layers는 기존 모델을 유지하면서, 추가적인 작은 네트워크(Adapter)를 삽입하여 학습하는 방식입니다.
"기존 모델을 유지하면서 작은 네트워크 추가"
즉, 기존의 가중치는 변하지 않고, 추가된 Adapter Layer만 학습되므로 연산량을 절약하면서 특정 태스크에 최적화할 수 있습니다.
- Transformer 블록 내부의 Feed-Forward Network(FFN)나 Self-Attention Layer 사이에 Adapter Layer를 추가함
- 기존의 가중치는 Frozen한 상태로 두고, 새로운 Adapter Layer의 가중치만 업데이트함
- 이 방식은 기존 모델이 가지고 있는 언어 지식을 유지하면서도 새로운 정보 학습이 가능하게 함
2-2. Low Rank Adaptation(LoRA)
LoRA는 기존 모델의 가중치를 직접 업데이트하지 않고, 저차원(Low-Rank) 행렬을 추가하여 학습하는 방식입니다.
특히, Transformer 모델의 Self-Attention Layer에 적용하면 큰 효과를 얻을 수 있습니다.
- 일반적인 Fine-Tuning에서는 전체 가중치 행렬을 업데이트해야 하지만, LoRA는 저차원 행렬만 추가하여 모델을 조정함
- 기존 가중치 행렬을 유지하면서, W+AB 형태로 새로운 가중치를 추가하는 방식입니다.
- 이를 통해 메모리 사용량과 연산량을 절약하면서도 학습 효과를 유지할 수 있습니다.
- LLaMA, GPT 계열 모델의 Fine-Tuning에 널리 사용됨
- Hugging Face에서 LoRA를 활용한 LLM Fine-Tuning 방법을 공식 지원
2-3. Prompt-Tuning
Prompt-Tuning은 모델의 가중치는 그대로 유지하면서, 입력 프롬프트를 최적화하는 방식입니다.
- 기존의 프롬프트 엔지니어링과 달리, 사람이 직접 프롬프트를 수정하는 것이 아니라, 학습 가능한 가상의 토큰(Trainable Tokens)을 추가하여 모델이 더 적절한 답변을 생성하도록 학습함
- 모델 구조를 변경하지 않기 때문에, 빠르고 가볍게 적용할 수 있다는 장점이 있음
- 프롬프트 최적화가 잘되지 않으면 성능이 낮을 수 있음
- GPT-3, GPT-4 같은 대규모 언어 모델에서 효과적으로 사용됨
대규모 언어 모델을 Fine-Tuning할 때, 기존의 Full Fine-Tuning 방식은 비용이 많이 들고, 메모리 사용량이 크며, Catastrophic Forgetting 문제가 발생할 수 있습니다. 이러한 문제를 해결하기 위해 PEFT기법이 등장했습니다.
이번 포스팅에서 살펴본 Adapter Layers, LoRA, Prompt-Tuning과 같은 PEFT 방법들은 메모리와 연산 비용을 절약하면서도 특정 태스크에 모델을 효과적으로 최적화할 수 있는 방법들을 알아 봤습니다.
요약하자면,
- Adapter Layers는 모델에 추가적인 네트워크를 삽입하여 특정 태스크에 적응하는 방식이고,
- LoRA는 가중치 행렬을 저차원으로 변환하여 연산량을 줄이면서도 학습 효과를 유지하는 방식이며,
- Prompt-Tuning은 모델의 구조를 변경하지 않고, 입력 프롬프트를 조정하여 성능을 향상시키는 방식입니다.
Reference
https://codingsmu.tistory.com/162
https://intelligentcm.tistory.com/340
https://vinija.ai/nlp/parameter-efficient-fine-tuning/
https://medium.com/@kanikaadik07/peft-parameter-efficient-fine-tuning-55e32c60c799
https://velog.io/@mmodestaa/Parameter-Efficient-Transfer-Learning-for-NLP
'AI > LLM' 카테고리의 다른 글
RLHF (Reinforcement Learning from Human Feedback) (1) | 2025.03.27 |
---|---|
LLM의 학습 과정 (1) | 2025.03.18 |
Large Language Models (LLMs) 이론 및 등장 배경 (1) | 2025.03.14 |
LangChain의 핵심 아키텍처와 기능 살펴보기 (1) | 2025.03.12 |
LLM 서빙을 위한 오픈소스 서비스 비교하기 (3) | 2025.02.25 |