인공지능 개발자 수다(유튜브 바로가기) 자세히보기

자연어처리

[자연어처리] Llama-2 모델 공부 (1)

Suya_03 2023. 10. 18. 20:31

목차

    반응형

    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

     

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

    반응형