Text Generation
Transformers
Safetensors
Korean
English
perdix
custom_code
conversational
instruct
differential-attention
polynorm
prismdata's picture
Perdix-1.1B-Instruct: SFT of Perdix-1.1B-Base
586d744 verified
|
Raw History Blame Contribute Delete
6.6 kB
metadata
license: apache-2.0
language:
  - ko
  - en
library_name: transformers
pipeline_tag: text-generation
base_model: prismdata/Perdix-1.1B-Base
tags:
  - custom_code
  - conversational
  - instruct
  - differential-attention
  - polynorm
datasets:
  - HuggingFaceTB/smoltalk
  - nlpai-lab/kullm-v2
  - heegyu/open-korean-instructions

Perdix-1.1B-Instruct

Perdix-1.1B-Base์— ๋Œ€ํ™” ๋ฐ์ดํ„ฐ๋กœ ์ง€์‹œ ๋ฏธ์„ธ์กฐ์ •(SFT)์„ ํ•œ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ์ด๋ฆ„์€ ๊ทธ๋ฆฌ์Šค ์‹ ํ™”์˜ ํŽ˜๋ฅด๋”•์Šค์—์„œ ๋”ฐ์™”์Šต๋‹ˆ๋‹ค. ๋‹ค์ด๋‹ฌ๋กœ์Šค์˜ ์–ด๋ฆฐ ์ œ์ž์˜€๊ณ  ํ†ฑ๊ณผ ์ปดํผ์Šค๋ฅผ ๋ฐœ๋ช…ํ–ˆ๋Š”๋ฐ, ํƒ‘์—์„œ ๋–จ์–ด์ง€๋‹ค ์ž๊ณ ์ƒˆ๊ฐ€ ๋˜๋Š” ๋ฐ”๋žŒ์— ๊ทธ ๋’ค๋กœ๋Š” ๋‚ฎ๊ฒŒ๋งŒ ๋‚ ์•„๋‹ค๋‹Œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ ์ด ๋ชจ๋ธ ์ˆ˜์ค€์ด ๋”ฑ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

A 1.1B-parameter Korean/English chat model, supervised-finetuned from Perdix-1.1B-Base on about 390K conversations. It answers simple questions and follows short instructions in Korean and English; it is small and often wrong on facts and arithmetic.

๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๊ณ  ๋ฌด์—‡์„ ๋ชป ํ•˜๋‚˜

์งˆ๋ฌธ์— ๋‹ตํ•˜๊ณ  ์งง์€ ์ง€์‹œ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ํ•œ๊ตญ์–ด์™€ ์˜์–ด ๋ชจ๋‘ ๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ์‹ค์ œ ์ถœ๋ ฅ์ž…๋‹ˆ๋‹ค(temperature 0.7, top-k 50, top-p 0.9, repetition penalty 1.1).

๋Œ€ํ•œ๋ฏผ๊ตญ์˜ ์ˆ˜๋„๋Š” ์–ด๋””์ธ๊ฐ€์š”? ๋Œ€ํ•œ๋ฏผ๊ตญ์˜ ์ˆ˜๋„๋Š” ์„œ์šธ์ž…๋‹ˆ๋‹ค.

๊น€์น˜๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋‘ ๋ฌธ์žฅ์œผ๋กœ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ๊น€์น˜๋Š” ํ•œ๊ตญ์˜ ์ „ํ†ต ๋ฐœํšจ ์‹ํ’ˆ์œผ๋กœ, ์ผ๋ฐ˜์ ์œผ๋กœ ์ ˆ์ธ๋ฐฐ์ถ”์— ๋‹ค์–‘ํ•œ ์–‘๋…์„ ๋„ฃ๊ณ  ๋ฒ„๋ฌด๋ฆฐ ํ›„ ๊น€์น˜๋ฅผ ๋‹ด๊ฐ€ ๋จน๋Š” ์Œ์‹์ž…๋‹ˆ๋‹ค.

What is 7 times 8? To find 7 times 8, we multiply 7 by 8. The answer is 56.

์•ˆ๋…•! ์˜ค๋Š˜ ๊ธฐ๋ถ„์ด ์–ด๋•Œ? ๊ธฐ๋ถ„์ด ์ข‹์Šต๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ๋ฌด์—‡์„ ๋„์™€๋“œ๋ฆด๊นŒ์š”?

๋ชป ํ•˜๋Š” ๊ฒƒ๋„ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ์‹ค๊ณผ ๊ณ„์‚ฐ์€ ์ž์ฃผ ํ‹€๋ฆฝ๋‹ˆ๋‹ค. "1๋ถ€ํ„ฐ 10๊นŒ์ง€ ๋”ํ•˜๋ฉด?"์— 1+1=2, 2+1=3โ€ฆ ์‹์œผ๋กœ ์—‰๋šฑํ•œ ํ’€์ด๋ฅผ ๋‚ด๋†“์Šต๋‹ˆ๋‹ค. 1.1B ํฌ๊ธฐ์˜ ํ•œ๊ณ„์ž…๋‹ˆ๋‹ค.
  • ๊ธด ์ถ”๋ก , ์ฝ”๋“œ ์ž‘์„ฑ, ํˆด์ฝœ์€ ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋ฐ์ดํ„ฐ๋กœ ํ•™์Šตํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  • ๋Œ€ํ™” ๊ธฐ๋ก์€ ์งง๊ฒŒ๋งŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๋ฌธ๋งฅ ๊ธธ์ด๊ฐ€ 2,048ํ† ํฐ์ด๊ณ , ๋ฉ€ํ‹ฐํ„ด์€ ๋ช‡ ํ„ด ์ •๋„๋งŒ ์ž์—ฐ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.
  • ํ•™์Šต ๋ฐ์ดํ„ฐ๊ฐ€ ์›น๊ณผ ๊ณต๊ฐœ ๋Œ€ํ™” ๋ฐ์ดํ„ฐ๋ผ ํŽธํ–ฅ๋˜๊ฑฐ๋‚˜ ๋ถ€์ ์ ˆํ•œ ๋‚ด์šฉ์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ํ™•์ธ์ด ํ•„์š”ํ•œ ์šฉ๋„์—๋Š” ์“ฐ๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋ฒ•

๋ชจ๋ธ ์ฝ”๋“œ๊ฐ€ ์ €์žฅ์†Œ์— ๋“ค์–ด ์žˆ์–ด์„œ trust_remote_code=True๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€ํ™” ํ˜•์‹์€ ChatML์ด๊ณ  chat_template์— ๋“ค์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

repo = "prismdata/Perdix-1.1B-Instruct"
tok = AutoTokenizer.from_pretrained(repo)
model = AutoModelForCausalLM.from_pretrained(
    repo, trust_remote_code=True, dtype=torch.bfloat16).to("cuda").eval()

messages = [{"role": "user", "content": "๊น€์น˜๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋‘ ๋ฌธ์žฅ์œผ๋กœ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”."}]
ids = tok.apply_chat_template(messages, add_generation_prompt=True,
                              return_dict=True, return_tensors="pt")["input_ids"].to("cuda")
out = model.generate(ids, max_new_tokens=256, do_sample=True, temperature=0.7, top_k=50, top_p=0.9,
                     repetition_penalty=1.1)
print(tok.decode(out[0, ids.shape[1]:], skip_special_tokens=True))

์•Œ์•„ ๋‘˜ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋‹ต๋ณ€์€ <|im_end|>์—์„œ ๋๋‚ฉ๋‹ˆ๋‹ค. eos_token์ด ์ด ํ† ํฐ์œผ๋กœ ์žกํ˜€ ์žˆ์–ด generate๊ฐ€ ์•Œ์•„์„œ ๋ฉˆ์ถฅ๋‹ˆ๋‹ค.
  • system ํ”„๋กฌํ”„ํŠธ๋Š” ํ˜•์‹์ƒ ๋„ฃ์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ํ•™์Šต ๋ฐ์ดํ„ฐ ๋Œ€๋ถ€๋ถ„์ด system ์—†์ด ๊ตฌ์„ฑ๋ผ ํšจ๊ณผ๋Š” ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค.
  • ๋ฌธ๋งฅ ๊ธธ์ด๋Š” 2,048ํ† ํฐ์ž…๋‹ˆ๋‹ค.
  • KV ์บ์‹œ๋ฅผ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์•„ ์ƒ์„ฑํ•  ๋•Œ๋งˆ๋‹ค ์ „์ฒด ์‹œํ€€์Šค๋ฅผ ๋‹ค์‹œ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๊ธธ๊ฒŒ ์ƒ์„ฑํ•˜๋ฉด ๋А๋ฆฝ๋‹ˆ๋‹ค.
  • ํŒจ๋”ฉ ๋งˆ์Šคํฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. attention_mask๋Š” ๋ฌด์‹œ๋˜๋ฏ€๋กœ, ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅธ ๋Œ€ํ™”๋ฅผ ํŒจ๋”ฉํ•ด์„œ ํ•œ ๋ฐฐ์น˜๋กœ ์ƒ์„ฑํ•˜๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ํ‹€์–ด์ง‘๋‹ˆ๋‹ค. ํ•œ ๊ฑด์”ฉ ๋„ฃ์œผ์„ธ์š”.

๋ชจ๋ธ

ํ•ญ๋ชฉ ๊ฐ’
ํŒŒ๋ผ๋ฏธํ„ฐ 1,107M
๊ตฌ์กฐ decoder-only, pre-RMSNorm, RoPE, ์ž…์ถœ๋ ฅ ์ž„๋ฒ ๋”ฉ ๊ณต์œ 
์ธต / ์ฐจ์› / ํ—ค๋“œ 20 / 2048 / 16
FFN ์ฐจ์› 8192
๋ฌธ๋งฅ ๊ธธ์ด 2,048
์–ดํœ˜ 49,154 (BPE 49,152 + `<
๊ฐ€์ค‘์น˜ ํ˜•์‹ float32 safetensors

๊ตฌ์กฐ๋Š” ๋ฒ ์ด์Šค์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ํŠธ๋žœ์Šคํฌ๋จธ์™€ ๋‹ค๋ฅธ ์ ์€ ๋‘ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

  • Differential Attention. ์–ดํ…์…˜ ๋งต์„ ๋‘ ๊ฐœ ๋งŒ๋“ค์–ด ํ•˜๋‚˜์—์„œ ๋‹ค๋ฅธ ํ•˜๋‚˜๋ฅผ ๋บ๋‹ˆ๋‹ค. ์–‘์ชฝ์— ๊ณตํ†ต์œผ๋กœ ๋ผ๋Š” ์žก์Œ์„ ์ƒ์‡„ํ•˜๋ ค๋Š” ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค.
  • PolyNorm. ํ™œ์„ฑ ํ•จ์ˆ˜ ์ž๋ฆฌ์— x, xยฒ, xยณ์„ ๊ฐ๊ฐ ์ •๊ทœํ™”ํ•ด์„œ ํ•™์Šต๋˜๋Š” ๊ฐ€์ค‘์น˜๋กœ ์„ž์–ด ์”๋‹ˆ๋‹ค.

๋‘˜ ๋‹ค ์ œ๊ฐ€ ๊ณ ์•ˆํ•œ ๊ฒŒ ์•„๋‹ˆ๊ณ  Motif-2.6B ๊ธฐ์ˆ ๋ณด๊ณ ์„œ(arXiv:2508.09148)์™€ Differential Transformer(Ye et al., 2024)๋ฅผ ์ฝ๊ณ  ์ง์ ‘ ๊ตฌํ˜„ํ•ด ๋ณธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์› ์ €์ž๋“ค๊ณผ๋Š” ๊ด€๊ณ„์—†๋Š” ๊ฐœ์ธ ๊ตฌํ˜„์ด๋ผ, ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ์ œ ์‹ค์ˆ˜์ž…๋‹ˆ๋‹ค.

ํ•™์Šต

๋ฒ ์ด์Šค ๋ชจ๋ธ์˜ ์‚ฌ์ „ํ•™์Šต(30B ํ† ํฐ)์€ Perdix-1.1B-Base ์นด๋“œ์— ์ ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์œ„์— SFT๋ฅผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ: ์•ฝ 390K ๋Œ€ํ™”, 2 epoch
    • ์˜์–ด: smoltalk์˜ everyday-conversations(3ํšŒ ๋ฐ˜๋ณต), smol-magpie-ultra, smol-constraints, smol-rewrite, smol-summarize, metamathqa-50k, numina-cot-100k ์ผ๋ถ€
    • ํ•œ๊ตญ์–ด: kullm-v2, open-korean-instructions์˜ koalpaca, OIG-smallchip2-ko, korquad-chat ์ผ๋ถ€
    • ๊ฐ ๋ฐ์ดํ„ฐ์…‹์˜ ๋ผ์ด์„ ์Šค์™€ ์ถœ์ฒ˜๋Š” ์› ์ €์žฅ์†Œ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
  • ํ˜•์‹: ChatML. ํ† ํฌ๋‚˜์ด์ €์— <|im_start|>, <|im_end|>๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ƒˆ ์ž„๋ฒ ๋”ฉ์€ ๊ธฐ์กด ์ž„๋ฒ ๋”ฉ ํ‰๊ท ์œผ๋กœ ์ดˆ๊ธฐํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. loss๋Š” ๋‹ต๋ณ€ ๊ตฌ๊ฐ„์—๋งŒ ๊ฑธ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ•™์Šต๋ฅ : ์ตœ๊ณ  5e-5, 100์Šคํ… ์›Œ๋ฐ์—… ๋’ค cosine์œผ๋กœ ์ตœ๊ณ ๊ฐ’์˜ 10%๊นŒ์ง€
  • ๋ฐฐ์น˜: ์Šคํ…๋‹น ์•ฝ 65K ํ† ํฐ, ๊ธธ์ด ๊ตฌ๊ฐ„๋ณ„ ํŒจ๋”ฉ, bf16, 6,984์Šคํ…
  • ๊ฒฐ๊ณผ: ๊ฒ€์ฆ loss 1.37 โ†’ 1.13
  • ์žฅ๋น„: DGX Spark ํ•œ ๋Œ€, ์•ฝ 21์‹œ๊ฐ„

ํ•™์Šต ์ฝ”๋“œ๋Š” github.com/theprismdata/Perdix์— ์žˆ์Šต๋‹ˆ๋‹ค.

๋ผ์ด์„ ์Šค

๋ชจ๋ธ ๊ฐ€์ค‘์น˜์™€ ์ฝ”๋“œ๋Š” Apache-2.0. ํ•™์Šต์— ์“ด ๋Œ€ํ™” ๋ฐ์ดํ„ฐ๋Š” ๊ฐ๊ฐ์˜ ๋ผ์ด์„ ์Šค๋ฅผ ๋”ฐ๋ฅด๋ฉฐ ์ถœ์ฒ˜๋Š” ์œ„์— ์ ์—ˆ์Šต๋‹ˆ๋‹ค.