NakJun's picture
Update README.md
261246d verified
|
raw
history blame
1.75 kB
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

์—ฐ๋ฝ์ฒ˜