자연어처리/LLM 모델

[LLM] Llama2 모델 (1)

Suda_777 2024. 9. 11. 12:00
반응형

1. 개요

  • 지난 시간에 새로운 모델을 학습 하기 위해서는, 비용이 너무 커 개인이 실행하기는 어렵다는 것을 깨닳았다.
  • 이번에는 오픈소스 사전 학습된(Pretrain)모델을 파인튜닝(Finetunning)하기위해, 유명한 오픈소스 모델 중 하나인 Llama2 모델을 사용하는 방법부터 알아 보자

2. 모델 종류

2.1.설명

  • Llama 2는 7B, 13B, 70B 등 다양한 매개변수 크기의 모델이 있음
  • chat: 대화 사용 사례에 최적화된 모델
  • hf: RLHF(인간 피드백)으로 조정

2.2. 종류

  • meta-llama/Llama-2-7b (링크)
  • meta-llama/Llama-2-7b-hf(링크)
  • meta-llama/Llama-2-7b-chat(링크)
  • meta-llama/Llama-2-7b-chat-hf(링크)
  • 나머지는 Llama2 아무거나 들어가서 링크 하단에 나옴

3. 모델 사용 방법

  • 먼저 huggingface에 가서 사용 권한을 요청해야 한다. huggingface에서 meta 홈페이지로 갈 수 있는 링크를 클릭해서 권한 요청을 한다.

  • 먼저 huggingface에 로그인을 한다.
from huggingface_hub import login
login()
  • 가장 작은 사이즈의 모델을 불러와 봅시다.
# Use a pipeline as a high-level helper
from transformers import pipeline

pipe = pipeline("text-generation", model="meta-llama/Llama-2-7b-chat-hf")

 

4. Llama2 문서 요약

Llama 문서 원본 링크

Llama2 문서 원본

4.1. Overview

  • Llama2 모델은 7B ~ 70B개의 매개변수를 가짐
  • 채팅에 맞는 언어모델
  • Llama2 모델은 bfloat16을 사용하여 훈련되었지만 원래 추론 시에는 float16을 사용
    • 추가설명: bfloat16, float16과 달리 정밀도가 높다. 따라서 중요한 숫자를 더 정확하게 표현할 수 있다.
  • Llama2 모델 Llama모델과 유사하다. 그룹화된 쿼리 어텐션 (GQA)이 추가되었다.
  • Tip
    • config.pretraining_tp를 1과 다른값으로 설정 -> 선형 계산이 더 느려지지만, 더 잘 맞춘다.
    • 원래 모델에서 pad_id = -1을 사용하며 이는 패딩 토큰이 없음을 의미
    • 파라미터를 수정한 후, huggingface에 저장 할 수 있음.
    • 스크립트를 실행하려면 충분한 CPU RAM이 필요하며, 가장 큰 모델 버전의 경우 145GB RAM이 필요
    • LLaMA 토크나이저는 sentencepiece를 기반으로 하는 BPE 모델이며, 시퀀스를 디코딩할 때 특이한 점은 첫 번째 토큰이 단어의 시작인 경우 (예: "Banana"), 토크나이저가 문자열 앞에 접두어 공백을 추가하지 않음

4.2. Resources

  • 블로그 소개
    • 블로그 커뮤니티 있음 (Llama2 에 필요한 리소스를 빠르게 모으는 방법, Llama 사용방법 등등..)
  • text generation (Colab에서 fine-tune 방법)
  • text classification(Colab에서 fine-tune 방법)
  • optimization(Colab에서 fine-tune 방법)
  • inference (Llama2 실행 방법)
  • 배포 (AWS SageMaker로 배포)

 

4.3. Llama2 구성

  • LlamaConfig: 각종 파라미터
  • LlamaTokenizer, LlamaTokenizerFast: 토크나이저
  • LlamaModel, LlamaForCausalLM, LlamaForSequenceClassification

 

다음에는 파인튜닝을 실습한 후기에 대한 글을 여러편 작성하고, 마지막으로 모델 구성에 대한 내용과 논문 요약을 하고 이번 글을 마무리 할 것 같습니다.

반응형