오늘 공부한 내용은 LLM!
방대한 양의 텍스트 데이터를 학습하여 인간의 언어를 이해하고 생성할 수 있는 범용적인 언어 모델
사전 학습 데이터와 파라미터의 수가 크면 LLM이라 지칭한다.
GPT1~2나 BERT같은 Pretrained 모델은 태스크 별 파인튜닝이 필요하지만, LLM은 범용 모델 하나로 다양한 태스크를 해결한다.
zero shot learning : prompt 만으로 모델이 태스크 이해해서 수행
few shot learning : prompt에 일부 예시를 추가해 태스크 이해해서 수행
모델의 사이즈가 커지면, 몇가지 예시만으로도 성능이 향상된다.
Corpus
사전학습을 위한 대량의 텍스트 데이터 집합
원시 데이터를 욕설, 중복, 개인정보를 정제
해서 사용한다.
LLM이 암기능력이 뛰어나기 때문에 정제하지 않으면 문제가 생긴다.
Instruction Tuning
유용(helpfulness
)하고 안전(safety
)한 답변을 생성하도록 출력을 조정하는 것
RLHF
광범위한 input에 대해 유저가 선호하는 답변을 출력하도록 강화학습
매우 큰 비용이 소모되지만 할루시네이션이 줄고 모델 성능이 향상된다.
Encoder-Decoder 구조
트랜스포머 구조로, Encoder가 입력을 이해해서 Decoder가 문장을 생성한다.
사전학습은 masking된 input 문장 일부를 복원하는 방식으로 생성(span corruption)한다.
Decoder Only 구조
단일 모델만으로 이해와 생성을 한다. 단순히 입력된 토큰을 기반으로 다음 토큰을 예측한다.
사전학습은 문장단위로 토큰을 입력해 매 토큰마다 다음 토큰을 예측하도록 학습한다.
최근 LLM들이 거의 해당 구조.
Parameter-Efficient Fine-Tuning.
사전 학습된 거대 언어 모델의 전체 파라미터를 조정하지 않고, 일부 파라미터만을 미세 조정함으로써 계산 비용과 저장 공간을 크게 줄일 수 있는 기법
적은 컴퓨팅 자원으로도 효과적인 미세 조정이 가능하고, 저장공간을 절약할 수 있다.
모델이 점점 커짐에 따라 모든 파라미터를 조정하는 방식이 힘들어졌다.
Adapter
학습 완료된 모델의 각 레이어에 학습 가능한 FFN(Feed Foward Networ)을 삽입하는 방식
적은 학습 파라미터만으로도 파인튜닝에 가까운 성능이 나온다.
하지만 작은 파라미터만 추가해도 latency가 증가한다.
prefix tuning
트랜스포머의 각 layer에 훈련가능한 vector 추가. 가상의 임베딩으로 간주
prompt tuning
모델의 입력 레이어에 훈련가능하 prompt 벡터 통합.
자연어 프롬프트와는 전혀 다름
4.LoRA
사전 학습된 파라미터를 고정하고 학습가능한 rank decompsition 행렬을 삽입한 방법
layer마다 hidden state에 lora 파라미터를 더해 튜닝한다. 가장 널리 쓰이는 방법이다.
새로 학습한 파라미터를 기존 모델에 합격시켜준다.