本地部署 Ollama + DeepSeek 完整指南:免费跑大模型,数据不出本地
本地部署 Ollama DeepSeek 完整指南免费跑大模型数据不出本地不花一分钱不用科学上网在自己电脑上跑 DeepSeek 大模型这篇教程手把手带你搞定一、为什么要本地部署很多人用 AI 工具都是调用云端 API但这有几个痛点痛点说明 费用问题API 调用按 Token 计费用多了很贵 数据安全公司代码、敏感数据不敢往外传 网络问题国内访问 OpenAI 需要科学上网⏱️ 延迟问题云端 API 有网络延迟本地部署的优势✅ 完全免费无限调用✅ 数据不出本地安全可控✅ 无需科学上网✅ 响应速度快取决于本机硬件✅ 可离线使用二、Ollama 和 DeepSeek 是什么2.1 OllamaOllama 是一个开源的本地大模型运行框架可以理解为本地大模型的管理工具。它的作用一键下载各种开源大模型提供统一的 API 接口兼容 OpenAI 格式管理模型的运行和切换支持 Windows、Mac、Linux官网https://ollama.com2.2 DeepSeekDeepSeek 是深度求索公司开发的国产大模型2025年初凭借极低的训练成本和媲美 GPT-4 的性能震惊全球。DeepSeek 系列模型模型参数量内存需求适用场景deepseek-r1:1.5b1.5B2GB低配电脑快速响应deepseek-r1:7b7B8GB日常使用性价比高deepseek-r1:14b14B16GB较强推理能力deepseek-r1:32b32B32GB强推理需要好显卡deepseek-r1:70b70B64GB顶级性能服务器级新手推荐deepseek-r1:7b8GB内存即可运行三、硬件要求3.1 最低配置配置项最低要求推荐配置CPU4核8核内存8GB16GB硬盘20GB可用空间50GB SSD显卡无纯CPU运行NVIDIA 8GB显存没有独立显卡也能跑纯 CPU 模式速度慢一些但完全可用。有 NVIDIA 显卡会快很多。3.2 不同配置的体验硬件配置运行模型生成速度8GB内存无显卡7B模型约5-10 token/s16GB内存无显卡14B模型约3-5 token/s16GB内存 RTX 30607B模型约30-50 token/s32GB内存 RTX 409032B模型约20-30 token/s四、安装 Ollama4.1 Windows 安装方法一官网下载安装包推荐访问 https://ollama.com/download点击 “Download for Windows”下载OllamaSetup.exe双击安装一路下一步安装完成后系统托盘会出现 Ollama 图标说明安装成功。方法二命令行安装# 使用 winget 安装winget install Ollama.Ollama验证安装# 打开 PowerShell 或 CMDollama--version# 输出类似# ollama version is 0.3.124.2 Mac 安装# 方法一官网下载# 访问 https://ollama.com/download下载 macOS 版本# 方法二Homebrewbrewinstallollama# 启动服务ollama serve4.3 Linux 安装# 一键安装脚本curl-fsSLhttps://ollama.com/install.sh|sh# 启动服务systemctl start ollama systemctlenableollama# 开机自启# 验证ollama--version五、下载并运行 DeepSeek5.1 下载 DeepSeek 模型# 下载并运行 7B 模型推荐新手ollama run deepseek-r1:7b# 下载 1.5B 模型低配电脑ollama run deepseek-r1:1.5b# 下载 14B 模型16GB内存ollama run deepseek-r1:14b⚠️注意首次运行会自动下载模型文件7B 模型约 4.7GB需要等待一段时间请确保网络畅通。下载过程pulling manifest pulling 96c415656d37... 100% ▕████████████████▏ 4.7 GB pulling 11ce4ee3e170... 100% ▕████████████████▏ 330 B pulling 0ba8f0e314b4... 100% ▕████████████████▏ 149 B pulling 2af3b81862c6... 100% ▕████████████████▏ 1 B pulling 9c6e5306fef2... 100% ▕████████████████▏ 557 B verifying sha256 digest writing manifest success5.2 开始对话下载完成后会自动进入对话模式 你好介绍一下你自己 你好我是 DeepSeek一个由深度求索公司开发的 AI 助手... 帮我写一个 Java 的快速排序算法 好的以下是 Java 实现的快速排序算法 public class QuickSort { public static void quickSort(int[] arr, int low, int high) { if (low high) { int pivot partition(arr, low, high); quickSort(arr, low, pivot - 1); quickSort(arr, pivot 1, high); } } ... } /bye 输入 /bye 退出对话5.3 常用 Ollama 命令# 查看已下载的模型ollama list# 输出# NAME ID SIZE MODIFIED# deepseek-r1:7b 0a8c26691023 4.7 GB 2 minutes ago# 删除模型ollamarmdeepseek-r1:7b# 查看模型详情ollama show deepseek-r1:7b# 后台运行不进入对话模式ollama serve# 拉取模型只下载不运行ollama pull deepseek-r1:7b# 查看运行中的模型ollamaps六、通过 API 调用兼容 OpenAI 格式Ollama 提供了兼容 OpenAI 的 REST API默认监听http://localhost:11434。6.1 直接调用 API# 使用 curl 调用curlhttp://localhost:11434/api/generate-d{ model: deepseek-r1:7b, prompt: 用Java写一个单例模式, stream: false }6.2 兼容 OpenAI 格式调用# 使用 OpenAI 兼容接口curlhttp://localhost:11434/v1/chat/completions\-HContent-Type: application/json\-d{ model: deepseek-r1:7b, messages: [ { role: user, content: 你好帮我解释一下什么是微服务 } ] }6.3 Java 代码调用方式一使用 OkHttp 直接调用importokhttp3.*;importcom.alibaba.fastjson2.JSON;importcom.alibaba.fastjson2.JSONObject;importjava.io.IOException;importjava.util.*;publicclassOllamaClient{privatestaticfinalStringBASE_URLhttp://localhost:11434;privatefinalOkHttpClientclientnewOkHttpClient.Builder().connectTimeout(30,java.util.concurrent.TimeUnit.SECONDS).readTimeout(120,java.util.concurrent.TimeUnit.SECONDS).build();/** * 发送对话请求 */publicStringchat(Stringmodel,StringuserMessage)throwsIOException{// 构建请求体MapString,ObjectrequestBodynewHashMap();requestBody.put(model,model);requestBody.put(stream,false);ListMapString,StringmessagesnewArrayList();MapString,StringmessagenewHashMap();message.put(role,user);message.put(content,userMessage);messages.add(message);requestBody.put(messages,messages);// 发送请求RequestBodybodyRequestBody.create(JSON.toJSONString(requestBody),MediaType.parse(application/json));RequestrequestnewRequest.Builder().url(BASE_URL/v1/chat/completions).post(body).build();try(Responseresponseclient.newCall(request).execute()){if(!response.isSuccessful()){thrownewIOException(请求失败: response.code());}StringresponseBodyresponse.body().string();JSONObjectjsonResponseJSON.parseObject(responseBody);// 解析响应returnjsonResponse.getJSONArray(choices).getJSONObject(0).getJSONObject(message).getString(content);}}publicstaticvoidmain(String[]args)throwsIOException{OllamaClientollamaClientnewOllamaClient();StringresultollamaClient.chat(deepseek-r1:7b,用Java写一个冒泡排序并解释原理);System.out.println(AI回答\nresult);}}方式二Spring Boot 集成推荐添加依赖!-- Spring AI Ollama --dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-ollama-spring-boot-starter/artifactIdversion1.0.0-M3/version/dependency配置文件application.ymlspring:ai:ollama:base-url:http://localhost:11434chat:model:deepseek-r1:7boptions:temperature:0.7# 创造性0-1越高越有创意num-predict:2048# 最大生成token数top-p:0.9Service 层packagecom.example.service;importorg.springframework.ai.chat.client.ChatClient;importorg.springframework.ai.chat.messages.UserMessage;importorg.springframework.ai.chat.model.ChatResponse;importorg.springframework.ai.chat.prompt.Prompt;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Service;importreactor.core.publisher.Flux;ServicepublicclassAiChatService{AutowiredprivateChatClientchatClient;/** * 普通对话 */publicStringchat(StringuserMessage){returnchatClient.prompt().user(userMessage).call().content();}/** * 带系统提示词的对话 */publicStringchatWithSystem(StringsystemPrompt,StringuserMessage){returnchatClient.prompt().system(systemPrompt).user(userMessage).call().content();}/** * 流式对话打字机效果 */publicFluxStringstreamChat(StringuserMessage){returnchatClient.prompt().user(userMessage).stream().content();}}Controller 层packagecom.example.controller;importcom.example.service.AiChatService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.http.MediaType;importorg.springframework.web.bind.annotation.*;importreactor.core.publisher.Flux;RestControllerRequestMapping(/ai)publicclassAiChatController{AutowiredprivateAiChatServiceaiChatService;/** * 普通对话接口 */PostMapping(/chat)publicStringchat(RequestBodyStringmessage){returnaiChatService.chat(message);}/** * 代码助手接口 */PostMapping(/code)publicStringcodeAssistant(RequestBodyStringquestion){StringsystemPrompt你是一个专业的Java开发工程师请用中文回答问题代码要规范并给出详细注释。;returnaiChatService.chatWithSystem(systemPrompt,question);}/** * 流式对话接口SSE */GetMapping(value/stream,producesMediaType.TEXT_EVENT_STREAM_VALUE)publicFluxStringstreamChat(RequestParamStringmessage){returnaiChatService.streamChat(message);}}七、安装 Open WebUI可视化界面命令行对话不够直观安装 Open WebUI获得类似 ChatGPT 的界面体验7.1 Docker 安装推荐# 安装 Open WebUI自动连接本地 Ollamadockerrun-d\-p3000:8080\--add-hosthost.docker.internal:host-gateway\-vopen-webui:/app/backend/data\--nameopen-webui\--restartalways\ghcr.io/open-webui/open-webui:main安装完成后访问http://localhost:3000注册账号即可使用。7.2 pip 安装pipinstallopen-webui open-webui serve7.3 界面功能Open WebUI 提供了非常完善的功能 多轮对话保存历史记录 Markdown 渲染代码高亮 文件上传文档问答 模型参数调整 多用户管理 多语言支持八、实用技巧8.1 自定义模型Modelfile可以给 DeepSeek 设置专属的系统提示词打造专属 AI 助手# 创建 ModelfilecatModelfileEOF FROM deepseek-r1:7b # 设置系统提示词 SYSTEM 你是一个专业的Java后端开发助手名字叫小深。 你的职责是 1. 帮助开发者解决Java编程问题 2. 提供代码审查和优化建议 3. 解释技术概念和设计模式 4. 回答Spring Boot、MyBatis、Redis等框架问题 回答要求 - 使用中文回答 - 代码要有详细注释 - 给出完整可运行的示例 - 指出潜在的问题和优化点 # 设置参数 PARAMETER temperature 0.7 PARAMETER top_p 0.9 PARAMETER num_predict 4096 EOF# 创建自定义模型ollama create java-assistant-fModelfile# 运行自定义模型ollama run java-assistant8.2 多模型切换# 同时下载多个模型ollama pull deepseek-r1:7b ollama pull llama3.2:3b ollama pull qwen2.5:7b# 查看所有模型ollama list# 按需切换使用ollama run deepseek-r1:7b# 代码问题ollama run qwen2.5:7b# 中文写作8.3 性能优化# 设置 GPU 加速NVIDIA显卡# Ollama 会自动检测并使用 GPU无需额外配置# 查看 GPU 使用情况nvidia-smi# 设置使用的 GPU 数量多卡CUDA_VISIBLE_DEVICES0,1ollama serve# 设置模型保留在内存中的时间默认5分钟OLLAMA_KEEP_ALIVE24h ollama serve九、常见问题解答Q1下载模型太慢怎么办# 方法1使用镜像加速国内# 在 hosts 文件中添加# 修改 C:\Windows\System32\drivers\etc\hosts# 添加104.21.48.1 ollama.com# 方法2手动下载后导入# 从 HuggingFace 或 ModelScope 下载 GGUF 格式模型# 然后用 Modelfile 导入Q2运行时报内存不足怎么办# 换更小的模型ollama run deepseek-r1:1.5b# 或者减少上下文长度ollama run deepseek-r1:7b --num-ctx2048Q3Windows 下 Ollama 服务没有启动# 手动启动 Ollama 服务ollama serve# 或者在任务管理器中查找 ollama.exe 进程# 也可以重新安装Q4如何让局域网内其他设备访问# 设置监听所有网卡OLLAMA_HOST0.0.0.0 ollama serve# 其他设备访问http://你的IP:11434Q5生成速度太慢怎么办换更小的模型1.5B 或 3B升级内存推荐 16GB使用 NVIDIA 显卡加速减少num_predict参数十、总结步骤操作1安装 Ollama2ollama run deepseek-r1:7b下载并运行3命令行对话或安装 Open WebUI4通过 API 集成到自己的项目5自定义 Modelfile 打造专属助手本地部署 DeepSeek 的核心价值 完全免费无限使用 数据安全不出本地⚡ 低延迟响应快️ 可定制打造专属 AI现在就动手试试吧整个安装过程不超过 30 分钟 相关资源Ollama 官网https://ollama.comOllama GitHubhttps://github.com/ollama/ollamaOpen WebUIhttps://github.com/open-webui/open-webuiDeepSeek 官网https://www.deepseek.comOllama 模型库https://ollama.com/library 相关文章推荐《Spring AI 实战Java 接入 DeepSeek 大模型》《RAG 知识库问答系统实战》《LangChain4j 开发 AI 应用入门》原创不易如果对你有帮助点个赞再走关注我持续分享 AI 开发实战经验
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2452368.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!