LLaMA는 facebook META에서 공개한 모델로, 오픈소스라는 특징을 가진다(GPT4나 PaLM2와 같은 모델은 private함). 완전히 공개된 데이터셋만으로 학습된 모델이 SOTA(State-Of-The-Arts) 성능에 도달할 수 있음을 보여주며, LLaMA-13B은 파라미터 차이가 많이 나는 GPT-3(175B) 보다 좋은 성능을 보이기도 하며, LLaMA-65B 모델은 best model들과 견주는 성능을 보여준다.
Approaches
LLaMA는 Chinchilla의 오픈 소스 모델이라고 생각할 수 있다. 공개된 데이터만을 사용하여 학습되었고, 모델의 성능 안정성과 속도를 위해 이런저런 방법을 사용했다.
Pre-training Data
Pre-training에는 위와 같은 데이터셋이 사용되었다. 가장 큰 부분을 차지하는 CommonCrawl 데이터셋은 CCNet에 의해 필터링 되었으며, C4는 구두점을 보존하는 등의 조금 다른 quality filtering이 적용되었다. Github 데이터셋은 BigQuery에 공개되어 있으며 Apache, BSD 및 MIT 라이센스 하에 배포된 프로젝트만을 사용한다. Wikipedia는 2022년 6~8월 기간의 데이터가 사용되었으며 20 언어로 구성되어 있다. 이외의 Gutenberg and Books3은 book 데이터셋이고, ArXiv와 StackExchange는 전문적인 정보를 포함한 데이터셋이다.
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 4개의 모델 사이즈는 위의 표와 같으며, 작은 또한 학습 토큰의 수를 증가시킴으로써 더 나은 성능에 도달할 수 있다는 것을 증명한다. 사용된 학습 토큰 수에 따른 loss는 다음 그래프와 같다.
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으로 진행되었으며, 데이터셋은 cloze, winograd 스타일의 task를 포함한다. 위의 결과를 보면 LLaMA-65B는 report된 모든 task에서 Chinchilla를 능가하는 성능을 보이며, LLaMA-13B 모델은 파라미터 수가 10배 이상인 GPT-3와 비교하여 상당히 우수한 성능을 보이며 20배 이상 차이나는 Gopher와 비교해도 그에 준하는 성능을 가진다 😲.
Closed-book QA
왼쪽은 NaturalQuestions에서의 결과이고, 오른쪽은 TriviaQA에서의 결과이다. 두 benchmark에서 LLaMA-65B 모델은 zero-shot과 few-shot 세팅 모두 SOTA 성능에 달성하며, 놀라운 것은 LLaMA-13B 또한 Chinchilla와 GPT-3(무려 5-10배 차이 🔥)에 준하는 성능을 보이며, 모델의 크기가 작기 때문에 single V100 GPU에서 동작할 수 있다.
MMLU
MMLU는 humanities, STEM 그리고 social science 등의 다양한 domain을 포함하는 벤치마크이며, 5-shot으로 평가가 진행되었다. 해당 벤치마크는 이전의 Commonsense reasoning과 Closed-book QA와 같이 뛰어난 성능을 보여주진 않는다. LLaMA는 PaLM과 Chinchilla보다 뒤쳐지는 성능을 달성하게 되는데, 이는 pre-training data가 한정된 books, academic papers를 포함하고 있기 때문일 가능성이 있다(다른 모델들은 2TB 크기의 books에서 학습된 것에 비해 LLaMA는 177GB에서 학습됨).
논문에서는 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에서 구동될 수 있기 때문에 효율적이다. 따라서 눈여겨봐야 할 중요한 모델이라는 사실은 변하지 않는다 🦙.