一、介绍
KTransformers v0.2.4 发布说明
我们非常高兴地宣布,期待已久的 KTransformers v0.2.4 现已正式发布!在这个版本中,我们对整 体架构进行了重大重构,更新了超过 1 万行代码,为社区带来了备受期待的多并发支持。
本次重构借鉴了 sglang 的优秀架构,在 C++ 中实现了高性能的异步并发调度机制,支持如 连续批
处理 、 分块预填充( chunked prefill ) 等特性。由于支持并发场景下的 GPU 资源共享,整体吞吐量也 在一定程度上得到了提升。
1. 多并发支持
新增对多个并发推理请求的处理能力,支持同时接收和执行多个任务。 我们基于高性能且灵活的算子库 flashinfer 实现了自定义的 custom_flashinfer ,并实现了 可变 批大小( variable batch size ) 的 CUDA Graph ,这在提升灵活性的同时,减少了内存和 padding的开销。 在我们的基准测试中,4 路并发下的整体吞吐量提升了约 130% 。 在英特尔的支持下,我们在最新的 Xeon6 + MRDIMM-8800 平台上测试了 KTransformers v0.2.4。通过提高并发度,模型的总输出吞吐量从 17 tokens/s 提升到了 40 tokens/s 。我们观察到当前瓶颈已转移至 GPU ,使用高于 4090D 的显卡预计还可以进一步提升性能。
2. 引擎架构优化
借鉴 sglang 的调度框架,我们通过更新约 11,000 行代码 ,将 KTransformers 重构为一个更清晰的 三层架构,并全面支持多并发:
Server (服务层) :处理用户请求,并提供兼容 OpenAI 的 API 。
Inference Engine (推理引擎) :负责模型推理,支持分块预填充。
Scheduler (调度器) :管理任务调度与请求编排。通过 FCFS (先来先服务)方式组织排队请求, 打包为批次并发送至推理引擎,从而支持连续批处理。
3. 项目结构重组
所有 C/C++ 代码现已统一归类至 /csrc 目录下。
4. 参数调整
我们移除了一些遗留和已弃用的启动参数,简化了配置流程。未来版本中,我们计划提供完整的参数列表和详细文档,以便用户更灵活地进行配置与调试。
二、安装Ktransformers
1.下载docker镜像与启动
# 拉镜像
docker pull approachingai/ktransformers:v0.2.4-AVX512# 启动
docker run -it --gpus all --privileged --shm-size 64g --name kt --network=host -v /data:/data approachingai/ktransformers:v0.2.4-AVX512 /bin/bash# 打开一个新终端
docker exec -it kt bash
2.通过魔搭社区下载模型
本次实验使用官方推荐的 DeepSeek-V3-0324 Q2_K_XL ( 1.58bit 模型目前不太稳定)模型,该模型也是目前最稳定的动态量化模型,需要14G 显存 +170G 内存即可调用。
魔搭社区下载地址: https://www.modelscope.cn/models/unsloth/DeepSeek-V3-0324-GGUF/su
mmary


mkdir ./DeepSeek-V3-0324-GGUF# 下载模型
modelscope download --model unsloth/DeepSeek-V3-0324-GGUF --include
'**Q2_K_XL**' --local_dir /data/model/DeepSeek-V3-0324-GGUF/mkdir ./DeepSeek-V3-0324# 下载模型配置文件
modelscope download --model deepseek-ai/DeepSeek-V3-0324 --exclude
'*.safetensors' --local_dir /data/model/DeepSeek-V3-0324/
三、利用Ktransformers启动模型
在安装完成了 KTransformer v0.24 ,并下载好了模型权重和相应的模型配置之后,接下来即可尝试进行调用了。KTransformer v0.24 支持两种调用方法,分别借助 local_chat.py 进行命令行本地对话,以及实用 server/main.py 开启服务,然后在默认 10002 端口进行 OpenAI 风格的 API 调用。这里我们重点尝试使用后端服务模式调用DeepSeek 模型。
# 进去docker容器
docker exec -it kt /bin/bash# 启动模型
python ktransformers/server/main.py \
--port 10002 \
--model_path /data/model/DeepSeek-V3-0324 \
--gguf_path /data/model/DeepSeek-V3-0324-GGUF/UD-Q2_K_XL \
--max_new_tokens 1024 \
--cache_lens 32768 \
--chunk_size 256 \
--max_batch_size 4 \
--backend_type balance_serve
四、客户端调用
1. linux curl调用
curl -X POST http://localhost:10002/v1/chat/completions \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"messages": [
{"role": "user", "content": "你好,好久不见"}
],
"model": "DeepSeek-V3-0324",
"temperature": 0.3,
"top_p": 1.0,
"stream": true
}'
2.代码调用
from openai import OpenAI# 实例化客户端
client = OpenAI(api_key="None",
base_url="http://localhost:10002/v1")# 调用 deepseekv3 模型
response = client.chat.completions.create(
model="DeepSeek-V3-0324",
messages=[
{"role": "user", "content": "你好,好久不见!"}
]
)# 输出生成的响应内容
print(response.choices[0].message.content)