本地部署路线图:vLLM/SGLang 跑 DeepSeek 开源权重(实战区收官)
云端 API 用得好好的,为什么还要自建?数据合规、成本拐点、离线场景——三个理由就够了。但门槛有多高?这一节给你一张清醒的决策地图。
本文导航
- 为什么要自建:三个真实场景
- DeepSeek 开源权重的现实门槛
- vLLM 部署路线
- SGLang 部署路线
- 云端 GPU 租用成本核算
- 决策树:API vs 自建
- 实战区自测清单
- 小结
为什么要自建:三个真实场景
| 场景 | 痛点 | 自建收益 |
|---|---|---|
| 数据合规 | 金融/医疗代码不能出内网 | 完全离线运行 |
| 成本拐点 | 月调用量超过 500 万 token | 自建成本低于 API |
| 定制微调 | 需要针对特定领域微调 | 开源权重可微调 |
不建的理由同样充分:
- 月调用量 < 500 万 token → API 更便宜
- 没有 GPU 运维经验 → 运维成本吃掉节省
- 需要最新模型 → API 总是第一时间更新
DeepSeek 开源权重的现实门槛
DeepSeek V4.1-Flash 的开源权重(如果发布)面临的硬件门槛:
| 模型规模 | 磁盘 | 显存(FP16) | 显存(INT4 量化) | 推荐 GPU |
|---|---|---|---|---|
| 7B | 14 GB | 16 GB | 6 GB | RTX 4090 |
| 13B | 26 GB | 28 GB | 10 GB | 2×RTX 4090 |
| 67B | 134 GB | 140 GB | 40 GB | 4×A100 80GB |
| 满血版(预估) | 511 GB | 614 GB | 180 GB | 8×A100 80GB |
现实:满血版需要 8 卡 A100 80GB,云租用约 100 元/小时,自建硬件约 80 万元。
替代方案:
- 用 7B/13B 蒸馏版跑简单任务
- 用 INT4/INT8 量化降低显存需求
- 用云端 GPU 按需租用,不养硬件
vLLM 部署路线
vLLM 是目前最成熟的开源推理框架,支持 PagedAttention、连续批处理。
安装
# 创建环境uv venv--python3.12uv pipinstallvllm# 验证 GPUuv run python-c"import torch; print(f'CUDA: {torch.cuda.is_available()}, GPU: {torch.cuda.get_device_name(0)}')"启动服务
# 启动 OpenAI 兼容 API(关键!DeepPilot 可以直接对接)uv run vllm serve deepseek-ai/deepseek-coder-7b-instruct\--host0.0.0.0\--port8000\--dtypefloat16\--max-model-len32768\--gpu-memory-utilization0.9DeepPilot 对接
因为 vLLM 提供 OpenAI 兼容 API,DeepPilot 只需改base_url:
# deep_pilot/config.pyclassSettings(BaseSettings):deepseek_base_url:str="http://localhost:8000/v1"# 指向本地 vLLMdeepseek_api_key:SecretStr=SecretStr("not-needed")# vLLM 不需要 keydeepseek_model:str="deepseek-coder-7b-instruct"零代码改动:第 6 节封装的DeepSeekClient直接可用,因为协议兼容。
性能基准
# 用第 14 节第 63 篇的性能测试工具uv run python-c" from deep_pilot.performance import benchmark result = benchmark( base_url='http://localhost:8000/v1', model='deepseek-coder-7b-instruct', concurrent=10, total_requests=100, ) print(result) "典型输出(RTX 4090 单卡):
并发: 10, 总请求: 100 平均延迟: 1.2s P95 延迟: 2.8s 吞吐量: 45 token/s 首 token 延迟: 0.3sSGLang 部署路线
SGLang 是另一个高性能推理框架,特点是 RadixAttention(前缀缓存自动优化)。
安装与启动
uv pipinstallsglang[all]# 启动(同样 OpenAI 兼容)uv run python-msglang.launch_server\--model-path deepseek-ai/deepseek-coder-7b-instruct\--host0.0.0.0\--port8000\--mem-fraction-static0.9SGLang 的优势
SGLang 的 RadixAttention 自动做前缀缓存,和第 14 节第 64 篇讲的缓存优化思路一致,但是自动的:
请求 1: [系统提示词 800 token] + [用户问题 A] 请求 2: [系统提示词 800 token] + [用户问题 B] ↑ 前缀自动缓存,不重复计算云端 GPU 租用成本核算
如果不想买硬件,可以按需租用:
| 平台 | GPU | 价格 | 适合场景 |
|---|---|---|---|
| AutoDL | RTX 4090 | 2 元/小时 | 开发测试 |
| AutoDL | A100 80GB | 8 元/小时 | 中等模型 |
| 阿里云 | A100 80GB | 15 元/小时 | 生产环境 |
| 自建 | 8×A100 | ~80 万一次性 | 长期满负荷 |
成本平衡点计算
defcalc_breakpoint(api_cost_per_mtoken:float,gpu_hourly:float,tokens_per_hour:float)->float:"""计算自建 vs API 的成本平衡点(月)"""# API 月成本 = 月调用量(百万 token)× 单价# GPU 月成本 = 720 小时 × 时价(24/7 运行)gpu_monthly=720*gpu_hourly api_monthly_per_m=api_cost_per_mtoken# 每百万 token 的 API 成本# 平衡点:月调用量(百万 token)breakpoint_mtokens=gpu_monthly/api_monthly_per_mreturnbreakpoint_mtokens# 示例:DeepSeek Flash API 约 1 元/百万 token,RTX 4090 约 2 元/小时bp=calc_breakpoint(1.0,2.0,0)# 简化计算print(f"GPU 月成本:{720*2:.0f}元")print(f"平衡点:{bp:.1f}百万 token/月")# GPU 月成本: 1440 元# 平衡点: 1440.0 百万 token/月结论:月调用量超过 14 亿 token 时,自建(租 GPU)开始划算。低于这个数,API 更便宜。
决策树:API vs 自建
我的建议:
- 90% 的读者:继续用 API,把精力放在 Harness 优化上
- 有合规要求的团队:先租 GPU 试跑 1 个月,验证稳定性
- 调用量巨大的团队:自建硬件,长期成本最优
本地部署的 DeepPilot 改造
本地部署后,DeepPilot 需要做的改动:
# deep_pilot/local_config.py —— 本地部署专用配置frompydantic_settingsimportBaseSettingsfrompydanticimportSecretStrclassLocalSettings(BaseSettings):"""本地部署配置"""base_url:str="http://localhost:8000/v1"api_key:SecretStr=SecretStr("not-needed")model:str="deepseek-coder-7b-instruct"# 本地模型能力有限,调整参数max_context_length:int=8192# 7B 模型上下文较小temperature:float=0.1# 更确定性timeout:int=120# 本地推理可能更慢classConfig:env_file=".env.local"注意:本地小模型能力弱于 API 大模型,可能需要:
- 调优系统提示词(更详细的指令)
- 降低任务复杂度
- 增加重试次数
实战区自测清单
第三部分(实战区,第 6-14 章,第 26-68 节)全部完成!在继续之前,确认你能独立完成以下任务:
工程基础(第 6 章)
- 用 uv 创建项目、管理依赖
- pydantic-settings 读取 .env 配置
- DeepSeekClient 封装完成,支持同步/异步调用
日志留痕(第 7 章)
- 控制台 + 文件双输出日志
- 每次 API 调用记录五要素
- trace 文件落盘
- 退出时打印调用总结
Agent Loop(第 8 章)
- while 循环 + tool_calls 最小 Agent
- @tool 装饰器 + Schema 自动生成
- 工具执行器:校验、异常、格式化
- 流式 Agent 实现
- MockClient 单元测试
工具集(第 9 章)
- 文件三件套 read/write/edit
- bash 执行器 + 超时控制
- glob/grep 代码检索
- web_search/web_fetch 联网
- 工具返回值截断 + 描述优化
安全权限(第 10 章)
- 三级审批模型 allow/ask/deny
- 危险命令黑名单
- 路径白名单 + Path.resolve()
- 沙箱隔离
上下文工程(第 11 章)
- token 预算 + 熔断
- 历史消息自动压缩
- 文件树注入(排除 node_modules)
- 系统提示词 + Skills 按需加载
子 Agent 与编排(第 12 章)
- agent-as-tool 模式
- 并行子 Agent + asyncio
- 角色系统 researcher/coder/reviewer
- router/pipeline/swarm 编排
MCP 生态(第 13 章)
- 手写 MCP 客户端
- MCP Server 动态工具注入
- FastMCP 写自己的 Server
高级优化(第 14 章)
- 连接池 + 预热
- 前缀缓存优化
- 多模型路由
- 迷你评测集 + 回归检测
- 20 个坑全部理解
全部打勾?恭喜,你已经具备独立开发生产级 AI 编程助手的能力。
小结
- 自建理由:数据合规、成本拐点(月 > 14 亿 token)、定制微调。
- 硬件门槛:满血版需 8×A100(80 万),7B 蒸馏版只需 RTX 4090(8000 元)。
- vLLM/SGLang:都提供 OpenAI 兼容 API,DeepPilot 零代码改动即可对接。
- 成本平衡点:月调用量 14 亿 token 是 API vs 自建的分水岭。
- 务实建议:90% 的人继续用 API,把精力放在 Harness 优化上。
- 实战区收官:从第 26 节到第 68 节,DeepPilot v0.1 到 v0.8 全部完成。
- 下一部分进入商业应用区:把 DeepPilot 打磨成产品、做 5 大商业场景、上架 PyPI、接单变现。
下节预告
进入第四部分:商业应用。第一节把 DeepPilot 从"能跑"打磨成"好用":rich 库做进度条/表格/语法高亮、argparse 做命令行参数、REPL 交互循环——让 DeepPilot v1.0 成为一个真正可以日常使用的 CLI 工具。
如果觉得本文对你有帮助,欢迎点赞、收藏、关注三连!
本系列持续更新中,关注不迷路~