metadata
license: llama3.2
datasets:
- KorQuAD/squad_kor_v1
language:
- ko
base_model:
- meta-llama/Llama-3.1-8B-Instruct
Llama-3.2-1B-Instruct-korQuAD-v1
์ด ๋ชจ๋ธ์ Llama-3.2-1B-Instruct๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ตญ์ด ์ง์์๋ต ํ์คํฌ์ ๋ํด ํ์ธํ๋๋ ๋ชจ๋ธ์ ๋๋ค.
๋ชจ๋ธ ์ค๋ช
- ๊ธฐ๋ณธ ๋ชจ๋ธ: Llama-3.2-1B-Instruct
- ํ์ต ๋ฐ์ดํฐ์ : KorQuAD v1.0
- ํ์ต ๋ฐฉ๋ฒ: LoRA (Low-Rank Adaptation)
- ์ฃผ์ ํ์คํฌ: ํ๊ตญ์ด ์ง์์๋ต
์ฌ์ฉ ๋ฐฉ๋ฒ
๋ค์๊ณผ ๊ฐ์ด ๋ชจ๋ธ์ ๋ก๋ํ๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค:
#๋ชจ๋ธ, ํ ํฌ๋์ด์ ๋ก๋
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_path = "NakJun/Llama-3.2-1B-Instruct-ko-QuAD"
model = AutoModelForCausalLM.from_pretrained(
model_path,
torch_dtype=torch.bfloat16,
device_map="auto",
)
tokenizer = AutoTokenizer.from_pretrained(model_path)
#์
๋ ฅ ํ์ ์ค์
prompt = f"""
### Question:
{question}
### Context:
{context}
### Answer:
"""
#ํ ํฐํ ๋ฐ ์ถ๋ก
input_ids = tokenizer.encode(prompt, return_tensors="pt").to(model.device)
output = model.generate(
input_ids,
max_new_tokens=100,
temperature=0.1,
repetition_penalty=1.3,
do_sample=True,
eos_token_id=tokenizer.eos_token_id
)
generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
answer = generated_text.split("Answer:")[-1].strip().split('\n')[0].strip()
print("์์ฑ๋ ๋ต๋ณ:", answer)
ํ์ต ์ธ๋ถ ์ ๋ณด
- ์ํญ: 5
- ๋ฐฐ์น ํฌ๊ธฐ: 1
- ํ์ต๋ฅ : 2e-4
- ์ตํฐ๋ง์ด์ : AdamW (32-bit)
- LoRA ์ค์ :
- r: 16
- lora_alpha: 16
- ๋์ ๋ชจ๋: ["q_proj", "v_proj", "k_proj", "o_proj", "gate_proj", "down_proj", "up_proj"]
- lora_dropout: 0.01