Skip to page content
SAVRN
Search Plan a project

Open-weight model · Text generation

han2han-it

by Cellik Adams cadazar/han2han-it

han2han-it is an open-weight model for text generation from Cellik Adams, released under Apache License 2.0. It has 189M parameters. At 16-bit it needs about 0.5 GB of GPU memory, which fits on 1x MI300X from $1.85 an hour, at the lowest prices in the SAVRN Index. It draws 269 downloads a month.

Instruction-tuned checkpoint of Han2Han (han2han-ul2-base-1-it, step 43153). Han2Han is a 169M-parameter encoder-decoder model that learns script-invariant representations of Korean text: a document written in Hanja and its Hangul transcription land at the…

Parameters189M
Context—
Weights755.5 MB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads269

Runs On

What it takes to serve han2han-it (189M parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.

PrecisionWeightsMemory neededCheapest setupPer hourAlso fits
16-bit 0.4 GB 0.5 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
8-bit 0.2 GB 0.2 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 0.1 GB 0.1 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00

Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Oct 18, 2026.

han2han-it on every accelerator the SAVRN Index prices, at every precision

Model Card

By Cellik Adams, published under apache-2.0, revision df6944b3307e.

Instruction-tuned checkpoint of Han2Han (han2han-ul2-base-1-it, step 43153). Han2Han is a 169M-parameter encoder-decoder model that learns script-invariant representations of Korean text: a document written in Hanja and its Hangul transcription land at the same point in embedding space. The recipe (jamo and character-level embedding fusion, morpheme-aware denoising, bidirectional Hanja-Hangul transcription) is described in the paper, accepted to Findings of EMNLP 2026. This repo holds the PyTorch weights, the SentencePiece tokenizer, and the modeling code needed to load them through the transformers Auto classes with trustremotecode=True. Training code, the Flax model, the Flax-to-PyTorch…

Read Cellik Adams's full model card

Instruction-tuned checkpoint of Han2Han (han2han-ul2-base-1-it, step 43153). Han2Han is a 169M-parameter encoder-decoder model that learns script-invariant representations of Korean text: a document written in Hanja and its Hangul transcription land at the same point in embedding space. The recipe (jamo and character-level embedding fusion, morpheme-aware denoising, bidirectional Hanja-Hangul transcription) is described in the paper, accepted to Findings of EMNLP 2026.

This repo holds the PyTorch weights, the SentencePiece tokenizer, and the modeling code needed to load them through the transformers Auto classes with trust_remote_code=True. Training code, the Flax model, the Flax-to-PyTorch converter, and the evaluation pipeline live in the GitHub repo.

Usage

Runtime requirements: torch, transformers, sentencepiece, regex, and numpy (tested with torch 2.12.0 and transformers 5.9.0 on CPU). absl-py is optional.

import torch
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer

repo = "cadazar/han2han-it"
tokenizer = AutoTokenizer.from_pretrained(repo, trust_remote_code=True)
model = AutoModelForSeq2SeqLM.from_pretrained(repo, trust_remote_code=True).eval()

prompt = "<|user|>다음 한문을 한글로 옮기시오:\n韓國語는 世界에서 가장 科學的인 文字입니다.<|end_of_turn|>"
inputs = tokenizer(prompt, return_tensors="pt")
with torch.no_grad():
    output = model.generate(**inputs, max_new_tokens=64, use_fixed_length_generation=False)
print(tokenizer.decode(output[0].tolist()))

Prompt format, as used by the SFT collator in the GitHub repo:

  • Encoder input: <|system|>{system}<|user|>{user}<|end_of_turn|>. The system part is optional.
  • The decoder starts from <|assistant|> (decoder_start_token_id 9) and a turn ends with <|end_of_turn|> (eos_token_id 10).

Han2HanTokenizer is a plain SentencePiece wrapper rather than a PreTrainedTokenizer subclass. It exposes __call__, encode, and decode; __call__ does not add BOS or EOS tokens, and special tokens written into the text are mapped to their ids.

Files

File Contents
model.safetensors fp32 weights, 169.2M parameters, plus the jbu / cbu subword bucket tables
config.json, generation_config.json model and generation config, with auto_map entries for the Auto classes
spiece.model, tokenizer_config.json SentencePiece model (38400 pieces) and tokenizer config
modeling_han2han.py, han2han_config.py, han2han_tokenizer.py modeling code, copied from the GitHub repo at commit 0b858ea5f1c7c5aeb325ba114eb87e335fe05dd9 (modeling_han2han_pytorch.py there)

The code files differ from the repo copies only where remote-code loading requires it: sibling imports are relative, optional fla / flax / absl imports are guarded, the tokenizer and the model resolve Hub repo ids, the tokenizer logs through a plain logging logger instead of the repo's JAX-aware helper, and the module-level register_han2han import is replaced by the auto_map entries.

Instruction tuning

Fine-tuned from the Han2Han pre-trained checkpoint on instruction following, chain-of-thought reasoning, Hanja-Hangul article transcription, and summarization data (configs/it-muon-stage_1.yaml in the GitHub repo).

Citation

@inproceedings{han2han2026,
  title     = {Han2Han: Efficient Language-Specific Character Representation
               through Script-Aware Pre-Training for Historical Text Analysis},
  author    = {Adams, Cellik and Jo, EunKyoung and Kim, Juae},
  booktitle = {Findings of the Association for Computational Linguistics: EMNLP 2026},
  year      = {2026}
}

License

Apache License 2.0, the same as the GitHub repo.

Configuration

Architecture
Han2Han
Head dimension
256
Vocabulary size
38,400
RoPE base
500,000
Model type
han2han

Identity and Version

Repository
cadazar/han2han-it
Publisher
Cellik Adams
Task
Text generation
Modality
Text
Library
transformers
Parameters
189M parameters
Languages
ko
Revision
df6944b3307e0f9462021e0d7fc5291318048f66
First published
2026-09-14
Last updated
2026-09-24

Files and Weights

10 files, 756.7 MB in total. The weights are 1 file totalling 755.5 MB in safetensors.

Weights1 file · 755.5 MB
Configuration4 files · 191.5 KB
Tokenizer3 files · 960.1 KB
Documentation1 file · 4.1 KB
Repository1 file · 1.5 KB
Every file
FileTypeSizeSHA-256
model.safetensorsWeights755.5 MB 9e62f0107409
config.jsonConfiguration5.9 KB —
generation_config.jsonConfiguration248 B —
han2han_config.pyConfiguration25.9 KB —
modeling_han2han.pyConfiguration159.5 KB —
README.mdDocumentation4.1 KB —
.gitattributesRepository1.5 KB —
han2han_tokenizer.pyTokenizer47.4 KB —
spiece.modelTokenizer912.3 KB ca2b6bd503cd
tokenizer_config.jsonTokenizer318 B —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
755.5 MB
Download from Cellik Adams

Released by Cellik Adams through its official repository on Hugging Face. Read the license.

Memory Requirements

PrecisionWeights in memory
As published755.5 MB
16-bit0.4 GB
8-bit0.2 GB
4-bit0.1 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About han2han-it

How much GPU memory does han2han-it need?

About 0.5 GB at 16-bit and 0.1 GB at 4-bit: the weights (189M parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run han2han-it on?

At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.

Can I use han2han-it commercially?

Yes. han2han-it is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

Similar Models

Model · Text generation

Prochlo-190M-Base

CyanoAI

The smallest and first model from CyanoAI — a 190.5M-parameter dense English base LM. Named after Prochlorococcus, the tiniest and most oxygen-producing photosynthetic organism on Earth: small, dense, and outproducing everything its size. All variants share the same architecture, tokenizer, and vocabulary, so they are drop-in interchangeable. Training corpus: a curated ~826GB English mixture (web / books / code / reference), stream-packed with the tokenizer jointly shipped in this repo. This is a base model — it speaks fluent Wikipedia-style prose but has not been aligned. For chat or assistant behaviour, start from the SFT or aligned variants. Zero-shot on wikitext (JSON subset, ~500k…

Open weights apache-2.0 190M parameters 4,096 tokens

Model · Text generation

olmo3-190m-zh-full-continue

Lee

基于 MikeLee000/olmo3-190m-zh-full 完成一轮持续预训练(Continued Pretraining,CPT)的课程实验模型,约 187M 参数。 不是 SFT 或指令对话模型。 使用普通文本作为提示进行续写,不使用 applychattemplate,不应将其作为可靠的问答助手。 - 架构:Olmo3ForCausalLM,12 层,hidden size 768,intermediate size 3072,词表 48,000。 - 数据:cmz1024/llm101-olmo3-zh-demo-data 仓库中的 continue/tokenizedv31.bin。 - 全参数持续预训练;不使用 LoRA;序列长度 2,048;BF16。 - 1 epoch,共 11,918 个 optimizer steps。 - Batch size 16,gradient accumulation 4,有效 batch size 64。 - Learning rate 2e-4,warmup ratio 0.1,cosine scheduler。 - Transformers 5.9.0,PyTorch 2.5.1。 - 最终 validation loss:1.9467759132385254。这是特定验证集上的语言模型损失,不是准确率或通用问答质量评分。 发布文件来自 /checkpoints/olmo3zhcontinue/final,已核对与 checkpoint-11918/model.safetensors 的 SHA-256 一致:…

Open weights apache-2.0 187M parameters 4,096 tokens transformers

Model · Text generation

AMOR-Mamba2-180M

Haoran Zheng

Block 0 receives the backbone's final normalized output. Blocks 1 and 2 apply their own pre-normalization. A shared, embedding-tied LM head supplies all three entropy evaluations and the final output prediction. A complete recurrent backbone, refined by three entropy-gated attention blocks. Looking for the larger model? AMOR-Mamba2 1.5B. AMOR (Adaptive Metacognitive Output Router) uses the model's predictive uncertainty to decide where attention should refine its recurrent representation. Each appended block reads normalized output entropy, compares it with a frozen threshold at inference, and adds an attention update only where its gate fires. The recurrent backbone and attention blocks…

Open weights mit 184M parameters pytorch

This is the model card of a transformers model that has been pushed on the Hub. Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. Use the code below to get started with the model. Carbon emissions can be estimated using the Machine Learning Impact calculator presented in Lacoste et al. (2019).

Open weights 194M parameters transformers

This is the model card of a transformers model that has been pushed on the Hub. Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. Use the code below to get started with the model. Carbon emissions can be estimated using the Machine Learning Impact calculator presented in Lacoste et al. (2019).

Open weights 194M parameters transformers

This is the model card of a transformers model that has been pushed on the Hub. Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. Use the code below to get started with the model. Carbon emissions can be estimated using the Machine Learning Impact calculator presented in Lacoste et al. (2019).

Open weights 194M parameters transformers