Claude Code 是 Anthropic 推出的 AI 编程助手,默认需要使用 Anthropic 官方 API。但它支持通过 ANTHROPIC_BASE_URL 环境变量切换后端服务,所以我们可以用本地部署的开源大模型替代官方 API,实现零成本、数据不出内网的编程助手方案。
这里我记录一下在一台 8卡 RTX 4090 服务器上,利用空闲 GPU 部署 Qwen3.5-35B-A3B 模型,并让本机和内网其他服务器的 Claude Code 都接入该模型服务的完整过程。
核心思路:用 llama.cpp 在本地起一个兼容 OpenAI API 的模型服务,Claude Code 所有请求都走这个本地服务,完全不依赖 Anthropic 官方 API。
拿到服务器后先做环境检查,我们遇到了三个实际问题:
问题1:根盘磁盘满了
根盘只剩 4.2GB,而模型文件就有 21GB。好在服务器挂了块 3.5TB 数据盘:
/dev/sxx1 3.5T 25G 3.5T 1% /mnt/sxx1
解决方案:所有文件(llama.cpp 编译、模型存储)都放到 /mnt/sxx1。
问题2:目标端口被占用
$ ss -tlnp | grep 8001
LISTEN 0 4096 0.0.0.0:8001 0.0.0.0:* users:(("docker-proxy"...))
8001 端口被占用。改用 8002 端口。
问题3:其他 GPU 正在跑服务
8 张卡中 6 张都有任务在跑(显存占用 83%-93%),只有 GPU 4 和 5 完全空闲。
解决方案:使用 CUDA_VISIBLE_DEVICES=4,5 严格隔离,确保不影响其他服务。
cd /mnt/sdb1
踩坑:cuBLAS 缺失
cmake 配置时报了一堆错:
Target "ggml-cuda" links to target "CUDA::cublas" but the target was not found.
原因是服务器只装了 CUDA toolkit 的最小集(nvcc + cudart),没装 cuBLAS 数学库。
装好后重新 cmake 配置即可通过。
使用 ModelScope(国内源,速度快)下载 Unsloth 量化的 Qwen3.5-35B-A3B:
pip install modelscope
Qwen3.5-35B-A3B 是 MoE 架构(Mixture of Experts),总参数 35B 但每次推理只激活 3B,推理速度非常快。UD-Q4_K_XL 是 Unsloth Dynamic 2.0 量化方案,重要层自动提升到 8-bit 或 16-bit,在体积和精度之间取得**平衡。
下载结果:
tmux new -s llama
关键参数说明:
启动后的资源占用:
推理性能:
npm install -g @anthropic-ai/claude-code
这个配置非常关键,不加的话 Claude Code 新版本默认的归属头会导致 KV 缓存失效,推理速度直接砍半:
llama-server 原生兼容 OpenAI API 格式,除了 Claude Code 之外,任何支持 OpenAI API 的工具都可以直接接入:
from openai import OpenAI
整套方案的核心就一句话:llama.cpp 起服务,Claude Code 改地址。实际部署中大部分时间花在处理环境问题上(磁盘、端口、CUDA 库缺失)。
这套方案适合:
- 内网环境处理敏感代码,数据不出机房
- 节省 API 费用,模型跑在自己的 GPU 上
- 多人共享同一个模型服务(通过 API Key 控制访问)
局限性:
- Qwen3.5 的编码能力和 Claude 原版仍有差距
- Claude Code 的部分工具功能可能不完全兼容
- 需要维护 GPU 服务器和模型服务的稳定性
【1】
【2】
【3】
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/241494.html