ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • LLaMA 논문 리뷰
    Internship_LLM 2024. 1. 31. 16:09
    728x90

    오늘은 LLaMA 논문을 리뷰해보려고 한다.

    Instruction tuning에 대해서 정리를 하면서 Instruction tuning을 사용한 모델에 대해서 알고 싶기도 했으며, parameter를 정리하는 과정에서 openAI GPT와 같이 hyperparameter를 공개하지 않는 모델들만 보다보니 오픈 소스화 된 LLaMA에 대해서 알고 싶기도 했다.

     

    때문에, LLaMA의 가장 시초가 된 2023년 2월 세상에 등장하게 된  LLaMA : Open and Efficent Foundation Language Models 논문을 리뷰해보려고 한다.

     

    [2302.13971] LLaMA: Open and Efficient Foundation Language Models (arxiv.org)

     

    LLaMA: Open and Efficient Foundation Language Models

    We introduce LLaMA, a collection of foundation language models ranging from 7B to 65B parameters. We train our models on trillions of tokens, and show that it is possible to train state-of-the-art models using publicly available datasets exclusively, witho

    arxiv.org

     

     

    ※ Abstract

    Abstract 부분에서 LLaMA 자체를 소개하는 것으로 논문을 시작하고 있다.

     

    LLaMA 란?

    - 7B ~ 65B 규모의 LLM

    - 공개 데이터셋을 사용하여 대부분 SOTA를 기록

    - LLaMA-13B가 GPT-3(175B)를 대부분의 벤치마크에서 넘어섰고, LLaMA-65B는 Chinchilla-70B나 PaLM-540B에 비해 경쟁력이 있는 Best Model이다.

     

     

    1. Introduction

    LLM은 textual instructions나 몇 가지 예시로 새로운 task 수행 능력을 보여준다.

    -> 이러한 few-shot properties는 모델이 충분한 크기가 될 때 나타나고, 그 결과로 모델의 크기를 확장하는데 집중하게 된다.

    -> 이러한 노력은 성능 향상을 위해 더 많은 parameters를 가정하는 것에 기초하게 된다.

     

    하지만, 최근 연구에서 compute budget이 주어진 상태에서 가장 큰 모델이 최고의 성능을 나타내는 것이 아니라, 더 많은 데이터로 훈련된 작은 모델이 최고의 성능을 발휘하는 것이 드러났다고 논문은 소개하고 있다.

     

    ∴ 목표 성능 수준이 주어지면, 가장 빠른 학습이 아니라 추론 속도가 가장 빠른 모델이 선호된다는 것이다. 왜냐하면, 특정 수준의 성능 도달을 위해서는 큰 모델 학습보다 더 오래 학습된 작은 모델의 추론 비용이 더 저렴하다는 점 때문이다.

     

    이러한 관점에서 논문은 전형적으로 사용하는 학습 토큰보다 더 많은 토큰 수를 학습시키고, 다양한 추론 예산에서 가능한 최고의 성능을 얻는 것을 이 연구의 목적으로 집중하고 있다.

    LLaMA는 모델이 LLM 연구와 접근에 민주화를 불러올 것이며, single GPU에서도 쉽게 running이 가능하다는 점으로 인해, LLaMA-65B의 경우, Chinchilla, PaLM에도 경쟁력 있는 LLM이 될 것이라고 기대하고 있다.

     

     

    2. Approach

    훈련 접근은 이전 연구와 유사하며, Chinchilla에서 영감을 받았다고 한다.

    큰 양의 텍스트 데이터로 large transformers를 훈련시킨다.

     

    2.1 pre-training data

     

     

    - 훈련 데이터셋은 다양한 도메인을 covering 할 수 있도록 다양한 source들을 섞는다.

    - 다른 LLMs 훈련에 사용된 데이터 소스를 재사용한다.

    - 오픈 소스와 호환 가능한 공개 데이터로 사용 데이터를 제한한다.

     

    1) English CommonCrawl [67%]

    - 5가지 크롤링 데이터에 CCNet pipeline을 사용해서 전처리했다.

    - 줄 단위 중복 제거, 영어 아닌 페이지를 제거, n-gram 언어 모델로 낮은 품질 콘텐츠를 필터링, Wikipedia에서 참조로 사용되지 않은 페이지를 제거

     

    2) C4 [15%]

    - CommonCrawl 데이터셋 가공을 통해 성능 향상이 되는 것을 관찰하고, C4 데이터셋을 포함시켰다.

    - C4 전처리 : 중복 제거, 언어 식별 단계를 포함했고, 구두점 유무, 웹 페이지의 단어/문장 수와 같은 heuristics에 의존하는 품질 필터링이 CCNet과의 차이이다.

     

    3) Github [4.5%]

    - Google BigQuery를 이용하는 공개 Github 데이터셋을 사용

    - 낮은 품질의 파일을 영어/숫자의 줄 길이나 비율에 따라 heuristics로 필터링하고, boilerplate를 정규표현식으로 제거한다.

    - 파일 수준에서 데이터 셋 결과의 중복을 제거한다.

     

    4) Wikipedia [4.5%]

     

    5) Gutenberg and Books3 [4.5%]

    - 다양한 도메인이 포함된 2가지 book corpora를 훈련 데이터셋에 포함한다.

    - 90% 내용이 겹치는 책을 책 수준에서 중복 제거한다.

     

    6) Arxiv [2.5%]

     

    7) Stack Exchange [2%]

     

    Tokenizer는 BPE 알고리즘을 사용해서 데이터를 Tokenizing 한다. 데이터 셋이 대략 1.4T tokens들을 포함하고 있으며, 대부분의 학습 데이터에서 각 토큰은 학습 중에 한 번만 사용된다. Wikipedia, Books domains를 제외한 대부분의 학습데이터는 2 epochs로 수행된다.

     

    2.2 Architecture

    기본적으로 Transformers 구조를 가진다.

     

    1) Pre-normalization [GPT3에서 영감]

    - 훈련 안정성을 향상시키기 위해서, 각 transformers의 sub-layer의 input을 정규화한다.(RMSNorm을 사용)

     

    2) SwiGLU activation function [PaLM에서 영감]

    - SwiGLU로 ReLU를 대체한다.

    - (2/3) 4d dimension을 가진다.

     

    3) Rotary Embedding [GPTNeo에서 영감]

    - 궁극적인 positional embedding을 제거하고, 네트워크의 각 layer에 RoPE를 추가한다.

     

     

    2.3 Optimizer

    - AdamW 사용 (Beta_1 = 0.9, Beta_2 = 0.95)

    - 최대 learning rate의 10%인 final learning rate와 같은 cosine learning rate 스케쥴링을 사용한다.

    - weight decay 0.1

    - gradient clipping 1.0

    - 2000 warm up step

    - 모델 크기 마다 다양한 learning rate와 batch size를 사용한다.

     

    2.4 Efficient implementation

    1) 메모리 사용량과 런타임을 줄이기 위해 causal multi-head attention의 효율적인 구현을 사용한다. (xformers 라이브러리 이용)

    2) 역전파 과정에서 선형 레이어 출력과 같이 비싼 계산이 들어가는 활성화는 저장해서 재계산되는 양을 축소한다. (transformers layer에 대한 backward 기능을 수동으로 구현해서 달성이 가능하다.)

     

    이런 최적화로, 모델의 메모리 사용량을 줄일 필요가 있다. 더욱이, 활성화 계산의 오버랩과 네트워크를 넘어서 GPU 사이에서의 의사소통을 해야한다.

    65B-parameter model 훈련 시, 최적화 과정을 통해 1.4T의 토큰을 학습하는데 21일이 걸린다.

     

     

    3. Main results

     

     

    1) zero-shot

    - 텍스트 설명과 시험 예제를 제공

    - open-ended generation을 사용해서 대답을 제공하거나, 제안된 답변을 순위를 매김

     

    2) few-shot

    - 1~64 사이의 몇 개 task 예시와 test 예시를 제공

    - 모델이 텍스트를 input으로 받아 답을 생성하거나 다양한 옵션의 순위를 매김

     

    ∴ Free-Form generation과 multiple choice tasks를 LLaMA로 평가한다.

     

    multiple choice tasks(객관식 과제)

    - 주어진 문맥에 따라 주어진 옵션 중 제공된 문맥과 가장 유사한 완결형을 선택하는 것이 목적이다.

     

    3.1 Common Sense Reasoning

    - zero-shot setting에서 평가한다.

    - LLaMA-65B는 BoolQ를 제외한 모든 벤치마크에서 Chinchilla-70B를 넘어선다.

    - BoolQ 및 WinoGrande를 제외한 모든 벤치마크에서 PaLM-540B를 넘어선다.

    - 10배나 작은 크기에도 불구하고 GPT3의 대부분 벤치마크를 넘어선다.

     

     

    3.2 Closed-book QA

    2개의 closed-book QA 벤치마크에서 존재하는 LLM들과 LLaMA를 비교했다. (Natural Questions, TriviaQA)

    - 2개의 벤치마크에서 LLaMA-65B는 zero-shot, few-shot setting 모두 SOTA

    - LLaMA-13B는 5~10배 규모가 작음에도 불구하고, GPT3, Chinchillla와 경쟁력이 있다는 것은 매우 중요한 사실이다.

    - LLaMA는 Inference 동안 single V100GPU로 모델이 running 된다.

     

     

    3.3 Reading Comprehension

    중, 고등학교 중국 학생들을 위한 영어 독해 시험에서 수집된 RACE 데이터셋을 통해 평가했다.

    - LLaMA-65B는 PaLM-540B 보다 경쟁력 있고, LLaMA-13B는 GPT3을 몇 퍼센트 정도 앞선다.

     

    3.4 Mathmatical reasoning

    - 2가지 수학적 추론 벤치마크에서 평가(MATH, GSM8K)

    - 38.5B 규모 토큰에서 수학적 추론에 맞게 Fine-tuning 된 Minerva와 PaLM을 비교

    - GSM8K에서는 LLaMA-65B가 수학 데이터 fine-tuning 없이도 Minerva-62B를 능가했다.

     

     

    3.5 code generation

    - HumanEval, MBPP 라는 모델이 자연어 묘사를 코딩으로 쓰는 능력을 평가하는 벤치마크를 사용

    - 모델이 몇 가지 input-output 예시 뿐만 아니라 몇 가지 문장을 프로그램으로 묘사함.

     

    HumanEval - 함수 서명 수신, prompt는 텍스트 설명과 테스트가 포함된 자연 코드 형식의 문서 문자열로 표시됨.

     

    - 비슷한 수의 파라미터에서 LLaMA는 코드에 특별히 학습되거나, fine-tuning 되지 않는 PaLM, LaMDA 같은 모델을 넘어선다.

    - 13B 파라미터의 LLaMA가 137B LaMDA를 HumanEval과 MBPP에서 넘어섰다.

    - 65B LLaMA도 PaLM 62B를 오래 학습했을 때는 성능을 넘어섰다.

     

     

     

    3.6 Massive Multitask Language Understanding

    인문학, STEM 및 사회과학을 포함한 다양한 지식 영역의 객관식 문제로 구성된 대규모 다중 언어 이해 벤치마크

    - Five-shot 셋팅을 통해서 모델을 평가

    - LLaMA 65B가 Chinchillla-70B, PaLM-540B 보다 성능이 낮음 : 우리의 pre-training data에서 academic papers와 책의 양이 제한적으로 사용되었기 때문이다.

     

     

     

    3.7 Evolution of performance during training

    - 훈련 동안 몇 개 질문과 상식 벤치마크에서 모델 성능을 추적한다.

    - 대부분의 벤치마크에서 성능이 꾸준히 향상, 모델의 학습 난이도와 상관관계가 있다.

    - SIQA(예외) : 많은 분산이 관찰, 벤치마크가 신뢰도가 없음을 나타냄

    - WinoGrande(예외) : 성능이 학습 난이도와 연관성이 없다고 판단함

     

     

    4. Instruction Finetuning

    LLaMA-65B를 매우 적은 양의 fine-tuning을 실시해도 MMLU 벤치마크와 모델이 지시를 따르는 성능이 향상된다.

    주된 작업이 아니므로 논문에서는 어느정도의 설명으로 다루고 넘어간다.

     

     

    5. Bias, Toxicity and Misinformation

    LLM은 훈련 데이터 내에 존재하는 편향이 증폭되거나 재생산될 수 있음을 보여왔고, 공격적인 내용과 toxic 생성도 일어난다.

    훈련 데이터셋이 Web으로 부터 데이터의 많은 비율을 차지해서 어떤 컨텐츠든지 모델이 생성할 수 있다는 것이 중요하다.

     

    - LLaMA-65B의 잠재적 위험성을 인지하고, toxic 내용을 생산, 고정관념 감지를 측정할 수 있는 다른 벤치마크를 평가했다.

    -> 언어 모델 커뮤니티의 표준 벤치마크 중 일부를 선택하고 모델의 문제를 나타내었지만, 이 평가로 모델과 관련된 위험을 완전히 이해하기에는 충분하지 않다고 논문에서는 말하고 있다.

     

    5.1 RealToxicity Prompts

    - 독성 언어의 범위가 너무 넓어서 철저한 평가가 어렵다.

    - 최근에는 RealToxicityPrompts 벤치마크를 고려하여, 모델의 독성을 평가하는데 이 프롬프트는 10만개로 구성되어 있고 모델이 독성 점수를 Perspective API로 자동 평가한다. 하지만, Perspective API는 제 3자 서비스라, 연구자들이 API의 처리 과정 제어가 힘들어, 이전 모델과 비교가 어렵다.

    - 이 연구는 모델의 크기가 클수록 독성이 증가한다는 것을 관찰했으며, 특히 Respectful prompts에서 두드러졌다.

    더 큰 모델인 Gopher가 Chinchillla 보다 성능이 떨어질 수 있으며, 모델 크기와 독성의 관계가 특정 모델 계열에서만 적용될 수 있다.

     

     

    5.2 CrowS-Pairs

    9개의 카테고리로 bias를 측정했다.

    - gender, religion, race/color, sexual orientation, age, nationality, disability, pyhsical appearance, socioeconomic status

    - zero-shot 셋팅에서 모델이 고정관념 문장을 선호하는 정도가 두 문장의 복잡성을 통해 측정된다. (점수가 높을수록 편향!)

    - LLaMA 모델 편향 : GPT3, OPT-175B 모델에 비해 약간 더 나은 성능을 가진다. 특히, "religion"에서 편향이 심각한 것으로 나타나며, 나이와 성별 범주에서 편향이 일어난다. (이는 CommonCrawl 데이터에서 비롯된 것이다.)

     

     

    5.3 WinoGender

    - "Gender" 카테고리에서 모델의 편향을 조사하기 위해 WinoGender 벤치마크를 관찰 : WinoGender(co-reference resolution dataset) -> 모델이 대명사의 성별에 영향을 받아서 공동 참조 해결 성능이 변화하는지 평가

    문장이 "직업", "참가자", "대명사" 요소를 포함하고 있다.

    - 연구에서 3가지 대명사를 사용해서 평가한다. (her/her/she, his/him/he, their/them/someone)

    - 'their/them/someone' 대명사에 대해 모델이 'her/her/she'와 'his/him/he' 대명사 보다 공동 참조 해결을 더 잘 수행한다.(성별 편향 존재)

    -> 문장의 evidence 보다는 occupations 다수 성별을 사용하는 것으로 보인다.

    - "Gotcha" 사례 조사 : 대명사가 직업의 다수 성별과 매치되지 않는 경우, "occupation"이 올바른 답이다. LLaMA-65B 모델이 "Gotcha" 예시에서 더 많은 오류를 범하고 있고, 모델이 성별과 직업과 관련된 사회적 편향을 갖고 있음을 보여준다.

    "her/her/she"와 "his/him/he" 대명사 모두에서 성능의 저하가 관찰되었으며, 성별에 관계없이 편향이 존재함을 나타낸다.

     

     

    5.4 TrustQA

    - 모델의 truthfulness 측정 목적(주장이 true 일 때 인식하는 능력)

    - 벤치마크가 false 주장, 잘못된 정보를 생성하는 모델의 위험성을 평가할 수 있음.

    - 38개 카테고리에 걸쳐서 다양한 스타일로 출제, 적대적으로 설계된 문제들이 출제됨.

    - GPT3에 비해 LLaMA는 두 범주에서 모두 높은 점수를 받지만, 정답률은 여전히 낮아 모델이 오답을 착각할 가능성이 여전히 높다는 것을 보여준다.

     

     

     

    8. Conclusion

    - LLaMA-13B는 GPT3 보다 10배는 작음에도 성능은 더 뛰어나다. LLaMA-65B는 Chinchillla-70B, PaLM-540B와 경쟁적이다.

    - 상용 데이터 셋이 아닌 공개 데이터 셋만을 사용해서 SOTA를 성취했다.

    - 이러한 모델을 연구 커뮤니티에 공개함으로써, 대규모 언어 모델이 가속화되었고, 모델의 견고성을 개선하고, 독성 및 편향과 같은 알려진 문제를 완화하려는 노력에 도움이 되길 논문은 기대하고 있다.

    - instructions에 따라 모델을 fine-tuning 하면 유망한 결과를 얻을 수 있음을 관찰했으며, 향후 연구에서 추가로 이를 조사하겠다고 한다. -> 이미 LLaMA2를 어떻게 개선시킬지 염두에 두고 논문을 작성했나라는 생각이 든다.

    - 규모를 확장하면서 성능이 향상되었기 때문에 향후에는 더 큰 규모의 사전 학습 corpora로 훈련된 더 큰 모델을 출시하고자 한다고 한다. -> 이 멘트 역시 LLaMA2를 겨냥한 말이라고 생각이 된다.

     

     

     

     

     

     

    728x90

    'Internship_LLM' 카테고리의 다른 글

    LLM 기법(2) - Langchain  (0) 2024.02.05
    LLM 기법 (1)  (0) 2024.02.01
    LLM Parameters  (0) 2024.01.26
    Instruction finetuning & Self-Instruct  (0) 2024.01.26
    SELF-INSTRUCT 논문 리뷰  (0) 2024.01.24
Designed by Tistory.