learningAI
article thumbnail

LLaMA는 facebook META에서 공개한 모델로, 오픈소스라는 특징을 가진다(GPT4나 PaLM2와 같은 모델은 private함). 완전히 공개된 데이터셋만으로 학습된 모델이 SOTA(State-Of-The-Arts) 성능에 도달할 수 있음을 보여주며, LLaMA-13B은 파라미터 차이가 많이 나는 GPT-3(175B) 보다 좋은 성능을 보이기도 하며, LLaMA-65B 모델은 best model들과 견주는 성능을 보여준다.

 

Llama(낙타과의 동물이다)

Approaches

LLaMA는 Chinchilla의 오픈 소스 모델이라고 생각할 수 있다. 공개된 데이터만을 사용하여 학습되었고, 모델의 성능 안정성과 속도를 위해 이런저런 방법을 사용했다.

 

Pre-training Data

Pre-training datasets

Pre-training에는 위와 같은 데이터셋이 사용되었다. 가장 큰 부분을 차지하는 CommonCrawl 데이터셋은 CCNet에 의해 필터링 되었으며, C4는 구두점을 보존하는 등의 조금 다른 quality filtering이 적용되었다. Github 데이터셋은 BigQuery에 공개되어 있으며 Apache, BSD 및 MIT 라이센스 하에 배포된 프로젝트만을 사용한다. Wikipedia는 2022년 6~8월 기간의 데이터가 사용되었으며 20 언어로 구성되어 있다. 이외의 Gutenberg and Books3은 book 데이터셋이고, ArXivStackExchange는 전문적인 정보를 포함한 데이터셋이다.

 

Architecture

LLaMA는 이전 LLM 연구에서 사용되었던 methods를 활용하여 모델의 성능을 향상시킨다. (Optimizer는 $\beta_1 = 0.9$, $\beta_2 = 0.95$ 세팅의 AdamW이 사용된다.)

  • Pre-normalization [GPT-3]: 학습 안정성을 위해 transformer sub-layer의 입력이 아닌 출력을 normalize한다. Normalization function으로는 RMSNorm이 사용됐다.
  • SwiGLU [PaLM]: 성능 향상을 위해 기존에 사용되었던 ReLU 대신에 SwiGLU가 사용되었다. PaLM에서처럼 dimension은 $4d$가 아닌 $\frac{2}{3}4d$로 세팅된다.
  • Rotary Embeddings [GPTNeo]: 기존의 absolute positional embeddings를 쓰지 않고 각 네트워크에서 rotary positional embeddings를 사용한다.

 

LLaMA model size

LLaMA 4개의 모델 사이즈는 위의 표와 같으며, 작은 또한 학습 토큰의 수를 증가시킴으로써 더 나은 성능에 도달할 수 있다는 것을 증명한다. 사용된 학습 토큰 수에 따른 loss는 다음 그래프와 같다.

 

Loss over train tokens

Efficient implementation

LLaMA는 학습 속도 향상을 위해 몇 가지 최적화 기법을 사용했다. 

  • Memory usage와 runtime를 감소시키기 위해 xformers 라이브러리를 사용해서 multi-head attention을 최적화한다. Attention weight을 저장하지 않으며 마스킹된 key/query 점수를 계산하지 않음으로써 속도가 빨라진다.
  • 역전파 과정에서 recomputing되는 활성화 함수를 감소시킨다. Pytorch autograd에 의존하지 않고 직접 구현한 역전파 함수를 사용하여 최적화가 진행되었다.

결과적으로 최적화가 적용된 65B 모델은 1.4T의 토큰을 약 21일 동안 학습하게 된다.

 

Results

LLaMA는 20개의 benchmark에서의 평가를 진행하지만 여기서는 Commonsense Reasoning, Closed-book QA, MMLU만 살펴보자.

 

Commonsense Reasoning

Zero-shot performance on Commonesense Reasoning tasks

평가는 zero-shot으로 진행되었으며, 데이터셋은 cloze, winograd 스타일의 task를 포함한다. 위의 결과를 보면 LLaMA-65B는 report된 모든 task에서 Chinchilla를 능가하는 성능을 보이며, LLaMA-13B 모델은 파라미터 수가 10배 이상인 GPT-3와 비교하여 상당히 우수한 성능을 보이며 20배 이상 차이나는 Gopher와 비교해도 그에 준하는 성능을 가진다 😲.

 

Closed-book QA

Closed-book QA performace

왼쪽은 NaturalQuestions에서의 결과이고, 오른쪽은 TriviaQA에서의 결과이다. 두 benchmark에서 LLaMA-65B 모델은 zero-shot과 few-shot 세팅 모두 SOTA 성능에 달성하며, 놀라운 것은 LLaMA-13B 또한 ChinchillaGPT-3(무려 5-10배 차이 🔥)에 준하는 성능을 보이며, 모델의 크기가 작기 때문에 single V100 GPU에서 동작할 수 있다.

 

MMLU

5-shot MMLU accuracy

MMLU는 humanities, STEM 그리고 social science 등의 다양한 domain을 포함하는 벤치마크이며, 5-shot으로 평가가 진행되었다. 해당 벤치마크는 이전의 Commonsense reasoning과 Closed-book QA와 같이 뛰어난 성능을 보여주진 않는다. LLaMAPaLMChinchilla보다 뒤쳐지는 성능을 달성하게 되는데, 이는 pre-training data가 한정된 books, academic papers를 포함하고 있기 때문일 가능성이 있다(다른 모델들은 2TB 크기의 books에서 학습된 것에 비해 LLaMA는 177GB에서 학습됨). 

 

LLaMA-I performance

논문에서는 LLaMA에 간단한 instruction-tuning을 적용하여 평가하기도 한다. 이는 논문에서 다루는 주요 내용은 아니기 때문에 single experiment만 진행되었고 instruction-tuning된 모델을 LLaMA-I라고 부른다. MMLU 성능은 위 표와 같다. LLaMA-I는 5.5 포인트 개선으로 나머지 baseline 모델들보다 좋은 성능에 도달하지만 SOTA 성능(code-davinchi-002, 77.4)에는 한참 못 미친다.

 

Conclusion

LLaMA는 작은 모델도 학습 토큰의 수를 늘림으로써 더 나은 성능에 도달할 수 있음을 보여준다. 또한 완전히 공개된 데이터셋만으로 학습되어 SOTA 성능에 도달할 수 있다는 것을 증명했다. Short review이므로 논문 마지막 부분인 모델의 (Bias, toxicity & Misinformation) 부분은 다루지 않았지만 모델 사이즈가 증가할수록 성적 편견 및 toxicity가 증가했으며, misinformation 문제도 여전히 발생했다. 하지만 LLaMA는 오픈 소스이며, 하나의 GPU에서 구동될 수 있기 때문에 효율적이다. 따라서 눈여겨봐야 할 중요한 모델이라는 사실은 변하지 않는다 🦙.

profile

learningAI

@YyunS

인공지능 공부하는 학생입니다!