[논문 리뷰] LLaMA: Open and Efficient Foundation Language Models

정찬비·2024년 3월 12일

논문리뷰

목록 보기
1/2

LLaMA (라마)는 Meta AI에서 발표한 오픈 소싱 LLM으로 GPT, PaLM 과 다르게 소스, 데이터가 공개된 대규모 언어 모델이다.
요즘 대부분의 AI 직무 모집 분야에 LLM이 포함되어 있어 LLM에 대해 공부해보려고 한다.


LLaMA: Open and Efficient Foundation Language Models

Abstract

LLaMA는 7B부터 65B의 파라미터를 갖는 Foundation Language Model이다.

모델은 수조개의 토큰으로 학습하고 공개적으로 이용가능한 데이터셋을 사용하여 SOTA 모델을 학습하는 것이 가능하다는 것을 보인다.

대부분의 벤치마크에서 LLaMA-13B는 GPT-3(175B)를 능가하고 LLaMA-65B는 Chinchilla-70B, PaLM-540B와 견줄만하다

1. Introduction

모델을 확장시키려는 노력이 계속되면서 더 좋은 성능을 위해서 더 많은 파라미터가 필요하다는 가정이 기초가 되었다.
하지만 최근 연구에 따르면 주어진 컴퓨팅 예산 내에서 더 좋은 성능을 달성하는 것은 큰 모델이 아니라 더 많은 데이터로 학습된 더 작은 모델이다.
목표 수준의 성능이 주어질 때, 더 작은 모델이 학습에 더 오래 걸릴지라도 궁극적으로 추론에 더 비용이 적게 들기 때문에 더 작은 모델이 선호된다.

공개적으로 이용가능한 데이터만을 사용하여 LLaMA는 7B ~ 65B의 파라미터를 가지고 기존의 최고 LLM과 견줄만한 성능을 가졌다.

2. Approach

2.1 Pre-training Data

학습 데이터는 몇몇 소스를 혼합하여 구성했다.
다른 LLM 모델 학습에 사용된 데이터를 재사용하고, 공개된 데이터만 사용하였다.

  • English CommonCrawl CCNeet 파이프라인을 이용해 2017년 ~ 2020년 5개의 덤프를 전처리.
    -> 중복 제거, 언어 인식, 저품질 콘텐츠 필터링, Wikipedia 참조가 아닌 페이지 삭제
  • C4 다양하게 전처리된 CommonCrawl 데이터셋
    -> 중복 제거, 언어 인식, 품질 필터링(휴리스틱)
  • Github Google BigQuery에서 이용 가능한 GitHub 데이터셋
    -> 저품질 파일 필터링, 보일러플레이트 제거, 중복 제거
  • Wikipedia 20개 언어의 2022년 6~8월의 위키피디아 덤프
    -> 하이퍼링크, 댓글, 다른 보일러플레이트 형식 제거
  • Gutenberg and Books3 학습 데이터셋에 2개의 책 말뭉치 추가
    -> 중복 제거
  • ArXiv 과학적인 데이터를 추가하기 위해 arXiv Latex 파일 사용
    -> 참고문헌, 첫번째 섹션 이전 내용 삭제, 주석, 사용자 확장 정의 제거
  • Stack Exchange 다양한 도메인의 높은 품질의 질의응답 데이터
    -> HTML 태그 제거, 점수별 답변 정렬

토크나이저
Byte-Pair Encoding(BPE) Algorithm을 이용해 토크나이징하여 약 1.4조개의 토큰을 생성하였다.

💡
boilerplate - 코드를 작성하기 위해 항상 필요한 부분, 여러 상황에서 변경하지 않고 재사용할 수 있는 코드
BPE - 텍스트 데이터를 가변 길이 바이트 쌍으로 표현하여, 빈도가 높은 문자열을 짧은 바이트 쌍으로 나타내는 방식

2.2 Architecture

Transformer 아키텍쳐를 기반으로 구성하고, 다음과 같은 차이점을 가진다.

  • Pre-normalization (GPT3) 학습의 안정성을 향상하기 위해 각 transformer sub-layer의 입력을 RMSNorm 정규화
  • SwiGLU activation function (PaLM) 활성화 함수로 ReLU 대신 SwiGLU 사용, PaLM의 4d 대신 (2/3)4d 차원 사용
  • Rotary Embeddings (GPTNeo) Absolute positional embeddings 대신 Rotary positional embeddings(RoPE)사용

2.3 Optimizer

AdamW 옵티마이저 사용 (하이퍼파라미터: β1 = 0.9, β2 = 0.95)
Cosine learning rate Schedule 사용
weight decay = 0.1, gradient clipping = 1.0, 2000 warmup step

2.4 Efficient implementation

메모리 사용과 런타임을 줄이기 위해 causal multi-head attention 사용 (xformers 라이브러리)
-> attention weight 정렬, key/query 점수 계산을 하지 않음
계산하기 비싼 activation 저장하여 많은 양의 다시 계산되는 activation을 줄인다.
-> PyTorch autograd에 의존하지 않고 backward function 수동 구현
모델, 시퀀스 병렬처리를 통해서 메모리 사용을 줄여야한다.

3. Main results

3.1 Common Sense Reasoning

8개의 standard common sense reasoning benchmarks(BoolQ, PIQA, SIQA, HellaSwag, WinoGrande, ARC easy and challenge, OpenBookQA)에 대해 zero-shot 설정으로 진행하였다.

LLaMA-65B는 BoolQ를 제외한 모든 벤치마크에서 Chinchilla-70B를 능가했고, BoolQ와 WinoGrande를 제외하고는 PaLM-540B를 넘어섰다.
LLaMA-13B는 10배는 더 작은 크기임에도 불구하고 대부분의 벤치마크에서 GPT-3를 넘어섰다.

3.2 Closed-book Question Answering

Natural Questions, TriviaQA 벤치마크를 통해 질문의 답에 대한 증거가 포함되는 문서가 없는 closed book 설정에서 수행했다.

LLaMA-65B는 zero-shot, few-shot 설정에서 SOTA 성능을 달성했다.
LLaMA-13B는 더 작은 크기임에도 GPT-3, Chinchilla에 경쟁력있는 성능을 보였다.

3.3 Reading Comprehension

RACE reading comprehension 벤치마크에 대해서 LLaMA-65B는 PaLM-540B에 견줄만했고, LLaMA-13B는 작은 차이로 GPT-3를 능가했다.

3.4 Mathematical reasoning

MATH, GSM8k 벤치마크에 대해서 PaLM과 파인튜닝된 PaLM 시리즈 Minerva와 비교했다.

GSM8k에 대해서 파인튜닝되지 않았음에도 LLaMA-65B는 Minerva-62B를 넘어섰다.

3.5 Code generation

HumanEval, MBPP 벤치마크에 대해서 파인튜닝하지는 않았지만 학습 데이터셋에 비슷한 code 토큰을 사용한 PaLM과 LaMDA와 비교했다.

비슷한 파마리터를 가진 모델 간에 코드에 대해 학습 및 파인튜닝하지 않은 LLaMA가 가장 우수했다
파인튜닝을 통해서 성능을 더 높일 수도 있다.

3.6 Massive Multitask Language Understanding

MMLU 벤치마크를 통해 다양한 도메인에 대한 질의를 5-shot 설정으로 수행했다.

LLaMA-65B는 Chinchilla-70B와 PaLM-540B를 뒤따랐고 이는 학습 데이터에 제한된 양의 책과 학술 논문이 사용되었기 때문이라고 예상된다.

3.7 Evolution of performance during training

학습을 진행할수록 성능을 향상되었고, 학습 perplexity(불안성)과의 상관관계도 나타났다.

4. Instruction Finetuning

MMLU에 대해서 매우 작은 양의 파인튜닝은 성능을 향상시키며, 지시를 따르는 모델의 능력은 더욱 향상된다.
instruction model LLaMA-I는 간단한 instruction 파인튜닝에도 불구하고 MMLU에 대해서 68.9%를 달성했다.
대부분의 instruction finetuned model을 넘어섰지만 SOTA 모델인 GPT(code-davinci-002)는 넘지못했다.

5. Bias, Toxicity and Misinformation

많은 데이터를 웹에서 수집하였기 때문에 모델이 유해한 콘텐츠를 생성할 가능성이 있다는 것이 중요하다.

5.1 RealToxicityPrompts

RealToxicityPrompts 벤치마크를 통해 독성 점수를 계산하였다.

모델의 크기가 커지면서 독성도 증가하는 것을 발견했다.
같은 모델 시리즈 내에서만 독성과 모델 크기의 관계가 적용될 지도 모른다.

5.2 CrowS-Pairs

CrowS-Pairs는 9가지 카테고리에 대해서 zero-shot 설정에서 고정관념이 포함된 문장의 선호도를 측정하여 편향을 측정한다.
LLaMA는 GPT-3, OPT-175B와 비슷했으며, 특히 지역 카테고리에 대해서 더욱 편향적이다.

5.3 WinoGender

성별 카테고리에 대해서 편향을 측정하기 위해 WinoGender 벤치마크를 사용했다.
(대명사의 성별에 영향을 받아 공동참조결정을 하는지 판단)

모델은 무성 대명사(their)에 대해 유성 대명사(her, his)보다 더 잘 공동참조결정을 수행했다.
이는 문장에서 증거를 찾는게 아니라 직업의 대다수의 성별에 따라 결정된 것일 수도 있다.
따라서 직업의 대다수의 성별에 적합하지 않는 경우(gotcha)를 통해 수행한 결과, LLaMA-65B는 더 많은 오류가 발생했다.
이는 명확하게 직업과 성별의 사회적 편향을 파악한 것으로 보여진다.

5.4 TruthfulQA

TruthfulQA는 모델의 진실성을 측정한다.

LLaMA는 두 카테고리에 대해서 GPT-3보다 높은 점수를 얻었지만 정답률은 여전히 낮다.

6. Carbon footprint

모델을 훈련하는 것은 대량의 에너지를 소비하고 이산화탄소를 방출한다.
훈련이 끝나고 상대적으로 작은 모델의 출시는 탄소 배출량 감소에 도움이 될 것이다.

Language models ...
Architecture ...
Scaling ...

8. Conclusion

LLaMA-13B는 10배 더 작음에도 GPT-3를 능가했고, LLaMA-65B는 Chinchilla-70B, PaLM-540B에 경쟁력 있는 모델이다.
공개적으로 이용할 수 있는 데이터로 SOTA 성능에 달성할 수 있다는 것을 보였다.

profile
ML Engineer

0개의 댓글