π°π·βοΈπΊπΈ LFM2-v8-rl-10k-merged
LiquidAI LFM2-1.2B κΈ°λ° νμ/μν λ²μ SOTA λͺ¨λΈ
GRPO (Group Relative Policy Optimization) κ°ννμ΅μΌλ‘ 400 Step νμ΅ μλ£λ μ΅μ’ λ²μ .
π μ±λ₯ (Flores-200 EnβKo, 1012 Samples)
| Model | CHrF++ | BLEU | Params |
|---|---|---|---|
| LFM2-v8-rl-10k-merged π | 34.61 | 13.21 | 1.2B |
| LFM2-v6.1-curriculum | 33.80 | 12.60 | 1.2B |
| Gemma-3-4B-it | 32.83 | 11.36 | 4B |
β 1.2B λͺ¨λΈλ‘ 4B λͺ¨λΈ λ₯κ°!
π¬ μμν μ€ν κ²°κ³Ό (1012κ° μλ λΆμ)
κ²°λ‘ : 4/5/8/32λΉνΈ λͺ¨λ μ¬μ€μ μ°¨μ΄ μμ!
| Quantization | CHrF++ | BLEU | Size | λΉκ³ |
|---|---|---|---|---|
| fp32 (μλ³Έ) | 34.32 | 13.10 | 4.68G | κ°νμ λ°λ³΅ λ²κ·Έ |
| Q8_0 π | 34.39 | 12.93 | 1.25G | κ°μ₯ μμ μ |
| Q5_K_M | 34.08 | 12.78 | 843M | κ· ν |
| Q4_K_M | 33.97 | 12.56 | 731M | κ²½λν |
μλ λΆμ ν΅μ¬ λ°κ²¬
1012κ° μμ μλ κ²ν κ²°κ³Ό:
- 90% μ΄μ: λͺ¨λ λ²μ μμ μλ―Έμ μΌλ‘ λμΌν λ²μ
- μ°¨μ΄μ : λ¨μ΄ μ ν μ°¨μ΄λ§ μ‘΄μ¬ (μ: "μ μνλ€" vs "λ§νλ€")
- νκ° ν¨ν΄: λͺ¨λ λ²μ μμ λμΌνκ² λ°μ
- "George W. Bush" β "μ‘°μ§ μμ±ν΄" (μλ λν΅λ Ή νΌλ)
- "cheetahs" β "κΈ°λ¦°" λλ "νΈλμ΄" (λλ¬Όλͺ νΌλ)
λ²μ λ³ νΉμ΄μ¬ν:
| νμ | Q4 | Q5 | Q8 | fp32 | adapter |
|---|---|---|---|---|---|
| λ°λ³΅ λ²κ·Έ | β | β | β | β οΈ | β |
| λ²μ νμ§ | β | β | β | β | β |
| μμ μ± | β | β | β β | β οΈ | β |
β οΈ fp32 merged λͺ¨λΈμμ 0.1% λ―Έλ§ νλ₯ λ‘ λ°λ³΅ μΆλ ₯ λ²κ·Έ λ°κ²¬ (μ: "νκ³ νκ³ νκ³ ..." 무ν λ°λ³΅)
μΆμ² μ¬μ© μλ리μ€
| μλλ¦¬μ€ | μΆμ² λ²μ | μ΄μ |
|---|---|---|
| νλ‘λμ μλΉ | Q8_0 GGUF | μμ μ , 3.7λ°° μμ |
| λͺ¨λ°μΌ/μ£μ§ | Q5_K_M GGUF | ν¬κΈ° λλΉ μ±λ₯ μ΅μ |
| μΆκ° νμ΅ | fp32 merged | μ 체 νλΌλ―Έν° νμ |
π μ¬μ©λ²
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model = AutoModelForCausalLM.from_pretrained(
"gyung/lfm2-1.2b-koen-mt-v8-rl-10k-merged",
device_map="auto",
torch_dtype=torch.float16,
trust_remote_code=True
)
tokenizer = AutoTokenizer.from_pretrained(
"gyung/lfm2-1.2b-koen-mt-v8-rl-10k-merged",
trust_remote_code=True
)
def translate(text, direction="en2ko"):
if direction == "en2ko":
prompt = "Translate the following text to Korean."
else:
prompt = "Translate the following text to English."
messages = [
{"role": "system", "content": prompt},
{"role": "user", "content": text}
]
inputs = tokenizer.apply_chat_template(
messages, return_tensors="pt", add_generation_prompt=True
).to(model.device)
with torch.no_grad():
outputs = model.generate(
inputs,
max_new_tokens=256,
do_sample=True,
temperature=0.3,
min_p=0.15,
repetition_penalty=1.05, # λ°λ³΅ λ°©μ§
pad_token_id=tokenizer.eos_token_id
)
return tokenizer.decode(outputs[0][inputs.shape[1]:], skip_special_tokens=True).strip()
# μ¬μ© μμ
print(translate("Hello, how are you today?"))
# β μλ
νμΈμ, μ€λ κΈ°λΆμ΄ μ΄λ μΈμ?
print(translate("μ€λ λ μ¨κ° μ λ§ μ’λ€μ.", "ko2en"))
# β The weather is really nice today.
π¦ GGUF λ²μ (μΆμ²)
κ²½λν + μμ μ±μ μν΄ GGUF λ²μ μ¬μ© κΆμ₯:
π gyung/lfm2-1.2b-koen-mt-v8-rl-10k-merged-GGUF
π κ΄λ ¨ λ§ν¬
- νλ‘μ νΈ: GitHub - LFM2-KoEn-Tuning
- GGUF λ²μ : gyung/lfm2-1.2b-koen-mt-v8-rl-10k-merged-GGUF
π λΌμ΄μ μ€
- Base Model: LiquidAI/LFM2-1.2B (LFM Open License v1.0)
- Developed by: Gyung (Kiwoong)
- Downloads last month
- 25