Ollama部署 DeepSeek-R1:70B 模型的详细步骤
1. 确认环境准备
(1) 硬件要求
- 显存需求:70B 参数的模型需要大量显存。若使用 NVIDIA T4(16GB 显存),需多卡并行(如 8 卡)或开启量化(如
q4_0、q8_0)。 - 内存需求:建议至少 64GB 系统内存。
- 存储空间:模型文件约 40-140GB(取决于量化方式)。
(2) 软件依赖
- 安装 Ollama(确保版本支持自定义模型):
curl -fsSL https://ollama.com/install.sh | sh
2. 下载 DeepSeek-R1:70B 模型
(1) 若模型已存在于本地
- 直接通过 Ollama 加载:
ollama run deepseek-r1:70b
(2) 若需自定义模型
- 创建
Modelfile定义模型参数(示例):FROM deepseek-r1:70b PARAMETER num_gpu 8 # 使用 8 卡 GPU PARAMETER num_ctx 4096 # 上下文长度 PARAMETER quantize q4_0 # 量化方式(可选) - 构建自定义模型:
ollama create deepseek-r1-custom -f Modelfile
3. 启动 Ollama 服务
(1) 启动模型
- 前台运行(调试模式):
ollama serve - 后台运行(生产环境):
systemctl start ollama
(2) 检查模型状态
- 查看已加载模型:
输出应包含:ollama listNAME ID SIZE MODIFIED deepseek-r1:70b 0c1615a8ca32 42 GB 2 hours ago
4. 配置外部访问
默认情况下,Ollama 仅监听 127.0.0.1:11434,需修改为允许外部访问:
(1) 修改监听地址
- 编辑 Ollama 环境变量:
添加:sudo vim /etc/systemd/system/ollama.service[Service] Environment="OLLAMA_HOST=0.0.0.0:11434" - 重启服务:
sudo systemctl daemon-reload sudo systemctl restart ollama
(2) 开放防火墙端口
- 开放
11434端口:sudo ufw allow 11434/tcp sudo ufw reload
(3) 验证监听状态
netstat -tuln | grep 11434
输出应为:
tcp 0 0 0.0.0.0:11434 0.0.0.0:* LISTEN
5. 调用模型 API
(1) 通过 Curl 测试
curl http://<服务器IP>:11434/api/generate -d '{"model": "deepseek-r1:70b","prompt": "你好,DeepSeek!","stream": false
}'
(2) 使用 Python 客户端
import requestsresponse = requests.post("http://<服务器IP>:11434/api/generate",json={"model": "deepseek-r1:70b","prompt": "如何部署大模型?","stream": False}
)
print(response.json()["response"])
6. 性能优化
(1) 多 GPU 并行
- 启动时指定 GPU 数量:
OLLAMA_NUM_GPU=8 ollama serve
(2) 量化模型
- 使用
q4_0或q8_0量化减少显存占用:ollama run deepseek-r1:70b --quantize q4_0
(3) 调整批处理大小
- 在
Modelfile中设置:PARAMETER num_batch 512 # 根据显存调整
7. 常见问题解决
(1) 显存不足
- 现象:
CUDA out of memory - 解决:
- 减少
num_batch。 - 启用量化(
quantize q4_0)。 - 增加 GPU 数量。
- 减少
(2) 服务无法启动
- 现象:
Failed to bind port 11434 - 解决:
- 检查端口占用:
lsof -i :11434。 - 关闭冲突进程或更换端口。
- 检查端口占用:
(3) 模型加载失败
- 现象:
Model deepseek-r1:70b not found - 解决:
- 确认模型文件路径正确。
- 重新下载模型:
ollama pull deepseek-r1:70b。
总结
通过上述步骤,你可以在 Ollama 上成功部署 DeepSeek-R1:70B 模型,并支持外部网络访问。如果遇到性能问题,优先通过量化和多 GPU 并行优化资源占用。若需进一步扩展,可结合 Kubernetes 或 Docker Swarm 实现集群化部署。
相关文章:
Ollama部署 DeepSeek-R1:70B 模型的详细步骤
1. 确认环境准备 (1) 硬件要求 显存需求:70B 参数的模型需要大量显存。若使用 NVIDIA T4(16GB 显存),需多卡并行(如 8 卡)或开启量化(如 q4_0、q8_0)。内存需求:建议至…...
PAT乙级( 1009 说反话 1010 一元多项式求导)C语言版本超详细解析
1009 说反话 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母&#x…...
学习笔记十九:K8S生成pod过程
K8S生成pod过程 流程图具体生成过程用户提交 Pod 定义API Server 处理请求调度器分配节点(Scheduling)目标节点上的 Pod 创建网络配置状态上报与监控控制器管理(Controller Manager)就绪与服务发现 关键错误场景高级特性 流程图 具…...
Qwen2-VL:增强视觉语言模型对世界任意分辨率的感知能力
1、摘要 Qwen2-VL系列是Qwen-VL模型的高级升级版本,它重新定义了传统视觉处理中预设分辨率的方法。Qwen2-VL引入了Naive Dynamic Resolution机制,使模型能够动态处理不同分辨率的图像,并将其转换为不同数量的视觉标记。这种机制使模型能够生…...
原神新版本角色牌上新 七圣召唤增添新玩法
在原神这款游戏中,5.4版本更新后七圣召唤玩法将新增2张角色牌和对应天赋牌、3张行动牌,并进行部分卡牌平衡调整,今天就给大家介绍一下。 一、角色牌【基尼奇】 1.元素战技:选一个我方角色,自身附属钩索链接并进入夜魂…...
Spring 中的 事务 隔离级别以及传播行为
1. 事务隔离级别(Isolation Level) 事务隔离级别定义了事务在并发环境下的行为,主要解决以下问题: 脏读(Dirty Read):一个事务读取了另一个未提交事务的数据。 不可重复读(Non-Re…...
为多个GitHub账户配置SSH密钥
背景 当需要同时使用多个GitHub账户(例如工作和个人账户)时,默认的SSH配置可能导致冲突。本文介绍如何通过生成不同的SSH密钥对并配置SSH客户端来管理多个账户。 操作步骤 生成SSH密钥对 为每个GitHub账户生成独立的密钥对,并指…...
OSPF基础(3):区域划分
OSPF的区域划分 1、区域产生背景 路由器在同一个区域中泛洪LSA。为了确保每台路由器都拥有对网络拓扑的一致认知,LSDB需要在区域内进行同步。OSPF域如果仅有一个区域,随着网络规模越来越大,OSPF路由器的数量越来越多,这将导致诸…...
android studio无痛入门
在Android Studio中创建和管理项目主要涉及以下几个步骤: 1. 创建新项目 打开Android Studio,点击“Start a new Android Studio project”或者“File” > “New” > “New Project”。 选择一个模板,例如“Empty Activity”࿰…...
免费windows pdf编辑工具Epdf
Epdf(完全免费) 作者:不染心 时间:2025/2/6 Github: https://github.com/dog-tired/Epdf Epdf Epdf 是一款使用 Rust 编写的 PDF 编辑器,目前仍在开发中。它提供了一系列实用的命令行选项,方便用户对 PDF …...
CNN 卷积神经网络处理图片任务 | PyTorch 深度学习实战
前一篇文章,学习率调整策略 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started CNN 卷积神经网络 CNN什么是卷积工作原理深度学习的卷积运算提取特征不同特征核的效果比较卷积核感受野共享权重池化 示例源码 …...
LeetCode 128: 最长连续序列
LeetCode 128: 最长连续序列 题目: 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums […...
大语言模型需要的可观测性数据的关联方式
可观测性数据的关联方式及其优缺点 随着现代分布式架构和微服务的普及,可观测性(Observability)已经成为确保系统健康、排查故障、优化性能的重要组成部分。有效的可观测性数据关联方式不仅能够帮助我们实时监控系统的运行状态,还…...
【韩顺平linux】部分上课笔记整理
整理一下一些韩顺平老师上课时候的笔记 课程:【小白入门 通俗易懂】韩顺平 一周学会Linux linux环境:使用阿里云服务器 笔记参考 : [学习笔记]2021韩顺平一周学会Linux 一、自定义函数 基本语法 应用实例: 计算两个参数的和…...
python调用pc的语音借口
先安装: pip install pyttsx3再运行: import pyttsx3 # 初始化语音引擎 def init_engine():engine pyttsx3.init()# 设置中文语音voices engine.getProperty(voices)for voice in voices:if chinese in voice.name.lower():engine.setProperty(voice…...
【Golang学习之旅】Golang 内存管理与 GC 机制详解
文章目录 前言1. Go 语言的内存管理的简述2. Golang 内存管理机制2.1 Go 语言的内存分配模型2.2 Go 变量分配示例2.3 Go 语言的内存池(sync.Pool) 3. Golang 垃圾回收(GC)机制详解3.1 Go 的 GC 机制概述3.2 GC 触发条件3.3 手动触…...
Kamailio 各个功能的共同点、不同点及应用场景
Kamailio 各个功能的共同点、不同点及应用场景: 功能共同点不同点应用场景SIP 注册服务器处理用户注册请求,维护用户位置信息专注于用户设备的注册和注销,维护设备位置企业内部通信系统,确保用户设备的动态注册和注销SIP 代理服务…...
Linux(CentOS)安装 Nginx
CentOS版本:CentOS 7 Nginx版本:1.24.0 两种安装方式: 一、通过 yum 安装,最简单,一键安装,全程无忧。 二、通过编译源码包安装,需具备配置相关操作。 最后附:设置 Nginx 服务开…...
string 与 wstring 的字符编码
测试代码: #include<stdio.h> #include<stdlib.h> #include<windows.h> #include <locale.h> #include <string> #include <iostream>// 函数用于计算UTF-8字符串中的字符数 int utf8_strlen(const char* str) {int len = 0;for (; *s…...
C#面试常考随笔14: 方法如何传递不定数量的参数?params关键字怎么使用?
使用params关键字,就可以像python传参那样传递多个参数,类似元组 主要作用 params 关键字的主要作用是让方法可以接受不定数量的参数,而不需要在调用方法时显式地创建数组来传递多个参数。这为方法调用提供了更大的灵活性,使得代…...
AI智能体如何利用德国铁路实时数据与历史预测优化出行决策
1. 项目概述:一个为AI智能体打造的德国铁路工具箱如果你经常在德国乘坐火车,并且对DB Navigator(德国铁路官方App)的实时信息、延误预测有需求,那么你很可能已经习惯了在出行前反复刷新App,手动计算换乘时间…...
用电脑自动玩小红书,OpenClaw+ADB让效率翻倍!附详细教程“
本文介绍了如何使用OpenClaw(运行在MacOS上)结合ADB工具实现Android手机的自动化操作。内容涵盖Android手机配置(开启开发者选项和USB调试)、MacOS环境准备(安装ADB工具和配置ADBKeyboard支持中文输入)&…...
VS2019集成libigl实战:从零到一的图形学开发环境搭建
1. 环境准备:从零搭建开发基础 第一次接触libigl和VS2019的组合时,我完全能理解那种手足无措的感觉。记得当时为了赶图形学课程作业,我和室友熬了三个通宵才把环境跑通。现在回头看,其实只要掌握几个关键步骤,整个过程…...
Next.js App Router 实战:从官方 Playground 探索现代 Web 开发最佳实践
1. 项目概述与定位最近在捣鼓 Next.js 的几个新特性,比如 Server Actions、并行路由、拦截路由这些,光看文档总觉得隔靴搔痒,想找个能上手实操、快速验证想法的环境。这时候,Vercel 官方维护的next-app-router-playground项目就成…...
收藏这篇就够了!日薪 2700 护网 HW 面试攻略,2026 护网全流程提前吃透
前言 参与hvv的事情还是要想办法规避掉很多坑的。网络安全这个行业现阶段还是主要政策驱动,后面应该是客户意识,现在用户教育成本明显比以前低太多。 1.关于HVV的一个简单流程 首先我带大家从甲方和厂商的角度来分解一下整个护网流程的核心逻辑 第一阶段…...
Claude Code环境变量配置全解析:从入门到精通
1. 项目概述:Claude Code 环境变量配置生成器如果你和我一样,是 Claude Code 的深度用户,那你一定经历过这样的时刻:面对一个复杂的开发任务,想调整一下模型的思考深度(Effort Level)来平衡成本…...
利用示波器直方图功能低成本测量信号抖动的方法与实践
1. 项目概述:用直方图低成本测量抖动在嵌入式系统、高速数字接口乃至电机控制的设计与调试中,信号抖动(Jitter)的测量和分析是一个绕不开的坎。无论是为了确保通信链路的误码率,还是为了验证时钟信号的纯净度ÿ…...
Python爬虫实战:用urllib和正则搞定E-Hentai图片批量下载(附完整代码与避坑指南)
Python高效爬虫实战:多线程下载与智能错误处理 引言 在当今数据驱动的时代,网络爬虫已成为获取互联网信息的重要工具。对于开发者而言,掌握高效的爬虫技术不仅能提升工作效率,还能解决许多实际业务场景中的数据采集需求。本文将深…...
构建个人知识管理系统:基于技能树与间隔重复的学习框架
1. 项目概述:构建个人专属的“人类技能树” 最近在折腾一个挺有意思的项目,我把它叫做“人类技能树”。这名字听起来有点科幻,但内核其实很朴素:我们每个人从小到大,从学校到职场,都在不断地学习各种技能&a…...
告别轮询与中断:用HC32F4A0的AOS+DMA实现多通道ADC的“无感”采集
HC32F4A0的AOSDMA架构:构建零CPU干预的多通道ADC采集系统 在嵌入式数据采集领域,实时性与低功耗始终是工程师需要平衡的核心矛盾。传统基于轮询或中断的ADC采集方案往往面临两大困境:要么因频繁查询浪费CPU资源,要么因中断响应延迟…...
