๐ Llama-3 Korean 8B Model
This project provides usage examples for the Llama-3 Korean 8B
model, demonstrating how to use it with the Transformers
and VLLM
libraries. It also shows the results of sample queries.
๐ License
The model uses the llama3
license.
โจ Features
๐ป Usage Examples
Basic Usage with Transformers
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline
BASE_MODEL = "sh2orc/Llama-3-Korean-8B"
model = AutoModelForCausalLM.from_pretrained(BASE_MODEL,
torch_dtype=torch.bfloat16,
attn_implementation="flash_attention_2",
device_map="cuda:0")
tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL)
tokenizer.pad_token = tokenizer.eos_token
tokenizer.padding_side = 'right'
instruction = 'ํ ๋ถ ๊ฒฐ์ ๋ํด์ ์ค๋ช
ํด์ค'
pipe = pipeline("text-generation",
model=model,
tokenizer=tokenizer,
max_new_tokens=1024)
messages = [
{"role": "user", "content": instruction},
]
prompt = pipe.tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
outputs = pipe(
prompt,
do_sample=True,
temperature=0.8,
top_k=10,
top_p=0.9,
add_special_tokens=True,
eos_token_id = [
pipe.tokenizer.eos_token_id,
pipe.tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
)
print(outputs[0]['generated_text'][len(prompt):])
print(outputs[0]['generated_text'][len(prompt):])
Result for Transformers
ํ ๋ถ ์๊ธ์ ๋ฌผ๊ฑด์ ์ด ๋, ๊ทธ ๊ฐ์ ์ผ์ ๊ธฐ๊ฐ ๋์ ๋๋ ์ ์ง๋ถํ๋ ๋ฐฉ์์
๋๋ค. ์๋ฅผ ๋ค์ด, 50๋ง์์ง๋ฆฌ ์ ํ์ 10๊ฐ์ ํ ๋ถ๋ก ๊ตฌ๋งคํ๋ค๋ฉด, ๊ฐ ๋ฌ๋ง๋ค 5๋ง์์ฉ 10๊ฐ์์ด ๋์ ์ง๋ถํ๊ฒ ๋ฉ๋๋ค. ์ด๋, ํ ๋ถ ์๊ธ์ ์ผ์ ๊ธฐ๊ฐ ๋์ ์ด์ ์์ด ๋ฌผ๊ฑด์ ์ฌ์ฉํ ์ ์๋ ์ด์ ์ด ์์ง๋ง, ๋์์ ์ฐ์ฒด๋ฃ๊ฐ ๋ถ๊ณผ๋ ์ ์์ผ๋ฉฐ, ์ฑ๋ฌด๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ผ์, ํ ๋ถ๋ฅผ ์ฌ์ฉํ ๋๋ ์์ ์ ์ฌ์ ์ํ์ ๊ตฌ๋งคํ ๋ฌผ๊ฑด์ ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
Advanced Usage with VLLM
from vllm import LLM, SamplingParams
from transformers import AutoTokenizer, pipeline
BASE_MODEL = "sh2orc/Llama-3-Korean-8B"
llm = LLM(model=BASE_MODEL)
tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL)
tokenizer.pad_token = tokenizer.eos_token
tokenizer.padding_side = 'right'
instruction = '์นด๋ ํ ๋ถ ๊ฒฐ์ ์ ๋ํด์ ์๋ ค์ค'
messages = [
{
"role": "system",
"content": "๋น์ ์ ํ๋ฅญํ AI ๋น์์
๋๋ค. You are a great AI assistant."
},
{
"role": "user",
"content": instruction
},
]
prompt_message = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
eos_token_id = [tokenizer.eos_token_id, tokenizer.convert_tokens_to_ids("<|eot_id|>")]
outputs = llm.generate(prompt_message, SamplingParams(stop_token_ids=eos_token_id, temperature=0.6, top_p=0.8,max_tokens=4096))
for output in outputs:
propt = output.prompt
generated_text = output.outputs[0].text
print(generated_text)
Result for VLLM
์นด๋ ํ ๋ถ ๊ฒฐ์ ๋ ๊ฒฐ์ ํ ๊ธ์ก์ ์ผ์ ๊ธฐ๊ฐ ๋์ ๋๋ ์ ๊ฐ๋ ๋ฐฉ์์ผ๋ก, ์นด๋์ฌ์ ์ํด ๋์ถ๋ ๊ธ์ก์ ๊ฐ๋ ๊ฒ์
๋๋ค. ์นด๋ ํ ๋ถ ๊ฒฐ์ ๋ ์ผ์ ํ ๊ธฐ๊ฐ ๋์ ์ํํ ์ ์๋ ๊ธ์ก์ ์ ํํ์ฌ ๊ฒฐ์ ํ ์ ์์ผ๋ฉฐ, ์ด ๊ณผ์ ์์ ์ด์๋ฅผ ์ง๋ถํด์ผ ํฉ๋๋ค. ์นด๋ ํ ๋ถ ๊ฒฐ์ ๋ ์ผ์๋ถ ๊ฒฐ์ ๋ณด๋ค ์ ๋ฆฌํ ์ ์์ง๋ง, ์ด์๋ฅผ ์ง๋ถํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋น์ฉ์ด ์ฆ๊ฐํฉ๋๋ค.