如何启动 KTransformers v0.2.4 的 balance_serve 多并发推理服务并调用 API?

发布时间:2026/9/14 13:59:23
如何启动 KTransformers v0.2.4 的 balance_serve 多并发推理服务并调用 API? 如何启动 KTransformers v0.2.4 的 balance_serve 多并发推理服务并调用 API【免费下载链接】ktransformersA Flexible Framework for Experiencing Heterogeneous LLM Inference/Fine-tune Optimizations项目地址: https://gitcode.com/GitHub_Trending/ktr/ktransformers如果你已经安装过 KTransformers 的早期版本会发现服务器一次只能处理一个请求并发请求会被排队等待。KTransformers v0.2.4 引入的balance_serve后端引擎解决了这个问题它在 C 层实现了异步并发调度支持 continuous batching、chunked prefill多个请求可以同时在推理引擎中执行。本文的目标很明确在一台带 GPU 的机器上安装并启动 v0.2.4 的 balance_serve 推理服务然后用一条 OpenAI 兼容的 API 请求验证多并发服务已经可用。整个流程分为三步准备环境并安装 → 启动带--backend_type balance_serve的服务 → 用curl调用http://localhost:10002/v1/chat/completions验证。准备条件文档要求的前置条件是使用 Miniconda3/Anaconda3 管理环境需要 GPU文档中的 Docker 示例使用了--gpus all安装本项目会替换你环境中的 flashinfer文档因此强烈建议新建一个 conda 环境如果之前安装过 v0.2.4 之前的版本文档建议在重新初始化前删除~/.ktransformers目录因为参数有变化。使用 Docker 镜像可选路径如果不想从源码构建可以拉取 v0.2.4 的 Docker 镜像测试文档以v0.2.4-AVX512为例docker pull approachingai/ktransformers:v0.2.4-AVX512 docker run -it --gpus all --privileged --shm-size 64g --name ktrans --networkhost -v /mnt:/mnt approachingai/ktransformers:v0.2.4-AVX512 /bin/bash # 另开一个终端 docker exec -it ktrans bash进入容器后从下一节的“构建 ktransformers”开始容器内已有代码时可直接跳到启动服务。源码安装# 创建环境 conda create --name ktransformers python3.11 conda activate ktransformers # 安装依赖库 conda install -c conda-forge libstdcxx-ng # 验证 GLIBCXX 版本应包含 3.4.32 strings ~/anaconda3/envs/ktransformers/lib/libstdc.so.6 | grep GLIBCXX如果你的 Anaconda 安装目录不是~/anaconda3验证命令里的路径要相应调整。系统依赖和 Python 依赖sudo apt install libtbb-dev libssl-dev libcurl4-openssl-dev libaio1 libaio-dev libfmt-dev libgflags-dev zlib1g-dev patchelf pip3 install packaging ninja cpufeature numpy openai pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126克隆仓库并构建。注意开启 balance_serve 后端必须设置环境变量USE_BALANCE_SERVE1# 克隆仓库 git clone https://github.com/kvcache-ai/ktransformers.git cd ktransformers git submodule update --init --recursive # 单 NUMA 机器 USE_BALANCE_SERVE1 bash ./install.sh # 双 CPU、1T 内存Dual NUMA的机器 USE_BALANCE_SERVE1 USE_NUMA1 bash ./install.shUSE_NUMA1只在双 NUMA 拓扑的机器上使用普通单 NUMA 机器保持第一条命令即可。启动 balance_serve 推理服务文档以 DeepSeek-R1-Q4KM 模型、24GB 显存 GPU 为例给出启动命令。命令中的path_to_safetensor_config和path_to_gguf_files需要替换为你本地的实际路径前者是 safetensor 配置目录后者是 GGUF 权重文件目录。python ktransformers/server/main.py \ --port 10002 \ --model_path path_to_safetensor_config \ --gguf_path path_to_gguf_files \ --optimize_config_path ktransformers/optimize/optimize_rules/DeepSeek-V3-Chat-serve.yaml \ --max_new_tokens 1024 \ --cache_lens 32768 \ --chunk_size 256 \ --max_batch_size 4 \ --backend_type balance_serve \ --force_think # useful for R1各参数在文档中的说明--max_new_tokens每个请求生成的最大 token 数--cache_lens调度器分配的 kvcache 总长度所有请求共享这块 kvcache 空间--max_batch_size引擎单次运行处理的最大请求数prefill decode仅balance_serve支持该参数--chunk_size引擎单次运行处理的最大 token 数。--cache_lens 32768对应 32768 tokens 的空间请求完成后会释放--backend_typebalance_serve是 v0.2.4 引入的多并发后端引擎原有的单并发引擎是ktransformers--model_pathsafetensor 配置路径只需要 config不需要模型 safetensors 文件。注意从 v0.2.4 起model_path的最后一段目录名必须是一个本地目录且该目录包含模型的配置文件暂不支持 Hugging Face 链接如deepseek-ai/DeepSeek-R1--force_think强制输出DeepSeek R1的推理标签对 R1 模型有效。启动前检查一个关键约束否则并发能力会下降cache_lens max_batch_size * max_new_tokens文档给出的示例值32768、4、1024满足 32768 4 × 8192 的边界实际使用时按自己的模型和并发目标调整保持该不等式成立。调用 API 验证服务服务启动后用一条 OpenAI 兼容的流式请求验证curl -X POST http://localhost:10002/v1/chat/completions \ -H accept: application/json \ -H Content-Type: application/json \ -d { messages: [ {role: user, content: hello} ], model: DeepSeek-R1, temperature: 0.3, top_p: 1.0, stream: true }请求发往服务监听地址http://localhost:10002对应启动命令的--port 10002model字段填模型名stream: true表示以流式方式返回生成内容。请求能正常返回流式响应说明 balance_serve 多并发服务已经可用。已知限制与说明相比 v0.2.3v0.4.4 移除了一些旧的、已废弃的启动参数以获得更干净的配置体验因此旧版本用户需要删除~/.ktransformers目录后重新初始化文档明确--max_batch_size仅由balance_serve后端支持使用原ktransformers单并发引擎时该参数无效--model_path不支持 Hugging Face 仓库链接必须使用本地包含配置文件的目录关于吞吐收益文档给出的数据是在 4 路并发下整体吞吐提升约 130%在 Intel Xeon6 MRDIMM-8800 平台上总输出吞吐随并发从 17 tokens/s 提升到 40 tokens/s瓶颈此时已转移到 GPU4090D。这些数字来自文档的测试环境不代表你的硬件配置上的固定结果。完整的参数说明和多并发架构介绍可以参考仓库中的 balance-serve 文档。【免费下载链接】ktransformersA Flexible Framework for Experiencing Heterogeneous LLM Inference/Fine-tune Optimizations项目地址: https://gitcode.com/GitHub_Trending/ktr/ktransformers创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考