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()
PROMPT = "친절한 챗봇으로서 상대방의 요청에 최대한 친절히 답하되 모든 대답은 한국어로 해줘"
instruction = "Python으로 피보나치 수열을 계산하는 함수를 만들어줘"
message = [
{"role": "system", "content": PROMPT}, # 모델의 행동지침
{"role": "user", "content": instruction} # 사용자 질의
]
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|>")
]
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))

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