本地部署DeepSeek-R1保姆级教程
近期,我国一款开源模型 DeepSeek-R1以低成本和高性能震撼了全球科技界。该模型的开源性使开发者能够在本地环境中部署和运行,提供了更高的灵活性和控制力。如果你也想在本地部署 DeepSeek-R1,可以参考以下完整的教程,涵盖Mac 版本的安装、优化以及 API 调用。
1. 引言
1.1 什么是 DeepSeek-R1?
DeepSeek-R1 是由中国初创公司 DeepSeek 开发的开源人工智能模型,专注于增强推理能力。 其独特之处在于主要通过强化学习进行训练,无需大量的监督微调数据。 在数学、代码生成和自然语言推理等任务中,DeepSeek-R1 展现了卓越的性能。
与其他同类模型相比,DeepSeek-R1 具有以下优势:
-
高效的训练方法:采用纯强化学习策略,显著提升了模型的推理能力。
-
开源与可定制性:遵循 MIT 许可证开源,允许用户自由使用、修改和商用,并支持通过蒸馏技术训练其他模型,提供了高度的灵活性。
-
中文能力:与其他模型相比,DeepSeek-R1 在中文处理能力方面表现出色,尤其在古文和历史研究领域,其处理和推理能力尤为突出。 在中文任务的基准测试(如 C-Eval)中,DeepSeek-R1 的表现也显著优于其他开源模型。
1.2 为什么选择 Ollama 进行本地部署?
-
一键安装,无需复杂环境配置(相比 transformers + llama.cpp)。
-
高效量化,支持 FP16、GGUF 格式,减少显存占用。
1.3 适用人群
-
需要本地运行大模型的开发者。
-
AI 研究人员或爱好者,想要低成本测试 LLM。
-
需要离线 AI 处理任务的用户。
2. 环境要求
2.1 硬件要求
根据运行模型的参数量大小,对于硬件配置有不同的要求,请根据个人主机配置选取对应的模型。以下表格指的是推荐配置,实际的运行稳定性会根据主机后台运行的其他进程和资源占用情况波动;比如博主使用11C36GB的Mac部署了32B参数的DeepSeek仍然能够正常使用。
注:Apple Silicon芯片因GPU与CPU共享内存,因此不需要额外的显存
| 模型版本 | 参数量 | CPU | 内存 |
|---|---|---|---|
| DeepSeek-R1-1.5B | 15亿 | 2C | 8GB |
| DeepSeek-R1-7B | 70亿 | 4C | 16GB |
| DeepSeek-R1-8B | 80亿 | 4C | 16GB |
| DeepSeek-R1-14B | 140亿 | 4C | 32GB |
| DeepSeek-R1-32B | 320亿 | 6C | 64GB |
| DeepSeek-R1-70B | 700亿 | 8C | 128GB |
2.2 软件要求
-
macOS 13+(Apple Silicon 原生支持)
3. 安装并启动 Ollama
3.1 安装
-
打开终端工具,使用 Homebrew 安装,输入命令如下:
brew install ollama
3.3 启动Ollama
-
点击应用图标启动,启动完成后可以在主机菜单栏中看到一只羊驼的logo:

-
使用命令启动,命令如下:
ollama serve
启动后能够看到ollama的启动日志:

注:上述两种启动方式建议只使用一种,因为ollama进程会占用主机的11434端口,如果通过点击应用图标启动后再使用命令启动的话,命令启动的进程就会因为端口号已经被占用而导致启动失败,报错信息如下图所示:

4. 运行 DeepSeek-R1
4.1 运行 DeepSeek-R1
DeepSeek-R1的模型在ollama中的名称就是deepseek-r1,可以使用deepseek-r1:{参数量}的格式选取指定参数量的模型,比如博主运行的是32B参数量的模型,命令就是:
ollama run deepseek-r1:32b
其他参数量的模型运行示例如下:
ollama run deepseek-r1:1.5b
ollama run deepseek-r1:7b
ollama run deepseek-r1:8b
ollama run deepseek-r1:14b
ollama run deepseek-r1:32b
ollama run deepseek-r1:70b
如果是第一次运行该模型,则ollama会先下载所需的文件,下载完成后会自动运行,一切正常的话终端将进入交互模式,启动过程如下图所示:

4.2 本地体验 DeepSeek-R1模型
运行成功后即可体验模型,可以通过终端工具与模型进行对话,运行结果如下图所示:

在模型给出的回答中,<think>和</think>符号中的文本是模型的思考过程,可以让用户看到模型在回答问题时考虑到的各个方面,以便让用户对后面的提问进行查漏补缺。
5. 通过 API 调用
5.1 使用 cURL 调用
curl -X POST http://localhost:11434/api/generate -d '{"model": "deepseek-r1:32b","prompt": "你是谁","stream": false
}'
上述命令中,model参数指的是使用ollama所运行的模型,博主使用的是32b模型,所以参数是deepseek-r1:32b,prompt参数的值就是你所想问的问题,大家注意根据自己的需要进行提问,调用返回的结果中会有一些其他参数,如时间、上下文、token信息等,在使用ollama客户端体验模型时,ollama客户端自动处理了这些参数,在使用curl调用的时候这些参数就会都展示出来,调用结果如下图所示:

5.2 使用 Python 调用 DeepSeek-R1
import requests
import jsonOLLAMA_API_URL = "http://localhost:11434/api/generate"payload = {"model": "deepseek-r1:32b","prompt": "你是谁","stream": False
}response = requests.post(OLLAMA_API_URL, data=json.dumps(payload))if response.status_code == 200:result = response.json()print("模型输出:", result.get("response", "未获取到结果"))
else:print("请求失败,状态码:", response.status_code, "错误信息:", response.text)
运行结果如下图所示:

5.3 Web交互
如果你想用更友好的界面,可以安装 text-generation-webui,具体命令如下:
git clone https://github.com/oobabooga/text-generation-webui
cd text-generation-webui
pip install -r requirements.txt
python server.py --model deepseek-r1:32b
然后打开浏览器访问 http://localhost:7860 进行交互。
6. 结语
通过 Ollama 部署 DeepSeek-R1,可以快速在本地运行强大的大模型,适用于 AI 研究、代码生成、知识问答等任务。本教程提供的从 安装、运行、优化到 API 调用 的完整流程,希望对你有所帮助!🚀
相关文章:
本地部署DeepSeek-R1保姆级教程
近期,我国一款开源模型 DeepSeek-R1以低成本和高性能震撼了全球科技界。该模型的开源性使开发者能够在本地环境中部署和运行,提供了更高的灵活性和控制力。如果你也想在本地部署 DeepSeek-R1,可以参考以下完整的教程,涵盖Mac 版本…...
blender 相机参数
目录 设置相机参数: 3. 设置相机参数示例 4. 相机透视与正交 5. 额外的高级设置 设置相机参数: 设置渲染器: 外参转换函数 转换测试代码: 获取blender渲染外参: 设置相机参数: 3. 设置相机参数示…...
在GPIO控制器中,配置通用输入,读取IO口电平时,上拉和下拉起到什么作用
上下拉电阻作用 在通用输入的时候,也就是在读某个IO的电平的时候 一定要让IO口先保持一个电平状态,这样才能检测到不同电平状态。 如何保持电平状态? 1. 可以通过芯片内部的上下拉电阻,由于是弱上下拉一般不用 2. 硬件外界一个…...
Maven工程核心概念GAVP详解:从命名规范到项目协作的基石
Maven工程核心概念GAVP详解:从命名规范到项目协作的基石 一、GAVP是什么? 在Maven工程中,GAVP是四个核心属性的缩写:GroupId、ArtifactId、Version、Packaging。这组属性为项目在Maven仓库中提供了唯一标识,类似于“项…...
如何利用DeepSeek打造医疗领域专属AI助手?从微调到部署全流程解析
如何利用DeepSeek开源模型打造医疗领域专属AI助手?从微调到部署全流程解析 医疗人工智能正迎来爆发式增长,但在实际应用中,通用大模型往往存在医学知识不精准、诊断逻辑不严谨等问题。本文将手把手带您实现医疗垂直领域大模型的定制化训练&a…...
Redis|前言
文章目录 什么是 Redis?Redis 主流功能与应用 什么是 Redis? Redis,Remote Dictionary Server(远程字典服务器)。Redis 是完全开源的,使用 ANSIC 语言编写,遵守 BSD 协议,是一个高性…...
眼见着折叠手机面临崩溃,三星计划增强抗摔能力挽救它
据悉折叠手机开创者三星披露了一份专利,通过在折叠手机屏幕上增加一个抗冲击和遮光层的方式来增强折叠手机的抗摔能力,希望通过这种方式进一步增强折叠手机的可靠性和耐用性,来促进折叠手机的发展。 据悉三星和研发可折叠玻璃的企业的做法是在…...
Leetcode面试高频题分类刷题总结
https://zhuanlan.zhihu.com/p/349940945 以下8个门类是面试中最常考的算法与数据结构知识点。 排序类(Sort): 基础知识:快速排序(Quick Sort), 归并排序(Merge Sort)的…...
Vue.js `v-memo` 性能优化技巧
Vue.js v-memo 性能优化技巧 今天我们来聊聊 Vue 3.2 引入的一个性能优化指令:v-memo。如果你在处理大型列表或复杂组件时,遇到性能瓶颈,那么 v-memo 可能会成为你的得力助手。 什么是 v-memo? v-memo 是 Vue 3.2 新增的内置指…...
Altium Designer绘制原理图时画斜线的方法
第一步:检查设置是否正确 打开preferences->PCB Editor ->Interactive Routing->Interactive Routing Options->Restrict TO 90/45去掉勾选项,点击OK即可。如下图所示: 然后在划线时,按下shift空格就能够切换划线…...
在K8S中,有哪几种控制器类型?
在Kubernetes中,控制器(Controller)是用来确保实际集群状态与所需状态保持一致的关键组件。它们监控并自动调整系统以达到预期状态,以下是Kubernetes中主要的几种控制器类型: ReplicationController(RC&am…...
什么是Rust?它有什么特点?为什么要学习Rust?
什么是Rust?它有什么特点?为什么要学习Rust? 如果你是一名编程初学者,或者已经有一些编程经验但对Rust感兴趣,那么这篇文章就是为你准备的!我们将用简单易懂的语言,带你了解Rust是什么、它有什…...
Golang 并发机制-3:通道(channels)机制详解
并发编程是一种创建性能优化且响应迅速的软件的强大方法。Golang(也称为 Go)通过通道(channels)这一特性,能够可靠且优雅地实现并发通信。本文将揭示通道的概念,解释其在并发编程中的作用,并提供…...
kamailio的kamctl的使用
kamctl 是 Kamailio SIP 服务器的管理工具,用于执行各种管理任务,如启动、停止、重启 Kamailio 进程,管理用户、ACL、路由、信任的 IP 地址等。以下是对 kamctl 命令的解释及举例说明: 1. 启动、停止、重启 Kamailio start: 启动…...
HarmonyOS:ArkWeb进程
ArkWeb是多进程模型,分为应用进程、Web渲染进程、Web GPU进程、Web孵化进程和Foundation进程。 说明 Web内核没有明确的内存大小申请约束,理论上可以无限大,直到被资源管理释放。 ArkWeb进程模型图 应用进程中Web相关线程(应用唯一) 应用进程为主进程。包含网络线程、Vi…...
UI线程用到COM只能选单线程模型
无论用不用UI库,哪怕是用Win32 API手搓UI,UI线程要用COM的话,必须初始化为单线程单元(STA),即CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED);,不能用MULTITHREADTHREADED。 实际上,很多(WPF等)UI库若…...
LLMs之DeepSeek:Math-To-Manim的简介(包括DeepSeek R1-Zero的详解)、安装和使用方法、案例应用之详细攻略
LLMs之DeepSeek:Math-To-Manim的简介(包括DeepSeek R1-Zero的详解)、安装和使用方法、案例应用之详细攻略 目录 Math-To-Manim的简介 1、特点 2、一个空间推理测试—考察不同大型语言模型如何解释和可视化空间关系 3、DeepSeek R1-Zero的简介:处理更…...
在C语言中使用条件变量实现线程同步
互斥量、原子操作都是实现线程同步的方法,今日介绍使用条件变量来实现线程同步。在多线程应用中,当某个线程的执行依赖于另一个线程对数据的处理时,这个线程可能没有被阻塞,只是不断地检查某个条件是否成立了(这个条件…...
图书管理系统 Axios 源码__新增图书
目录 功能介绍 核心代码解析 源码:新增图书功能 总结 本项目基于 HTML、Bootstrap、JavaScript 和 Axios 开发,实现了图书的增删改查功能。以下是新增图书的功能实现,适合前端开发学习和项目实践。 功能介绍 用户可以通过 模态框…...
Maven全解析:从基础到精通的实战指南
概念: Maven 是跨平台的项目管理工具。主要服务基于 Java 平台的构建,依赖管理和项目信息管理项目构建:高度自动化,跨平台,可重用的组件,标准化的流程 依赖管理: 对第三方依赖包的管理…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
