初始化项目,由ModelHub XC社区提供模型

Model: k08200/gaon-1.7b-v2-instruct
Source: Original Platform
This commit is contained in:
ModelHub XC
2026-07-19 22:19:11 +08:00
commit 2db522ecc1
8 changed files with 310 additions and 0 deletions

75
README.md Normal file
View File

@@ -0,0 +1,75 @@
---
language:
- ko
- en
license: apache-2.0
pipeline_tag: text-generation
tags:
- korean
- from-scratch
- qwen3-architecture
base_model:
- Qwen/Qwen3-1.7B
---
# Gaon-1.7B v2 Instruct (가온)
A bilingual (Korean + English) 1.7B chat model **trained entirely from scratch**
architecture, data pipeline, pretraining, and instruction tuning — by one person on
borrowed idle GPUs, for $0. *Gaon* is pure Korean for "center/core."
- **Architecture:** Qwen3-1.7B-compatible (28L, hidden 2048, GQA 16Q/8KV, QK-Norm,
SwiGLU, tied embeddings, vocab 151,936). Loads with `Qwen3ForCausalLM`.
- **Pretraining:** 34B tokens (FineWeb-Edu EN + FineWeb-2 KO + ~20% Python code),
4× B200 FSDP, final loss 1.96.
- **Instruction tuning:** sequence-level distillation from Qwen2.5-7B-Instruct
(Apache-2.0), ~9k KO/EN instructions, SFT loss 1.26.
- **Code & full tech report:** https://github.com/k08200/gaon
**Run locally:** `ollama run hf.co/k08200/gaon-1.7b-v2-instruct-GGUF` — or community
GGUF quants (12 sizes, 516 MB 3.4 GB, by [@mradermacher](https://huggingface.co/mradermacher)):
[static](https://huggingface.co/mradermacher/gaon-1.7b-v2-instruct-GGUF) ·
[imatrix](https://huggingface.co/mradermacher/gaon-1.7b-v2-instruct-i1-GGUF)
**Live demo:** [KO↔EN translator in your browser (WebGPU)](https://k08200.github.io/gaon/demo/)
## Usage
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
m = "k08200/gaon-1.7b-v2-instruct"
tok = AutoTokenizer.from_pretrained(m)
model = AutoModelForCausalLM.from_pretrained(m, torch_dtype=torch.bfloat16).eval()
msgs = [{"role": "user", "content": "한국의 수도는 어디인가요?"}]
prompt = tok.apply_chat_template(msgs, tokenize=False, add_generation_prompt=True)
enc = tok(prompt, return_tensors="pt")
out = model.generate(**enc, max_new_tokens=200, do_sample=True, temperature=0.7)
print(tok.decode(out[0][enc.input_ids.shape[1]:], skip_special_tokens=True))
```
## Benchmarks
Base model (v2), lm-eval-harness, 0-shot, same settings for both:
| Benchmark | Gaon-1.7B v2 | Qwen3-1.7B-Base | Random |
|---|---|---|---|
| MMLU (English knowledge) | 25.1 | 62.6 | 25.0 |
| KMMLU (Korean knowledge) | 22.3 | 35.5 | 25.0 |
| HAERAE (Korean culture/lexis) | 19.9 | 46.8 | ~20 |
| KoBEST (Korean understanding) | 51.5 | — | ~50 |
This is the most honest number in the project: Gaon is **fluent in two languages,
follows instructions, and translates**, yet scores at *chance* on knowledge — because
Qwen3-1.7B (same architecture, same size) trained on ~36T tokens, roughly 1000× our
34B. **Linguistic competence emerges in tens of billions of tokens; world knowledge
needs trillions.** A continued-pretraining run (96B Korean-heavy tokens) lifts KMMLU
to ~2729 then plateaus — see the [tech report](https://github.com/k08200/gaon/blob/main/docs/TECH_REPORT.md) §6.
## Honest limitations
A **from-scratch credential and research artifact**, not a frontier competitor.
Knowledge benchmarks at chance level (above); coding and strict-format tasks are weak.
Korean/English chat, explanation, and simple translation work well. Best used as a
reproducible small-LLM pipeline and a base for vertical fine-tuning on domain data.