21 Commits
Author SHA1 Message Date
yyj 7fbbc20d31 [docs](sft): prepare DeepSeek V4 Flash 0.7.2 quickstart (#2247)
* docs(sft): add DeepSeek V4 Flash release quickstart

* docs(release): validate DeepSeek V4 Flash SFT quickstart

* Update README.md
2026-10-15 16:43:20 +08:00
yyj 5632f7197e release: align post4 stack and allow CI artifact-only builds (#2197) 2026-09-11 01:11:26 +08:00
yyj 41613064c7 feat(GLM): add native GLM-5.3-flash support (#2173)
* feat: support SwiGLU limit for block FP8 experts

* perf(fp8): add native layerwise batch transport

* feat(fp8): support layerwise transport for TP1/2/4/8

* release: prepare GLM-5.3-flash support

* docs(glm): refine GLM-5.3-flash documentation

* docs(glm): simplify release announcement
2026-08-26 22:45:12 +08:00
yyj e80614fc2d [feat](kt-sft): Activation reuse & Int8 kernel refactor & native block-FP8 LoRA SFT (#2141)
* feat(sft): support distributed activation reuse policies

* feat(sft): add frozen-base INT8 LoRA training

* fix(sft): make INT8 expert LoRA rank-zero authoritative

* fix(sft): preserve DeepSeek router LoRA routing

* feat(sft): enable persistent INT8 LoRA training

* perf(sft): accelerate INT8 VNNI with oneDNN BRGEMM

* perf(int8): fuse oneDNN compensation into backward repack

* [feat]: support BF16 expert LoRA training

* [fix]: honor forwarded activation policy in SFT workers

* feat(sft): add native block-FP8 routed expert LoRA

* feat(sft): expose explicit expert placeholder ownership

* fix(sft): publish fused adapter artifacts atomically

* feat(sft): own artifact and adapter lifecycle contracts

* fix(sft): harden artifact and rank-local contracts

* fix(sft): auto-adapt owner before adapter restore

* style(sft): keep lifecycle comments concise

* fix(sft): require fused adapter manifests

* test(sft): use spawn for distributed workers

* fix(sft): preserve runtime checkpoint metadata

* fix(sft): validate wrapped runtime configuration

* fix(sft): preserve expert format provenance

* fix(sft): own routed experts during device dispatch

* test(sft): lock explicit quantization conflict

* fix(cpu): make shared memory buffers lifetime-safe

* release: prepare v0.7.0
2026-08-17 16:25:14 +08:00
yyj a8062bfa7e release: bump version to 0.6.4 (#2105) 2026-07-23 22:42:28 +08:00
Benjamin 8e46e5896c release: bump version to 0.6.3.post1 (#2063) 2026-06-25 22:42:55 +08:00
Benjamin c884dbd221 release: bump version to 0.6.3 (#2054) 2026-06-21 17:55:24 +08:00
Benjamin F bb15fdf47e Release/0.6.2.post3: carry kt-kernel SwiGLU clamp companion missing from post2 2026-05-10 03:55:02 +08:00
Benjamin F 37db9a3b83 0.6.2.post2: submodule refactor and update tutorial (#1993)
- sglang submodule -> 43ed1ec77: V4-Flash hybrid SWA chunked-prefill
  hang fix (#44) + DSV4 plugin registry refactor (#47)
- pin sglang-kt==0.6.2.post2
- tutorial: switch V4-Flash launch example from 8x RTX 5090 to
  single-card (decode 20+ tok/s); flip Ada Lovelace SM_89 row to
  validated; update Hardware Requirements GPU line accordingly
2026-05-09 18:53:59 +08:00
Benjamin F d7b5b49a3e [release]: 0.6.2.post1
V4-Flash MXFP4 full-GPU prefill fallback now works:
- Previously crashed all TP schedulers with StopIteration/AttributeError
  whenever --kt-gpu-prefill-token-threshold was low enough to actually
  fire (path was hardcoded for FP8/INT4 layouts).
- Now detects MXFP4, re-runs the V4 swizzle on the 256-expert gpu_layer,
  caches the load across prefill chunks.
- Measured on 8x RTX 5090 (threshold=1024, chunked=1024):
  16k input -> 2011 tok/s, 65k -> 2798, 262k -> 2154 prefill TPS.
2026-05-03 21:07:23 +08:00
Benjamin F 4b4312c0a2 release: bump version to 0.6.2 (#1973) 2026-05-03 14:28:09 +08:00
Peilin Li 72044ad65f [build]: bump v0.6.1 post1 package metadata
Bump ktransformers/kt-kernel to 0.6.1.post1 and point extras to post1 companion packages.
2026-04-30 01:02:44 +08:00
Peilin Li 85308615b9 [build] prepare v0.6.1 SFT wheel packaging on main (#1945)
* [build]: prepare 0.6.1 SFT wheel packaging on main

* [build]: finalize py311+ wheel packaging defaults
2026-04-24 12:08:38 +08:00
Jianwei Dong db9326302b chore: bump version to 0.5.3 (#1909) 2026-04-01 18:58:48 +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>
2026-03-04 16:54:48 +08:00
Jianwei Dong 8652346e69 [fix]: doc (#1805) 2026-01-23 11:17:08 +08:00
Jianwei Dong 6d2d7cb057 bump to 0.5.0.post1 (#1771) 2025-12-30 11:09:54 +08:00
Oql 1d7a476523 [fix]: fix version to 0.5.0 (#1743) 2025-12-24 17:33:22 +08:00
ErvinXie d8046e1bb4 Kt minimax (#1742)
[feat]: fp8 kernel and kt-cli support
2025-12-24 15:39:44 +08:00
Peilin Li 0bce173e3b [feat]: Release version to 0.4.4 (#1738) 2025-12-22 11:20:40 +08:00
Jianwei Dong 1f79f6da92 [feat](kt-kernel): Add automatic deployment workflow (#1719) 2025-12-16 15:20:06 +08:00