Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ‡ΊπŸ‡Έ English

πŸ‡°πŸ‡· LFM2-KoEn-Tuning

LiquidAI LFM2-1.2B 기반 ν•œκ΅­μ–΄-μ˜μ–΄ μ–‘λ°©ν–₯ λ²ˆμ—­ λͺ¨λΈ νŒŒμΈνŠœλ‹

Hugging Face Open In Colab License

⚠️ Note: ν•΄λ‹Ή λ ˆν¬λŠ” 기쑴에 ν•™μŠ΅ν–ˆλ˜ μ½”λ“œλ“€μ„ 기반으둜 μ•ˆν‹°κ·Έλ ˆλΉ„ν‹°(Antigravity)μ—μ„œ Claude Opus 4.5λ₯Ό μ¨μ„œ λ§Œλ“  μ½”λ“œλ“€μž…λ‹ˆλ‹€. 아직 Colabκ³Ό Kaggleμ—μ„œ 싀행을 ν•˜λ©° 검증해보지 μ•Šμ•˜μŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή μ‹€ν—˜μ„ 마치고 ν•΄λ‹Ή 링크λ₯Ό ν¬ν•¨ν•΄μ„œ μΆ”κ°€ μ—…λ°μ΄νŠΈλ₯Ό ν•  μ˜ˆμ •μž…λ‹ˆλ‹€.


πŸ† 핡심 μ„±κ³Ό

1.2B λͺ¨λΈμ΄ 4B λͺ¨λΈμ„ 압도! Gemma-3 (4B)보닀 1.78 CHrF++ λ†’μŒ
단 400 Step (0.78 Epoch) λ§Œμ— SOTA 달성


πŸ“Š 벀치마크 (Flores-200, 1012 Samples)

전체 λͺ¨λΈ 비ꡐ (CHrF++ κΈ°μ€€ μ •λ ¬)

Rank Model CHrF++ BLEU Params λΉ„κ³ 
1 Google Translate 39.27 18.18 - μƒμš© μ„œλΉ„μŠ€ (Target)
2 Yanolja-4B-GGUF 38.61 16.03 4B Open Source SOTA
3 NLLB-200 (3.3B) 35.09 11.68 3.3B λ²ˆμ—­ μ „μš© λͺ¨λΈ
4 πŸ† LFM2-v8-rl-10k-adapter 34.61 13.21 1.2B λ³Έ ν”„λ‘œμ νŠΈ SOTA
5 LFM2-v6.4-merged 33.53 12.31 1.2B SFT Base
6 Gemma-3-4B-it-GGUF 32.83 11.36 4B Google μ΅œμ‹  4B
7 LFM2-v6.1-curriculum 32.48 11.89 1.2B SFT Curriculum
8 NLLB-200-Distilled-600M 31.97 10.32 600M κ²½λŸ‰ λ²ˆμ—­ λͺ¨λΈ
9 LFM2-v4-100k 31.53 11.13 1.2B 초기 SFT
10 LFM2-1.2B (Base) 27.23 6.43 1.2B 베이슀라인
11 Qwen3-4B-GGUF 25.62 7.46 4B Base Model
12 Gemma-3-1B-it-GGUF 24.07 6.94 1B 1B λͺ¨λΈ
13 Qwen3-1.7B-GGUF 21.19 - 1.7B Base Model
14 Qwen3-0.6B-GGUF 13.48 1.98 0.6B Base Model

GGUF μ–‘μžν™” μ„±λŠ₯ (v8 merged κΈ°μ€€)

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 κ²½λŸ‰ν™”/λͺ¨λ°”일

κ²°λ‘ : 4/5/8λΉ„νŠΈ μ–‘μžν™” λͺ¨λ‘ fp32와 사싀상 λ™μΌν•œ μ„±λŠ₯!


πŸ“ˆ ν•™μŠ΅ 과정별 μ„±λŠ₯ ν–₯상

Step Epoch CHrF++ BLEU λΉ„κ³ 
0 0.00 33.53 12.63 v6.4 Base
200 0.39 34.10 12.93 +0.57 ν–₯상
300 0.59 34.19 13.24 Historic High
400 0.78 34.61 13.21 πŸ† SOTA

✨ v8 λͺ¨λΈ 강점

  • μ‘΄λŒ“λ§ 일관성: "ν•©λ‹ˆλ‹€", "ν–ˆμŠ΅λ‹ˆλ‹€" μ–΄λ―Έκ°€ 1012개 전체 μƒ˜ν”Œμ—μ„œ 일관 적용
  • μžμ—°μŠ€λŸ¬μš΄ λ¬Έμž₯: λ³΅μž‘ν•œ λ¬Έμž₯도 μžμ—°μŠ€λŸ½κ²Œ 처리
  • λ¬Έλ§₯ 인식: "While"을 λ¬Έλ§₯에 따라 "반면", "λ™μ•ˆ" λ“±μœΌλ‘œ μœ μ—°ν•˜κ²Œ λ²ˆμ—­
  • μ „λ¬Έ μš©μ–΄: "rachis"λ₯Ό "μš°μΆ•"으둜 μ •ν™•ν•˜κ²Œ λ²ˆμ—­

⚠️ μ•Œλ €μ§„ ν•œκ³„

  • 고유λͺ…사 ν™˜κ°: "George W. Bush" β†’ "μ‘°μ§€ μ›Œμ‹±ν„΄" (베이슀 λͺ¨λΈ 편ν–₯)
  • ν•΄κ²° λ°©μ•ˆ: SFT + DPOλ₯Ό ν†΅ν•œ ν™˜κ° ꡐ정 μ˜ˆμ • (v9)

πŸ“‚ ν”„λ‘œμ νŠΈ ꡬ쑰

β”œβ”€β”€ colab/              # Colab λ…ΈνŠΈλΆ
β”‚   β”œβ”€β”€ GRPO_v8_adapter_github.ipynb      # RL GRPO (SOTA)
β”‚   β”œβ”€β”€ GRPO_v8_unsloth_vllm_github.ipynb # RL Unsloth+vLLM
β”‚   β”œβ”€β”€ SFT_colab_github.ipynb            # SFT Colab μŠ€νƒ€μΌ ⭐
β”‚   └── SFT_v6.1_curriculum_github.ipynb  # SFT Kaggle μŠ€νƒ€μΌ
β”œβ”€β”€ kaggle/             # Kaggle λ…ΈνŠΈλΆ
β”‚   β”œβ”€β”€ SFT_v6.1_curriculum.ipynb     # SFT v6.1
β”‚   └── SFT_v6_200k.ipynb             # SFT v6 200k
β”œβ”€β”€ evaluation/
β”‚   └── benchmark_flores200.ipynb     # 벀치마크
β”œβ”€β”€ quantization/
β”‚   └── convert_to_gguf_github.ipynb  # GGUF λ³€ν™˜ (GitHub용)
└── dataset/
    β”œβ”€β”€ samples/                      # ν•™μŠ΅ 데이터 μƒ˜ν”Œ
    └── upload_to_hf_github.py        # HF μ—…λ‘œλ“œ 슀크립트 (GitHub용)

πŸš€ λΉ λ₯Έ μ‹œμž‘

SOTA λͺ¨λΈ μ‚¬μš© (v8 Adapter)

from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel

# Base λͺ¨λΈ λ‘œλ“œ
base_model = AutoModelForCausalLM.from_pretrained(
    "gyung/lfm2-1.2b-koen-mt-v6.4-merged",
    device_map="auto",
    torch_dtype="auto"
)
tokenizer = AutoTokenizer.from_pretrained("gyung/lfm2-1.2b-koen-mt-v6.4-merged")

# Adapter λ‘œλ“œ 및 병합
model = PeftModel.from_pretrained(base_model, "gyung/lfm2-1.2b-koen-mt-v8-rl-10k-adapter")
model = model.merge_and_unload()

# λ²ˆμ—­
messages = [
    {"role": "system", "content": "Translate to Korean."},
    {"role": "user", "content": "Hello, world!"}
]
inputs = tokenizer.apply_chat_template(messages, return_tensors="pt")
outputs = model.generate(inputs, max_new_tokens=256, temperature=0.3)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

GGUF μ‚¬μš© (llama.cpp)

from llama_cpp import Llama
from huggingface_hub import hf_hub_download

model_path = hf_hub_download(
    "gyung/lfm2-1.2b-koen-mt-v8-rl-10k-merged-GGUF",
    "lfm2-1.2b-koen-mt-v8-rl-10k-merged-Q8_0.gguf"
)

llm = Llama(model_path=model_path, n_ctx=4096, n_gpu_layers=-1)

prompt = """<|im_start|>system
Translate to Korean.<|im_end|>
<|im_start|>user
Hello, world!<|im_end|>
<|im_start|>assistant
"""
output = llm(prompt, max_tokens=256, stop=["<|im_end|>"], temperature=0.3)
print(output['choices'][0]['text'])

πŸ“Š 데이터셋

dataset/samples/에 ν•™μŠ΅ 데이터 μƒ˜ν”Œ 포함:

파일 μš©λ„ 개수
sample_sft_100_bidirectional.jsonl SFT 100
sample_grpo_100_bidirectional.jsonl GRPO 100

HuggingFace μ—…λ‘œλ“œ

# .env νŒŒμΌμ— HF=your_token μ„€μ • ν›„
cd dataset
python upload_to_hf_github.py --repo YOUR_ID/your-dataset-name

βš™οΈ ν•™μŠ΅ μ„€μ •

GRPO (v8 SOTA)

ν•­λͺ© κ°’
Base Model gyung/lfm2-1.2b-koen-mt-v6.4-merged
Method GRPO (Group Relative Policy Optimization)
Reward COMET + CHrF++
Dataset 10,000 samples (μ–‘λ°©ν–₯)
Steps 400
LoRA Rank/Alpha 32 / 64

SFT (v6.4 Base)

SFTConfig(
    per_device_train_batch_size=1,
    gradient_accumulation_steps=16,
    learning_rate=1e-5,
    lr_scheduler_type="cosine",
    warmup_ratio=0.1,
    optim="paged_adamw_8bit",
    fp16=True,  # T4 μ΅œμ ν™”
)

πŸ”— λͺ¨λΈ 링크

λͺ¨λΈ μ„€λͺ… 링크
v8 Adapter πŸ† SOTA (CHrF++ 34.61) HuggingFace
v8 GGUF μ–‘μžν™” 버전 HuggingFace
v6.4 Merged Base λͺ¨λΈ HuggingFace
v4 100k 초기 SFT HuggingFace
LFM2-1.2B 원본 베이슀 LiquidAI

πŸ“ Citation

@misc{lfm2-koen-v8-rl,
  author = {gyung},
  title = {LFM2-1.2B-KoEn-MT: GRPO-Enhanced Korean-English Translation},
  year = {2025},
  publisher = {Hugging Face},
  url = {https://huggingface.co/gyung/lfm2-1.2b-koen-mt-v8-rl-10k-adapter}
}

πŸ“œ λΌμ΄μ„ μŠ€

이 λͺ¨λΈμ€ Liquid AI LFM Open License v1.0을 λ”°λ¦…λ‹ˆλ‹€.

  • βœ… ν•™μˆ  연ꡬ 및 개인적 μ‚¬μš©: λ¬΄μ œν•œ
  • βœ… 상업적 이용: μ—° 맀좜 $10M 미만 무료
  • ⚠️ μ—° 맀좜 $10M 초과: 별도 λΌμ΄μ„ μŠ€ ν•„μš”

Last Updated: 2026-01-03

About

Fine-tuning LFM2-1.2B for Korean-English bidirectional translation. GRPO+COMET & SFT Training, outperforming 4B models.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages