Skip to page content
SAVRN
Search Plan a project

Open-weight model · Text generation

motif-3-bh-galaxy

by Hyunggi Chang changh95/motif-3-bh-galaxy

motif-3-bh-galaxy is an open-weight model for text generation from Hyunggi Chang, released under MIT License. Its published files total 773.9 MB.

This package runs the Motif-3 LLM of Motif Technologies on one Tenstorrent Blackhole Galaxy (32 Blackhole chips). - 53 layers of Grouped Differential Latent Attention (GDLA). - A 4-stream mHC residual.

Parameters—
Context—
Weights773.9 MB
Licensemit
AccessOpen weights
Monthly Downloads—

Model Card

By Hyunggi Chang, published under mit, revision 4271acc593bd.

This package runs the Motif-3 LLM of Motif Technologies on one Tenstorrent Blackhole Galaxy (32 Blackhole chips). - 53 layers of Grouped Differential Latent Attention (GDLA). - A 4-stream mHC residual. - 384 routed experts and 1 shared expert, all PolyNorm MLPs, with top-8 routing. - 1 MTP (multi-token-prediction) layer. - default: for all traffic. - mtp (opt-in): greedy requests decode up to 1.9× faster with the model's own MTP layer. - Built on tt-metal / ttnn as a plain vLLM model behind the vllm-tt-plugin. - Mesh (4, 8): attention is 8-way tensor-parallel in 4 groups of 8 user lanes; the MoE is 32-way expert-parallel (12 experts per chip). - Decode runs as captured Metal traces. The MTP…

Read Hyunggi Chang's full model card

This package runs the Motif-3 LLM of Motif Technologies on one Tenstorrent Blackhole Galaxy (32 Blackhole chips).

  • Model: a 314B-parameter MoE with 13.2B active parameters per token.
  • 53 layers of Grouped Differential Latent Attention (GDLA).
  • A 4-stream mHC residual.
  • 384 routed experts and 1 shared expert, all PolyNorm MLPs, with top-8 routing.
  • 1 MTP (multi-token-prediction) layer.
  • Supports the following configurations:
  • Concurrent users (batch): 1 to 32.
  • Context: up to 32,768 tokens per request, with one KV pool of 262,144 tokens shared by all users.
  • Two launches:
    • default: for all traffic.
    • mtp (opt-in): greedy requests decode up to 1.9× faster with the model's own MTP layer.
  • An OpenAI-compatible API through vLLM: chat, completions, streaming, thinking on/off, tool calls.
  • Built on tt-metal / ttnn as a plain vLLM model behind the vllm-tt-plugin.
  • Mesh (4, 8): attention is 8-way tensor-parallel in 4 groups of 8 user lanes; the MoE is 32-way expert-parallel (12 experts per chip).
  • Latent KV cache: 576 values per token and layer, in BFP8.
  • Decode runs as captured Metal traces. The MTP launch captures two: the 32-lane trace and a 64-row verify trace.
  • The sampler runs on the device and is exact (temperature, top-k, top-p, seeds).
  • Two custom kernels through ttnn.generic_op: the exact Motif Sinkhorn of the mHC and an exact FP32 router.
  • With the default launch, one user decodes at 10.3-10.8 tokens/s (92 ms per decode step). 32 users get 326 tokens/s together on 128 / 1,024 tokens.
  • With the MTP launch, one user decodes at 20.7 tokens/s and 32 users get 458 tokens/s (greedy).

Weights: Motif-Technologies/Motif-3 · Port: changh95/tt-metal @ motif3-bh-galaxy · Plugin: changh95/vllm-tt-plugin @ motif3-bh-galaxy · Results: reports/

  • This package runs on p150x32 (mesh BH-Galaxy, opened as (4, 8), fabric FABRIC_2D_TORUS_XY). It has two launches:
  • default: chunked prefill, prefix caching, packed prefill and exact on-device sampling.
  • mtp (opt-in): default plus MTP self-speculative decoding (K = 1) with the 64-row verify. Only greedy requests speculate.
  • The package uses tt-model-manager 0.1.0 (manifest schema 5: a self-contained bundle with the ttnn, vLLM and vllm-tt-plugin wheels, all Python dependencies and the model code). No container image and no Docker are needed.

Quickstart

export TT_MODEL_MODELS_DIR=/big/disk/tt-model   # weights (≈630 GB) + venv + ≈344 GB device weight cache + kernel cache
tt-model pull  changh95/motif-3-bh-galaxy --with-weights
tt-model serve changh95/motif-3-bh-galaxy
  • tt-model pull installs the bundle into its own Python 3.10 venv from the vendored wheels. It downloads the weights Motif-Technologies/Motif-3 @ 2ed2ed5c (≈630 GB BF16) into the bundle's HF cache. This repository does not contain the weights.
  • If you already have the weights, skip the download: tt-model pull changh95/motif-3-bh-galaxy, then WEIGHTS_DIR=/path/to/Motif-3 tt-model serve changh95/motif-3-bh-galaxy. The server runs offline (HF_HUB_OFFLINE=1).
  • The server uses port 20000. If that port is busy, the server uses the next free port. The model id is Motif-Technologies/Motif-3. The server is ready when it logs Application startup complete.
  • First start: the server converts the BF16 weights and writes the device weight cache (TT_CACHE_PATH, default <install>/.tt_cache, ≈344 GB). It also compiles the kernels. This is an estimate of about 80 minutes:
  • about 29 min to convert the 51 MoE layers (34 s per layer, measured);
  • about 49 min for the kernel compiles (measured: 2,935 s to healthy with the weight cache in place and an empty kernel cache);
  • more if the 630 GB must first be read from a slow disk.
  • Later starts load both caches: 93 s from tt-model serve to healthy (measured through this bundle).
  • Host requirements:
  • A Blackhole Galaxy with its driver and firmware (measured on TT-KMD 2.10.0, firmware bundle 19.12.0.0) and 1G hugepages.
  • An x86-64-v3 CPU and glibc ≥ 2.35.
  • The SFPI 7.84.0 kernel compiler, at /opt/tenstorrent/sfpi or installed into the bundle's venv without sudo: bash "${TT_MODEL_MODELS_DIR:-$HOME/.cache/tt-model/models}/changh95/motif-3-bh-galaxy/sfpi_install.sh".
  • tt-model-manager at or after c3cfaf8. Run tt-model with tt-smi off your PATH (see Limitations).

Run with tt-cli

tt serve in tt-cli 1.0.1 needs Docker, even for a self-contained bundle. So start the server with tt-model serve (above). tt-cli works for the other steps:

tt model info changh95/motif-3-bh-galaxy --hw p150x32     # the catalog entry; tt-cli does not detect a Galaxy, so pass --hw
tt-model serve changh95/motif-3-bh-galaxy &               # the server (no Docker)
curl -s localhost:20000/v1/chat/completions -H 'Content-Type: application/json' -d '{
  "model": "Motif-Technologies/Motif-3",
  "messages": [{"role": "user", "content": "Explain KV caching in two sentences."}],
  "max_tokens": 2048, "temperature": 1.0, "top_p": 0.95}'
kill -TERM %1                                             # stop: SIGTERM, then wait (the server closes the 32-chip mesh)

The server is vLLM's OpenAI-compatible server:

  • POST /v1/chat/completions and POST /v1/completions, with "stream": true as in vLLM.
  • Thinking is on by default. Turn it off for one request with "chat_template_kwargs": {"enable_thinking": false}.
  • The motif reasoning parser puts the thinking in the reasoning field and the answer in content.
  • Tool calls: pass tools; the motif tool parser (Hermes-style <tool_call> JSON, with repair of malformed arguments) returns tool_calls. Auto tool choice is on.
  • Sampling: temperature, top_p, top_k and seed run on the device. Penalties, min_p, structured outputs and top-N logprobs use vLLM's exact host sampler (default launch only; see Limitations).
  • GET /health, GET /v1/models and GET /metrics (vLLM's metrics, including the MTP acceptance counters) work as in vLLM.

How to change the configuration

  • The launch is fixed when the server starts. To change it, stop the server and start it again with other values.
  • tt-model serve passes every argument after the bundle id to vLLM, and runs the server in your environment. So you change the configuration with environment variables and vLLM flags; no file of the bundle changes.
  • The configuration of a request (sampling, thinking, tools, max_tokens) can change for each request.
Item Environment variable / flag Range Default (this bundle) Fixed when
MTP launch --speculative-config '{"method": "custom_class", "model": "vllm_tt_plugin.model_owned_drafter", "num_speculative_tokens": 1}' and MOTIF3_SPEC_VERIFY=auto off / on (K = 1 only) off The server starts
MTP verify mode MOTIF3_SPEC_VERIFY packed (idle lanes only), wide (64-row step only), auto packed in code; use auto with MTP The server starts
Packed prefill MOTIF3_PACKED_PREFILL 0, 1 1 The server starts
Prefix caching --no-enable-prefix-caching on / off on The server starts
Device weight cache MOTIF3_TT_CACHE_POLICY, TT_CACHE_PATH auto (read only), write, off write, <install>/.tt_cache The server starts
KV pool (all users together) MOTIF3_KV_POOL_TOKENS a multiple of 128 262,144 tokens The server starts
Context per request --max-model-len 256 to 32,768, a multiple of 256 32,768 The server starts
Concurrent users --max-num-seqs 1 to 32 32 The server starts
Router MOTIF3_ROUTER_LOGITS composite, exact_fp32 composite The server starts
Sampling, thinking, tools, max_tokens request fields vLLM vLLM Each request
Mesh none (4, 8) only (4, 8) Always
Chunk size none (--max-num-batched-tokens = --long-prefill-token-threshold = 8,064) 8,064 only 8,064 Always

Where in the code (paths in metal/models/demos/motif3/):

Item The server reads it The model checks it (refusal)
MTP launch, K = 1, ≤ 32 users vLLM --speculative-config; tt/generator_vllm.py:419 (_spec_plan) tt/generator_vllm.py:432, :439
MTP verify mode tt/generator_api.py:485 (spec_verify_from_env) tt/model_config.py:1600; wide / auto need ring gather safe: tt/model_config.py:1613
Packed prefill tt/generator_api.py:421 (packed_prefill_from_env) tt/generator_api.py:370 (_parse_switch)
Device weight cache tt/generator_api.py:754 (tt_cache_policy_from_env), :722 (cache path) tt/generator.py:792
KV pool tt/generator_api.py:247 (kv_pool_tokens_from_env) tt/generator_api.py:255
Context per request vLLM --max-model-len tt/generator_api.py:277 (check_max_model_len)
Router tt/model_config.py:1423 tt/model_config.py:1564 (validate)
prompt_logprobs — vllm-tt-plugin platform.py:2479

To serve the MTP launch:

MOTIF3_SPEC_VERIFY=auto tt-model serve changh95/motif-3-bh-galaxy --speculative-config '{"method": "custom_class", "model": "vllm_tt_plugin.model_owned_drafter", "num_speculative_tokens": 1}'

To serve without prefix caching (for benchmarks that repeat identical prompts; the benchmark tables below were measured this way):

tt-model serve changh95/motif-3-bh-galaxy --no-enable-prefix-caching

To serve with per-row prefill (a request's tokens then do not depend on the other requests; see Limitations):

MOTIF3_PACKED_PREFILL=0 tt-model serve changh95/motif-3-bh-galaxy

Response

{"id": "chatcmpl-...", "object": "chat.completion", "model": "Motif-Technologies/Motif-3",
 "choices": [{"index": 0, "finish_reason": "stop",
              "message": {"role": "assistant", "reasoning": "<the thinking>", "content": "<the answer>",
                          "tool_calls": []}}],
 "usage": {"prompt_tokens": ..., "completion_tokens": ..., "total_tokens": ...}}
  • reasoning holds the thinking and content holds the answer (the motif reasoning parser). With thinking off, reasoning is empty.
  • The model stops on its end-of-turn token (EOS ids 0, 3 and 6 of generation_config.json).

Implementation implications

  • Packed prefill. The short prompts of one prefill step run as one pass (up to 8,192 tokens), not one prompt after another. So a burst of 32 short prompts gets its first tokens after 2.4 s, not after 23 s. From the first MoE layer on, a row in a larger pass is computed slightly differently, so a request's tokens can depend on the other requests of its prefill step (see Limitations).
  • Chunked prefill. A long prompt is prefilled in chunks of 8,064 tokens, with one decode step after each chunk. So a long prompt delays the running requests by one chunk, not by its whole prefill.
  • Prefix caching. A prompt that starts with a computed prefix (a system prompt, an earlier turn) reuses its KV blocks, including blocks written during decode. To make this possible, decode writes each new KV row to all 4 lane groups (about 1.7 ms per step).
  • On-device sampling. Each chip keeps its top-64 candidates. The device computes the exact softmax normalizer over the full vocabulary (220,160 tokens), the top-p prefix sums in FP32, and a seeded draw. If the device cannot certify a lane exact, the host samples that lane again (about 0.3 % of the steps at temperature 1.0 / top-p 0.95).
  • MTP. The MTP layer drafts one token in the decode trace, and the next step verifies it.
  • Below about 19 live users, the drafts use idle lanes of the 32-lane step.
  • From 19 users on, every user drafts, and a 64-row step verifies 32 anchors and 32 drafts together. The 64-row step costs 1.12-1.18× a 32-lane step.
  • The 64-row rows are bit-identical to the 32-lane rows, so greedy outputs are the same tokens as without MTP.
  • Determinism. Prefill and decode are bitwise reproducible from run to run on the same fabric. The ttnn ring all-gather has a completion race on an even ring; the model routes the affected gathers through all_broadcast + concat (ring gather safe, about 0.3-0.5 ms per step).
  • Traces. Decode runs as Metal trace replays captured at boot. Prefill runs eagerly in power-of-two buckets; the packed shapes are warmed at boot (+2.2 s).

Accuracy

Check Result
Teacher-forced prefill of the full 53-layer model against the FP32 CPU reference of the checkpoint (the project's validation prompts: English, Korean, code, math, chat) top-1 agreement 0.9724 (the BF16 reference reaches 0.977 against FP32); NLL 1.5476 vs 1.5504 for FP32
Decode against the same reference, pure decode / prefill-to-decode handoff top-1 0.9710 / 0.9751; 12 / 12 generations correct
Determinism: the same prompts cold, 2 processes × 5 repeats, buckets 128-8,192 1 distinct value of every logit, token and stream for each prompt (bitwise); the same for packed prefill
MTP: greedy tokens of the MTP launch against the default launch, through vLLM at 1 to 32 users, and 48 seeded sampled requests token-identical at every concurrency, and for every seeded request
Packed prefill against per-row prefill, through vLLM (461 greedy request pairs) all 277 first divergences are near ties (both tokens in the other launch's top 3, ≤ 1.125 nats); every judged answer correct on both
Prefix-cache hit against a cold prefill (6 prompts) the hit's argmax is the FP32 reference's on 6 / 6; suffix rows top-1 +0.30 pt, NLL −0.01 %

tt-inference-server --workflow evals against the default launch (prefix caching on; lm-eval generation tasks; temperature 1.0, top-p 0.95, sampled on the device; outputs capped by the 32K context), measured 2026-10-04 on --limit-samples-mode ci-nightly subsets:

Task Problems Score Published Ratio
r1_math500 100 of 500 97.0 – –
r1_aime24 15 of 30 93.3 – –
r1_gpqa_diamond 40 of 198 85.0 (82.5 with capped traces counted wrong) 83.4 1.019
  • One sampled run each on subsets, so the 95 % intervals are wide (Wilson: MATH-500 91.5-99.0, AIME 2024 70.2-98.8, GPQA Diamond 70.9-92.9).
  • 2 of the 3 MATH-500 misses are grader format mismatches of correct answers (2516 vs 2516_8; 1±√19 written as two roots). The third MATH-500 miss and the AIME miss reached the output cap.
  • All 155 requests completed: 0 failed, 0 preempted.

Benchmarks

  • The tables are tt-inference-server run.py --workflow benchmarks (vLLM bench serve: random prompts of exactly ISL tokens, ignore_eos, temperature 0, streaming), measured 2026-10-04 on one Blackhole Galaxy, fabric FABRIC_2D_TORUS_XY.
  • The server was tt-inference-server's dev spec: the same tt-metal commit, vllm-tt-plugin and serve flags as this bundle (the bundle adds the motif parsers).
  • Prefix caching was off for every benchmark, because vllm bench repeats identical prompts and cache hits would flatter the time to first token. The rest is the shipped launch.
  • t/s = output tokens per second of all users together; t/s/u = tokens per second per user (OSL / mean end-to-end latency); TTFT = mean time to first token; TPOT = mean time per output token after the first.
  • [N users]: the KV pool seats fewer users at that length (tt-inference-server runs at most 262,144 // (ISL + OSL) users). A dash: not measured.
  • The host had no other heavy workload during the benchmarks.
default launch, t/s (t/s/u)
ISL / OSL 1 user 2 4 8 16 32
128 / 128 10 (10.3) 19 (9.6) 38 (9.5) 75 (9.4) 144 (9.0) 259 (8.1)
1,024 / 128 10 (10.0) 19 (9.3) 33 (8.3) 56 (7.0) 82 (5.1) 107 (3.4)
2,048 / 128 10 (9.6) 17 (8.6) 29 (7.1) 42 (5.2) 53 (3.3) 62 (1.9)
4,096 / 128 9 (8.7) 15 (7.3) 21 (5.4) 27 (3.4) 32 (2.0) 34 (1.1)
8,192 / 128 7 (6.9) 10 (5.1) 13 (3.3) 16 (2.0) 17 (1.1) 18 (0.6) [31 users]
16,384 / 128 5 (5.2) 7 (3.4) 8 (2.0) 9 (1.1) 9 (0.6) [15 users] –
128 / 1,024 11 (10.8) 21 (10.7) 43 (10.7) 85 (10.6) 167 (10.5) 326 (10.2)
1,024 / 1,024 11 (10.8) 21 (10.6) 42 (10.4) 81 (10.1) 150 (9.4) 267 (8.4)
8,192 / 1,024 10 (10.1) – – – – 99 (3.5) [28 users]
10,000 / 1,024 10 (10.0) – – – – 82 (3.6) [23 users]
default launch, TTFT ms / TPOT ms
ISL / OSL 1 user 4 users 32 users
128 / 128 783 / 92.1 1,493 / 93.9 3,724 / 95.0
1,024 / 128 1,050 / 92.1 3,035 / 97.5 11,963 / 206.5
2,048 / 128 1,560 / 92.4 5,043 / 101.5 17,675 / 383.0
4,096 / 128 2,926 / 92.4 6,607 / 136.3 26,262 / 730.2
8,192 / 128 6,679 / 92.9 18,711 / 154.8 67,160 / 1,232.4 [31 users]
16,384 / 128 12,855 / 93.2 29,864 / 268.2 –
128 / 1,024 782 / 92.1 1,491 / 92.5 3,728 / 94.6
1,024 / 1,024 1,047 / 92.0 3,040 / 93.2 11,974 / 108.0
8,192 / 1,024 6,656 / 92.9 – 61,908 / 222.9 [28 users]
10,000 / 1,024 7,445 / 93.1 – 61,185 / 219.0 [23 users]
mtp launch (greedy), t/s (t/s/u), × = t/s against default at the same point
ISL / OSL 1 user 2 4 8 16 32
128 / 128 18 (17.6), 1.72× 31 (15.8), 1.62× 54 (13.7), 1.42× 91 (11.5), 1.21× 120 (7.7), 0.84× 206 (6.5), 0.80×
1,024 / 128 16 (16.2), 1.61× 28 (14.4), 1.54× 47 (11.9), 1.42× 74 (9.3), 1.32× 92 (6.0), 1.12× 120 (3.8), 1.12×
2,048 / 128 15 (15.1), 1.57× – – – – 69 (2.2), 1.12×
4,096 / 128 13 (12.8), 1.47× – – – – 37 (1.2), 1.07×
8,192 / 128 9 (9.2), 1.32× – – – – 18 (0.6), 1.01× [31 users]
16,384 / 128 6 (6.4), 1.24× – – – 9 (0.6), 1.02× [15 users] –
128 / 1,024 21 (20.7), 1.92× 39 (20.1), 1.85× 78 (19.8), 1.83× 123 (16.9), 1.45× 221 (16.3), 1.32× 458 (14.7), 1.40×
1,024 / 1,024 20 (20.0), 1.86× 39 (19.7), 1.86× 75 (19.0), 1.79× 115 (15.9), 1.43× 212 (14.8), 1.41× 366 (11.9), 1.37×
8,192 / 1,024 18 (17.6), 1.75× – – – – 115 (4.1), 1.17× [28 users]
10,000 / 1,024 18 (17.9), 1.79× – – – – 96 (4.2), 1.16× [23 users]
mtp launch (greedy), TTFT ms / TPOT ms
ISL / OSL 1 user 4 users 32 users
128 / 128 779 / 51.1 1,049 / 65.4 1,754 / 140.9
1,024 / 128 1,024 / 54.2 1,772 / 70.9 7,470 / 208.6
2,048 / 128 1,534 / 54.6 – 13,683 / 358.1
4,096 / 128 2,915 / 55.7 – 23,892 / 686.7
8,192 / 128 6,695 / 57.3 – 76,168 / 1,138.8 [31 users]
16,384 / 128 12,884 / 55.2 – –
128 / 1,024 759 / 47.6 1,045 / 49.6 1,840 / 66.3
1,024 / 1,024 1,022 / 49.1 1,582 / 51.2 5,499 / 79.0
8,192 / 1,024 6,655 / 50.3 – 61,240 / 181.9 [28 users]
10,000 / 1,024 7,452 / 48.8 – 61,351 / 179.6 [23 users]
  • The MTP acceptance on these random-token prompts was 0.66-0.91. With real chat prompts, the MTP launch measured 1.88-1.92× at 1-16 users and 1.69× at 32 users (20.4 / 158.5 / 314.8 / 559.0 vs 10.6 / 84.1 / 167.0 / 330.7 tokens/s at 1 / 8 / 16 / 32 users, through vllm serve).
  • This bundle itself, with the same vllm bench serve command (greedy 128 / 128): 10.25 t/s, TPOT 91.9 ms, TTFT 820 ms at 1 user, and 259.8 t/s, TPOT 94.8 ms, TTFT 3,724 ms at 32 users. tt-inference-server: 10.3 t/s, 92.1 ms, 783 ms and 259.4 t/s, 95.0 ms, 3,724 ms.
  • reports/ has the tt-inference-server reports of these tables (JSON and markdown) and the project's result documents.
Serving features (through vllm serve of the same code, default launch unless noted)
Feature Workload Result
Packed prefill 32 short prompts at once mean TTFT 2.41 s (23.02 s with per-row prefill); a request decoding meanwhile stalled at most 1.68 s
Packed prefill + prefix caching 32 prompts on a shared 2K system prompt mean TTFT 5.29 s
Prefix caching a 6,196-token system prompt sent again TTFT 0.89 s on the hit, 5.12 s cold
Chunked prefill a 30,832-token prompt beside running requests TTFT 25.2 s; the running requests stalled at most 6.63 s
On-device sampling 32 users, temperature 1.0 / top-p 0.95 TPOT 96.8 ms (264 ms with host sampling in the project's first build); the sampler adds 1.36 ms per step
MTP (mtp launch) greedy chat, thinking on, 256 tokens 1.92 / 1.88 / 1.89 / 1.69× at 1 / 8 / 16 / 32 users, token-identical

tt-inference-server's prefix-cache benchmark (--prefix-cache, AIPerf) could not run: its AIPerf client pins transformers<5, and the Motif-3 tokenizer needs transformers 5. The prefix-caching row above is the project's own measurement.

Limitations

  • MTP.
  • Only greedy requests (temperature 0, no penalties) speculate. While a sampled or penalized request is running, no request speculates, so mixed traffic decodes at about the speed of default.
  • With short outputs at 16-32 users, mtp is slower than default (0.84× at 16 users, 0.80× at 32 users on 128 / 128). The requests of a wave finish at different steps, so new requests arrive one at a time, and each one's prefill stalls every decode.
  • At 8 and 16 users with long outputs, it drafts less often (7-15 % of the tokens came from steps without a draft, against 0.1-0.2 % at other loads), so the gain there is 1.32-1.45×, not about 1.8×.
  • Long prompts at many users. Chunked prefill runs a decode step after each 8,064-token chunk. This caps the stall of the running requests (about 7 s instead of up to 47 s), but with 8K-16K prompts and 128-token outputs the total throughput is 6-14 % lower than the project's first build without chunking. A single 8K / 16K prompt's TTFT is 0.8 / 1.3 s longer.
  • Packed prefill makes outputs depend on the other requests. A request's greedy tokens and seeded sampled tokens can depend on which requests share its prefill step. Every measured divergence was a near tie, and no judged answer changed. The same batch reproduces exactly. Start with MOTIF3_PACKED_PREFILL=0 if you need outputs that do not depend on other requests.
  • Request options the server refuses (HTTP 400).
  • Both launches: prompt_logprobs and prompt embeddings.
  • mtp launch: logprobs, structured outputs (response_format JSON / JSON schema, and tool_choice "required" or a named function; "auto" works), bad_words, allowed_token_ids and min_tokens. vLLM itself refuses logit_bias, and min_p on sampled requests, on a speculative launch.
  • Supported inputs. 32,768 tokens per request (the checkpoint supports 262,144) and one KV pool of 262,144 tokens (32 users × 8K or 8 users × 32K). Long reasoning traces at many users can be preempted and prefilled again.
  • Whole Galaxy only. One engine uses all 32 chips; the mesh is fixed at (4, 8) (the device weight cache depends on the mesh shape).
  • Disk. 630 GB of BF16 weights, ≈344 GB of device weight cache and the kernel cache. The server reads the BF16 weights only while a part of the cache is missing. Before it writes a part, it checks that 60 GB stay free.
  • SFPI is not bundled. The kernels compile with the SFPI at <venv>/lib/python3.10/site-packages/ttnn/runtime/sfpi (where sfpi_install.sh puts it), else /opt/tenstorrent/sfpi. It must be version 7.84.0.
  • tt-smi on PATH. tt-model-manager up to 7994e0a does not know the Galaxy board type tt-galaxy-bh and refuses this blackhole bundle (--force does not help). Run tt-model pull/serve with tt-smi off PATH, or shadow it: mkdir -p ~/.local/share/no-tt-smi && printf '#!/bin/sh\nexit 1\n' > ~/.local/share/no-tt-smi/tt-smi && chmod +x ~/.local/share/no-tt-smi/tt-smi, then PATH=~/.local/share/no-tt-smi:$PATH tt-model serve ….
  • Working directory. Start tt-model serve from a directory without a models/ folder (not from inside a tt-metal checkout). python -m puts the working directory first on sys.path, so a local models/demos/motif3 would be served instead of the bundle's.
  • tt-cli 1.0.1. tt serve needs Docker, and tt model list does not show this bundle (tt-cli reads the hardware only from container bundles); tt-model list shows it. tt model info works with --hw p150x32.
  • Fabric. All numbers were measured with the FABRIC_2D_TORUS_XY fabric. On a Galaxy whose fabric comes up degraded (TORUS_Y), the model also runs; the project measured decode within about 1 % of TORUS_XY.
  • No async scheduling. vLLM runs with --no-async-scheduling.
  • Status: experimental (tt-inference-server EXPERIMENTAL).

TODO

  • MTP drafting at 8-16 users
  • With long outputs, 7-15 % of the tokens come from steps without a draft at 8 and 16 users. The earlier verify mode (packed) drafted on almost every step there (145.7 vs 122.8 t/s at 128 / 1,024 and 8 users).
  • Plan: find which lanes the auto planner leaves without a draft below the crossover (c* = 19), and make it draft every idle lane as packed does.
  • MTP with short outputs at many users
  • Each new request's prefill stalls all decodes, and the MTP launch has more of them per second. Plan: pack the arriving prompts of several steps into one prefill pass, and measure the decode stall.
  • Row-invariant MoE prefill
  • A row in a packed pass is computed slightly differently from the same row alone, from the first MoE layer on. Fixed per-row program configs would make the outputs independent of the other requests again.
  • Decode step
  • The decode step is 1.0-2.7 ms longer than in the project's first build: the safe ring gathers (0.3-0.5 ms) and the sampler (1.36 ms). Plan: a fixed upstream ttnn all-gather would let the gathers use the native ring again.
  • Longer context
  • The checkpoint supports 262,144 tokens; this package serves 32,768. The prefill buckets and the KV pool size limit it.
  • Prefix-cache benchmark
  • tt-inference-server's AIPerf client needs transformers 5 for the Motif-3 tokenizer.

License

  • Weights: Motif-Technologies/Motif-3, MIT License.
  • This repository does not include the weights. tt-model downloads them into the bundle's HF cache.
  • Port and server code (metal/): Apache-2.0 (tt-metal, ttnn, vllm-tt-plugin, vLLM).
  • The motif tool and reasoning parsers in metal/models/demos/motif3/vllm_plugins/ are adapted from MotifTechnologies/vllm.
  • The tt-inference-server patch in provenance/ is Apache-2.0.
  • Built with Motif 3.

Provenance

  • The next table shows the sources of the bundle.
  • metal/models in this repository is byte-identical to the model code of the tt-metal commit below, and run.sh puts it on PYTHONPATH.
component built from
tt-metal 0553e86d76b on branch motif3-bh-galaxy, based on upstream d611b1ec78d; ttnn wheel 0.75.0rc10.dev2451+g0553e86d76b (C++ Release build of d611b1ec78d, x86-64-v3, manylinux_2_35)
vLLM v0.26.0 (568afb3), VLLM_TARGET_DEVICE=empty
vllm-tt-plugin 3f70daa on branch motif3-bh-galaxy, based on upstream dd287f9
tt-inference-server 5c25756e + ef08c58e (the Motif-3 dev model specs and the benchmark / eval client); the commits are in provenance/tt-inference-server-motif3.patch, with the resolved specs next to it
weights Motif-Technologies/Motif-3 @ 2ed2ed5cfabffa10fdabb2fc0d0288f8e6de893a (not in this repository)
metal/ digest 6bf58fd9f2b755a6 (sha256, first 16 hex digits)
built 2026-10-04T22:36:20+00:00 by tt-model 0.1.0 (tt-model-manager 7994e0a), staged through tt-cli 1.0.1 tt model package

Identity and Version

Repository
changh95/motif-3-bh-galaxy
Publisher
Hyunggi Chang
Task
Text generation
Modality
Text
Library
Not stated by the source
Parameters
Not stated by the source
Languages
llm, moe, mtp, tt-metal
Revision
4271acc593bdd660878ac1f23af38282ce3a9b3e
First published
2026-10-04
Last updated
2026-10-05

Files and Weights

235 files, 773.9 MB in total.

Configuration42 files · 1.7 MB
Tokenizer1 file · 3.3 MB
Documentation10 files · 184.1 KB
Other181 files · 768.8 MB
Repository1 file · 11.1 KB
Every file
FileTypeSizeSHA-256
metal/models/demos/motif3/__init__.pyConfiguration619 B —
metal/models/demos/motif3/tt/__init__.pyConfiguration990 B —
metal/models/demos/motif3/tt/attention.pyConfiguration165.0 KB —
metal/models/demos/motif3/tt/ccl.pyConfiguration61.6 KB —
metal/models/demos/motif3/tt/decoder.pyConfiguration14.5 KB —
metal/models/demos/motif3/tt/embedding.pyConfiguration22.8 KB —
metal/models/demos/motif3/tt/generator.pyConfiguration143.5 KB —
metal/models/demos/motif3/tt/generator_api.pyConfiguration103.4 KB —
metal/models/demos/motif3/tt/generator_vllm.pyConfiguration129.1 KB —
metal/models/demos/motif3/tt/kernels/__init__.pyConfiguration1.1 KB —
metal/models/demos/motif3/tt/kernels/router_fp32.pyConfiguration37.9 KB —
metal/models/demos/motif3/tt/kernels/sinkhorn_motif.pyConfiguration40.2 KB —
metal/models/demos/motif3/tt/kv_write.pyConfiguration71.4 KB —
metal/models/demos/motif3/tt/lm_head.pyConfiguration55.1 KB —
metal/models/demos/motif3/tt/mhc.pyConfiguration81.0 KB —
metal/models/demos/motif3/tt/mlp.pyConfiguration26.2 KB —
metal/models/demos/motif3/tt/model.pyConfiguration59.4 KB —
metal/models/demos/motif3/tt/model_config.pyConfiguration130.2 KB —
metal/models/demos/motif3/tt/moe.pyConfiguration59.4 KB —
metal/models/demos/motif3/tt/mtp.pyConfiguration34.1 KB —
metal/models/demos/motif3/tt/polynorm.pyConfiguration36.6 KB —
metal/models/demos/motif3/tt/prefill_plan.pyConfiguration86.3 KB —
metal/models/demos/motif3/tt/rope.pyConfiguration25.1 KB —
metal/models/demos/motif3/tt/sampling.pyConfiguration91.6 KB —
metal/models/demos/motif3/tt/verify_plan.pyConfiguration23.9 KB —
metal/models/demos/motif3/tt/weights.pyConfiguration39.3 KB —
metal/models/demos/motif3/vllm_metadata.jsonConfiguration107 B —
metal/models/demos/motif3/vllm_plugins/__init__.pyConfiguration2.6 KB —
metal/models/demos/motif3/vllm_plugins/motif_reasoning_parser.pyConfiguration6.3 KB —
metal/models/demos/motif3/vllm_plugins/motif_tool_parser.pyConfiguration18.0 KB —
provenance/MANIFEST.jsonConfiguration1.2 KB —
provenance/tis_serve_spec.motif3-galaxy-mtp.jsonConfiguration2.7 KB —
provenance/tis_serve_spec.motif3-galaxy.jsonConfiguration2.5 KB —
reports/MANIFEST.jsonConfiguration4.9 KB —
reports/benchmarks/report_data_Motif-Technologies__Motif-3_2026-10-04T123829+0000.jsonConfiguration23.3 KB —
reports/benchmarks/report_data_Motif-Technologies__Motif-3_2026-10-04T141118+0000.jsonConfiguration40.3 KB —
reports/benchmarks/report_data_Motif-Technologies__Motif-3_2026-10-04T163324+0000.jsonConfiguration23.3 KB —
reports/benchmarks/report_data_Motif-Technologies__Motif-3_2026-10-04T174718+0000.jsonConfiguration23.3 KB —
reports/benchmarks/report_data_Motif-Technologies__Motif-3_2026-10-04T214557+0000.jsonConfiguration13.0 KB —
reports/evals/report_data_Motif-Technologies__Motif-3_2026-10-04T185529+0000.jsonConfiguration6.4 KB —
tt_kernel_manifest.jsonConfiguration4.5 KB —
vllm_models/motif-3-bh-galaxy/vllm_metadata.jsonConfiguration106 B —
README.mdDocumentation29.9 KB —
reports/benchmarks/report_Motif-Technologies__Motif-3_2026-10-04T123829+0000.mdDocumentation5.4 KB —
reports/benchmarks/report_Motif-Technologies__Motif-3_2026-10-04T141118+0000.mdDocumentation8.3 KB —
reports/benchmarks/report_Motif-Technologies__Motif-3_2026-10-04T163324+0000.mdDocumentation5.5 KB —
reports/benchmarks/report_Motif-Technologies__Motif-3_2026-10-04T174718+0000.mdDocumentation5.5 KB —
reports/benchmarks/report_Motif-Technologies__Motif-3_2026-10-04T214557+0000.mdDocumentation3.8 KB —
reports/docs/FINAL_BENCHMARKS.mdDocumentation54.3 KB —
reports/docs/FINAL_EVALS.mdDocumentation12.5 KB —
reports/docs/FINAL_VALIDATION.mdDocumentation55.7 KB —
reports/evals/report_Motif-Technologies__Motif-3_2026-10-04T185529+0000.mdDocumentation3.3 KB —
install.shOther2.1 KB —
metal/models/demos/motif3/tt/kernels/router_fp32/timing.hOther1.3 KB —
metal/models/demos/motif3/tt/kernels/router_fp32/worker_compute.cppOther19.2 KB —
metal/models/demos/motif3/tt/kernels/router_fp32/worker_reader.cppOther5.3 KB —
metal/models/demos/motif3/tt/kernels/router_fp32/worker_writer.cppOther8.0 KB —
metal/models/demos/motif3/tt/kernels/sinkhorn_motif/compute_sinkhorn_motif.cppOther14.7 KB —
metal/models/demos/motif3/tt/kernels/sinkhorn_motif/reader_sinkhorn_motif.cppOther3.5 KB —
metal/models/demos/motif3/tt/kernels/sinkhorn_motif/writer_sinkhorn_motif.cppOther3.0 KB —
metal/models/demos/motif3/tt/kernels/sinkhorn_motif/writer_sinkhorn_motif_wrnc.cppOther6.0 KB —
metal/requirements.txtOther3.9 KB —
provenance/tt-inference-server-motif3.patchOther46.5 KB —
requirements.txtOther8.9 KB —
run.shOther6.4 KB —
sfpi_install.shOther3.5 KB —
vllm-overrides.txtOther1.8 KB —
wheels/agent_detector-2.0.0-py3-none-any.whlOther9.4 KB —
wheels/aiohappyeyeballs-2.7.1-py3-none-any.whlOther15.0 KB —
wheels/aiohttp-3.14.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whlOther1.7 MB 48d67b87db62
wheels/aiosignal-1.4.0-py3-none-any.whlOther7.5 KB —
wheels/annotated_doc-0.0.5-py3-none-any.whlOther5.3 KB —
wheels/annotated_types-0.8.0-py3-none-any.whlOther13.4 KB —
wheels/anthropic-1.11.0-py3-none-any.whlOther1.7 MB 52f97b2c485c
wheels/anyio-4.15.1-py3-none-any.whlOther132.1 KB 6152fdbbf9a7
wheels/apache_tvm_ffi-0.1.14.post1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whlOther3.3 MB c5dd9ebb97d2
wheels/astor-0.8.1-py2.py3-none-any.whlOther27.5 KB —
wheels/async_timeout-5.0.1-py3-none-any.whlOther6.2 KB —
wheels/attrs-26.1.0-py3-none-any.whlOther67.5 KB —
wheels/blake3-1.0.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whlOther386.6 KB 890c5410c17c
wheels/cachetools-7.2.0-py3-none-any.whlOther16.9 KB —
wheels/cbor2-6.1.4-cp310-cp310-manylinux_2_28_x86_64.whlOther464.7 KB 7b697c2a18ea
wheels/certifi-2026.7.22-py3-none-any.whlOther136.4 KB 3c597d1ca9e1
wheels/cffi-2.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whlOther218.7 KB 194cffa88909
wheels/charset_normalizer-3.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whlOther271.1 KB 8a893cc10114
wheels/click-8.1.7-py3-none-any.whlOther97.9 KB —
wheels/cloudpickle-3.1.2-py3-none-any.whlOther22.2 KB —
wheels/compressed_tensors-0.17.0-py3-none-any.whlOther211.7 KB 4a1b89b508f7
wheels/contourpy-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whlOther325.0 KB ad687a04bc80
wheels/cryptography-50.0.2-cp39-abi3-manylinux_2_34_x86_64.whlOther4.8 MB 1981f1db4630
wheels/cycler-0.12.1-py3-none-any.whlOther8.3 KB —
wheels/depyf-0.20.0-py3-none-any.whlOther39.4 KB —
wheels/detect_installer-0.2.1-py3-none-any.whlOther5.4 KB —
wheels/dill-0.3.8-py3-none-any.whlOther80.6 KB —
wheels/dnspython-2.8.0-py3-none-any.whlOther331.1 KB 01d9bbc4a2d7
wheels/docstring_parser-0.18.0-py3-none-any.whlOther22.5 KB —
wheels/einops-0.6.1-py3-none-any.whlOther42.2 KB —
wheels/email_validator-2.3.0-py3-none-any.whlOther35.6 KB —
wheels/exceptiongroup-1.3.1-py3-none-any.whlOther16.7 KB —
wheels/fastapi-0.136.3-py3-none-any.whlOther117.5 KB 3d2a69bdf04b
wheels/fastapi_cli-0.0.32-py3-none-any.whlOther14.7 KB —
wheels/fastapi_cloud_cli-0.26.0-py3-none-any.whlOther108.7 KB 94029f92f3dc
wheels/fastar-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whlOther811.5 KB fd7a28985d86
wheels/filelock-4.0.8-py3-none-any.whlOther109.7 KB 325ff22f358c
wheels/fonttools-4.65.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whlOther5.3 MB fb53892b570f
wheels/frozenlist-1.8.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whlOther219.5 KB f57fb59d9f38
wheels/fsspec-2023.9.2-py3-none-any.whlOther163.6 KB d0a86a2979a7
wheels/googleapis_common_protos-1.75.0-py3-none-any.whlOther300.6 KB 961ed60399c4
wheels/graphviz-0.21-py3-none-any.whlOther47.3 KB —
wheels/grpcio-1.84.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whlOther7.2 MB 393d8a78bff6
wheels/h11-0.16.0-py3-none-any.whlOther37.5 KB —
wheels/hf_xet-1.6.0-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whlOther4.5 MB d62671bb1308
wheels/httpcore-1.0.9-py3-none-any.whlOther78.8 KB —
wheels/httpcore2-2.13.1-py3-none-any.whlOther83.4 KB —
wheels/httptools-0.8.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whlOther450.0 KB a6f21e2a3b00
wheels/httpx-0.28.1-py3-none-any.whlOther73.5 KB —
wheels/httpx2-2.13.1-py3-none-any.whlOther95.6 KB —
wheels/huggingface_hub-1.16.1-py3-none-any.whlOther668.2 KB 64340de934b9
wheels/idna-3.20-py3-none-any.whlOther69.6 KB —
wheels/ijson-3.5.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whlOther130.4 KB 70542d4542f0
wheels/interegular-0.3.3-py37-none-any.whlOther23.6 KB —
wheels/jinja2-3.1.6-py3-none-any.whlOther134.9 KB 85ece4451f49
wheels/jiter-0.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whlOther348.8 KB 826871c42ceb
wheels/jmespath-1.1.0-py3-none-any.whlOther20.4 KB —
wheels/jsonschema-4.26.0-py3-none-any.whlOther55.4 KB —
wheels/jsonschema_specifications-2025.9.1-py3-none-any.whlOther17.5 KB —
wheels/kiwisolver-1.5.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whlOther1.6 MB e05c2f7925f1
wheels/lark-1.2.2-py3-none-any.whlOther111.0 KB c2276486b02f
wheels/llguidance-1.7.6-cp39-abi3-manylinux_2_31_x86_64.whlOther3.1 MB ceec951d29a7
wheels/llvmlite-0.44.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whlOther42.3 MB 0c85c41c75bf
wheels/lm_format_enforcer-0.11.3-py3-none-any.whlOther45.4 KB —
wheels/loguru-0.6.0-py3-none-any.whlOther58.3 KB —
wheels/markdown_it_py-3.0.0-py3-none-any.whlOther87.5 KB —
wheels/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whlOther20.7 KB —
wheels/matplotlib-3.10.9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whlOther8.3 MB 9b630d382d55
wheels/mcp-2.2.0-py3-none-any.whlOther365.7 KB bde982589473
wheels/mcp_types-2.2.0-py3-none-any.whlOther69.1 KB —
wheels/mdurl-0.1.2-py3-none-any.whlOther10.0 KB —
wheels/mistral_common-1.12.0-py3-none-any.whlOther6.6 MB fa4504b66c30
wheels/ml_dtypes-0.5.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whlOther5.0 MB 388d399a2152
wheels/model_hosting_container_standards-0.1.16-py3-none-any.whlOther125.7 KB 47f4f6571312
wheels/mpmath-1.3.0-py3-none-any.whlOther418.0 KB 0b291d782e40
wheels/msgspec-0.22.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whlOther227.8 KB 12a887c4c06e
wheels/multidict-6.9.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whlOther303.7 KB d3b6e6840421
wheels/networkx-3.1-py3-none-any.whlOther1.4 MB 155f6550cf51
wheels/ninja-1.13.2-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whlOther183.4 KB 65a24341b5ac
wheels/numba-0.61.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whlOther2.8 MB bc0b2f0b1836
wheels/numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whlOther16.7 MB 95b850adfb5a
wheels/openai-3.22.1-py3-none-any.whlOther2.1 MB 43ff3de5457a
wheels/openai_harmony-0.0.8-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whlOther3.0 MB c007d277218a
wheels/opencv_python_headless-4.11.0.86-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whlOther50.0 MB 0e0a27c19dd1
wheels/opentelemetry_api-1.45.0-py3-none-any.whlOther60.0 KB —
wheels/opentelemetry_exporter_http_transport-0.66b0-py3-none-any.whlOther12.2 KB —
wheels/opentelemetry_exporter_otlp-1.45.0-py3-none-any.whlOther6.7 KB —
wheels/opentelemetry_exporter_otlp_common-0.66b0-py3-none-any.whlOther12.4 KB —
wheels/opentelemetry_exporter_otlp_proto_common-1.45.0-py3-none-any.whlOther15.4 KB —
wheels/opentelemetry_exporter_otlp_proto_grpc-1.45.0-py3-none-any.whlOther19.5 KB —
wheels/opentelemetry_exporter_otlp_proto_http-1.45.0-py3-none-any.whlOther22.3 KB —
wheels/opentelemetry_proto-1.45.0-py3-none-any.whlOther72.5 KB —
wheels/opentelemetry_sdk-1.45.0-py3-none-any.whlOther140.1 KB 5dc634c94654
wheels/opentelemetry_semantic_conventions-0.66b0-py3-none-any.whlOther206.3 KB 175b19dd98c4
wheels/opentelemetry_semantic_conventions_ai-0.5.1-py3-none-any.whlOther11.2 KB —
wheels/outlines_core-0.2.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whlOther2.3 MB 0e4b5b7c8e50
wheels/packaging-26.3-py3-none-any.whlOther130.0 KB d7193f7c8e4e
wheels/pandas-2.3.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whlOther9.9 MB e29530a5bfc4
wheels/partial_json_parser-0.2.1.1.post7-py3-none-any.whlOther10.9 KB —
wheels/pillow-12.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whlOther6.9 MB f0606c8bf2cd
wheels/prometheus_client-0.26.0-py3-none-any.whlOther64.5 KB —
wheels/prometheus_fastapi_instrumentator-8.1.0-py3-none-any.whlOther19.6 KB —
wheels/propcache-0.5.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whlOther224.3 KB f574e460d1c8
wheels/protobuf-5.29.6-cp38-abi3-manylinux2014_x86_64.whlOther320.5 KB e3387f44798a
wheels/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whlOther155.6 KB 076a2d2f923f
wheels/py_cpuinfo-9.0.0-py3-none-any.whlOther22.3 KB —
wheels/pybase64-1.5.0-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whlOther91.5 KB —
wheels/pycountry-26.2.16-py3-none-any.whlOther8.0 MB 4f35c30f0b23
wheels/pycparser-3.0-py3-none-any.whlOther48.2 KB —
wheels/pydantic-2.13.5-py3-none-any.whlOther472.6 KB 346a034f080d
wheels/pydantic_core-2.46.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whlOther2.1 MB 850a08d167dd
wheels/pydantic_extra_types-2.11.1-py3-none-any.whlOther79.5 KB —
wheels/pydantic_settings-2.15.0-py3-none-any.whlOther69.4 KB —
wheels/pygments-2.21.0-py3-none-any.whlOther1.3 MB 2363c69b61c4
wheels/pyjwt-2.15.1-py3-none-any.whlOther33.9 KB —
wheels/pyparsing-3.3.3-py3-none-any.whlOther126.4 KB ece8c00a69cf
wheels/python_dateutil-2.9.0.post0-py2.py3-none-any.whlOther229.9 KB a8b2bc7bffae
wheels/python_dotenv-1.2.4-py3-none-any.whlOther23.3 KB —
wheels/python_json_logger-4.2.0-py3-none-any.whlOther15.0 KB —
wheels/python_multipart-0.0.32-py3-none-any.whlOther30.0 KB —
wheels/pytz-2026.4-py2.py3-none-any.whlOther506.7 KB 9d514388fbc8
wheels/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whlOther770.3 KB 9c7708761fcc
wheels/pyzmq-27.2.0-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whlOther885.6 KB e7354beaac70
wheels/referencing-0.37.0-py3-none-any.whlOther16.9 KB —
wheels/regex-2026.9.29-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whlOther759.1 KB 7f7362b72518
wheels/requests-2.34.2-py3-none-any.whlOther73.1 KB —
wheels/rich-15.0.0-py3-none-any.whlOther310.7 KB 33bd4ef74232
wheels/rich_toolkit-0.20.5-py3-none-any.whlOther39.4 KB —
wheels/rignore-0.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whlOther933.9 KB c76ef4db664b
wheels/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whlOther390.5 KB 0c0e95f6819a
wheels/safetensors-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whlOther516.0 KB fd6f3f93c9a0
wheels/seaborn-0.13.2-py3-none-any.whlOther294.9 KB 636f8336facf
wheels/sentencepiece-0.2.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whlOther1.4 MB 27e38eee653a
wheels/sentry_sdk-2.71.0-py3-none-any.whlOther534.3 KB 9ed36b4c2060
wheels/setproctitle-1.3.7-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whlOther31.8 KB —
wheels/setuptools-80.10.2-py3-none-any.whlOther862.9 KB 0077ed49dbe9
wheels/shellingham-1.5.4-py2.py3-none-any.whlOther9.8 KB —
wheels/six-1.17.0-py2.py3-none-any.whlOther11.1 KB —
wheels/sniffio-1.3.1-py3-none-any.whlOther10.2 KB —
wheels/sse_starlette-3.5.0-py3-none-any.whlOther17.4 KB —
wheels/starlette-1.7.0-py3-none-any.whlOther79.0 KB —
wheels/supervisor-4.3.0-py2.py3-none-any.whlOther197.0 KB 0306a60bfb68
wheels/sympy-1.14.0-py3-none-any.whlOther4.2 MB 4496bebd5dd7
wheels/tblib-3.2.2-py3-none-any.whlOther12.9 KB —
wheels/tiktoken-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whlOther1.1 MB 5d4511c52caa
wheels/tomli-2.4.1-py3-none-any.whlOther14.6 KB —
wheels/torch-2.11.0+cpu-cp310-cp310-manylinux_2_28_x86_64.whlOther163.4 MB 0051ed9acc3a
wheels/torchvision-0.26.0+cpu-cp310-cp310-manylinux_2_28_x86_64.whlOther1.9 MB 967048f44f5b
wheels/tqdm-4.66.3-py3-none-any.whlOther78.4 KB —
wheels/transformers-5.12.1-py3-none-any.whlOther11.2 MB 2a5e109d2021
wheels/triton-3.8.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whlOther246.7 MB 5446f2fdc5c3
wheels/truststore-0.10.4-py3-none-any.whlOther18.7 KB —
wheels/ttnn-0.75.0rc10.dev2451+g0553e86d76b-cp310-cp310-manylinux_2_35_x86_64.whlOther102.8 MB 2823761988c9
wheels/typer-0.27.2-py3-none-any.whlOther123.1 KB b3a5fc4342d5
wheels/typing_extensions-4.16.0-py3-none-any.whlOther45.6 KB —
wheels/typing_inspection-0.4.4-py3-none-any.whlOther14.8 KB —
wheels/tzdata-2026.4-py2.py3-none-any.whlOther347.5 KB c2169a8b0a7a
wheels/urllib3-2.8.0-py3-none-any.whlOther135.7 KB 0cf3cae568d3
wheels/uvicorn-0.54.0-py3-none-any.whlOther87.4 KB —
wheels/uvloop-0.23.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whlOther3.9 MB 9bf08e4b6362
wheels/vllm-0.26.0+empty-cp310-cp310-linux_x86_64.whlOther8.2 MB 44245164a53c
wheels/vllm_tt_plugin-0.1.0-py3-none-any.whlOther213.8 KB dd8121cb8cd5
wheels/watchfiles-1.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whlOther458.4 KB b5768b49e426
wheels/websockets-16.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whlOther183.8 KB 7d837379b647
wheels/xgrammar-0.2.8-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whlOther1.3 MB d6576539ade4
wheels/yarl-1.25.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whlOther118.1 KB e5637ca8d0bd
.gitattributesRepository11.1 KB —
wheels/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whlTokenizer3.3 MB 369cc9fc8cc1

License and Download

License
mit
Access
Open weights, no gate
Download from Hyunggi Chang

Released by Hyunggi Chang through its official repository on Hugging Face. Read the license.

Built From

  • Derived from Motif-Technologies/Motif-3

Questions About motif-3-bh-galaxy

Can I use motif-3-bh-galaxy commercially?

Yes. motif-3-bh-galaxy is released under MIT License. The MIT License is a short permissive license. It permits commercial use, modification and redistribution, provided the copyright notice and permission notice are included.

Similar Models

Model · Text generation

opt-125m

AI at Meta

OPT was first introduced in Open Pre-trained Transformer Language Models and first released in metaseq's repository on May 3rd 2022 by Meta AI. Disclaimer: The team releasing OPT wrote an official model card, which is available in Appendix D of the paper. Content from this model card has been written by the Hugging Face team. To quote the first two paragraphs of the official paper OPT was predominantly pretrained with English text, but a small amount of non-English data is still present within the training corpus via CommonCrawl. The model was pretrained using a causal language modeling (CLM) objective. OPT belongs to the same family of decoder-only models like GPT-3. As such, it was…

Open weights other 2,048 tokens transformers

Model · Text generation

Ornith-1.5-9B-GGUF

Ornith

Chirp Chirp! We are introducing Ornith-1.5, a major step toward building foundation models through end-to-end self-improvement. Ornith-1.5 extends Ornith-1.0 (which was developed on top of Qwen3.5 and Gemma4 with additional continued pretraining, mid-training, and post-training) by expanding the self-improvement loop from scaffold and rollout optimization to jointly optimizing task generation, scaffold construction, and solution rollouts. Rather than relying on a fixed set of human-curated tasks and manually designed harnesses, Ornith-1.5 continuously generates new training tasks, discovers effective strategies for solving them, and improves the policy through reinforcement learning. For…

Open weights mit transformers

Model · Text generation

Ornith-1.5-35B-A3B-GGUF

Ornith

Chirp Chirp! We are introducing Ornith-1.5, a major step toward building foundation models through end-to-end self-improvement. Ornith-1.5 extends Ornith-1.0 (which was developed on top of Qwen3.5 and Gemma4 with additional continued pretraining, mid-training, and post-training) by expanding the self-improvement loop from scaffold and rollout optimization to jointly optimizing task generation, scaffold construction, and solution rollouts. Rather than relying on a fixed set of human-curated tasks and manually designed harnesses, Ornith-1.5 continuously generates new training tasks, discovers effective strategies for solving them, and improves the policy through reinforcement learning. For…

Open weights mit transformers

Model · Text generation

Ternary-Bonsai-2-27B-gguf

Prism ML

Full 27B-class reasoning in ternary transformer weights, for llama.cpp (CUDA, Metal, CPU) - \~5.9 GB language model (down from \~54 GB FP16) — full 27B-class reasoning on a standard laptop or a single GPU - 98.2% of FP16 intelligence retained: 84.78 average across 14 thinking-mode benchmarks — far above the conventional IQ2XXS build (72.59) at about 82% of its footprint, and within 0.4 points of UD-Q4KXL at three times the footprint - Retains thinking, reasoning, and agentic behavior deep in the sub-4-bit regime, where conventional low-bit representations collapse: math within half a point of full precision (96.57), coding level with the baseline (89.42), agentic tool calling at 74.92…

Open weights apache-2.0 llama.cpp

Uncensored Qwen3.8-27B, published as GGUF quantizations with the multi token prediction (MTP) head retained and verified. Refusal behaviour has been substantially reduced, not eliminated. See Measured behaviour for the numbers. Capabilities, training data, and architecture are otherwise unchanged. - Refusal directions removed with Heretic, which co minimizes refusal count against KL divergence from the base model. No handwritten refusal removal code, no finetuning, no additional training data. - Abliteration runs at bf16 (no 4 bit quantization). the resulting LoRA is merged into the bf16 base, so the published weights are not a quantized round trip. - mtp. tensors are copied verbatim from…

Open weights apache-2.0 llama.cpp

Model · Text generation

Ornith-1.0-9B-GGUF

Ornith

Aloha! Today, we are releasing Ornith-1.0, a self-improving family of open-source models for agentic coding. This model card documents Ornith-1.0-9B, the most lightweight member of the Ornith family, designed for efficient single-GPU deployment. Ornith-1.0-9B is a dense ~9B model (≈19 GB in bf16), so it serves comfortably on a single 80GB GPU. The recipes below stand up an OpenAI-compatible server; add --tensor-parallel-size / --tp if you want to shard across more GPUs. For a quick local test (or to script offline generation), load the model directly with Transformers. Make sure you have a recent release installed — see the Transformers installation guide; Ornith-1.0-9B requires…

Open weights mit transformers