EXAMPLE <seed:bos>system You are Bram Hollis, keeper of the Wayward Lantern...<seed:eos><seed:bos>user I push the door open, dripping wet Got room for one more?<seed:eos><seed:bos>assistant The template ships embedded (chat_template.jinja + tokenizer_config.json), so vLLM, llama.cpp, and the quants pick it up without ceremony. Anything that can serve Seed-OSS-Instruct serves mockingbird. No thinking. Ever. mockingbird never emits <seed:think> and was never trained on reasoning traces Tool calling The corpus includes the full Toolmaxx family (58,095 conversations), rendered with tool responses as a plain tool role turn: <seed:bos>tool\n{tool output}<seed:eos> Not the Seed-OSS-Instruct tool DSL. No <seed:tool_call> tokens, no <function=...> markup. Tool competence here is corpus-taught and conversational, not a structured calling API. If you need strict function calling, put a schema in the card and validate what comes back Key details BASE ByteDance-Seed/Seed-OSS-36B-Base-woSyn (Apache 2.0) PARAMS 36B dense · 64 layers · GQA 8 KV heads · head_dim 128 VOCAB 155,136 · native Seed control tokens · zero added tokens CTX trained at 24,576 packed · base RoPE to 512K CORPUS 667,332 conversations · ~1.3B supervised chars · 43% RP share THINKING none, by construction LANGUAGE English (non-English filtered at ingest) Training Full-parameter SFT, Axolotl, 8×B200. One stage, no annealing games: STEPS 584 run of 910 planned (funding cliff) · this release = step 450 SEQ 24,576 · sample packing (99.94% efficiency) BATCH 64 global (micro 1 × accum 8 × 8 GPUs) OPT AdamW · lr 8e-6 cosine · 3% warmup · wd 0.01 · bf16 STACK FSDP2 full-shard · activation checkpointing · Cut Cross Entropy
VAL PPL base 4.272 → step 100: 4.094 (min) → step 550: 4.179 Val perplexity bottoms out early and drifts up; it did not pick this checkpoint. Selection ran the other way: every 50th checkpoint through a seeded multi-turn loop/stall battery (×5 repeats), a 20-arm sampler sweep across the finalists (400/450/500) at 16K context, and blind-judged episodes on real character cards. Step 450 won on both instruments: the highest battery pass rate in the whole sweep matrix at its shipped sampler, and the most coherent judged episodes. Earlier checkpoints still loop; later ones need temperatures where coherence frays. The corpus is the PersonalityEngine V1.3.0 public list — all 42 non-gated sets, ingested verbatim — plus my own lanes on top: 16,714 carded RP conversations (anthracite c2, Gryphe Aesir, PJMixers, bluemoon), 8,872 think-stripped RP logs, and a 385-conversation anti-repetition lane built to reconstruct the gated RepRemover idea: find the turn that repeats an earlier turn, cut there, rewrite the continuation to advance the scene, accept only if it clears a Jaccard 0.35 gate against every prior turn. The corpus was cleaned so the model doesn't have to be. Dropped at ingest, with receipts: Name:-style fiction-transcript openers (up to 18.2% of one source — the classic RP defect), mid-scene policy refusals and jailbreak-compliance preambles (851 + 452 conversations - not really needed for this model), non-English rows, exact duplicates across lanes (5,332). Conversations longer than the context window were split at turn boundaries with the card re-carried, not truncated (one Personamaxx-VN row was a single 4.85M-char turn; it did not make the cut). Sampling The shipped generation_config.json is the measured optimum, not a guess — it won a 20-arm sweep (temperature × top_p × min_p × penalties, ×5 seeded battery runs per arm, plus blind-judged episodes): temperature 1.0 · top_p 0.9 · no penalties The usable window is narrow and hotter than RP muscle memory expects: ~0.95–1.05. Below ~0.85 the model collapses into verbatim self-repetition (at 0.7 it re-emits its previous turn nearly word for word). Above ~1.15 turn-endings slip and the prose goes dreamlike. min_p alone (0.05, top_p off) truncates harder than top_p 0.9 and loops more, not less. This is not a temperature-0.7 model. Never use repetition, presence, or frequency penalties. The Seed template ends every message with <seed:eos>, so a multi-turn chat has dozens of them in context. Context-wide penalties tax that token directly: the model stops being able to end its turn, the penalty then strip-mines the English vocabulary, and generation falls into the base model's untrained Chinese tokens (爹爹爹爹爹… — it is exactly as bad as it looks). If you need anti-repetition, use DRY or XTC, which leave special tokens alone. The corpus's anti-repetition lane plus temperature 1.0 is the intended mechanism. Give it a proper card and it will give you a proper character: the model was fed real character cards (median ~3K chars, p90 ~8.5K) as system messages. Quickstart from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "aimeri/spoomplesmaxx-mockingbird-36B" tok = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype="bfloat16", device_map="auto")
messages = [ {"role": "system", "content": "You are Bram Hollis, keeper of the " "Wayward Lantern, a roadside inn on the edge of the fen. Gruff, " "observant, superstitious. Third person, asterisk action beats."}, {"role": "user", "content": "I push the door open, dripping wet " "Got room for one more tonight?"}, ] ids = tok.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device) out = model.generate(ids, max_new_tokens=400, temperature=1.0, top_p=0.9, do_sample=True) print(tok.decode(out[0][ids.shape[-1]:], skip_special_tokens=True)) Quants: MLX 3-bit (15GB, Apple silicon) · GGUF static Q3–Q5 · GGUF imatrix (weighted on the model’s own corpus — prefer these at 3–4 bit; i1-Q3_K_M is the 18GB target, i1-IQ3_XXS squeezes to 14GB) This one already knows your character better than you do. mockingbird is a roleplay and creative-writing model for adults. It stays in character by design — its corpus was scrubbed of mid-scene refusals — so bring your own moderation where your deployment needs it. Not an assistant, not an oracle, not for anything safety-critical. mimids 01 · trained 2026-08 · checkpoints published live at mockingbird-v1-seedoss-ckpts · Apache 2.0