news 2026/9/29 2:04:10

两张 L20 部署 Qwen3.5-35B-A3B 并接入 ccswitch 实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
两张 L20 部署 Qwen3.5-35B-A3B 并接入 ccswitch 实战

文章目录

  • 前言
  • 1. 环境
  • 2. 启动命令
  • 3、用 ccswitch 接进来
  • 4. 效果
  • 5、参数说明
  • 总结

前言

本文实战演示如何用两张 NVIDIA L20 通过 vLLM 部署 Qwen3.5-35B-A3B,利用张量并行与 MoE 架构压满显存,并接入 ccswitch 完成对话。涵盖启动命令、参数说明与客户端配置,助你快速跑通全流程。

本文介绍如何用两张 L20 把 Qwen3.5-35B-A3B 跑起来,并集成到 ccswitch。

1. 环境

硬件两句话说完:NVIDIA L20 × 2。

引擎用的 vLLM,没怎么纠结。两张卡刚好够--tensor-parallel-size 2,不用再调。名字里的 A3B 按 Qwen 系 MoE 的命名习惯,指的是激活参数那一档,所以 35B 的体量压在两张 L20 上是跑得动的。

客户端这边是 ccswitch。选它主要图省事——服务起好之后不用自己写脚本调 HTTP,界面里填个地址就能开聊,模型服务、MCP、API 这些也都在一个地方管。

2. 启动命令

source/gemini/data-3/miniconda3/bin/activate vllmLD_LIBRARY_PATH=/gemini/data-3/miniconda3/envs/vllm/lib:$LD_LIBRARY_PATHCUDA_VISIBLE_DEVICES=0,1vllm serve /gemini/data-3/open-source_model/Qwen/Qwen3.5-35B-A3B--host0.0.0.0--port8000--max-model-len65536--served-model-name Qwen3.5-35B-A3B --tensor-parallel-size2--enable-auto-tool-choice --tool-call-parser qwen3_coder

前两行是环境。第一行激活 vLLM 这个 conda 环境,第二行把该环境的 lib 目录塞进LD_LIBRARY_PATH,让 vLLM 启动时能找到那几个 .so。

这里有个小事得提一句。LD_LIBRARY_PATH=...单独占一行的话,它只是个普通变量赋值,不会传给子进程,后面那条vllm serve是读不到的。要么跟 serve 命令写进同一行,要么前面加个export。我自己的做法是拼成一行。

剩下那串参数:

参数作用
CUDA_VISIBLE_DEVICES=0,1只用 0、1 两张卡
--host 0.0.0.0监听所有网卡,别的机器能连过来;只在本机用可以写 127.0.0.1
--port 8000服务端口
--max-model-len 65536上下文长度,64K
--tensor-parallel-size 2张量并行切成 2 份,跟上面两张卡对得上
--served-model-name Qwen3.5-35B-A3B对外暴露的模型名,客户端填的是它,不是权重目录
--enable-auto-tool-choice打开工具调用
--tool-call-parser qwen3_coder指定用 qwen3_coder 解析工具调用

权重路径/gemini/data-3/open-source_model/Qwen/Qwen3.5-35B-A3B是实际落盘的位置,跟--served-model-name是两回事,别混。

3、用 ccswitch 接进来

服务起来之后就该接客户端了。

左侧「模型服务」搜到 Qwen3.5_35B_A3B_wulele,把开关打开。API 地址我填的是 vLLM 的地址加/v1,密钥留空——本地起服务没设 key。填完点一下「获取模型列表」,能拉到 Qwen3.5-35B-A3B,说明服务那边是通的。话题页顶上会显示当前用的哪个模型、哪个服务,对得上就没选错。

4. 效果

配好之后开聊即可。

5、参数说明

  • --tensor-parallel-size的数值要跟CUDA_VISIBLE_DEVICES里给的卡数对上,写 2 就得有两张卡可用
  • --served-model-name可以随便起,但客户端里填的必须是它,填权重目录名是连不上的
  • ccswitch 那边配完,点「获取模型列表」验一下。开关是绿的说明不了什么
  • --max-model-len开多大,直接影响显存能塞下多少 KV cache,进而决定并发,别一上来就拉满

总结

本文介绍了 vLLM 部署 Qwen,并接入 ccswitch。若有疑问,欢迎留言讨论。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 2:03:44

嵌入式烧录与仿真调试全攻略:从工具选型到实战排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 2:03:25

深度学习模型优化全链路实践:从优化器选型到推理加速

1. 项目概述与核心问题拆解接手这个项目的时候,我拿到的第一个模型其实已经能跑通了,验证集准确率也还行,但问题非常典型:训练时间长得离谱,一个 epoch 要跑五个多小时,显存动不动就爆,推理延迟…

作者头像 李华
网站建设 2026/9/29 2:03:13

TI C2000 DSP国产替代:平滑切换的三大核心维度

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 2:03:03

555定时器呼吸灯电路设计与工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 2:02:15

从零打包APK:Android Studio完整流程与工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 2:01:45

STM32CubeMX 6.14下载安装到工程生成完整避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华