DeepSeek本地部署:从零开始,把大模型跑在自己电脑上
DeepSeek本地部署从零开始把大模型跑在自己电脑上我们公司因为数据安全要求所有文档不能传到外部API。但团队又想用AI辅助写代码、做文档分析。解决方案本地部署DeepSeek。这篇文章记录了完整的部署过程、踩过的坑、以及部署之后怎么用。为什么选DeepSeek先说说为什么选DeepSeek而不是Llama或者Qwen。我测试了三个模型在我们实际场景下的表现代码补全、文档摘要、技术问答各30个测试用例模型代码补全文档摘要技术问答综合评分本地显存需求DeepSeek-Coder-V2 (7B)82%78%80%80%8GBQwen2.5-Coder (7B)79%75%77%77%8GBLlama-3-8B-Instruct74%80%76%76.7%8GBCodeLlama (7B)76%68%72%72%8GBDeepSeek-Coder在代码补全上明显领先。这跟我们的需求匹配度最高团队主要用AI辅助写代码所以选了它。如果你不是以代码为主Qwen的中文能力更好Llama的英文推理能力更强。根据你的实际需求选。硬件要求先别急看完再决定要不要装这是很多人跳过的部分结果装完发现跑不动。最低配置能跑但慢CPUi5-12400 或同等内存16GB硬盘50GB空闲空间GPU无纯CPU跑体验7B模型每秒生成2-5个token大概打字速度的1/5推荐配置日常可用CPUi7-12700 或同等内存32GB硬盘100GB SSDGPURTX 3060 12GB 或同等体验7B模型每秒生成30-50个token接近正常阅读速度最佳配置流畅体验CPUi9-13900K 或同等内存64GB硬盘200GB NVMe SSDGPURTX 4090 24GB 或同等体验14B模型每秒生成60-80个token比阅读快我的配置i7-13700K 32GB RTX 4070 12GB。跑7B模型够用跑14B模型显存不够需要量化后面会讲。没有N卡怎么办后面有纯CPU方案。方案一Ollama最简单推荐新手Ollama是现在最火的本地大模型运行工具。一行命令就能跑模型零配置。安装OllamaWindows去ollama.com下载安装包双击安装。装完之后打开终端输入ollama--version能输出版本号就说明装好了。下载并运行DeepSeekollama run deepseek-coder:6.7b这一行命令会自动下载模型大约4GB然后启动一个交互式聊天界面。你可以直接在里面问问题。第一次下载比较慢取决于你的网速我家的100M宽带大概5分钟下完。下载完之后模型缓存在本地以后启动秒开。指定参数运行# 限制显存使用如果你显卡显存不够ollama run deepseek-coder:6.7b --num-gpu-layers20# 增加上下文长度默认2048最大可以到16Kollama run deepseek-coder:6.7b --num-ctx8192--num-gpu-layers控制把多少层模型放到GPU上。显存不够就调小这个数字多出来的层会在CPU上跑速度会慢一些但不会崩。Ollama的APIOllama启动后自动在localhost:11434暴露一个兼容OpenAI格式的API。这意味着你可以把任何支持OpenAI API的工具对接到本地模型。# 测试API是否正常curlhttp://localhost:11434/v1/chat/completions\-HContent-Type: application/json\-d{ model: deepseek-coder:6.7b, messages: [{role: user, content: 用Python写一个快速排序}], stream: false }这个特性非常有用。我后面会讲怎么把它对接到Cursor里。方案二vLLM高性能适合生产环境如果你的电脑配置还行想要更快的推理速度用vLLM。vLLM是伯克利开发的推理引擎用了PagedAttention等技术推理速度比Ollama快30%-50%。安装pipinstallvllm注意vLLM只支持Linux和WSL2。Windows原生不支持。如果你是Windows需要先装WSL2。启动服务python-mvllm.entrypoints.openai.api_server\--modeldeepseek-ai/deepseek-coder-6.7b-instruct\--tensor-parallel-size1\--max-model-len8192\--gpu-memory-utilization0.9参数说明--tensor-parallel-sizeGPU数量。单卡设1就行--max-model-len最大上下文长度--gpu-memory-utilizationGPU显存使用率默认0.990%启动后在http://localhost:8000暴露OpenAI兼容的API。性能对比我在同样的硬件上RTX 4070 12GB跑了对比引擎生成速度 (tokens/s)首 token 延迟显存占用Ollama351.2秒7.8GBvLLM520.6秒10.2GBllama.cpp (CPU)43.5秒0.5GBvLLM快了将近50%首token延迟也低了一半。代价是显存占用更高配置低了可能跑不了。方案三纯CPU没有N卡也能跑用llama.cpp可以在纯CPU上跑模型。速度慢但至少能跑。安装# 用pip安装llama-cpp-pythonCMAKE_ARGS-DLLAMA_BLASON -DLLAMA_BLAS_VENDOROpenBLAS\pipinstallllama-cpp-python加-DLLAMA_BLASON是为了启用BLAS加速。纯CPU跑模型没有这个会非常慢。下载GGUF格式模型去HuggingFace搜索deepseek-coder gguf下载Q4_K_M量化版本文件最小质量损失最少。我下载的是deepseek-coder-6.7b-instruct.Q4_K_M.gguf大约4GB。运行fromllama_cppimportLlama# 加载模型llmLlama(model_path./deepseek-coder-6.7b-instruct.Q4_K_M.gguf,n_ctx2048,# 上下文长度n_gpu_layers0,# 全部用CPUverboseFalse)# 生成outputllm.create_chat_completion(messages[{role:user,content:用Python写一个二分查找}])print(output[choices][0][message][content])速度大概每秒3-5个token。写代码的时候需要等几秒钟才能看到完整输出。能用但体验一般。如果你公司电脑连N卡都没有但又有本地部署的需求这个方案至少能让你用上AI。总比没有强。对接到编程工具模型跑起来之后怎么在日常工作中用两个方案。对接Cursor打开Cursor设置搜索OpenAI API Key填入API Key随便填一个字符串Ollama不验证Base URLhttp://localhost:11434/v1Ollama或者http://localhost:8000/v1vLLM然后在Cursor的模型选择里选OpenAI API模式模型名填deepseek-coder:6.7b。就能在Cursor里用本地模型做代码补全和Chat了。对接ContinueVS Code插件如果你还在用VS Code装一个Continue插件配置类似{models:[{title:DeepSeek Local,provider:ollama,model:deepseek-coder:6.7b,apiBase:http://localhost:11434}]}装完就能在VS Code里用CtrlL调出Chat、CtrlI做代码补全了。踩坑记录坑1显存不够模型加载失败报错信息大概是CUDA out of memory或者Cannot allocate memory。原因7B模型虽然叫7B但实际需要的显存不止7GB。模型权重7GB KV Cache 运行时开销实际需要9-10GB。RTX 3060 12GB刚好够RTX 3060 8GB就不够。解决方案用量化版本的模型。GGUF格式的Q4量化模型只需要4-5GB显存。在Ollama里直接用ollama run deepseek-coder:6.7b-q4_0就行。坑2生成速度特别慢模型能加载但每秒只能生成1-2个token一个回复要等一两分钟。原因模型跑在了CPU上而不是GPU上。排查方法确认NVIDIA驱动和CUDA已安装nvidia-smi看能不能输出版本信息确认PyTorch能识别GPUpython -c import torch; print(torch.cuda.is_available())如果输出False说明你的PyTorch装的是CPU版本需要重装GPU版本解决方案Ollama一般不会出这个问题Ollama自动检测GPU。解决方案vLLM确认安装了CUDA toolkit然后重装pip install vllm。坑3中文输出乱码模型能跑但输出中文的时候是一堆乱码。原因模型的tokenizer对中文的支持不太好。DeepSeek-Coder是代码模型中英文混合的时候偶尔会出现乱码。解决方案在prompt里明确指定用中文回答。比如请用中文回答以下问题。或者换用DeepSeek-Chat模型通用对话模型中文能力比Coder强。ollama run deepseek-chat:7b坑4WSL2里跑vLLMGPU识别不到装了WSL2装了vLLM但启动时报no CUDA devices found。原因WSL2需要特殊配置才能访问GPU。不是装了WSL2就能用GPU的。解决方案确认Windows上的NVIDIA驱动版本 535nvidia-smi看版本号在WSL2里运行nvidia-smi能输出说明GPU passthrough正常如果WSL2里nvidia-smi报错需要安装WSL2的GPU驱动我踩这个坑花了一下午。微软的WSL2 GPU文档写得东一榔头西一棒子实际就两步更新Windows NVIDIA驱动到535以上 在WSL2里装CUDA toolkit。搞定。坑5多人同时使用服务崩溃我把Ollama部署到公司内网服务器上3个人同时用结果第4个人请求的时候服务直接崩溃。原因Ollama默认是串行处理请求的。一个请求没处理完下一个请求就排不上。解决方案用vLLM替代Ollama。vLLM支持并行请求处理continuous batching多人同时用没问题。或者部署多个Ollama实例用Nginx做负载均衡。实际使用效果我们团队部署DeepSeek本地模型已经两个月了。说下实际效果代码辅助日常写CRUD、写单元测试、写配置文件本地模型完全够用。准确率比GPT-4o低一些大约85% vs 92%但胜在响应快、不花钱、数据不出内网。文档摘要技术文档、设计文档、会议纪要的摘要生成7B模型能处理。但如果文档超过8000字效果会明显下降上下文长度限制。技术问答针对公司内部技术栈的问题Spring Cloud、Vue3、MySQL回答质量还可以。但如果是特别新的技术2025年下半年之后的本地模型的训练数据不够回答质量会差。不适合的场景复杂架构设计、跨系统的全局分析、需要最新知识的问答。这些场景还是得用云端大模型。总体来说本地模型覆盖了我们60-70%的AI使用场景。剩下30-40%需要更强推理能力的复杂架构设计、跨系统分析我们走DeepSeek API或GPT-4o。这样的组合方案既保证了数据不出内网满足合规要求又不会因为模型能力不足影响工作质量。成本对比部署之前团队5个人每月的API费用大约2000人民币。部署之后服务器成本一台RTX 4070的机器大约5000人民币一次性投入 每月200人民币电费。两个月就回本了。推荐部署方案根据你的情况选个人开发者有N卡Ollama DeepSeek-Coder10分钟搞定团队使用有服务器vLLM DeepSeek-Coder配Nginx做反代没有N卡llama.cpp Q4量化模型CPU跑企业级部署建议用Docker vLLM Nginx加API Key认证我推荐先从Ollama开始试。如果只是自己用Ollama就够了。等需要多人同时用或者追求更快的速度再换vLLM。部署过程中遇到问题可以在评论区问我看到就会回。本地部署的坑确实多官方文档又写得一言难尽大家一起填。