kyojin

Yamz-LabsMIT活跃维护

在单台桌面机器上跑 100GB 级大模型的开源推理引擎,支持 AMD Strix Halo、NVIDIA RTX 和 Apple Mac,兼容 OpenAI API,基于 ExLlamaV3 构建。

Kyojin: open-source engine that runs 100 GB-class open models (GLM-5.3, Qwen3.8, DeepSeek V4.1) on one desktop machine. AMD Strix Halo, NVIDIA RTX and Apple Mac. OpenAI API, built on ExLlamaV3.

v1.8.15发布于 2026-11-09 21:46 UTC235star +5 / 7 天38fork同步于 2026-11-11 00:02 UTC

怎么上手

由 README 提炼,执行前请确认
git clone https://github.com/Yamz-Labs/kyojin && cd kyojin
hf download yamz-labs/GLM-5.3-Flash-EXL3-Yamz --local-dir ./glm-pack
python tools/glm/serve.py --model ./glm-pack --port 8000 -c 131072 --num-draft 2
硬件要求按 README 说明

Strix Halo 需 Linux(Ubuntu/Debian 实测)、gfx1151 机型、128GB 内存与 ROCm 7.0+;NVIDIA 需 sm_80 及以上,实测单张 24GB RTX 3090;Apple 走 kyojin-mac 的 MLX 路径。README 未给出 CPU 运行说明。

需要 CUDA支持 ROCm / AMD
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

在单台桌面机上跑 100GB 级开源大模型的推理引擎,兼容 OpenAI API

在单台桌面机器上跑 100GB 级大模型的开源推理引擎,支持 AMD Strix Halo、NVIDIA RTX 和 Apple Mac,兼容 OpenAI API,基于 ExLlamaV3 构建。

核心能力

  • 基于 ExLlamaV3 加载 EXL3 量化权重包
  • 默认开启投机解码,输出与普通解码一致
  • 支持最长 983K token 长上下文
  • Qwen3.8-27B 支持图像输入
  • 所有服务端统一提供 OpenAI API 接口

容易踩的坑

需先从 Hugging Face 单独下载数十到上百 GB 的 EXL3 权重包;AMD 需先装 ROCm torch 并编译,NVIDIA 需先按 tools/cuda 编译 CUDA 版本;GLM 首次启动要花约 10 分钟调优 kernel,期间端口不开放。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v1.8.15
  1. v1.8.15Kyojin 1.8.15最新正式版2026-11-09 · 2026-11-09 21:46 UTC

    Kyojin 1.8.15

    • Reasoning loops: relaxed draft acceptance only after the think block closes (#183). With EXL3_SPEC_TYPICAL=1, EXL3_SPEC_TYPICAL_PHASE=answer keeps the relaxed acceptance rule for the answer, tool calls and code, and verifies drafts exactly while the model is still thinking. Long sampled reasoning could drift into a repeating span under the relaxed rule; exact verification inside thinking removes that bias. Default is all (unchanged behaviour); a model without a think block is always in the answer phase.
    • HIP JIT: shared GCC discovery (#181). All HIP kernel loaders now find the GCC installation the same way (EXL3_GCC_INSTALL_DIR, then the gcc on PATH, then a scan that prefers the host triplet). A stale EXL3_GCC_INSTALL_DIR warns once and falls back instead of silently dropping the flag, and a failed hipcc build prints its error lines.
    • Tests and docs: skinny hgemm regression extended to the partial K tile (#182), GEMV harness and fused GEMV environment variable documentation (#179, #180), long-period loop rule in evalgate (#178).

    Served gate (Strix Halo box for the GLM and Flash-Next cells, RTX 3090 box for the RTX cells; 1 warm-up; RTX cells and GLM 8K are the median of 3 reps; greedy, so the new flag does not change these numbers):

    CellPrefill tok/s 1.8.151.8.14Decode tok/s 1.8.151.8.14
    GLM-5.3 8K742.2743.632.6131.71
    GLM-5.3 128K679.0695.234.0634.56
    Flash-Next 8K1477.51480.253.2855.15
    Flash-Next 128K1546.91551.057.4359.81
    Qwen27 RTX 5K1680.61692.188.6481.99
    Qwen27 RTX 39K1593.51590.980.0678.43

    No cell is more than 5 % below its reference. The Strix Halo kernels built and loaded through the new GCC discovery without a recompile surprise.

  2. v1.8.14Kyojin 1.8.142026-11-07 · 2026-11-07 11:16 UTC
    查看更新说明

    Kyojin 1.8.14

    • CUDA prefill: tuned dense GEMMs (#169). The large fp16 GEMMs of the reconstruct (prefill) path pick a cuBLASLt configuration on the live operands. A configuration is kept only if its output is bit-identical to cublasGemmEx (no split-K) and it is at least 3 % faster; choices are cached per cuBLASLt version and GPU in ~/.cache/exllamav3/cuda_gemm_tune.txt (EXL3_CUDA_GEMM_TUNE_FILE). On by default; EXL3_CUDA_GEMM_TUNE=0 turns it off. The first start on a new GPU tunes during warm-up (about 2-3 minutes once); later starts read the cache.
    • Strix Halo MoE prefill (#166). The sigmoid-gated shared expert is summed inside the grouped expert reduction instead of a separate pass. Output is bit-identical.

    Served gate (Strix Halo box for the GLM and Flash-Next cells, RTX 3090 box for the RTX cells; 1 warm-up; RTX cells are the median of 3 reps):

    CellPrefill tok/s 1.8.141.8.13Decode tok/s 1.8.141.8.13
    GLM-5.3 8K743.6739.531.7130.57
    GLM-5.3 128K695.2686.834.5633.89
    Flash-Next 8K1480.21485.455.1554.61
    Flash-Next 128K1551.01537.859.8156.61
    Qwen27 RTX 5K1692.11667.981.9986.07
    Qwen27 RTX 39K1590.91556.078.4380.35
    • RTX 3090 Qwen27 prefill with the tuner, A/B on one build (median of 3 per arm): +2.5 % at 5K, +1.7 % at 8K, +1.6 % at 32K.
    • Flash-Next prefill A/B for #166 (6 reps per arm): +0.76 % at 8K, +0.04 % at 32K.
    • Greedy output is byte-identical to 1.8.13 on 8 of 8 prompts for Flash-Next and for GLM-5.3.
    • The RTX decode cells are single-stream with speculative decoding; their per-step time (31.8 ms vs 31.2 ms) and draft acceptance match 1.8.13, and the gap is within the usual per-rep spread of these cells.
  3. v1.8.13Kyojin 1.8.132026-11-06 · 2026-11-06 23:40 UTC
    查看更新说明

    Kyojin 1.8.13

    • Relaxed acceptance of argmax drafts for sampled requests: EXL3_SPEC_TYPICAL=1 (default off) accepts a draft token when the target gives it enough probability, instead of requiring a sampled match (#164). On GLM-5.3 with T=1 Hermes turns, decode went from 34.4 to 39.9 tok/s (+15.9 %) on one Strix Halo machine and from 34.7 to 40.7 tok/s (+17 %) on another. Tool calls (32 requests per arm) and GSM8K (100) are unchanged within noise.

    Served gate (Strix Halo box for the GLM and Flash-Next cells, RTX 3090 box for the RTX cells; 1 warm-up, one rep per cell; greedy, so the new flag does not change these numbers):

    CellPrefill tok/sDecode tok/s
    GLM-5.3 8K74030.6
    GLM-5.3 128K68733.9
    Flash-Next 8K148554.6
    Flash-Next 128K153856.6
    Qwen27 RTX 5K162981.6
    Qwen27 RTX 39K154683.1

    No cell is more than 5 % below the reference. Qwen27 RTX 39K decode: the gate and a recheck read 73-75 tok/s on 1.8.13; a same-machine A/B on freshly started lanes then gave 83.1 on 1.8.13 and 84.7 on 1.8.12 (2 reps each, within noise). The cause of the earlier low readings is not identified yet.

  4. v1.8.12Kyojin 1.8.122026-11-06 · 2026-11-06 20:05 UTC
    查看更新说明

    Kyojin 1.8.12

    • Fixes the hang on start-up with draft2s packs (issue #125): the pack is loaded on the host and then copied, and the draft head is built before warm-up (#161).
    • GLM serve stops a job that runs past its token budget or stalls, so an abandoned request no longer keeps the GPU busy (#162).
    • Native fdot2 GEMV for gfx1201 (RDNA 4) and a fix for ROCm block-graph capture (#160).
    • The skinny hgemm grid is sized for one-column row counts (#154). New GEMV test harness (#155).

    Served gate (Strix Halo box for the GLM and Flash-Next cells, RTX 3090 box for the RTX cells; 1 warm-up, one rep per cell):

    CellPrefill tok/sDecode tok/s
    GLM-5.3 8K70233.6
    GLM-5.3 128K69533.5
    Flash-Next 8K149554.9
    Flash-Next 128K154254.5
    Qwen27 RTX 5K165380.2
    Qwen27 RTX 39K155280.0

    No cell is more than 5 % below the reference. Flash-Next 128K decode A/B on the same machine: 1.8.12 54.7, 1.8.11 56.2 (2 reps each, within noise).

  5. v1.8.11Kyojin 1.8.112026-11-05 · 2026-11-05 22:11 UTC
    查看更新说明

    Kyojin 1.8.11

    • Disk-first recurrent cache: the RAM cache for recurrent checkpoints can be capped at 0. Evicted checkpoints go to the prefix disk tier. Strix and RTX lanes use 2 to 5 GiB less RAM. A 61K-token turn-2 resume from disk costs the same on Strix and is faster on RTX.
    • One llama.cpp-style timings object on GLM, Qwen, MiMo and DS4.1, with prompt_per_second and predicted_per_second. Progressive timings at most once per second while streaming. One speed line per request in the server log.
    • Includes the no_tool_call request field.

    Served gate (Strix Halo box for the GLM and Flash-Next cells, RTX 3090 box for the RTX cells; 1 warm-up, medians when a cell needed more reps):

    CellPrefill tok/sDecode tok/s
    GLM-5.3 8K68032.4
    GLM-5.3 128K69533.7
    Flash-Next 8K148753.7
    Flash-Next 128K154158.9
    Qwen27 RTX 5K165075.9
    Qwen27 RTX 39K155479.7

    No cell is more than 5 % below the 1.8.10 reference.

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Quick start

    Strix Halo (AMD): install ROCm torch and build once (doc/install.md), then GLM-5.3-Flash:

    git clone https://github.com/Yamz-Labs/kyojin && cd kyojin
    hf download yamz-labs/GLM-5.3-Flash-EXL3-Yamz --local-dir ./glm-pack
    python tools/glm/serve.py --model ./glm-pack --port 8000 -c 131072 --num-draft 2
    

    RTX 3090 (NVIDIA): build for CUDA once (tools/cuda/README.md), then Qwen3.8-27B with 245K of context (the served settings, one session), with turboderp's 4.0 bpw pack:

    hf download turboderp/Qwen3.8-27B-exl3 --revision SC_4.00bpw_H5_V6 --local-dir ./qwen27-pack
    python tools/qwen/serve.py --model ./qwen27-pack -c 245760 --k-bits 6 --v-bits 6 --draft-policy mix
    

    Mac Studio (Apple): follow the kyojin-mac install, then DeepSeek V4.1 Flash:

    hf download yamz-labs/DeepSeek-V4.1-Flash-EXL3-Yamz --local-dir ./ds41-pack
    python -m kyojin_mlx.serve.server ./ds41-pack --sessions 4 --ctx 32768 --port 8080
    

    Every server speaks the OpenAI API. More commands: doc/models.md.

    Test it

    With a server running on port 8000 (the Mac command above uses 8080):

    curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" \
      -d '{"messages": [{"role": "user", "content": "Say hello in five words."}]}'
    

    Speed by context

    Tokens per second against context length (log scale), served through the real server with real text. Each chart says its machine, Kyojin version and date. Higher is better.

    Strix Halo (AMD), GLM-5.3-Flash and Qwen3.8-Flash-Next

    RTX 3090 (NVIDIA), Qwen3.8-27B

    Mac Studio (Apple), DeepSeek V4.1 Flash

    Benchmark it yourself

    With a server running:

    tools/bench.sh --base http://localhost:8000/v1 --reps 3
    

    It prints a Markdown block. Paste it in a benchmark report to share your results (how the figures are measured).

    What is inside

    • Speculative decoding, on by default; it returns the same tokens as plain decoding.
    • Long context: up to 983K tokens (DeepSeek V4.1 Flash on a Mac Studio), 500K on GLM-5.3-Flash.
    • Image input on Qwen3.8-27B.
    • Optional uncensored mode: a small run-time preset on the normal packs, off by default; it edits no weights. How it works: doc/refusal_hook.md.

    Made with our models

    One prompt each, written by the model running on Kyojin and published as it came out. Open the gallery.

    Models

    All packs are EXL3 on Hugging Face: ours on yamz-labs, Qwen3.8-27B from turboderp. Serve commands: doc/models.md.

    PackMachineSize
    GLM-5.3-FlashStrix Halo100.1 GB
    Qwen3.8-Flash-NextStrix Halo95.4 GB
    Qwen3.8-27B-exl3 (turboderp)RTX 309015 GiB
    DeepSeek V4.1 FlashMac Studio, Strix Halo (SSD tier)184.7 GB
    MiMo-V2.6-Flash-MOPDStrix Halo105.0 GB
    Flint-40B-A2.5BRTX 309017.9 GB
    Nanbeige4.3-33BRTX 309018.7 GB

    Known limits

    • Strix Halo needs Linux (Ubuntu/Debian tested), a gfx1151 machine with 128 GB and ROCm 7.0 or newer; ROCm 6.4 has no gfx1151 code (install).
    • NVIDIA needs sm_80 or newer; tested on one RTX 3090 with 24 GB (RTX).
    • The first GLM launch tunes its kernels for about 10 minutes, and the port stays closed until it finishes (install).
    • GLM at -c 131072 leaves about 10 GiB free on a 128 GB machine (install).
    • The 763B model on one 128 GB machine is experimental: real decode is about 5 to 11 tokens per second (Strix Halo).

    Contributors

    Thank you to everyone who tests Kyojin on their own machine and writes precise reports. Who did what: doc/credits.md.

    Read more

    Reports and pull requests are welcome: see CONTRIBUTING.md. Kernel notes: doc/strix-halo.md. Upstream guide: doc/upstream.md.

    MIT licence. Built on ExLlamaV3 by turboderp, with the first AMD ports by vcruz305 and sdougbrown: full credits. News: @YamzLabs on X.