끄적/모델 최적화 및 경량화
PEFT 1 : 개요
uvumbu
2024. 12. 27. 15:15
Fine - tuning은 모델이 갖고 있는 파라미터 전체를 학습하는 과정이다.
하지만 우리는 일부만 학습을 해서 좋은 모델을 만들 것이다.
PEFT 방법론
(1) 프롬프트 튜닝 방식
원래 모델 파라미터나 구조는 변경하지 않는다.
대신, 우리가 입력하려는 텍스트 문장이 있을텐데 이곳에 특별한 토큰들(특정한 목적을 가진)을 앞에 붙여준다.
이 토큰들이 Transformer 안에 있는 아키텍쳐에 들어가면, 이들이 자연스럽게 input Text들과 교류를 하게 된다. 이를 통해 토큰들이 영향을 끼쳐서 특정 출력을 내뱉도록 학습을 하는 것이다.
즉, 안의 모델은 학습을 하지 않고, 조금의 프롬프트들(단어라고 생각하면 된다.)을 학습해서 input이 우리가 원하는 방식으로 출력하도록 유도하는 방식이다.
ex : Prompt Tuning, Prefix Tuning, P - Tuning
(2) 파라미터 삽입 방식
모델의 특정 위치에 추가 학습이 가능한 파라미터를 삽입하여 모델을 Fine - tuning
ex : Adapter, LoRA, 등
두 방법은 독립적이기 때문에 결합하여 사용할 수 있다.
PEFT 를 하는 이유
대형 모델 Fine - tuning 어려움
- 모델 크기 자체가 너무 커서 학습이 어려운 문제를 해결할 수 있다.
모듈화가 잘 되어 있음
- 사전학습된 모델이 있고, task1, task2, task3에 대해 LoRA나 Adapter로 학습을 했을 때, 탈착하는 방식으로 간단하게 각 task를 풀 수 있도록 할 수 있다.
단! 앞으로 배울 LoRA나 Adapter 계열은 모델 사이사이에 삽입해야 하므로, 블랙 박스 모델에는 사용할 수 없다.