Pretrained LM과 LLM
둘 다 대량의 코퍼스로 사전학습한 언어모델인데, 왜 Pretrained LM과 LLM을 굳이 나눠 부르는지가 처음엔 잘 와닿지 않았다. 핵심은 모델 크기보다 하나의 모델로 몇 개의 태스크를 푸느냐에 있었다.
Pretrained LM#
BERT, GPT-1/2 같은 모델이 여기에 속한다. 대량의 코퍼스로 사전학습한 뒤, 풀고 싶은 downstream 태스크마다 따로 finetune 한다.
- 하나의 모델로 하나의 태스크를 해결한다.
- 태스크별로 finetune 데이터를 구축해야 하고, 태스크 수만큼 모델을 학습하고 유지보수해야 한다.
즉 감성분석 모델 따로, 요약 모델 따로 만드는 구조다.
LLM#
GPT-3/4, LLaMA, Mistral 같은 모델이다. 대량의 코퍼스를 매우 많은 파라미터의 모델로 사전학습한다.
- 별도 finetune 없이 하나의 모델로 다양한 태스크를 수행한다.
- 사전에 학습하지 않은 태스크도 입력 구성만으로 수행할 수 있다.
- prompting으로 모델이 수행할 태스크와 출력을 제어한다.
같은 모델 하나에 입력만 바꿔 넣어서 요약도 시키고 분류도 시킨다.
동작 원리 - Zero-shot과 Few-shot#
LLM이 추가 학습 없이 다양한 태스크를 푸는 원리가 Zero/Few-shot Learning이다. 둘은 입력에 예시를 주느냐로 갈린다.
Zero-shot은 예시 없이 태스크 설명과 입력만 준다.
아래 리뷰는 영화에 대한 감상이야. 리뷰를 잘 읽고 감성을 분석해줘.
리뷰: 디렉터스컷으로 봐서 거의 3시간짜리인데 참 흡입력 있다
감성:
Few-shot은 여기에 입력-출력 예시인 demonstration을 함께 준다.
리뷰1: 액션이 없는데도 재미있는 몇 안 되는 영화
감성: 긍정
리뷰2: 원작의 긴장감을 제대로 살려내지 못했다.
감성: 부정
위 예시를 보고 아래 리뷰의 감성을 분석해줘
리뷰: 디렉터스컷으로 봐서 거의 3시간짜리인데 참 흡입력 있다
감성:
모델 능력이 충분하면 demonstration을 통해 성능이 더 올라간다.
이때 LLM의 입력은 보통 세 부분으로 구성된다.
- Task Description: 수행할 태스크에 대한 묘사
- Demonstration: 태스크 예시(입력-출력 쌍), Few-shot일 때만
- Input: 실제로 풀 입력 데이터
prompt 구성 방식에 따라 같은 모델도 성능이 달라진다.
Pretrained LM은 태스크별로 finetune해 하나의 모델로 하나의 태스크를 풀고, LLM은 하나의 모델로 다양한 태스크를 푼다. 그 동작 원리가 Zero/Few-shot Learning이고, Few-shot은 입력에 demonstration을 더해주는 것이다.
사전학습만 한 LLM이 사용자의 지시를 잘 따르게 만드는 과정은 Instruction Tuning - SFT, Reward Model, RLHF에서 이어진다.
댓글