一、引子:当 API 账单成为隐形成本
上个月和一个做自由开发的朋友聊天,他说自己每个月光 AI 编程助手的 API 费用就要一千多。我问他:"公司的代码你敢随便往外发?"他愣了一下。
这件事其实有两面:一面是钱,一面是安全。用 Claude 或者 GPT 做代码补全确实爽,但你公司的内部 API key、业务逻辑、数据库结构——所有这些都经过第三方服务器。很多团队不敢用 AI 编程助手,不是因为不好用,而是因为隐私合规过不去。
本地部署 LLM 解决的就是这两个问题:零 API 成本 + 数据不出本机。
Ollama 是目前最流行的本地 LLM 运行工具,一行命令就能跑起各种模型。配合 Continue 插件,VS Code 里就能像用 Copilot 一样用本地模型做代码补全和对话。
本文用四款主流代码模型做了一次完整实测,从安装到 IDE 接入全流程覆盖。
二、Ollama 安装与基础用法
Ollama 支持 Windows / macOS / Linux,安装完成后终端里一行命令就能下载并运行模型:
# 启动一个模型
ollama run qwen2.5-coder:7b
它会自动下载模型并启动交互式对话。你也可以用 REST API 调它——这在后面 IDE 集成时很有用:
# API 默认在 localhost:11434
curl http://localhost:11434/api/generate -d {
"model": "qwen2.5-coder:7b",
"prompt": "用 Python 写一个二分查找",
"stream": false
}
Ollama 会自动从模型仓库拉取 GGUF 格式的模型文件。不同模型的大小差别很大——从 2B(约 1.5GB)到 70B(约 40GB)都有。对个人开发者来说,7B-14B 参数量的模型是性价比最高的区间:16GB 内存的笔记本就能流畅运行。
三、四款代码模型横评
我选了目前最主流的四款本地代码模型做对比,全部用 7B 参数版本(普通笔记本能跑的上限):
| 模型 | 参数量 | 磁盘占用 | 内存需求 | 代码能力 | 中文支持 |
|---|---|---|---|---|---|
| Qwen2.5-Coder | 7B | 4.5GB | 8-10GB | 优秀 | 完美 |
| DeepSeek Coder V2 | 7B | 4.2GB | 8-10GB | 极佳 | 良好 |
| CodeGemma | 7B | 4.0GB | 8GB | 良好 | 一般 |
| CodeLlama | 7B | 3.8GB | 8GB | 良好 | 一般 |
实测结论:
- 中文场景首选 Qwen2.5-Coder:中文注释理解最好,生成注释也是中文,对国内开发者最友好
- 代码能力最强 DeepSeek Coder:在 HumanEval 基准上表现最佳,尤其是 Python/JS 代码生成
- CodeGemma 启动最快:Google 优化过的模型,首次推理延迟最低
- CodeLlama 资源占用最小:内存占用最低,老机器也能跑
如果你的笔记本是 16GB 内存,推荐首选 Qwen2.5-Coder:7b。如果是 32GB+,可以尝试 14B 甚至 32B 版本。
四、VS Code 集成:Continue 插件配置
Continue 是一个开源的 VS Code 插件(也支持 JetBrains),它能作为各种 LLM 后端的统一前端——包括 Ollama。
安装方式:
- VS Code 扩展市场搜索 "Continue" 安装
- 创建
~/.continue/config.json配置文件
{
"models": [
{
"title": "Qwen2.5-Coder",
"provider": "ollama",
"model": "qwen2.5-coder:7b",
"contextLength": 32768
}
],
"tabAutocompleteModel": {
"title": "Qwen2.5-Coder",
"provider": "ollama",
"model": "qwen2.5-coder:7b"
},
"embeddingsProvider": {
"provider": "ollama",
"model": "nomic-embed-text"
}
}
配置好后,VS Code 里就能用 Tab 键触发代码补全,用 Cmd+I(Mac)/ Ctrl+I(Win)打开内联对话。
五、实测:本地 vs API 方案对比
我用同一个 Python 函数(带缓存的斐波那契数列生成器)测试了各方案的响应速度:
| 方案 | 首字符延迟 | 完整响应 | 补全质量 | 月费用 |
|---|---|---|---|---|
| Ollama + Qwen2.5-Coder:7b | 1.2s | 4.8s | 良好 | ¥0 |
| Ollama + DeepSeek Coder:7b | 1.5s | 5.2s | 优秀 | ¥0 |
| GitHub Copilot | 0.3s | 1.5s | 优秀 | $10/月 |
| Claude API | 0.8s | 2.1s | 优秀 | ~$20/月 |
本地模型的延迟明显高于云方案,但对于日常的代码补全场景,1-2 秒的首字符延迟是完全可接受的。
推荐组合方案:本地模型做日常补全 + API 做复杂重构需求。Continue 可以配置两个模型同时在线,自动根据任务复杂度切换后端。
六、踩坑与优化建议
坑 1:内存不足导致 OOM
7B 模型在 Ollama 中默认使用 4-bit 量化(Q4_K_M),不需要手动指定。但如果你同时运行其他应用,16GB 内存可能会吃紧:
# 限制 CPU 线程数
set OLLAMA_NUM_THREADS=4
ollama run qwen2.5-coder:7b
坑 2:首次推理慢
模型加载到内存需要时间,第一次请求通常要 3-5 秒。保持 Ollama 进程常驻即可(后续请求会快很多)。
坑 3:补全不如 Copilot 连贯
本地 7B 模型的上下文理解能力确实不如 GPT-4 级别的云端模型。对跨文件重构、复杂业务逻辑的场景建议还是用 API。
优化建议:
- 用
ollama pull提前下载模型,避免首次运行时等待 - 检查是否启用了 GPU 加速
ollama ps
# 输出中有 "GPU" 字样表示已启用硬件加速
- 不使用 Continue 时关掉自动补全,避免模型常驻内存
七、总结
Ollama + Continue 的组合,是目前搭建本地 AI 编程助手的最优解。它不能完全替代 Copilot 或 ChatGPT,但填补了一个重要的场景:当代码不能出本机、当预算有限、或者网络延迟不可接受时。
对于个人开发者:推荐配置一个本地模型(Qwen2.5-Coder:7b)做日常补全 + 一个 API 模型做复杂任务,两者互补。
对于团队:至少可以在开发环境中用本地模型覆盖代码补全场景,把 API 调用集中到 Code Review 和架构设计等高价值环节。
欢迎在评论区分享你的本地部署经验,或者聊聊你踩过的坑 👇
实际使用场景:谁适合本地部署?
| 场景 | 推荐方案 | 原因 |
|---|---|---|
| 个人学习/实验 | 纯本地 7B 模型 | 零成本、自由尝试 |
| 创业团队(代码敏感) | 本地 7B + API 混合 | 日常补全走本地,复杂逻辑走 API |
| 企业合规环境 | 本地 14B-32B 模型 | 数据完全不出网 |
| 网络受限地区 | 纯本地方案 | 不依赖外部服务 |
| 高频代码补全 | 本地 7B + Copilot | 本地做离线兜底 |
各模型安装命令速查
# Qwen2.5-Coder 7B(推荐,中文好)
ollama pull qwen2.5-coder:7b
# DeepSeek Coder V2 7B(代码强)
ollama pull deepseek-coder-v2:7b
# CodeGemma 7B(启动快)
ollama pull codegemma:7b
# CodeLlama 7B(省内存)
ollama pull codellama:7b
# 查看已下载的模型列表
ollama list
性能调优:如何让本地模型跑得更快
如果你用的是 N 卡(支持 CUDA),Ollama 会自动启用 GPU 加速。确认方法:
# 查看运行时状态
ollama ps
如果没看到 GPU 加速,检查驱动版本和 CUDA 环境变量。Windows 用户建议安装 CUDA 12.x 版本。
另外几个实用技巧:
- 模型量化版本:Ollama 默认用 Q4_K_M 量化(4-bit),质量不错。想更快可以用 Q3_K_S(3-bit),想更准用 Q6_K(6-bit)
- Keep Alive:让模型常驻内存避免重复加载
# 设置 keep_alive 为 -1(常驻)
curl http://localhost:11434/api/generate -d {
"model": "qwen2.5-coder:7b",
"keep_alive": -1,
"prompt": "test"
}
- 并行请求:Ollama 默认单线程处理请求,不要同时发多个请求,否则会排队
总结
回到最开始的问题——API 账单和安全合规怎么选?其实不需要二选一。本地模型 + 云端 API 的组合方案是目前性价比最高的策略:日常编码用本地,关键时刻用云端。
关键点记一下:
- 选 Qwen2.5-Coder 7B 做主力本地模型
- Continue 插件一键接入 VS Code
- 本地做日常补全,API 做复杂任务
- 数据隐私和开发效率可以兼得
延伸阅读:如果你用的是 JetBrains IDE,Continue 同样支持。安装插件后在 Settings → Tools → Continue 中配置 Ollama 后端即可,配置文件和 VS Code 版本完全兼容。