彻底告别 Copilot!在 Linux 上部署 DeepSeek-Coder + Continue,打造属于你自己的免费 AI 编程助手

张开发
2026/4/13 13:04:38 15 分钟阅读

分享文章

彻底告别 Copilot!在 Linux 上部署 DeepSeek-Coder + Continue,打造属于你自己的免费 AI 编程助手
还在为 Copilot 每月 10 美元的订阅费犹豫担心代码上传云端的安全隐患本文手把手教你用一台 Linux 服务器部署开源最强代码模型 DeepSeek-Coder配合 Continue 插件实现完全本地、零延迟、隐私安全的 AI 代码补全。全程开源免费断网也能用前言为什么你需要一个本地 AI 编程助手GitHub Copilot 的出现让无数开发者体验到了 AI 辅助编程的魔力。但随之而来的问题也不少隐私风险你的代码会被发送到云端服务器对于企业项目或敏感代码这是不可接受的。网络依赖网络波动时补全延迟明显甚至直接罢工。费用高昂个人版 10 美元/月团队版更贵。虽然不算天价但每月多一笔开销总让人不痛快。功能受限云端模型不一定能针对你的特定代码库进行微调。而开源的本地模型方案恰好解决了以上所有痛点。你完全可以在自己的 Linux 服务器或工作站上部署一个性能接近 Copilot 的代码模型让数据不出机房断网照常工作还能自由定制。今天我们就来实现这一目标。方案选型为什么是 DeepSeek-Coder Continue组件选型理由模型DeepSeek-Coder-6.7B-Instruct深度求索DeepSeek出品的代码大模型在 HumanEval 上得分与 GPT-3.5 相当支持 16K 上下文对中文友好开源可商用。推理引擎vLLM高吞吐、低延迟支持 OpenAI 兼容 API对 GPU 利用效率极高。IDE 插件Continue开源、免费支持 VS Code 和 JetBrains 全系列可配置对接任何 OpenAI API 兼容的服务。硬件任意支持 CUDA 的 NVIDIA GPU6.7B 模型经过 4-bit 量化后仅需约 4GB 显存RTX 3060 及以上均可流畅运行。准备工作搭建 Linux 运行环境本文以Ubuntu 22.04 LTS为例其他发行版类似。确保你的机器有一块 NVIDIA 显卡并已安装好驱动和 CUDA。1. 安装 NVIDIA 驱动与 CUDA Toolkit# 查看显卡型号lspci|grep-invidia# 安装驱动推荐使用 ubuntu-drivers 自动安装sudoaptupdatesudoubuntu-drivers autoinstallsudoreboot# 重启后检查 nvidia-sminvidia-smi如果输出类似以下信息说明驱动正常----------------------------------------------------------------------------- | NVIDIA-SMI 535.129.03 Driver Version: 535.129.03 CUDA Version: 12.2 | -----------------------------------------------------------------------------CUDA Toolkit 通常随驱动安装但为了编译某些库建议再安装完整版wgethttps://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.debsudodpkg-icuda-keyring_1.1-1_all.debsudoaptupdatesudoaptinstallcuda-toolkit-12-22. 安装 Python 环境与虚拟环境sudoaptinstallpython3-pip python3-venv-ypython3-mvenv ~/ai-assistantsource~/ai-assistant/bin/activate3. 安装 vLLMvLLM 是当前最流行的 LLM 推理引擎支持 PagedAttention 等技术能大幅提升吞吐量。pipinstallvllm如果安装时遇到 CUDA 版本不匹配问题可以参考 vLLM 官方文档 使用预编译 wheel。第一步启动模型服务我们将使用 vLLM 启动一个兼容 OpenAI API 的服务器并加载 DeepSeek-Coder 模型。1. 下载模型自动完成vLLM 首次启动时会自动从 Hugging Face 下载模型大约需要 12GB 空间。你也可以手动下载后指定路径。2. 启动服务python-mvllm.entrypoints.openai.api_server\--modeldeepseek-ai/deepseek-coder-6.7b-instruct\--tensor-parallel-size1\--dtypehalf\--port8000参数说明--modelHugging Face 模型 ID或本地路径。--tensor-parallel-size张量并行数单卡设为 1。--dtype half使用半精度降低显存占用。--port服务端口默认 8000。启动成功后你会看到类似输出INFO: Started server process [12345] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000此时可以通过 curl 测试curlhttp://localhost:8000/v1/models如果返回模型列表说明服务已正常运行。3. 显存不足试试量化版如果你的显存小于 6GB可以使用 AWQ 量化后的模型python-mvllm.entrypoints.openai.api_server\--modelTheBloke/deepseek-coder-6.7B-instruct-AWQ\--quantizationawq\--port8000这样显存占用会降至约 4GB。你也可以使用Ollama作为更简单的替代方案ollama pull deepseek-coder:6.7b然后ollama serveAPI 地址为http://localhost:11434。但 Ollama 在高并发场景下性能略逊于 vLLM。第二步配置 Continue 插件Continue 是一款开源的 AI 编程助手插件支持 VS Code 和 JetBrains 系列 IDE。我们将它连接到本地的 vLLM 服务。1. 安装 ContinueVS Code在扩展商店搜索 “Continue”点击安装。JetBrains (IntelliJ, PyCharm 等)在插件市场搜索 “Continue”安装后重启 IDE。2. 配置模型连接安装完成后按CtrlShiftP打开命令面板输入Continue: Open Config File打开配置文件~/.continue/config.json。将内容修改为{models:[{title:DeepSeek Coder Local,provider:openai,model:deepseek-ai/deepseek-coder-6.7b-instruct,apiBase:http://localhost:8000/v1,apiKey:EMPTY}],tabAutocompleteModel:{title:DeepSeek Coder Local,provider:openai,model:deepseek-ai/deepseek-coder-6.7b-instruct,apiBase:http://localhost:8000/v1,apiKey:EMPTY},embeddingsProvider:{provider:transformers.js},experimental:{enableNewUI:true}}apiBase指向本地 vLLM 服务的地址。如果 IDE 和模型运行在同一台机器用localhost否则填 IP。tabAutocompleteModel这个配置决定代码自动补全使用哪个模型。Continue 允许聊天模型和自动补全模型分开但这里我们让它们共用同一个。apiKey由于本地服务不需要鉴权填任意字符串即可。保存文件重启 IDE。3. 测试打开任意代码文件在编写代码时你应该会看到 Continue 弹出灰色的补全建议就像 Copilot 一样。按Tab键接受补全。同时你还可以使用CtrlShiftL打开 Continue 侧边栏直接在聊天框中询问代码相关问题例如“解释这个函数的作用”或“帮我写一个快速排序”模型会基于你的代码上下文给出答案。第三步性能优化与问题排查1. 调整 vLLM 参数以获得最佳体验控制显存占用如果模型启动时显存溢出可以添加--gpu-memory-utilization 0.7限制 vLLM 最多使用 70% 显存。提高并发能力如果你同时使用多个 IDE 或高并发请求可以调整--max-num-seqs 32来增加同时处理的序列数量。减少延迟使用--enforce-eager禁用 CUDA 图优化可以略微降低首次请求的延迟牺牲一定吞吐量。2. Continue 无法补全的排查思路检查服务是否可访问在终端执行curl http://localhost:8000/v1/chat/completions -H Content-Type: application/json -d {model:deepseek-ai/deepseek-coder-6.7b-instruct,messages:[{role:user,content:Hello}]}看是否有正常返回。查看 IDE 日志在 VS Code 中打开“输出”面板选择“Continue”通道可以看到详细的错误信息。确认模型名称确保 config.json 中的model字段与 vLLM 启动时指定的模型名一致。3. 模型效果不佳怎么办调整温度在 config.json 的模型中添加completionOptions: {temperature: 0.2}降低随机性让补全更保守。尝试其他模型你也可以轻松切换为codellama/CodeLlama-7b-Instruct-hf、Qwen/Qwen2.5-Coder-7B-Instruct等。只需修改model字段并确保 vLLM 加载了对应模型即可。进阶玩法让助手更懂你的项目1. 添加项目级代码索引Continue 支持配置embeddingsProvider可以将你的整个代码库向量化从而在聊天时引用项目中的具体文件和函数。默认使用transformers.js在本地进行嵌入无需额外配置。2. 微调专属模型如果你有大量私有代码例如公司的框架、内部 API可以对 DeepSeek-Coder 进行微调让模型更懂你的业务。使用 LLaMA-Factory 等工具可以轻松实现。gitclone https://github.com/hiyouga/LLaMA-Factory.gitcdLLaMA-Factory pipinstall-e.然后将你的代码数据整理成指令格式运行微调脚本。微调后的模型替换掉原来的路径你的助手就成了“公司专属 AI”。3. 多模型负载均衡如果你有多块 GPU可以同时启动多个不同模型例如一个专用于补全一个专用于聊天在 Continue 中配置多个模型按需切换。效果展示立即进入

更多文章