Introduction
LLaMA는 7B~65B Param을 갖는 오픈소스 대형 언어모델이다. 본 연구에서는 공개된 데이터셋만 활용하여 충분히 좋은 성능을 보이는 것을 확인하였다.
연구(Hoffman et al, 2022)에 따르면 모델 크기를 키우는 것이 아니라, 더 많은 데이터로 학습 시키는 것이 효과적임을 확인하였다. 따라서, LLaMA는 기존 연구보다 더 많은 토큰으로 학습하였다. 기존 Chinchilla , PaLM(130B), GPT-3와 다르게 public data로만 학습하였다.
Approach
Pretraining Data
LLaMA는 공개 데이터로만 학습하였다. 학습에 사용된 데이터 구성은 다음과 같다.
CommonCrawl :
C4 [https://paperswithcode.com/dataset/c4]
Github
Wikipedia
Books
arXiv (논문)
StackExchange
Tokenizer
BPE Tokeninzer 사용하였음. Byte Pair Encoding Tokenizer를 사용하였음. 빈도가 높은 character 조합을 채택하여 Token으로 설정한다.
또한 Sentence Piece를 이용하여 단어사전을 완성하였다.
전체 학습 데이터를 토큰화 하여 학습하였으며 학습 토큰은 약 1.4T개 이다.
Architecture

기존 Transformer구조와 다르게 Transformer Layer안에서 Normalization위치를 각 Sub Layer 이전으로 배치하였다. Pre Normalization이라고도 불리는데, 이는 학습의 안정성과, 딥러닝 학습 속도의 향상, 성능 개선의 이유로 채택하였다고 한다.
기존 Post-Normalization에선 Layer Norm이 Residual Connection 이후에 적용됨으로 Layer Norm 없이 큰 값을 전달할 가능성이 있다.
이때 Layer Norm에는 RMSNorm을 사용한다.
기존 정규화는 평균, 표준편차를 계산해야한다는 단점을 가지고 있지만 RMSNorm은 각 노드의 출력을 출력의 제곱 평균으로 나눠 연산량을 줄였다.
또한 SwiGLU를 사용하였는데, activation Function으로 ReLU대신 SwinGLU를 사용하여 Gradient Vanishing 문제를 해결하고자 하였다. 또한 4d에서 2/3*4d으로 연산량을 줄였다.
Rotary Embedding을 사용하였는데, 절대 기준으로 Position Embedding을 하는것과 달리 각 Embedding의 상대적인 위치를 표하는 Embedding이다.
Optimizer
AdamW를 사용하였으며, cosine Learning rate scheduler를 채택하였다. warmup step은 2000으로 설정하였다.

Main Result
Zero-shot : 사전학습만 수행하고, 문제 설명과 질문을 주고 정답을 예측
Few-shot : 소수의 데이터만 학습하고, 질문을 주고 정답을 예측




Conclusion
LLAMA는 기존 모델 대비 파라미터 수가 훨씬 적으면서도 우수한 성능을 보임.
GPT-3 보다 약 10배 작은 모델에서도 뛰어난 결과를 냄.
특히 공개 데이터만 학습했음에도 불구하고 당시 SOTA를 달성함
이는 본 논문이 Introduction에서도 주장한 모델 파라미터를 늘리는 것보다 다양하고 많은 데이터를 학습시키는 것이 더 핵심임을 확인할 수 있음.
'AI' 카테고리의 다른 글
Contrastive Clustering (0) | 2023.06.08 |
---|---|
Wind Tunnel: Towards Differentiable ML Pipelines Beyond a Single Model (0) | 2023.01.27 |
Semi-supervised Active Learning for Semi-supervised Models: Exploit Adversarial Examples with Graph-based Virtual Labels (0) | 2023.01.17 |
딥러닝 -03 Recurrent Neural Network (0) | 2020.04.04 |
딥러닝 -02 CNN 학습 (0) | 2020.03.31 |
댓글