전이학습
이미 학습 완료 모델을 새로운 모델의 작업 시작점으로써 재사용하는 기계학습 방법론
특정 데이터셋을 이용해서 사전 학습된 모델의 가중치를 업데이트 하는 것이 처음부터 훈련시키는 것 보다 훨씬 쉬움
대표 패러다임
Pre-training => Fine-tuning

재학습하는 과정을 거침다만, FIne-tuning은 모든 파라미터를 업데이트하는 방법으로써, 큰 모델일수록 학습비용(학습시간, 메모리) 등이 증가한다.
이러한 이유들로 인하여 PEFT가 등장
모델의 전체 parameter를 학습하는 FT와는 다르게 필요한 일부분만 학습하도록 하는 방법
학습 파라미터, 학습 소요 시간을 줄이는 효율적인 방법
PETL (transfer learning)이라고도 지칭한다.
방법론
Prompt Tuning Prefix Tuning P-TuningAdapter LoRA Compacter위 두가지 방법은 독립적이기에 결합하여 사용할 수 있다
PEFT를 왜 진행해야 하나요?
1. 거대한 파라미터 수의 모델을 한정된 GPU 자원으로도 학습 가능하게 함
2. 모듈화가 굉장히 잘 된다. 서로 다른 작업에 대해서 별도의 파라미터 세트를 유지하여 재사용할 수 있다. 탈부착이 가능한 어댑터!
파라미터 삽입 방식의 주요 모델 중 하나
기존 사전학습 모델의 layer 사이에 삽입형 구조로 Adapter 모듈을 제안
CoLA... 등등은 Task 라고 보면 된다(GLUE 벤치마크)

BERT에 적용 (Bottleneck 구조 FNN + Skip-connection)
위 구조에서 Adapter가 왜
Bottleneck구조인지 이해해보자.원래의 FNN은 다음 구조다.
여기 중간에 있는 mxm 매트릭스를 쪼개는 작업이
Low-Rank Decomposition(Adaptation)이라고도 부르는데, 구체적으로는 Reparameterization Trick이라고 칭해지며 이mxm매트릭스를 아래와 같이 둘로 쪼개어 적용시키게 된다.
- 이는 FNN에서 Weight matrix W의 파라미터 수를 줄이는 방법으로
- W를 두개의 작은 Matrix의 곱으로 변환시킨다.
- 여기서 나오는 r이 바로
rank이다.- 이 r을 줄이느냐 늘리느냐에 따라 원래 파라미터수를 크게 줄일 수 있게 되는 것
Reparameterization Trick의 과정을 구체적으로 보자면
위 사진과 같은데, 보는 바와 같이 Bottleneck 구조처럼 그 중간에 오는 사이즈가 굉장히 작아진다(z(1xr)1)
- 위와 같은 과정을 큰거에서 작은 것으로 Project 되었다. 즉,
Down-Projection되었다고 말함- 이걸 다시 아래처럼
Up-Projection하기에Bottle-neck구조라고 하는 것
- 이런 일련의 과정을 바로
Reparameterization Trick이라고 하는 것


md사이즈에 해당하고 여기에서 m과 d는 원래차원과 차원 축소 후의 bias 각각을 말해준다. (m은 rank)Low-Rank Adaptation of Large Language Models의 약자로
사전 학습 모델 가중치는 고정한 채로, 트랜스포머 아키텍처의 각 층에 랭크 분해 행렬을 병렬적으로 위치시켜 추가적인 추론의 지연이 발생하지 않는다.
Adapter 보다 속도 측면에서 효율적이다.

Reparameterization Trick은 동일하다.

이게 차이가 어디서나냐?
배치 단위 훈련에서는 차이가 안 나는데,
인퍼런스할 때 LoRA를 썼을 때랑 안 썼을 때랑 그 추론 시간에서 30퍼센트가량 차이가 난다.
배치단위 훈련에서는 차이가 크지 않지만, 인퍼런스할 때는 하나씩 들어가므로, 차이가 생긴다.
아래 표 참고

표 출처: https://arxiv.org/pdf/2106.09685
LoRA는 Adapter보다 더 간소화된 모델 구조로 되어 있어 파라미터 수를 추가적으로 절약한다.
Adapter Module:

LoRA Module

기본 모델이 비선형 모델로 되어 있으니 Nonlinear activation 및 bias term 생략


출처: https://arxiv.org/pdf/2110.04366
| Adapter | LoRA | |
|---|---|---|
| 모듈 연산 방법 | Sequential (각 layer에 삽입) | Parallel (각 layer 연산과 병렬 연결) |
| 추가 비선형 함수 | O | X |
| 학습 파라미터 | Weight, bias | Weight |
| 연결지연 | 모듈에 비례하여 발생 | 거의 발생하지 않음 |
Transfer Learning
이미 학습 완료된 모델을 새로운 작업의 시작점으로써 재사용하는 기계학습 방법론
PEFT
사전 학습 모델에 학습 가능한 파라미터를 추가하여 특정 작업에 맞춰 업데이트
Adapter LoRA