본문 바로가기
Natural Language Processing/Large Language Model (LLM)

[LLM 모델 간단 Review] LLaMA: Open and Efficient Foundation Language Models

by 지구킹 2023. 6. 8.
728x90

올해 초 Meta에서 오픈소스로 공개한 파운데이션 모델, LLaMA에 대해 간략히 리뷰하고자 한다.

 

※ 파운데이션 모델: 대용량의 unlabeled dataset으로 사전학습하고 다양한 다운스트림 태스크에 파인튜닝하여 응용할 수 있는 모델


Abstract

Meta에서 7B에서 65B개의 파라미터를 가지는 LLM 모델인 LLaMA를 공대했다. 수조개에 달하는 토큰을 기반으로 학습시켰으며, 비공개 데이터 셋이 아닌 공개된 데이터 셋으로 훈련했을 때 SOTA model이 되었다. LLaMA-13B 모델은 GPT-3 (175B) 모델보다 성능이 더 좋았으며 이전에 공개된 Chinchilla-70B, PaLM-540B 모델 보다도 성능이 좋았다. 해당 모델은 연구 목적으로 공개되어 활용할 수 있다.

 

Dataset

Pre-training을 위한 데이터 셋은 아래 표와 같다.

토크나이저는 SentencePiece에서 활용했던 BPE 알고리즘을 활용해 토큰화를 진행하였다. 모든 숫자들을 개별적인 숫자로 분리하였고 알수 없는 UTF-8 문자들을 분해하기 위해 바이트로 대체하였다.

따라서 전체적은 훈련 데이터셋은 토큰화 과정 이후 대략 1.4T의 토큰을 갖게된다. Wikipedia와 Book 도메인에 대해서만 2 에폭까지 활용되었다.

LLaMA

LLaMA의 경우 기존에 있던 알고리즘과는 아래와 같이 3가지 다른 차이점이 있다.

 

Architecture

Pre-normalization [GPT3]

학습 안정성을 향상 시키기 위해 출력에서 normalization하기 보단, 각 트랜스포머의 sub-layer에서 입력을 normalization했다. Normalization하기 위해 RMSNorm 함수를 활용했다.

 

SwiGLU activation function [PaLM]

성능 향상을 위해 SwiGLU 활성함수로 대체했다. 따라서 PaLM 모델처럼 4d대신 2/3*4d차원으로 활용했다.

 

Rotary Embeddings [GPTNeo]

Absolute positional embedding 대신 Rotary Embedding방식을 활용했다. 사용된 파라미터는 아래와 같다.

Optimizer

해당 모델에선 AdamW optimizer를 활용했다. 이때 베타1 = 0.9, 베타2 = 0.95 하이퍼파라미터로 학습되었다. 또한 cosine learning rate scheduler를 활용하였고 최종 학습률은 최대 학습률의 10%가 되도록 했다. weight decay는 0.1 gradient clipping을 1.0으로 사용했다. 또한 2,00개의 웜업 스텝을 사용하며 모델 크기에 따라 다른 배치사이즈를 주었다.

(자세한 내용은 바로 위 그림 Table2에 나와있다.)

 

Efficient implementation

모델의 학습 속도를 개선하기 위해 몇가지 최적화 방식을 활용하였다.

먼저, casual multi-head attention을 효율적으로 활용하여 메모리 사용량과 런타임 시간을 단축시켰다. 이 방법은 xformers 라이브러리를 활용해 사용할 수 있다.

 

또한, 훈련 효율성을 향상시키기 위해 체크포인트를 활용해 역전파에서 재연산되는 활성화 함수의 양을 감소시켰다. 즉, 선형 레이어 출력과 같이 계산비용이 큰 활성화 함수는 저장해 놓는 것이다. 따라서 활용화 함수의 저장은 Pytorch autograd에 의존하지 않고 트랜스포머 레이어의 역전파 함수를 직접 구현해 작동된다.

 

게다가, 모델과 시퀀스의 병렬 처리를 통해 모델의 메모리 사용량을 줄여야 한다. 또한, 신경망에서 활성화 함수의 계산과 GPU간 통신을 가능한 오버랩 해서 활용해야 한다.

Result

LLaMA는 대부분의 태스크에서 우수한 성능을 보였으며, 모델의 크기가 클수록 더 좋은 성능을 보였다. 특히 문장을 생성하는 task에서 성능이 뛰어난것을 파악할 수 있다. 또한 LLaMA 모델이 잠재적으로 편향성이 있고, 가짜 뉴스를 생성하는 등 유해한 결과를 도출할 수 있기 때문에 이 부분에 대해서도 실험을 통해 비교했다.


Reference

https://arxiv.org/pdf/2302.13971.pdf

 

728x90

댓글