Views
No views yet
About the developer — One person (FiShota) building a Japanese LM stack from scratch on a single RTX 3090. HinoMoto = from-scratch JP LM family, Yamato = legal/admin SFT specialist, HinoMoto-Bench-ja = cultural-axis benchmark. Honest research: every release links to a write-up that includes the negative results. GitHub · Bench · X
| Eval set | PPL |
|---|---|
| 51 short prompts | 15.94 |
| 200 mixed prompts | 32.08 |
| 789 broad prompts | 48.51 |
| Schedule | seed=0 | seed=1 | seed=2 | mean (51) | std (51) | mean (789) | std (789) |
|---|---|---|---|---|---|---|---|
| Cosine | v7 (17.72) | v8 (17.09) | v14 (16.58) | 17.13 | 0.57 | 48.03 | 0.18 |
| WSD+z-loss | v15 (15.94) | v11/v16 (16.50) | v12 (16.35) | 16.26 | 0.29 | 48.76 | 0.45 |
| Run | Params | Schedule | Steps | Final ppl | Notes |
|---|---|---|---|---|---|
| 100M v15 (this card) | 100M (43M excl embed) | WSD+z-loss+EMA | 20,000 | 15.94 (51-prompt) | this card |
| 350M smoke | 318M | WSD+z-loss+EMA bf16 | 5,000 | 9.53 (training) | architecture verified |
| 350M Phase 1 full | 318M | WSD+z-loss+EMA bf16 | 50,000 | (in progress) | RTX 3090 single GPU, ~22h |
1import torch
2from hinomoto.model.hinomoto_model import HinoMotoModel, HinoMotoConfig
3from hinomoto.tokenizer.byte_bpe import ByteBPETokenizer
4
5ck = torch.load("ckpt_ema_step_020000_final.pt", map_location="cpu", weights_only=False)
6cfg = HinoMotoConfig(**ck["config"])
7model = HinoMotoModel(cfg)
8model.load_state_dict(ck["shadow"], strict=False)
9model.lm_head.weight = model.tok_embed.weight # tied
10model.eval()
11
12tok = ByteBPETokenizer.load("tokenizer.json")
13ids = tok.encode("日本語の文章モデルを作るには")
14# ... your inference loop1python -m hinomoto.train.train_lm \
2 --tokenizer tokenizer_v3_32k_clean.json \
3 --corpus all_v6_balanced.txt \
4 --output-dir artifacts/smoke_100m_v15_wsd_zloss_ema \
5 --config configs/main_run_100m_v3.json \
6 --max-steps 20000 --warmup-steps 400 \
7 --batch-size 2 --grad-accum 4 --seq-len 512 \
8 --lr 3e-4 --device cuda \
9 --dtype fp32 --seed 0 \
10 --ema-decay 0.999 \
11 --lr-schedule wsd --wsd-decay-frac 0.2 \
12 --z-loss-coef 1e-4 \
13 --spike-detect--seed → same weights, even across days/runs (verified: v11 = v16 with seed=1).paper_drafts/hinomoto_arxiv_outline.md).| Repo | Scale | Stage | Status |
|---|---|---|---|
| hinomoto-100m-v15-wsd-zloss-ema | 100M | research baseline (this card) | ✅ stable |
| hinomoto-100m-v12-wsd-zloss-seed2 | 100M | sister seed=2 (reproducibility) | ✅ stable |
| Repo | Recipe | Notes |
|---|---|---|
| sarashina2.2-3b-sft-v3-Q4_K_M-gguf | 4-axis SFT, 4 quants (Q3/Q4/Q5/Q6) | family / keigo / silence / atmosphere |
| sarashina2.2-3b-sft-v4-gguf | sft_v3 + 11% NLI replay | catastrophic-forgetting repair |
| sarashina2.2-3b-sft-v4-dpo-gguf | sft_v4 + DPO 108 pairs | preference tuning |
| Repo | LoRA r | Bench % | Notes |
|---|---|---|---|
| yamato-3b-v1-legal-gguf | 16 | 46.7% | baseline |
| yamato-3b-v2-legal-gguf | 16 | — | 2nd pass |
| yamato-3b-v3-r32-legal-gguf | 32 | 48.9% | +2.2 |
| yamato-3b-v4-r64-legal-gguf | 64 | 54.3% | +5.4 |
| yamato-3b-v5-r128-legal-gguf ⭐ | 128 | 57.6% | best — see dev-note #9 |

↑ HinoMoto-350M Phase 1 (in-progress). Updated periodically. Left: perplexity (log scale). Right: loss (linear). See HinoMoto 開発ノート #10 (post-completion retro).