1from transformers import AutoTokenizer, AutoModelForCausalLM
2import torch
3
4model_id = "FINAL-Bench/Darwin-2B-Opus"
5tok = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
6model = AutoModelForCausalLM.from_pretrained(
7 model_id, torch_dtype=torch.bfloat16, device_map="auto", trust_remote_code=True
8)
9
10messages = [
11 {"role": "user", "content": "2024년 한국 최저시급 9,860원이다. 주 40시간 × 4주 임금은?"}
12]
13prompt = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
14inputs = tok(prompt, return_tensors="pt").to(model.device)
15
16with torch.no_grad():
17 outputs = model.generate(
18 **inputs,
19 max_new_tokens=800,
20 do_sample=False,
21 pad_token_id=tok.eos_token_id,
22 )
23print(tok.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True))
[Qwen/Qwen3.5-2B] ──── Base 모델 (동결)
+
[9,762 Claude Opus/Sonnet + 한국어 Reasoning 샘플]
↓
[SFT Training]
- LoRA (all-linear, r=16, α=32)
- Learning rate: 2e-4 (V8 rule: ×10 FullFT)
- 2 epochs, bf16, 8×B200 DDP
- Loss: 0.991 → 0.837 (-15%)
- Token accuracy: 73.9% → 76.6% (+2.7%p)
↓
[LoRA merge into base weights]
↓
[Darwin-2B-Opus] ← 이 모델
This model is introduced in
Darwin Family.