KAWK-1.5-50M Korean Base 5K

ํ•œ๊ตญ์–ด ์ „์šฉ ์†Œํ˜• ์–ธ์–ด๋ชจ๋ธ์˜ ์ „์ฒด ์ œ์ž‘ ๊ณผ์ •์„ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  KAWK-50M Base๋ฅผ **5,120-token ๋ฌธ๋งฅ์œผ๋กœ ๊ณ„์† ์‚ฌ์ „ํ•™์Šต(CPT)**ํ•œ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.

๋ชฉํ‘œ๋Š” ๋‹จ์ˆœํžˆ config์˜ ์ตœ๋Œ€ ๊ธธ์ด๋งŒ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํ•œ๊ตญ์–ด ์žฅ๋ฌธ ๋ฐ์ดํ„ฐ๋กœ ์‹ค์ œ full-parameter CPT๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์œ„์น˜ ๊ตฌ๊ฐ„๋ณ„ loss๊ฐ€ ๋ฌด๋„ˆ์ง€์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ์€ ํ•œ๊ตญ์–ด ์ค‘์‹ฌ ์„ค๊ณ„๋ฅผ ์œ ์ง€ํ•˜๋ฉฐ ์˜์–ดยท์ฝ”๋“œยท์ˆ˜ํ•™ ์ „์šฉ ๋ง๋ญ‰์น˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ด ๋ชจ๋ธ์€ ์—ฌ์ „ํžˆ ๋ฒ ์ด์Šค next-token predictor์ž…๋‹ˆ๋‹ค. 5,120 tokens๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์ด ์žฅ๋ฌธ ๊ฒ€์ƒ‰, ์ •๋ณด ํšŒ์ˆ˜, ๊ธด ์ง€์‹œ ์ˆ˜ํ–‰์„ ๋ณด์žฅํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๋ชฉ์ 

KAWK LM์€ ๋‹ค์Œ ์งˆ๋ฌธ์„ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์ž‘์€ ๋ชจ๋ธ์˜ ํ•™์Šต ์˜ˆ์‚ฐ์„ ํ•œ๊ตญ์–ด์— ์ง‘์ค‘ํ•˜๋ฉด parameter ํšจ์œจ์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š”๊ฐ€?
  • tokenizer๋ถ€ํ„ฐ ์‚ฌ์ „ํ•™์Šต, ์žฅ๋ฌธ CPT, SFT, benchmark๊นŒ์ง€ ๊ฐœ์ธ์ด ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ pipeline์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”๊ฐ€?
  • ์„ฑ๊ณตํ•œ checkpoint๋ฟ ์•„๋‹ˆ๋ผ ์‹คํŒจ ์›์ธ๊ณผ ๋ณต๊ตฌ ์ด๋ ฅ๊นŒ์ง€ ๊ณต๊ฐœํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?

50M์€ ์ด ์ „์ฒด ๊ณผ์ •์„ ์ €๋น„์šฉ์œผ๋กœ ๊ฒ€์ฆํ•˜๋Š” prototype์ด๋ฉฐ, ์ดํ›„ 500M ๋ชจ๋ธ์˜ ๊ธฐ๋ฐ˜์ด ๋์Šต๋‹ˆ๋‹ค.

๋ชจ๋ธ ๊ตฌ์กฐ

ํ•ญ๋ชฉ ๊ฐ’
์•„ํ‚คํ…์ฒ˜ LlamaForCausalLM, decoder-only
ํŒŒ๋ผ๋ฏธํ„ฐ 51,542,528
์–ดํœ˜ ํ•œ๊ตญ์–ด SentencePiece Unigram 20,000
๋ ˆ์ด์–ด 14
Hidden / MLP 512 / 1,408
Attention / KV heads 8 / 4
Head dimension 64
์ตœ๋Œ€ ๋ฌธ๋งฅ 5,120 tokens
์œ„์น˜ ํ‘œํ˜„ RoPE, theta 10,000
ํ™œ์„ฑํ™” / ์ •๊ทœํ™” SwiGLU(SiLU) / RMSNorm
์ž…๋ ฅยท์ถœ๋ ฅ ์ž„๋ฒ ๋”ฉ ๊ณต์œ 

ํ•™์Šต

  • ์ดˆ๊ธฐํ™”: ์˜ฌ๋ฐ”๋ฅธ causal objective๋กœ ๋ณต๊ตฌ๋œ 6B-token KAWK-50M Base
  • CPT budget: 3,000,000,000 tokens
  • Sequence length: 5,120
  • Optimizer steps: 24,415
  • Precision / GPU: BF16 / NVIDIA RTX 5090
  • Batch: 4 sequences ร— gradient accumulation 6
  • Learning rate: 1.5e-4 โ†’ 1.5e-5 cosine decay
  • ์•ˆ์ • ๊ตฌ๊ฐ„ ์ฒ˜๋ฆฌ๋Ÿ‰: ์•ฝ 115.6K tokens/s

CPT ๋ฐ์ดํ„ฐ๋Š” ํ•œ๊ตญ์–ด ์ผ๋ฐ˜ ๋ฌธ์„œ์™€ ์—„๊ฒฉํžˆ ํ•„ํ„ฐํ•œ ๊ตฌ์กฐํ™” ํ•œ๊ตญ์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ „์šฉ code/math/English source๋Š” ์ œ์™ธํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•™์Šต ์ด๋ ฅ ์ •์ •

๊ฐœ๋ฐœ ์ดˆ๊ธฐ์— ์ˆ˜ํ–‰ํ•œ ๋ณ„๋„์˜ 20B Base + 3B CPT ์‹คํ—˜์€ causal label์ด ์ด์ค‘ shift๋œ ๊ตฌํ˜„ ์˜ค๋ฅ˜์˜ ์˜ํ–ฅ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์‹คํ—˜์€ ์ •์ƒ์ ์ธ ํ•™์Šต๋Ÿ‰์œผ๋กœ ๊ณ„์‚ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๋ชจ๋ธ์€ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  100M ๊ฒ€์ฆ, 1B recovery, ์ถ”๊ฐ€ 5B recovery๋ฅผ ํ†ต๊ณผํ•œ Base์—์„œ ์ƒˆ๋กœ ์ˆ˜ํ–‰ํ•œ 3B CPT ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ํ˜„์žฌ ๋ฆด๋ฆฌ์Šค์˜ ์‹ ๋ขฐ ๊ฐ€๋Šฅํ•œ ํ•™์Šต ์ด๋ ฅ์€ ์•ฝ 6B์˜ ์˜ฌ๋ฐ”๋ฅธ Base recovery + 3B์˜ long-context CPT์ž…๋‹ˆ๋‹ค.

ํ‰๊ฐ€

๊ณ ์ • ํ•œ๊ตญ์–ด validation

ํ•ญ๋ชฉ ๊ฒฐ๊ณผ
Validation loss 2.85825
Validation perplexity 17.4311
Bits per UTF-8 byte 0.91409
Gate passed

์œ„์น˜ ๊ตฌ๊ฐ„๋ณ„ ํ‰๊ฐ€

Position Loss Perplexity
1~1,024 2.94095 18.93
1,025~2,048 2.80757 16.57
2,049~3,072 2.98979 19.88
3,073~4,096 2.96515 19.40
4,097~5,119 2.94935 19.09

๋งˆ์ง€๋ง‰ ๊ตฌ๊ฐ„๊นŒ์ง€ language-modeling loss๊ฐ€ ๊ธ‰๊ฒฉํžˆ ํญ๋ฐœํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ด๋Š” needle-in-a-haystack์ด๋‚˜ ์žฅ๋ฌธ QA ๊ฐ™์€ retrieval ํ‰๊ฐ€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์˜ˆ์‹œ

from transformers import AutoModelForCausalLM, AutoTokenizer

repo_id = "Infinity08/KAWK-1.5-50M-Korean-Base-5K"
tokenizer = AutoTokenizer.from_pretrained(repo_id, use_fast=False)
model = AutoModelForCausalLM.from_pretrained(repo_id)

prompt = "ํ•œ๊ตญ์–ด ์žฅ๋ฌธ ๋ฌธ์„œ์˜ ์ฒซ ๋ฌธ๋‹จ์„ ์ž…๋ ฅํ•œ ๋’ค ์ด์–ด์งˆ ๋‚ด์šฉ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค."
inputs = tokenizer(prompt, return_tensors="pt", truncation=True, max_length=5120)
outputs = model.generate(
    **inputs,
    max_new_tokens=128,
    do_sample=True,
    temperature=0.8,
    top_p=0.9,
    repetition_penalty=1.1,
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

ํ•œ๊ณ„

  • 50M๊ธ‰์ด๋ฏ€๋กœ ์žฅ๋ฌธ ์ „์ฒด์˜ ์‚ฌ์‹ค๊ด€๊ณ„์™€ ์ผ๊ด€์„ฑ์„ ์•ˆ์ •์ ์œผ๋กœ ์œ ์ง€ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
  • Context 5,120์€ ์ž…๋ ฅ ๊ฐ€๋Šฅ ๊ธธ์ด์ด๋ฉฐ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ๋ฌธ reasoning ๋Šฅ๋ ฅ์„ ์˜๋ฏธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Base ๋ชจ๋ธ์ด๋ฏ€๋กœ ์ง€์‹œ ์ˆ˜ํ–‰๊ณผ ๋Œ€ํ™” ์‘๋‹ต์—๋Š” Instruct ๋ชจ๋ธ์ด ๋” ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ž˜๋ชป๋œ ์‚ฌ์‹ค, ๋ฐ˜๋ณต, ํŽธํ–ฅ๋˜๊ฑฐ๋‚˜ ์œ ํ•ดํ•œ ์›น ๋ฌธ๊ตฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ณ ์œ„ํ—˜ ์˜์‚ฌ๊ฒฐ์ •์— ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

๊ด€๋ จ ์ž๋ฃŒ

์›์ฒœ ๋ฐ์ดํ„ฐ์˜ ๋ผ์ด์„ ์Šค์™€ ๊ท€์† ์กฐ๊ฑด์€ ๊ฐ upstream dataset์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Downloads last month
7
Safetensors
Model size
51.5M params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Dataset used to train Infinity08/KAWK-1.5-50M-Korean-Base-5K