新品 NVIDIA B300 · 288 GB HBM3e 服务器 — 起价 $4,019/月 每块 GPU

查看 B300

AI 模型与选型10 分钟阅读

私有化部署 AI 编程助手:在自己的 GPU 服务器上搭建私有 Copilot

私有化部署的 AI 编程助手会把您的源代码留在您掌控的 GPU 服务器上,无论多少开发者使用,月费都固定不变。下文介绍如何自建代码大模型:挑选模型,按团队规模确定服务器规格,部署模型并启用工具调用,把 VS Code、JetBrains 和终端智能体接入服务器,并严格限制访问。

CryptGPU 团队发布于

分享
一个发光的服务器立方体上方悬浮着一个小小的终端窗口,窗口里滚动着一行行空白的光条,呈热成像视图
本文目录9 节 · 10 分钟阅读

核心要点

  • 私有化部署的 AI 编程助手,就是在您掌控的 GPU 服务器上运行 Qwen3-Coder-Next 或 Devstral Small 2 等开放权重代码模型,并通过兼容 OpenAI 的 API 供 VS Code、Cline、Continue 或 Aider 调用,因此您的代码不会发送给外部 AI 服务。
  • 自动补全和智能体需要不同的模型:Continue 的文档指出,大多数最先进的自动补全模型都不超过 100 亿参数;编程智能体则需要可靠的工具调用能力和较长的上下文。
  • 每个并发请求都需要自己的 KV 缓存:在 BF16 下,一个 64K token 的请求在 Devstral Small 2 上约占 10.7 GB,在 Qwen3-Coder-Next 上则约为 1.6 GB,因为后者的 48 层中只有 12 层保留 KV 缓存。
  • 按 CryptGPU 的选型规则,FP8 精度的 Qwen3-Coder-Next 同时处理 16 个 64K token 的智能体请求时,约需 105 GB:能容纳它的最便宜服务器是 4× RTX 5090,每月 $1,316。
  • VS Code 内置的聊天功能可以通过 Custom Endpoint(自定义端点)使用私有化部署的模型,无需 GitHub 账户,也无需订阅 Copilot,但它的内联建议无法使用本地模型。

什么是私有化部署的 AI 编程助手?

私有化部署的 AI 编程助手(也常被称作本地部署的 Copilot 替代方案),就是运行在您掌控的 GPU 服务器上的开放权重代码模型:它通过兼容 OpenAI 的 API 对外提供服务,您的编辑器或终端智能体调用的是这个 API,而不是某个云服务。您的源代码、提示词和生成内容都留在这台服务器上;您为服务器付费,而不是按席位付费;用哪个模型也由您决定。

  • 私有仓库依然私有。作为上下文发送的代码只会到达您的服务器,记录哪些内容也由您决定。
  • 不按席位收费,没有速率限制。只要服务器跟得上,2 名开发者和 20 名开发者的月费完全一样;限制只来自 GPU 的显存和速度。
  • 模型由您来选。您可以一直沿用在自己代码库上表现良好的版本,等更好的开放模型出现再切换,或者用您自己的代码微调一个模型。

取舍也确实存在。GitHub Copilot 的套餐中列出的是 Anthropic、OpenAI 和 Google 的闭源模型(GitHub,核实于 2026年10月19日),这些模型的权重并未公开,因此私有化部署的助手只能运行开放模型,其质量需要您用自己的代码来检验。而且服务器要由您自己运维。如果想在同类服务器上搭建私有聊天服务,请参见如何私有化部署大模型。

自动补全、聊天和智能体需要不同的模型

任务要求适合的模型
自动补全(Tab 补全)经过中间填充(fill-in-the-middle,FIM)训练的小型快速模型:它接收光标前后的代码,写出两者之间的内容Continue 推荐的 Qwen2.5-Coder 1.5B 或 7B;任何 Qwen3-Coder 模型
聊天与代码编辑优秀的指令模型,上下文要足够长,能容纳您附加的文件下一张表中的任何模型
读取、编辑和运行代码的智能体可靠的工具调用和较长的上下文:智能体的每个请求都会附带它的指令、工具定义以及它读取的文件Qwen3-Coder-Next、Devstral Small 2

Continue 的文档指出,“大多数最先进的自动补全模型都不超过 100 亿参数,继续增大参数也不会显著提升性能”,而且 GPT-5 或 Claude 等商业模型并未针对自动补全所用的提示词格式进行训练(Continue)。Qwen 表示,中间填充“在 Qwen3-Coder 的每个版本中都受支持”,Qwen3-Coder-Next 也不例外(Qwen3-Coder),因此如果您宁愿只用一个模型而不是两个,智能体模型也可以兼顾代码补全。至于智能体,Ollama 建议为编程工具设置至少 64,000 个 token 的上下文(Ollama)。

该私有化部署哪个代码模型?

我们的目录中有两个专为编程智能体打造的模型,另有三个通用模型也能用作编程助手。所需显存按我们的选型规则计算,即权重大小 × 1.2,GPU 显存按 92% 计为可用,与各模型页面一致:

模型参数量设计用途vLLM 或 SGLang(FP8 或原生精度)Ollama(默认版本)
Qwen3-Coder-Next80B MoE · 激活 3B编程智能体与本地开发,256K 上下文95 GB:4× RTX 5090,$1,31662 GB:1× RTX PRO 6000,$959
Devstral Small 224B智能体软件工程,256K 上下文31 GB:2× RTX 4090,$53818 GB:1× RTX 4090,$269
Qwen3.8 27B27B编程与长程智能体任务,262K 上下文34 GB:2× RTX 4090,$53822 GB:1× RTX 4090,$269
gpt-oss-120b117B MoE · 激活 5.1B推理,原生函数调用78 GB:1× RTX PRO 6000,$95978 GB:1× RTX PRO 6000,$959
gpt-oss-20b21B MoE · 激活 3.6B更低延迟,本地使用17 GB:1× RTX 4090,$26917 GB:1× RTX 4090,$269
  • Qwen3-Coder-Next 是一个混合专家(MoE)模型,共有 800 亿个参数,每个 token 激活 30 亿个,原生上下文为 262,144 个 token,没有思考模式。Qwen 提到它可以集成到 Claude Code、Qwen Code、Kilo 和 Cline 等 CLI 和 IDE 平台中,并发布了官方 FP8 检查点 Qwen/Qwen3-Coder-Next-FP8。
  • Devstral Small 2 是一个 240 亿参数的密集模型,以 FP8 格式发布,上下文窗口为 256K。Mistral 称它“足够轻量,单块 RTX 4090 即可运行”:按我们的规则,Ollama 的 15 GB 版本用一块就能放下,完整的 FP8 权重则需要两块。
  • Qwen3.8 27B 默认开启思考模式,可以按请求关闭;gpt-oss 的推理强度可以设为低、中、高三档。两者也都能回答与编程无关的问题。

我们开放模型目录中更大的模型,例如 GLM-5.3-Flash 和 Kimi K2.6,需要多 GPU 服务器。最终选定之前,请先在您自己的代码仓库上测试两个候选模型。模型信息取自 Hugging Face 上的模型卡片:Qwen3-Coder-Next、Qwen3-Coder-Next-FP8、Devstral Small 2、Qwen3.8 27B、gpt-oss-120b、gpt-oss-20b;Ollama 各版本的大小取自其模型库。

开发团队需要多少 GPU 显存

我们的规则只考虑了少量中等上下文长度的请求。团队需要更多显存,因为每个并发请求都带有自己的 KV 缓存,即其上下文中每个 token 的键和值,而智能体的请求又往往很长。请按同一时刻运行的请求数来估算,而不是按席位数:

memory needed = weights + KV cache per request × requests in flight
KV per token  = 2 × attention layers × KV heads × head dimension × 2 bytes (BF16)

Devstral Small 2 有 40 层,每层 8 个 KV 头,头维度为 128:每个 token 约 0.16 MB,一个 64K token(65,536 个)的请求约需 10.7 GB。Qwen3-Coder-Next 的 48 层中只有 12 层保留 KV 缓存,每层 2 个 KV 头,头维度为 256;其余 36 层使用 Gated DeltaNet,这是一种线性注意力,上述公式没有计入它的状态。算下来每个 token 约 0.025 MB,每个 64K 请求约 1.6 GB(Devstral 配置、Qwen 配置)。使用 FP8 权重时:

并发的 64K token 请求数81632
Devstral Small 2,BF16 KV 缓存112 GB:4× RTX 5090,$1,316198 GB:4× RTX PRO 6000,$3,836370 GB:8× RTX PRO 6000,$7,672
Devstral Small 2,FP8 KV 缓存69 GB:1× RTX PRO 6000,$959112 GB:4× RTX 5090,$1,316198 GB:4× RTX PRO 6000,$3,836
Qwen3-Coder-Next,BF16 KV 缓存92 GB:4× RTX 5090,$1,316105 GB:4× RTX 5090,$1,316131 GB:2× RTX PRO 6000,$1,918
  • 混合注意力在团队场景中优势明显。Qwen3-Coder-Next 的权重是 Devstral Small 2 的三倍,但使用 BF16 缓存时,从 6 个并发请求起,它所需的显存反而更少。
  • FP8 KV 缓存只占一半的字节数(在 vLLM 中使用 --kv-cache-dtype fp8;vLLM 建议使用校准过的缩放因子以获得最佳质量:vLLM)。这样,一块 RTX PRO 6000 就能容纳 Devstral Small 2 并同时处理 11 个请求。
  • 最便宜的方案未必最简单。四块 RTX 5090 要通过 PCIe 拆分模型;而一块 H200($2,279)在单块 GPU 上就能容纳 Qwen3-Coder-Next,还能留出约 31 个 64K token 请求的空间。

这些数字只是估算:推理引擎自身也要占用显存,真实请求的长度也各不相同。同样的计算也适用于单个开发者:在 64K 上下文下,Ollama 版的 Devstral Small 2 使用 Ollama 默认的 f16 缓存约需 26 GB(最便宜的配置:1× RTX 5090,每月 $329),使用 OLLAMA_KV_CACHE_TYPE=q8_0 则约需 20 GB(1× RTX 4090,每月 $269)。团队用起来之后,请关注等待中的请求数和 KV 缓存使用率(vLLM 指标)。其他模型可以用选型助手估算,最适合 LLM 推理的 GPU 一文则比较了带宽和每 GB 价格。

部署模型并启用工具调用

智能体要通过工具来工作,因此推理引擎必须能解析模型发出的工具调用:在 vLLM 中,需要加上 --enable-auto-tool-choice 以及该模型对应的解析器(vLLM)。以 Qwen3-Coder-Next 为例,使用其模型卡片中给出的解析器(需要 vLLM 0.15.0 或更高版本):

# 在服务器上执行:一块 H200;如用两块 GPU,加上 --tensor-parallel-size 2
KEY=$(openssl rand -hex 32); echo "$KEY"
vllm serve Qwen/Qwen3-Coder-Next-FP8 --served-model-name qwen3-coder-next \
  --host 127.0.0.1 --port 8000 --api-key "$KEY" \
  --enable-auto-tool-choice --tool-call-parser qwen3_coder \
  --max-model-len 131072
  • --served-model-name 为您的工具提供一个简短的模型名称;--max-model-len 把每个请求限制在 131,072 个 token 以内(模型本身支持 262,144 个),从而为每个请求的缓存设定了上限。
  • Devstral Small 2 使用 --tool-call-parser mistral --enable-auto-tool-choice,gpt-oss 则使用 openai 解析器。
  • SGLang 0.5.8 或更高版本在模型卡片给出的命令中使用同一个解析器,再加上 --api-key 即可,默认监听 127.0.0.1:30000(SGLang)。
  • 使用 Ollama 时,一条 ollama pull devstral-small-2 就能起步,但它的 API 不校验任何密钥;除非调高 OLLAMA_NUM_PARALLEL,否则每个模型一次只处理一个请求;而且 GPU 显存低于 24 GiB 时,默认上下文只有 4K token。请按照我们的 Ollama 指南中的服务设置,把 OLLAMA_CONTEXT_LENGTH 设为至少 64000。

安装、Docker 和多 GPU 选项见使用 vLLM 部署 LLM 推理服务。

配置 VS Code、JetBrains 或终端智能体

下面的每个工具都调用同一个接口:通过下一节的 SSH 隧道访问 http://localhost:8000/v1,并带上密钥和服务端设定的模型名称。VS Code 内置的聊天功能可以直接使用它:打开 Chat: Manage Language Models,选择 Add Models,再选 Custom Endpoint 并将 API 类型设为 Chat Completions,然后补全 VS Code 打开的 chatLanguageModels.json 文件(以 Qwen3-Coder-Next 为例):

[
  {
    "name": "GPU server",
    "vendor": "customendpoint",
    "apiKey": "${input:gpuServerKey}",
    "apiType": "chat-completions",
    "models": [
      {
        "id": "qwen3-coder-next",
        "name": "Qwen3-Coder-Next (self-hosted)",
        "url": "http://localhost:8000/v1/chat/completions",
        "toolCalling": true,
        "vision": false,
        "maxInputTokens": 114688,
        "maxOutputTokens": 16384
      }
    ]
  }
]

两个 token 上限加起来正好等于服务器的 --max-model-len;toolCalling 则让聊天中的智能体可以使用该模型。VS Code 的文档说明,这类模型无需 GitHub 账户,也无需订阅 Copilot 即可使用,但不能用于补全:“目前,您无法为内联建议连接本地模型”(VS Code 文档)。如果您使用的是公司的 Copilot 套餐,管理员的策略必须允许使用自有模型。

工具运行环境如何指向您的服务器
ClineVS Code、JetBrains、终端API Provider 选择“OpenAI Compatible”,Base URL 填 http://localhost:8000/v1,填入您的密钥,Model ID 填 qwen3-coder-next(文档)。除非开启自动批准(auto-approve),否则每次修改文件、每条终端命令都需要您批准(GitHub)。
Kilo CodeVS Code、JetBrains、终端依次进入 Settings、Providers、Custom provider:Provider API 选择“OpenAI Compatible”,Base URL 和密钥同上(文档)
Aider终端在环境变量中设置 OPENAI_API_BASE 和 OPENAI_API_KEY,然后运行 aider --model openai/qwen3-coder-next(文档)
ContinueVS Code、JetBrainsconfig.yaml:provider: openai,并设置 apiBase 和 apiKey;Agent 模式需要 capabilities: [tool_use];再添加第二个模型,赋予 autocomplete 角色(文档、配置参考)。自最终版本 2.0.0 发布以来,该代码仓库已设为只读,不再维护(GitHub)。
Tabby自带服务端,配合 IDE 插件使用config.toml:配置一个带中间填充提示词模板的 vllm/completion 模型,用于代码补全(文档)
Roo Code—已于 2026年5月15日关停;其代码仓库已归档(GitHub)

要实现 Tab 补全,请使用 Continue 的 autocomplete 角色或 Tabby,在智能体模型之外再运行一个支持中间填充的小模型。Continue 的示例是 Ollama 上的 qwen2.5-coder:1.5b,大小为 986 MB;它不在我们的目录中,但您拥有 root 权限,可以安装任何模型。

为团队提供安全的访问方式

让推理引擎只监听 127.0.0.1,切勿对外发布 8000(vLLM)、30000(SGLang)或 11434(Ollama)端口。vLLM 的密钥只保护部分路由,其安全指南也提醒不要只依赖它。安全的访问方式有两种:

每位开发者一条 SSH 隧道。在一个仅用于隧道的账户中,把每位开发者的公钥各写成单独的一行:该密钥只能转发到 API 端口,其他什么都做不了;删除这一行,就撤销了此人的访问权限(sshd 手册):

# 在服务器上执行,只需一次
sudo useradd -m -s /usr/sbin/nologin tunnel
sudo install -d -m 700 -o tunnel -g tunnel /home/tunnel/.ssh

# 每位开发者一行,填入其公钥
echo 'restrict,port-forwarding,permitopen="127.0.0.1:8000" ssh-ed25519 AAAA... alice@laptop' \
  | sudo tee -a /home/tunnel/.ssh/authorized_keys

# 在每位开发者的电脑上执行;之后 API 地址为 http://localhost:8000/v1
ssh -N -L 8000:127.0.0.1:8000 tunnel@203.0.113.10

restrict 会禁用转发和终端,port-forwarding 重新开启转发,permitopen 把转发限定在 API 上,nologin shell 则不提供命令行。密钥和 ~/.ssh/config 的配置见 SSH 访问。

TLS 反向代理:适合没有 SSH 访问权限的人。用 Caddy 只转发 /v1/(我们的示例),并只允许您团队的 IP 地址访问。这样所有人共用同一个 API 密钥,因此有人离开时要更换密钥。

CryptGPU 适合什么场景

CryptGPU 按月出租独享 GPU 服务器,从一块 GeForce 显卡到八块数据中心 GPU,提供 SSH root 权限,您的显卡上也不会有其他租户。Qwen3-Coder-Next 和 Devstral Small 2 都在我们的目录中:下单时,“软件”步骤可以免费安装 vLLM、SGLang 或搭配 Open WebUI 的 Ollama,以及这两个模型中的任意一个;付款完成链上确认后,服务器会在 10 分钟内上线。隧道账户、编辑器设置和自动补全模型(如果需要)则由您自己添加。价格按服务器计算,而不是按开发者人数:RTX 4090 每月 $269,RTX PRO 6000 每月 $959,H200 每月 $2,279。您可以用比特币、以太坊、USDT、门罗币或莱特币付款,且无需 KYC。

如果您需要闭源模型、带单点登录(SSO)的托管服务,或者每周只用几个小时 GPU,CryptGPU 就不是合适的选择。服务器由您自己管理,包括更新和安全,我们也不公布 SLA。未续费的服务器会在付费月结束时停止运行,磁盘也会被清空,因此请把您的配置和微调得到的适配器另行保存。

常见问题

私有化部署的模型能取代 GitHub Copilot 吗?

在聊天和智能体方面,上述工具能让您用自己的模型获得同样的工作流程。不同之处有两点:Copilot 的闭源模型无法私有化部署,因此效果取决于您选择的开放模型;Tab 补全则需要借助 Continue 或 Tabby 等扩展,因为 VS Code 的内联建议无法使用本地模型。

哪些代码模型能在单块 GPU 上运行?

按我们的规则,Ollama 版的 gpt-oss-20b 用一块 RTX 4090(每月 $269)即可放下,64K 上下文的 Devstral Small 2 用一块 RTX 5090($329)即可;Ollama 版的 Qwen3-Coder-Next(52 GB,4-bit)和 gpt-oss-120b 用一块 RTX PRO 6000($959)即可放下。如需完整的 FP8 权重并供团队使用,请参见上面的表格。

一台服务器能供多少名开发者共用?

这取决于同一时刻运行多少个请求、请求有多长,而不是席位数。请用上面的公式按峰值估算,然后关注 vLLM 中等待的请求:如果 KV 缓存已满时还有请求在排队,就说明您需要更多显存或更短的上下文。

我的代码会离开服务器吗?

模型运行在您的服务器上,因此提示词和生成内容不会发送给任何模型提供商。但编辑器和扩展仍可能向其开发方发送使用数据;如果您给智能体提供了能联网的工具,它也会访问互联网:请检查它们的设置。Continue 的最终版本已移除其匿名遥测功能。

让数据发挥作用。

配置一台服务器,查看其月租价格与市场中位价的对比。

客户中心

登录 CryptGPU

您的订单、账单和服务器,一站式管理。

还没有 CryptGPU 账户?

账户是在结账时创建的:先选择您的服务器和软件,然后在首次下单的账户步骤中创建账户。

部署服务器