You need to agree to share your Hugging Face information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

SproutKO-130M

Runtime documentation: English Β· ζ—₯本θͺž Β· ν•œκ΅­μ–΄

SproutKO-130M is a Korean pretrained decoder-only Transformer with 129,983,232 unique parameters. It is a base model for text completion, not an instruction-tuned chat model.

The release configuration records 7,000,031,232 training tokens at step 106,812. The pretraining sequence length is 2,048. The configured maximum generation length, including the prompt, is 4,096.

transformers.AutoModelForCausalLM and AutoTokenizer are not supported. Use the custom sproutko runtime.

How to use

This is a gated model. Request or accept access while signed in to Hugging Face. Then install the runtime from the GitHub repository, authenticate the Hugging Face CLI, and load this Hub bundle.

python -m pip install .
hf auth login
sproutko-generate --checkpoint sprout-research/SproutKO-130M --prompt "ν•œκ΅­μ–΄λŠ”" --max-new-tokens 64 --temperature 0 --device cpu

The CLI uses the user access token cached by hf auth login. Without approved model access and authentication, Hub downloads fail with a gated-repository authorization error.

import torch
from sproutko import SproutKOForCausalLM, SproutKOTokenizer, generate

source = "sprout-research/SproutKO-130M"
model = SproutKOForCausalLM.from_pretrained(source)
tokenizer = SproutKOTokenizer.from_pretrained(source)

ids = torch.tensor([tokenizer.encode("ν•œκ΅­μ–΄λŠ”")], dtype=torch.long)
output = generate(
    model,
    ids,
    max_new_tokens=64,
    temperature=0,
    eos_token_id=tokenizer.eos_token_id,
)
print(tokenizer.decode(output[0].tolist()))

The example uses the token cached by hf auth login. Both from_pretrained loaders also accept revision, token, and cache_dir; pass token explicitly when cached CLI authentication is not available. To pin a release, pass the same Hub commit revision to both loaders.

To load a local copy, download config.json, model.safetensors, and sproutko-tokenizer-32k-v1.json from the same Hub revision into one directory, then pass that path as source or --checkpoint.

Architecture

A causal decoder with pre-normalization, RMSNorm, Rotary Position Embeddings (RoPE), Grouped Query Attention (GQA), and a SwiGLU feed-forward network. Token embeddings and the output projection share weights.

Property SproutKO-130M
Unique parameters 129,983,232
Vocabulary size 32,000
Hidden size 768
Transformer layers 16
Query / KV heads 12 / 4
Head dimension 64
Feed-forward intermediate size 2,176
Maximum generation sequence length, including prompt 4,096
Pretraining sequence length 2,048
RoPE theta 10,000
RMSNorm epsilon 1e-6
Tied word embeddings Yes

Tokenizer

SproutKO-Tokenizer-32K-v1 is a custom 32,000-token BPE tokenizer backed by the Rust tokenizers library. The artifact is sproutko-tokenizer-32k-v1.json.

  • Text is normalized to Unicode NFC and line endings are standardized. BOM characters are removed.
  • Byte fallback covers characters outside the learned vocabulary.
  • Load the artifact through SproutKOTokenizer, not AutoTokenizer.
Special token ID
<pad> 0
<s> (BOS) 1
</s> (EOS) 2
<unk> 3

Always use weights and tokenizer files from the same release.

Intended use and limitations

  • Use a text prompt for completion with this base model. It is not instruction-tuned and is not a chat model.
  • Prompts must contain at least one token. The combined prompt and requested output length is limited to 4,096 tokens.
  • Training used 2,048-token sequences. Quality beyond that length is not guaranteed.
  • Generated text can be inaccurate or biased.
  • This bundle does not include training data, optimizer state, training scripts, or evaluation reports.

Verification

On CPU, the inference runtime matches the original runtime on nine tokenizer samples and on logits plus 12-token greedy output for these weights. Details are in the release verification record. GPU inference has not been verified.

Files

File Purpose
config.json Model architecture and bundle filenames
model.safetensors Model weights
sproutko-tokenizer-32k-v1.json Vocabulary, merges, and embedded tokenizer backend
LICENSE Apache-2.0
README.md This model card

License

Code, exported weights, and tokenizer are licensed under Apache-2.0.


SproutKO-130M

λŸ°νƒ€μž„ λ¬Έμ„œ: English Β· ζ—₯本θͺž Β· ν•œκ΅­μ–΄

SproutKO-130M은 129,983,232개 고유 νŒŒλΌλ―Έν„°μ˜ ν•œκ΅­μ–΄ μ‚¬μ „ν•™μŠ΅ decoder-only Transformerμž…λ‹ˆλ‹€. ν…μŠ€νŠΈλ₯Ό 이어 μ“°λŠ” κΈ°λ³Έ λͺ¨λΈμ΄λ©°, instruction-tuned μ±„νŒ… λͺ¨λΈμ΄ μ•„λ‹™λ‹ˆλ‹€.

릴리슀 섀정에 기둝된 ν•™μŠ΅λŸ‰μ€ 106,812μŠ€ν…, 7,000,031,232ν† ν°μž…λ‹ˆλ‹€. μ‚¬μ „ν•™μŠ΅ μ‹œν€€μŠ€ κΈΈμ΄λŠ” 2,048μž…λ‹ˆλ‹€. ν”„λ‘¬ν”„νŠΈλ₯Ό ν¬ν•¨ν•œ μ΅œλŒ€ 생성 κΈΈμ΄λŠ” 4,096μž…λ‹ˆλ‹€.

transformers.AutoModelForCausalLMκ³Ό AutoTokenizerλŠ” μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 자체 sproutko λŸ°νƒ€μž„μ„ μ‚¬μš©ν•˜μ„Έμš”.

μ‚¬μš© 방법

이 λͺ¨λΈμ€ gated λͺ¨λΈμž…λ‹ˆλ‹€. Hugging Face에 λ‘œκ·ΈμΈν•œ μƒνƒœμ—μ„œ 접근을 μš”μ²­ν•˜κ±°λ‚˜ 이용 쑰건에 λ™μ˜ν•˜μ„Έμš”. 그런 λ‹€μŒ GitHub μ €μž₯μ†Œμ—μ„œ λŸ°νƒ€μž„μ„ μ„€μΉ˜ν•˜κ³  Hugging Face CLI에 λ‘œκ·ΈμΈν•œ λ’€ 이 Hub λ²ˆλ“€μ„ λΆˆλŸ¬μ˜΅λ‹ˆλ‹€.

python -m pip install .
hf auth login
sproutko-generate --checkpoint sprout-research/SproutKO-130M --prompt "ν•œκ΅­μ–΄λŠ”" --max-new-tokens 64 --temperature 0 --device cpu

CLIλŠ” hf auth login으둜 μ €μž₯ν•œ μ‚¬μš©μž μ•‘μ„ΈμŠ€ 토큰을 μ‚¬μš©ν•©λ‹ˆλ‹€. λͺ¨λΈ μ ‘κ·Ό 승인과 인증이 μ—†μœΌλ©΄ gated μ €μž₯μ†Œ κΆŒν•œ 였λ₯˜λ‘œ λ‹€μš΄λ‘œλ“œμ— μ‹€νŒ¨ν•©λ‹ˆλ‹€.

import torch
from sproutko import SproutKOForCausalLM, SproutKOTokenizer, generate

source = "sprout-research/SproutKO-130M"
model = SproutKOForCausalLM.from_pretrained(source)
tokenizer = SproutKOTokenizer.from_pretrained(source)

ids = torch.tensor([tokenizer.encode("ν•œκ΅­μ–΄λŠ”")], dtype=torch.long)
output = generate(
    model,
    ids,
    max_new_tokens=64,
    temperature=0,
    eos_token_id=tokenizer.eos_token_id,
)
print(tokenizer.decode(output[0].tolist()))

μœ„ μ˜ˆμ œλŠ” hf auth login으둜 μ €μž₯ν•œ 토큰을 μ‚¬μš©ν•©λ‹ˆλ‹€. 두 from_pretrained λ‘œλ”λŠ” revision, token, cache_dir도 μ§€μ›ν•˜λ―€λ‘œ CLI 둜그인 정보λ₯Ό μ‚¬μš©ν•  수 μ—†λŠ” ν™˜κ²½μ—μ„œλŠ” token을 λͺ…μ‹œμ μœΌλ‘œ μ „λ‹¬ν•˜μ„Έμš”. νŠΉμ • 릴리슀λ₯Ό κ³ μ •ν•˜λ €λ©΄ 두 λ‘œλ”μ— λ™μΌν•œ Hub 컀밋 revision을 μ „λ‹¬ν•˜μ„Έμš”.

둜컬둜 μ“°λ €λ©΄ 같은 Hub revisionμ—μ„œ config.json, model.safetensors, sproutko-tokenizer-32k-v1.json을 ν•œ 폴더에 받은 λ’€ κ·Έ 경둜λ₯Ό source λ˜λŠ” --checkpoint둜 μ§€μ •ν•˜μ„Έμš”.

μ•„ν‚€ν…μ²˜

Pre-Norm ꡬ쑰에 RMSNorm, Rotary Position Embeddings(RoPE), Grouped Query Attention(GQA), SwiGLU ν”Όλ“œν¬μ›Œλ“œ λ„€νŠΈμ›Œν¬λ₯Ό μ‚¬μš©ν•˜λŠ” causal decoderμž…λ‹ˆλ‹€. 토큰 μž„λ² λ”©κ³Ό 좜λ ₯ ν”„λ‘œμ μ…˜μ€ κ°€μ€‘μΉ˜λ₯Ό κ³΅μœ ν•©λ‹ˆλ‹€.

ν•­λͺ© SproutKO-130M
고유 νŒŒλΌλ―Έν„° 수 129,983,232
μ–΄νœ˜ 크기 32,000
Hidden size 768
Transformer λ ˆμ΄μ–΄ 수 16
Query / KV head 수 12 / 4
Head dimension 64
ν”Όλ“œν¬μ›Œλ“œ 쀑간 차원 2,176
ν”„λ‘¬ν”„νŠΈλ₯Ό ν¬ν•¨ν•œ μ΅œλŒ€ 생성 μ‹œν€€μŠ€ 길이 4,096
μ‚¬μ „ν•™μŠ΅ μ‹œν€€μŠ€ 길이 2,048
RoPE theta 10,000
RMSNorm epsilon 1e-6
토큰 μž„λ² λ”©Β·μΆœλ ₯ κ°€μ€‘μΉ˜ 곡유 μ‚¬μš©

ν† ν¬λ‚˜μ΄μ €

SproutKO-Tokenizer-32K-v1은 Rust tokenizers 라이브러리λ₯Ό λ°±μ—”λ“œλ‘œ μ‚¬μš©ν•˜λŠ” 자체 32,000토큰 BPE ν† ν¬λ‚˜μ΄μ €μž…λ‹ˆλ‹€. 파일λͺ…은 sproutko-tokenizer-32k-v1.jsonμž…λ‹ˆλ‹€.

  • Unicode NFC μ •κ·œν™”μ™€ μ€„λ°”κΏˆ 톡일을 μ μš©ν•˜κ³  BOM 문자λ₯Ό μ œκ±°ν•©λ‹ˆλ‹€.
  • ν•™μŠ΅λœ μ–΄νœ˜ λ°–μ˜ λ¬ΈμžλŠ” byte fallback으둜 μ²˜λ¦¬ν•©λ‹ˆλ‹€.
  • AutoTokenizerκ°€ μ•„λ‹ˆλΌ SproutKOTokenizer둜 λΆˆλŸ¬μ˜€μ„Έμš”.
특수 토큰 ID
<pad> 0
<s> (BOS) 1
</s> (EOS) 2
<unk> 3

κ°€μ€‘μΉ˜μ™€ ν† ν¬λ‚˜μ΄μ €λŠ” 항상 λ™μΌν•œ 릴리슀의 νŒŒμΌμ„ ν•¨κ»˜ μ‚¬μš©ν•˜μ„Έμš”.

μ‚¬μš© λ²”μœ„μ™€ ν•œκ³„

  • κΈ°λ³Έ λͺ¨λΈμ— ν…μŠ€νŠΈ ν”„λ‘¬ν”„νŠΈλ₯Ό μž…λ ₯ν•˜μ—¬ μ΄μ–΄μ§ˆ λ‚΄μš©μ„ μƒμ„±ν•©λ‹ˆλ‹€. instruction-tuned λͺ¨λΈμ΄ μ•„λ‹ˆλ©° μ±„νŒ… λͺ¨λΈλ„ μ•„λ‹™λ‹ˆλ‹€.
  • ν”„λ‘¬ν”„νŠΈμ—λŠ” μ΅œμ†Œ ν•œ 개의 토큰이 ν•„μš”ν•©λ‹ˆλ‹€. ν”„λ‘¬ν”„νŠΈμ™€ μš”μ²­ν•œ 좜λ ₯ 길이의 합은 μ΅œλŒ€ 4,096ν† ν°μž…λ‹ˆλ‹€.
  • ν•™μŠ΅ κΈΈμ΄λŠ” 2,048ν† ν°μž…λ‹ˆλ‹€. κ·Έ λ°–μ˜ κΈΈμ΄μ—μ„œλŠ” ν’ˆμ§ˆμ„ 보μž₯ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • μƒμ„±λœ ν…μŠ€νŠΈλŠ” λΆ€μ •ν™•ν•˜κ±°λ‚˜ 편ν–₯될 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 이 λ²ˆλ“€μ—λŠ” ν•™μŠ΅ 데이터, optimizer μƒνƒœ, ν•™μŠ΅ 슀크립트, 평가 λ³΄κ³ μ„œκ°€ ν¬ν•¨λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

검증

CPUμ—μ„œ μΆ”λ‘  λŸ°νƒ€μž„μ€ 원본 λŸ°νƒ€μž„κ³Ό ν† ν¬λ‚˜μ΄μ € μƒ˜ν”Œ 9개, 그리고 이 κ°€μ€‘μΉ˜μ˜ λ‘œμ§“ 및 12토큰 greedy 좜λ ₯이 μΌμΉ˜ν•©λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ 릴리슀 검증 기둝을 λ³΄μ„Έμš”. GPU 좔둠은 κ²€μ¦ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

파일

파일 μš©λ„
config.json λͺ¨λΈ ꡬ쑰와 λ²ˆλ“€ 파일λͺ…
model.safetensors λͺ¨λΈ κ°€μ€‘μΉ˜
sproutko-tokenizer-32k-v1.json μ–΄νœ˜, 병합 κ·œμΉ™, λ‚΄μž₯ ν† ν¬λ‚˜μ΄μ € λ°±μ—”λ“œ
LICENSE Apache-2.0
README.md 이 λͺ¨λΈ μΉ΄λ“œ

λΌμ΄μ„ μŠ€

μ½”λ“œ, 배포 κ°€μ€‘μΉ˜, ν† ν¬λ‚˜μ΄μ €λŠ” Apache-2.0 λΌμ΄μ„ μŠ€λ₯Ό λ”°λ¦…λ‹ˆλ‹€.

Downloads last month
-
Safetensors
Model size
0.2B params
Tensor type
F32
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support