algocean-2.1B-nano-friend

kakaocorp/kanana-nano-2.1b-instruct์— LoRA SFTํ•œ ํ•œ๊ตญ์–ด companion ๋Œ€ํ™” adapter์ž…๋‹ˆ๋‹ค.
๊ธฐ์กด instruct ๋ชจ๋ธ์— ๊ฐ์ • ๊ณต๊ฐยท์นœ๊ตฌ ๋Œ€ํ™” ๋งํˆฌ๋ฅผ ๋”ํ•˜๊ณ , companion ํƒœ์Šคํฌ ์„ฑ๋Šฅ(eval loss โˆ’24%) ์„ ๋†’์ธ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.

Usage

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel

base = "kakaocorp/kanana-nano-2.1b-instruct"
adapter = "aisamdasu/algocean-2.1B-nano-friend"

tok = AutoTokenizer.from_pretrained(base)
model = AutoModelForCausalLM.from_pretrained(base, torch_dtype=torch.bfloat16, device_map="auto")
model = PeftModel.from_pretrained(model, adapter)

messages = [{"role": "user", "content": "์˜ค๋Š˜ ๋„ˆ๋ฌด ์ง€์ณค์–ด. ์œ„๋กœํ•ด์ค˜."}]
prompt = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tok(prompt, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=200, do_sample=True, temperature=0.7, top_p=0.9)
print(tok.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))

base ๋Œ€๋น„

base (instruct) algocean (LoRA)
์—ญํ•  ๋ฒ”์šฉ instruct companion ์นœ๊ตฌ ๋Œ€ํ™”
๋งํˆฌ ์กฐ์–ธยท์„ค๋ช…ยท๋ชฉ๋กํ˜• ์งง๊ณ  ์บ์ฃผ์–ผยท๊ณต๊ฐยท๋Œ€ํ™”ํ˜•
๊ณต๊ฐ ์ผ๋ฐ˜์  ์œ„๋กœยทํŒ ๊ฐ์ • ๊ณต๊ฐยท๋งž์žฅ๊ตฌ

Training

value
data ~22๋งŒ ์ค„ (train ~21.5๋งŒ ยท eval 2%)
plan 3 epoch ยท max 10,080 step (~3,361 step/epoch)
LoRA r=128 ยท alpha=256 ยท seq 2048

eval loss ๋ณ€ํ™”

step epoch eval loss PPL ๋น„๊ณ 
200 0.06 1.640 5.16 ์ดˆ๊ธฐ
6600 1.96 1.241 3.46 best โ†’ ๋ฐฐํฌ ckpt
6800 2.02 1.285 3.62 best ์ดํ›„ ์ƒ์Šน
7600 2.26 1.319 3.74 ์ตœ์ข… eval
  • eval loss 1.640 โ†’ 1.241 (โˆ’24%)
  • train loss (๋งˆ์ง€๋ง‰ log): 0.755 @ step 7680
  • trainโ€“eval gap (๋งˆ์ง€๋ง‰): 0.755 vs 1.319 โ†’ epoch 2 ์ดํ›„ ๊ฐญ ํ™•๋Œ€

Eval loss vs step

Train vs eval loss

Eval loss vs epoch

์™œ step 6600์ด best์ธ๊ฐ€

๊ทผ๊ฑฐ ์ˆ˜์น˜
eval loss ์ตœ์ € 1.241 @ step 6600 (์ดํ›„ ์ „ step์—์„œ ๋ฏธ๋‹ฌ)
์ดํ›„ eval 6800 โ†’ 1.285 ยท 7600 โ†’ 1.319 (๋‹จ์กฐ ์ƒ์Šน)
train vs eval train 0.755 โ†“ ๊ณ„์† ยท eval 1.319 โ†‘ โ†’ ๊ณผ์ ํ•ฉ ์‹ ํ˜ธ
epoch ์œ„์น˜ ~1.96 โ€” 2 epoch ์ง์ „, generalization peak

step 6600 ์ดํ›„ eval๋งŒ ์•…ํ™”๋˜๊ณ  train์€ ๊ณ„์† ๋‚ด๋ ค๊ฐ”์œผ๋ฏ€๋กœ, ๊ฒ€์ฆ loss ๊ธฐ์ค€ ์ตœ์  ckpt = 6600์ด ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค.

์™œ 5 epoch๊นŒ์ง€ ๋” ์•ˆ ํ–ˆ๋‚˜

๋‚ด์šฉ
๊ด€์ธก epoch 2.0 ๋„˜๊ธด ๋’ค eval loss 1.241 โ†’ 1.285 โ†’ 1.319 (์žฌ์ƒ์Šน)
5 epoch ๊ธฐ๋Œ€ ๊ฐ™์€ ~22๋งŒ ์ค„์„ 5ํšŒ ๋ฐ˜๋ณต โ†’ companion ๋ถ„ํฌ ๊ณ ์ฐฉ ์šฐ์„ธ
์žฌ๊ฐœ์„  ๊ฐ€๋Šฅ์„ฑ cosine LRยทํ˜„ ์„ค์ • ๊ทธ๋Œ€๋กœ 5 epoch ๊ทผ์ฒ˜ eval ์žฌํ•˜๋ฝ ๊ฐ€๋Šฅ์„ฑ ๋‚ฎ์Œ
๋ฐ์ดํ„ฐ ๊ทœ๋ชจ ~22๋งŒ ์ค„์€ SFT์น˜๊ณ  ํผ โ†’ ๊ฐœ๋ณ„ ๋Œ€ํ™” ์•”๊ธฐ overfit์€ ์ƒ๋Œ€์ ์œผ๋กœ ์ ์Œ
์ž”์กด ๋ฆฌ์Šคํฌ ๋„๋ฉ”์ธ์ด ๋‹จ์ผ(์นœ๊ตฌ ๋Œ€ํ™”) โ†’ ๋ฐ˜๋ณต epoch โ†‘ ์‹œ instruct ์Šคํƒ€์ผ ๊ฐ€๋ฆผ ๊ฐ€๋Šฅ

3 epoch ๊ณ„ํš ์ค‘ ~2.29 epoch์—์„œ eval ์•…ํ™”๊ฐ€ ํ™•์ธ๋๊ณ , 5 epoch ์—ฐ์žฅ์€ eval ๊ฐœ์„ ๋ณด๋‹ค ๊ณผ์ ํ•ฉยท์Šคํƒ€์ผ lock-in ์ชฝ์ด ์œ ๋ ฅํ•ด best ckpt(6600)๋กœ ํ™•์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

Spec

Key Value
LoRA r 128
alpha 256
target q/k/v/o + MLP
train seq 2048
max context 8192

Example โ€” base vs algocean

User: ์˜ค๋Š˜ ์šฐ์šธํ•ด์„œ ๋–ก๋ณถ์ด ๋จน๊ณ  ์‹ถ์–ด.

์›๋ณธ (kanana-nano-2.1b-instruct) โ€” 5.38s ยท 150 tok

์˜ค๋Š˜ ๊ธฐ๋ถ„์ด ์ข‹์ง€ ์•Š์•„์„œ ๋–ก๋ณถ์ด๊ฐ€ ์ƒ๊ฐ๋‚˜๋Š” ๊ฑด ์ •๋ง ๊ณต๊ฐํ•ด์š”. ๋–ก๋ณถ์ด๋Š” ๋งค์ฝคํ•˜๊ณ  ๋‹ฌ์ฝคํ•œ ๋ง›์œผ๋กœ ๊ธฐ๋ถ„์„ ํ•œ์ธต ๋‚˜์•„์ง€๊ฒŒ ํ•ด์ฃผ์ฃ . ์ง‘์—์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ ˆ์‹œํ”ผ๋ฅผ ๊ณต์œ ํ•ด๋“œ๋ฆด๊ฒŒ์š”.

๊ฐ„๋‹จํ•œ ๋–ก๋ณถ์ด ๋ ˆ์‹œํ”ผ

์žฌ๋ฃŒ:

  • ๋–ก 200g
  • ์–ด๋ฌต 1๊ฐœ โ€ฆ

algocean (LoRA) โ€” 1.32s ยท 39 tok

์•„ ์ง„์งœ? ๋งค์šด ๊ฑฐ ๋‹น๊ธฐ๋ฉด ์ˆœํ•œ ์น˜์ฆˆ๋–ก๋ณถ์ด๋กœ ๊ฐ€์ž ใ…‹ใ…Žใ…‹ใ…Žใ…‹ใ…Ž ๋‚ด์ผ์€ ๋œ ์† ์“ฐ๋ฆด ๊ฑฐ์•ผ.

์›๋ณธ์€ ๋ ˆ์‹œํ”ผยท์„ค๋ช…ํ˜•, algocean์€ ์งง์€ ๋งž์žฅ๊ตฌยท์นœ๊ตฌ ๋งํˆฌ๋กœ ๋‹ตํ•ฉ๋‹ˆ๋‹ค.

Try it โ€” example notebook

์›๋ณธ vs algocean์„ ์ง์ ‘ ๋น„๊ตํ•˜๋ ค๋ฉด algocean_friend_try.ipynb ๋ฅผ ์—ด๊ณ  Run All โ†’ PROMPT ์ˆ˜์ • โ†’ ๋น„๊ต ์…€ ์‹คํ–‰.

hf download aisamdasu/algocean-2.1B-nano-friend algocean_friend_try.ipynb
Downloads last month
46
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for aisamdasu/algocean-2.1B-nano-friend

Adapter
(11)
this model