Commit Graph
1243 Commits
Author SHA1 Message Date
Jianwei Dong 17d9e49dd0 Update README.md 2026-04-18 21:28:46 +08:00
Jianwei Dong a9f28d495b Update README.md (#1934) 2026-04-18 21:10:25 +08:00
Benjamin F 06ee9f62f3 [doc]: add prerequisite note for GLM-5.1 tutorial (#1932) 2026-04-14 15:07:08 +08:00
callmegaga a9411f1d72 Supports vnni-256 for GPTQ INT4 (#1926)
* [feat](kt-kernel): support avx-vnni-256 for gptq int4
2026-04-13 17:59:59 +08:00
Andy18650andAndy18650 f42e94a527 [fix](cli): handle edge cases with empty NUMA nodes (#1929)
Co-authored-by: Andy18650 <114562805@qq.com>
2026-04-13 16:45:41 +08:00
ErvinXie 279c920a69 Revert "kt-kernel: enable CPUInfer stream bridge for ROCm (#1918)" (#1925)
This reverts commit 1dd0a78899.
2026-04-09 18:43:03 +08:00
guanjiawei 1dd0a78899 kt-kernel: enable CPUInfer stream bridge for ROCm (#1918) 2026-04-09 12:20:04 +08:00
acture 9b2d3b687b fix: remove broken symlink in archive/ktransformers/ (#1906)
The symlink `archive/ktransformers/ktransformers` points to
`/home/djw/py311_717/ktransformers/ktransformers`, an absolute path
on a developer's local machine. It was introduced in #1581 during the
repository restructuring and is broken on every other machine.

Tools that recursively copy the repo tree (e.g. shutil.copytree)
fail with FileNotFoundError on this dangling link.
2026-04-09 11:42:19 +08:00
Oql ad19a3e653 Chore/kt layerwise prefill main (#1920)
* [chore]: sync sglang submodule with KT layerwise prefill log rename

* [chore]: use sglang main with KT layerwise prefill logs
2026-04-09 11:28:37 +08:00
Jianwei Dong 891c5c0a13 Support glm5.1 (#1916) 2026-04-07 11:29:32 +08:00
Jim James 8a427c9321 [feat]: add AVX512F+BW fallback for FP8 and BF16 under AMX backend (#1908) 2026-04-03 12:46:22 +08:00
Jianwei Dong db9326302b chore: bump version to 0.5.3 (#1909) v0.5.3 2026-04-01 18:58:48 +08:00
Oql 9e6484a538 [fix]: fix --numa-nodes handling (#1904)
* [fix]: fix --numa-nodes handling
2026-03-31 17:50:22 +08:00
Oql cdc867c864 [chore]: sync sglang submodule (#1903) 2026-03-31 11:21:09 +08:00
Doctor Shotgun 24cd4fc055 feat(kt-kernel): Add utility script to merge loose layer weights to safetensors (#1886)
* Add utility script to merge loose layer weights to safetensors

* Send warnings and errors to stderr

* Fix expert index parsing for MOE_INT4 and MOE_INT8
2026-03-31 10:41:07 +08:00
alin899992andErvinXie 9c18b60556 feat: CPU weight conversion for GLM-5 and MiniMax-M2.5 (#1853)
* Support for GLM-5 and Minimax-M2.5

Add CPU weight conversion support for GLM-5 and Minimax-M2.5

* fix: remove overly restrictive MiniMax condition and deduplicate code

- Remove `args.input_type == "fp8"` from MiniMaxConverter selection so
  bf16/fp16 MiniMax models no longer fall through to OnlineQuantConverter
  (which doesn't handle w1/w2/w3 naming and would fail).
- Remove OnlineQuantConverter._find_expert_layers() which is identical
  to the inherited ConverterBase._find_expert_layers().
- Remove redundant expert_key_filter assignment (same as base default).

---------

Co-authored-by: ErvinXie <ervinxie@foxmail.com>
2026-03-31 10:39:48 +08:00
ErvinXie 3903c9afcc (kt-kernel): add numa_nodes parameter for explicit NUMA node mapping (#1891)
Add numa_nodes parameter to BaseMoEWrapper and all subclasses, allowing
users to explicitly specify which NUMA node IDs to use for subpool
mapping instead of always defaulting to sequential [0, 1, ..., N-1].

This enables running multiple KTransformers instances on different NUMA
nodes of the same machine, e.g. --kt-threadpool-count 1 --kt-numa-nodes 1
to bind to NUMA node 1. Previously this required external numactl
workarounds since subpool_numa_map was hardcoded to start from 0.
2026-03-31 10:27:50 +08:00
Doctor Shotgun bdf4bb76c5 Fix worker pool idle CPU usage (#1902)
* Replace sleep polling with condition variable blocking
2026-03-30 20:29:17 +08:00
7a02daa694 Fix TaskQueue worker thread 100% CPU spin when idle (#1899)
* initial fix for issue 1858

* [fix]: add done flag check to sync() wait predicate to prevent deadlock during destruction

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Ben Appleby <Ben.Appleby@microsoft.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 23:20:42 +08:00
mrhaoxxandBenjamin F 7a9daf0cd4 [feat](kt-kernel): support avx2 only inference for bf16 fp8 and gptq int4 (#1892)
* feat: support avx2 bf16 fp8 inference

* feat: support avx2 gptq int4 inference

* fix: numeric issues in fp8 dequant

* Tutorial avx2 (#1900)

* fix: prevent injecting -DLLAMA_AVX512=ON on AVX2-only machines

* docs: add AVX2 tutorial for running KTransformers on AVX2-only CPUs

* Tutorial avx2 (#1901)

* fix: prevent injecting -DLLAMA_AVX512=ON on AVX2-only machines

* docs: add AVX2 tutorial for running KTransformers on AVX2-only CPUs

* docs: update README.md

---------

Co-authored-by: Benjamin F <159887351+yyj6666667@users.noreply.github.com>
2026-03-27 14:45:02 +08:00
YIFANCHENGDUandgemini-code-assist[bot] 8561a71dd1 [fix] improve Sglang kt-kernel detect time duration (#1887)
* Increase timeout for Check if --kt-gpu-prefill-token-threshold is in the help output to 90 seconds.

In cloud environments,CUDA initialization and Python module loading can easily exceed 30 seconds.

* Update kt-kernel/python/cli/utils/sglang_checker.py

add comment about the change

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-03-18 23:07:40 +08:00
github-actions[bot]andovowei 7a4b9b0e87 [build]: sync sglang submodule to f6adb4f473ba9a767cd60237ef8325cfcd97eba9 (#1876)
Co-authored-by: ovowei <80044717+ovowei@users.noreply.github.com>
2026-03-04 17:18:08 +08:00
Jianwei DongandClaude Opus 4.6 15c624dcae Fix/sglang kt detection (#1875)
* [feat]: simplify sglang installation with submodule, auto-sync CI, and version alignment

- Add kvcache-ai/sglang as git submodule at third_party/sglang (branch = main)
- Add top-level install.sh for one-click source installation (sglang + kt-kernel)
- Add sglang-kt as hard dependency in kt-kernel/pyproject.toml
- Add CI workflow to auto-sync sglang submodule daily and create PR
- Add CI workflow to build and publish sglang-kt to PyPI
- Integrate sglang-kt build into release-pypi.yml (version.py bump publishes both packages)
- Align sglang-kt version with ktransformers via SGLANG_KT_VERSION env var injection
- Update Dockerfile to use submodule and inject aligned version
- Update all 13 doc files, CLI hints, and i18n strings to reference new install methods

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* [build]: bump version to 0.5.2

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* [build]: rename PyPI package from kt-kernel to ktransformers

Users can now `pip install ktransformers` to get everything
(sglang-kt is auto-installed as a dependency).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Revert "[build]: rename PyPI package from kt-kernel to ktransformers"

This reverts commit e0cbbf6364.

* [build]: add ktransformers meta-package for PyPI

`pip install ktransformers` now works as a single install command.
It pulls kt-kernel (which in turn pulls sglang-kt).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* [fix]: show sglang-kt package version in kt version command

- Prioritize sglang-kt package version (aligned with ktransformers)
  over sglang internal __version__
- Update display name from "sglang" to "sglang-kt"

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* [fix]: improve sglang-kt detection in kt doctor and kt version

Recognize sglang-kt package name as proof of kvcache-ai fork installation.
Previously both commands fell through to "PyPI (not recommended)" for
non-editable local source installs. Now version.py reuses the centralized
check_sglang_installation() logic.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* [build]: bump version to 0.5.2.post1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
v0.5.2.post1
2026-03-04 16:54:48 +08:00
Chen Hongtaoandchenht2022 9e69fccb02 [feat]: add mistral moe loader compatibility (#1873)
Co-authored-by: chenht2022 <chenht2022@users.noreply.github.com>
2026-02-28 17:50:23 +08:00
Jianwei Dong 19887e4363 update docker build (#1872) 2026-02-28 10:34:35 +08:00
VYSE V.E.Oandgemini-code-assist[bot] 20262b2743 Fix Qwen3.5 FP8 load for VL detection (#1857)
* Fix Qwen3.5 FP8 load for VL detection

1, for VL models(Qwen3.5), modify base_key: model.layers.{N} -> model.language_model.layers.{N}

2, clean DUPLICATED class BF16SafeTensorLoader(SafeTensorLoader) , only the first overrided one.

* Indent type

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-02-26 15:47:22 +08:00
786987a95f Handle unquoted paths and special characters in model scanner (#1840)
* Handle unquoted paths and special characters in model scanner

* Fix ValueError: capture_output cannot be used with stderr

`capture_output=True` internally sets `stderr=PIPE`, which conflicts
with `stderr=subprocess.DEVNULL`. Replace `capture_output=True` with
explicit `stdout=subprocess.PIPE` to keep stderr suppressed correctly.
Also remove redundant `shell=False` (already the default).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: ErvinXie <ervinxie@foxmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 15:44:45 +08:00
Jianwei Dong 16a8b98f3e support qwen3.5 (#1846) 2026-02-16 15:48:14 +08:00
Jiaqi Liao 411b69bec0 Add GLM-5 Day0 Support update to README (#1851) 2026-02-15 11:37:12 +08:00
Jiaqi Liao 7d9943365a Add MiniMax-M2.5 Day0 support update (#1850)
Added update for MiniMax-M2.5 Day0 support in the README.
2026-02-13 22:49:10 +08:00
Jiaqi Liao a3d5d53605 Update MiniMax-M2.5.md (#1849) 2026-02-13 22:35:36 +08:00
Jianwei Dong f0e4fc612b support minimax-m2.5 (#1848) 2026-02-13 19:15:44 +08:00
Oql 1c72b3f5bd fix glm5 docs (#1845) 2026-02-12 02:33:37 +08:00
Oql 7f7aeaeff6 support glm 5 (#1844) 2026-02-12 02:03:32 +08:00
Jiaqi Liao 061fb56382 Update Kimi-K2.5.md (#1838) 2026-02-07 16:38:39 +08:00
d342fb1df6 [docs]: add maintainers list (#1837)
* [docs]: add maintainers list

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: ErvinXie <ervinxie@qq.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-06 18:28:06 +08:00
Oqlandskqliao 56cbd69ac4 kt-cli enhancement (#1834)
* [feat]: redesign kt run interactive configuration with i18n support

- Redesign kt run with 8-step interactive flow (model selection, inference method, NUMA/CPU, GPU experts, KV cache, GPU/TP selection, parsers, host/port)
- Add configuration save/load system (~/.ktransformers/run_configs.yaml)
- Add i18n support for kt chat (en/zh translations)
- Add universal input validators with auto-retry and Chinese comma support
- Add port availability checker with auto-suggestion
- Add parser configuration (--tool-call-parser, --reasoning-parser)
- Remove tuna command and clean up redundant files
- Fix: variable reference bug in run.py, filter to show only MoE models

* [feat]: unify model selection UI and enable shared experts fusion by default

- Unify kt run model selection table with kt model list display
  * Add Total size, MoE Size, Repo, and SHA256 status columns
  * Use consistent formatting and styling
  * Improve user decision-making with more information

- Enable --disable-shared-experts-fusion by default
  * Change default value from False to True
  * Users can still override with --enable-shared-experts-fusion

* [feat]: improve kt chat with performance metrics and better CJK support

- Add performance metrics display after each response
  * Total time, TTFT (Time To First Token), TPOT (Time Per Output Token)
  * Accurate input/output token counts using model tokenizer
  * Fallback to estimation if tokenizer unavailable
  * Metrics shown in dim style (not prominent)

- Fix Chinese character input issues
  * Replace Prompt.ask() with console.input() for better CJK support
  * Fixes backspace deletion showing half-characters

- Suppress NumPy subnormal warnings
  * Filter "The value of the smallest subnormal" warnings
  * Cleaner CLI output on certain hardware environments

* [fix]: correct TTFT measurement in kt chat

- Move start_time initialization before API call
- Previously start_time was set when receiving first chunk, causing TTFT ≈ 0ms
- Now correctly measures time from request sent to first token received

* [docs]: 添加 Clawdbot 集成指南 - KTransformers 企业级 AI 助手部署方案

* [docs]: 强调推荐使用 Kimi K2.5 作为核心模型,突出企业级推理能力

* [docs]: 添加 Clawdbot 飞书接入教程链接

* [feat]: improve CLI table display, model verification, and chat experience

- Add sequence number (#) column to all model tables by default
- Filter kt edit to show only MoE GPU models (exclude AMX)
- Extend kt model verify to check *.json and *.py files in addition to weights
- Fix re-verification bug where repaired files caused false failures
- Suppress tokenizer debug output in kt chat token counting

* [fix]: fix cpu cores.

---------

Co-authored-by: skqliao <skqliao@gmail.com>
2026-02-04 16:44:54 +08:00
Oql 4f64665758 [docs]: add Qwen3 Coder Next Tutorial (#1833) 2026-02-04 16:27:10 +08:00
Oql c28cfcb26e [fix]: fix k2-moe.hpp load weight (#1830) 2026-02-03 11:28:49 +08:00
Jiaqi Liao 794c04fae4 Revert "[doc]: update kimi_k2.5 doc (#1823)" (#1825)
This reverts commit 2e6506535b.
2026-01-30 16:10:01 +08:00
Oql ccbb5b1cf8 [docs]: add clawd bot docs
add clawd bot docs
2026-01-30 15:51:30 +08:00
Jiaqi Liao 2e6506535b [doc]: update kimi_k2.5 doc (#1823) 2026-01-30 15:43:18 +08:00
Jiaqi Liao db82d99fa6 feat: add fallback expert prefix lookup in loader.py from kimi_k2.5 (#1822) 2026-01-30 14:09:38 +08:00
Jiaqi Liao edc48aba37 [fix]: fix wrapper import issue (#1819) 2026-01-28 16:31:56 +08:00
Peilin Li 8321d00cc5 Add files via upload (#1814) 2026-01-27 17:44:50 +08:00
Jiaqi Liao 2f6f7f1921 Kimi k2.5 doc (#1812)
* [doc]: add Kimi-K2.5 deploy&sft guide

* [doc]: add Kimi-K2.5 deploy&sft guide
2026-01-27 13:33:25 +08:00
Jiaqi Liao 1da075a3fa Revert "[doc]: add Kimi-K2.5 deploy&sft guide (#1810)" (#1811)
This reverts commit a368140d76.
2026-01-27 10:05:13 +08:00
Jiaqi Liao a368140d76 [doc]: add Kimi-K2.5 deploy&sft guide (#1810) 2026-01-27 10:02:59 +08:00
Oql 5bd5c8f750 [fix]: fix experts-sched-Tutorial.md (#1808) 2026-01-23 18:06:24 +08:00
Oql bf4c8a690b Add Native Precision Tutorial, update worker strategy and README.md (#1807) 2026-01-23 18:00:13 +08:00