明确需求

跟以往的博客内容不一样,这里我首先是建议大家评估自己的本地环境和硬件条件,确认最适合自己本地的模型。尤其是当GPU显卡不多,或者是配置不太给力的情况下,为了确保模型的可用性,建议还是往小了选型,优先保障性能。常规的tokens速度如果只有个十几二十的,体验会很差。我这里使用一张5090D,运行BF16的Qwen3-Code-Next,在长对话里大约是40 tokens/s的速率,这个已经是略显缓慢了。

安装KTransformer

不要着急下载模型,先把环境弄好,下载模型其实把任务挂在那里就可以了。理论上来说,安装KTransformer就是把最新的仓库clone下来之后一键执行就可以了:

$ ./install.sh

但是我建议是在Conda环境中运行,创建一个python3.10或者python3.11的虚拟环境,再进行安装部署。如果中间遇到Github相关的网络问题,可以把相应的第三方仓库地址替换为Gitee上边的镜像版。或者自己在Gitee建仓,拉取最新版本的代码。

安装完成后可以通过如下代码进行校验:

$ python3 -m pip show sglang-kt
$ kt version

这两个都正常显示了才说明安装成功了。

模型下载

前面提到,在模型下载之前,要做一个模型的选型。如果是显卡不太充裕的环境,不是很建议直接上全量的DeepSeek大模型,而且有些硬件对于量化版本的支持并不是很好,反而是BF16原生的格式支持的比较好。那么这种场景下,Qwen系列其实会是一个不错的选择。那么就可以找一个用于存放模型的路径,然后执行:

$ modelscope download --model Qwen/Qwen3-Coder-Next --local_dir ./

然后就等待模型下载完成就好了。

模型加载

这里加载模型的服务,比较推荐的是直接使用sglang来加载:

$ nohup python3 -m sglang.launch_server \
  --host 0.0.0.0 \
  --port 30000 \
  --model /path_to/Qwen3-Coder-Next \
  --kt-weight-path /path_to/Qwen3-Coder-Next \
  --kt-cpuinfer 32 \
  --kt-threadpool-count 1 \
  --kt-num-gpu-experts 48 \
  --kt-method BF16 \
  --kt-gpu-prefill-token-threshold 4096 \
  --attention-backend triton \
  --trust-remote-code \
  --mem-fraction-static 0.85 \
  --chunked-prefill-size 16384 \
  --max-running-requests 5 \
  --max-total-tokens 32768 \
  --served-model-name Qwen3-Coder-Next \
  --enable-mixed-chunk \
  --tensor-parallel-size 1 \
  --tool-call-parser qwen3_coder \
  --kt-enable-dynamic-expert-update \
  --cuda-graph-max-bs 64 \
  --allow-auto-truncate > sglang.log 2>&1 &

这里用的是后台服务启动的方法,相关的运行结果都会保存到sglang.log日志文件中。这里关于参数配置,主要需要注意的是kt-cpuinferkt-num-gpu-expertskt-methodmem-fraction-static这几个。如果配置不当,有可能导致服务直接挂掉。配置的参数也会影响到运行的性能,配置的原则就是,在服务可以正常运行的前提条件下,kt-num-gpu-experts越大则越快。

服务正常启动之后,可以在本地进行一个测试:

$ curl -s http://xxx.xxx.xxx.xxx:30000/v1/chat/completions \
   -H "Content-Type: application/json" \
   -d '{
     "model": "Qwen3-Coder-Next",
     "messages": [{"role": "user", "content": "Hello! What can you help me with?"}],
     "stream": false
   }'
{"id":"xxx","object":"chat.completion","created":xxx,"model":"Qwen3-Coder-Next","choices":[{"index":0,"message":{"role":"assistant","content":"Hello! 😊 I'm here to help with a wide range of things—here are just a few examples:\n\n- **Answering questions** (science, history, tech,日常生活, etc.)\n- **Writing assistance** (essays, stories, emails, scripts, creative ideas)\n- **Coding help** (debugging, explanations, snippets in Python, JavaScript, etc.)\n- **Learning support** (math, languages, concepts explained clearly)\n- **Problem solving** (logic puzzles, math problems, planning)\n- **Brainstorming & brainstorming** (names, projects, content ideas)\n- **Logic & reasoning** (truth tables, probability, decision analysis)\n- **Language translation & practice** (grammar, vocabulary, conversation)\n- **Explaining complex topics** (like quantum mechanics, neural networks, or tax law—simplified!)\n\n...and much more! What would you like to explore or work on today? 🌟","reasoning_content":null,"tool_calls":null},"logprobs":null,"finish_reason":"stop","matched_stop":151645}],"usage":{"prompt_tokens":17,"total_tokens":210,"completion_tokens":193,"prompt_tokens_details":null,"reasoning_tokens":0},"metadata":{"weight_version":"default"}}

如果有类似于上述返回内容的就是说明模型可以正常运行了。

绑定cline

因为Qwen系列的模型虽然不大,但是在Vibe Coding方面做的不错,所以这里也介绍一下如何将部署好的Qwen模型配置到AI编程框架中。如果只是想要一个普通的对话,可以参考之前的这篇文章进行配置。需要注意的是,这里KTransformer用的是OpenAI的字段。

先从VSCode商城里边找到cline这个插件,点击安装,然后左侧菜单栏里边最底下会有个cline的机器人图标,点击图标进入cline的配置界面:

供应商选择OpenAI Compatible:

BASE URL填http://xxx.xxx.xxx.xxx:30000/v1,然后API KEY随便填一些内容,MODEL ID填Qwen3-Coder-Next,或者是在本地拉起模型时所用的模型名称。完成这些参数的配置后就可以开始正式使用了:

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐