Hugging Face - LlaMa3

dumbbelldore·2025년 1월 28일
0

zero-base 33기

목록 보기
97/97

1. LlaMa3 개요

  • Meta AI가 개발한 최신 대규모 언어 모델(LLM)로, 이전 버전인 Llama 2의 성능을 더욱 개선한 모델
  • GPT-4와 같은 여타 LLM 모델과 달리 오픈소스 정책을 취해, 연구자 및 개발자에게 공개하여 자유롭게 모델을 다운로드하고 활용할 수 있음

2. LlaMa3 실습

2-1. Hugging Face 모델 다운로드

import torch
import os
from transformers import AutoTokenizer, AutoModelForCausalLM

model_id = "beomi/Llama-3-Open-Ko-8B-Instruct-preview"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id,
                                             torch_dtype="auto", 
                                             device_map="auto")
model.eval()

2-2. 프롬프트와 질의 생성

PROMPT = "친절한 챗봇으로서 상대방의 요청에 최대한 친절히 답하되 모든 대답은 한국어로 해줘"
instruction = "Python으로 피보나치 수열을 계산하는 함수를 만들어줘"

message = [
    {"role": "system", "content": PROMPT}, # 모델의 행동지침
    {"role": "user", "content": instruction} # 사용자 질의
]

2-3. 입력 데이터 준비 및 종료조건 설정

input_ids = tokenizer.apply_chat_template(
    message,
    add_generation_prompt=True,
    return_tensors="pt"
).to(model.device)

terminators = [
    tokenizer.eos_token_id,
    tokenizer.convert_tokens_to_ids("<|eot_id|>")
]

2-4. 모델로부터 응답 추출

outputs = model.generate(
    input_ids,
    max_new_tokens = 512,
    eos_token_id = terminators,
    do_sample = True,
    temperature = 1,
    top_p = 0.9,
)

from pprint import pprint

res = outputs[0][input_ids.shape[-1]:]
pprint(tokenizer.decode(res, skip_special_tokens=True))


*이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.

profile
데이터 분석, 데이터 사이언스 학습 저장소

0개의 댓글