LLaMA: Open and Efficient Foundation Language Models

안규원·2024년 2월 12일
0

Abstract

  • 모델의 크기(매개변수)와 데이터가 많아질수록 일반적으로 모델의 성능이 올라간다는 사실이 증명되었으나, 이는 학습비용만 고려했을 뿐 추론비용에 대해서는 고려하지 않음

LAMMA : 7B-65B 규모의 LLM 모델

  • 라마의 크기(매개변수 수)를 67억개, 130억개, 325억개, 652억개 등 다양한 형태로 제공하며 대형언어모델인데도 1750억 개의 매개변수가 있는 오픈AI의 GPT-3에 비해 크기가 상당히 작음

  • 매개변수가 130억개(13B)인 라마는 대부분의 벤치마크에서 GPT-3(175B)보다 성능이 우수했고, 매개변수가 652억개인 라마는 5400억개(540B) 매개변수를 가진 구글의 언어모델 팜(PaLM)과 경쟁 가능

Introduction

  • LLM은 모델의 크기(매개변수)와 데이터가 많아질수록 성능이 올라간다는 사실이 가정하에 발전

  • 하지만 한정된 비용 내에서, 상대적으로 작은 규모의 모델에게 큰 데이터를 지속적으로 학습시켰을 때 최상의 성능을 보일 수 있음

  • 이러한 관점에서 연구의 목적을 일반적인 LLM 모델에서 학습되는 토큰 보다 더 많은 토큰의 수를 학습시키고, 이를 통해 다양한 budget 내에서 높은 성능을 확보하고자 함

  • Dataset

    • 공개된 데이터셋
    • 저품질의 데이터는 걸러내고, 중복되는 데이터는 제거하는 등의 사전작업 수행

Approach

  • LLaMA 사전학습 데이터

    • 67%: English CommonCrawl(영문 크롤링 데이터)

      영문 크롤링 데이터에 CCNet 파이프라인을 사용하여 전처리 수행

      • 줄(Line) 단위의 중복 제거
      • 영어가 아닌 페이지 제거
      • n-gram 언어 모델로 낮은 품질의 콘텐츠 필터링
      • Wikipedia에서 참조로 사용되지 않은 페이지 제거
    • 4.5%: GitHub(퍼블릭 코드 데이터)

      • 낮은 품질의 파일을 영/숫자의 줄 길이나 비율에 따라 휴리스틱으로 필터링
      • 보일러플레이트(수정 없이 반복적으로 사용되는 코드)를 정규식으로 제거
      • 파일 수준에서 중복 제거
    • 그 외 Wikipedia 4.5%, Gutenberg and Books3 (도서 데이터) 4.5%, ArXiv (논문 데이터) 2.5%, Stack Exchange (컴퓨터 과학, 화학 등 고품질 Q&A 웹사이트) 2% 등

  • 토크나이저

    • byte-pair encoding (BPE) 알고리즘
  • LLaMA 아키텍처
    최근 공개된 LLM과 마찬가지로 Transformer의 아키텍처 기반으로 하며 아래와 같이 아키텍처에 변화를 주어 개선 사항을 활용(대괄호 안의 모델에서 영감을 받아 사용)

    • Pre-normalization [GPT3]: 훈련 안정성 향상을 위해 출력을 정규화시키는 것이 아닌, 각 Transformer sub-layer의 input을 정규화(RMSNorm)

    • SwiGLU 활성화 함수 [PaLM]: 성능 향상을 위해 ReLU 대신 SwiGLU 활성화 함수 사용(다만, PaLM와 달리 4D가 아닌 2D 차원을 사용)

    • Rotary Embeddings [GPTNeo]: Absolute Positional Embeddings를 제거하고, 네트워크의 각 레이어에 Rotary Positional Embeddings 추가(RoPE)

  • LLaMA Optimizer
    AdamW 옵티마이저를 사용하여 학습되었으며 최대 학습률 10% 만큼의 Cosine Learning-Rate 스케쥴링을 사용

    • weight decay = 0.1
    • gradient clipping = 1.0
    • warmup steps = 2,000
  • Efficient implementation
    모델 학습 속도를 향상시키기 위해 여러가지 최적화 수행

    • 메모리 사용량과 런타임을 줄이기 위해 causal multi-head attention 의 효율적인 구현 사용 (xformers)
    • 체크포인팅을 활용해 backward pass동안 다시 계산되는 activation의 양 축소(리소스 소요를 줄이려는 것 같음)
    • 모델 병렬화, 시퀀스 병렬화 사용
    • 65B 규모의 모델에 1.4T의 토큰을 학습시키는데 약 21일이 소요

Main Results

최근 연구들과 같이 Zero-Shot, Few-Shot에 대한 성능 평가를 진행하며, Free Form Generation (자유 형식 생성)과 Multiple Choice (다중 선택) Task 수행

  • Tasks
    • common sense reasoning(상식 추론)
    • closed-book question answering(컨텍스트가 주어지지 않은 질의응답)
    • reading comprehension(독해)
    • mathematical reasoning(수학적 추론)
    • code generation(코드 생성)
    • Massive multitask language understanding(거대한 멀티태스크 언어 이해)
  • LLAMA-13B 모델이 GPT-3(175B) 모델보다 대부분의 벤치마크에서 더 좋은 성능
  • LLAMA-65B 모델의 Chinchilla-70B, PaLM-540B 등의 모델과 유사한 성능

Bias, Toxicity, Misinformation

  • 모델의 크기가 커질수록 여전히 모델이 해로운 응답을 낼 가능성 상승
  • 데이터셋에 내재된 편견(e.g. 성별)이 여전히 모델의 결과에 영향을 미침
  • hallucination 존재

Conclusion

  • 작은 크기임에도 불구하고 경쟁력이 있다는 것을 확인
  • 상용 데이터셋이 아닌 공개적으로 사용 가능한 데이터만을 사용하여 SOTA를 달성할 수 있는 가능성
  • 간단한 Fine-Tuning을 통해 성능 향상을 이끌어낼 수 있다는 점을 확인
profile
생각을 구현하고자 개발을 공부합니다.

0개의 댓글