技术背景

DeepSeek是这段时间最热门的话题之一,其蒸馏模型可以实现低成本而高质量的推理,使得我们现在可以在本地小型化的硬件上也用上大模型这一AI利器。本文主要介绍通过Ollama来部署DeepSeek R1模型的方法,由于网络环境的问题,过程相比于普通的安装方案可能略有改动。

安装Ollama

以下是DeepSeek生成的关于Ollama的介绍的一个片段:

Ollama 是一个开源工具,专门用于在本地运行、管理和部署大型语言模型(LLMs,Large Language Models)。它简化了 LLMs 的安装、配置和运行流程,支持多种流行的开源模型(如 LLaMA、Mistral、DeepSeek 等),适合开发者和研究人员在本地环境中快速实验和开发。

Ollama的官网地址为:https://ollama.com,可以先尝试一下直接从官网下载适合自己本地环境的版本,Linux、Windows和MacOS都有相应的支持。如果按照官网的Linux下载方式有类似于这样的报错信息:

curl: (22) The requested URL returned error: 403

则可以按照本章节的方案试一试,如果没有出现报错,那就直接跳到下一个章节即可。这里我们将Ollama的下载和执行脚本分开进行,首先用curl下载一个安装脚本:

$ curl -fsSL https://ollama.com/install.sh -o ollama_install.sh

然后为该脚本加上一个可执行的权限:

$ chmod +x ollama_install.sh

使用如下指令,把默认的Ollama下载地址指向Github下载地址:

$ sed -i 's|https://ollama.com/download/|https://github.com/ollama/ollama/releases/download/v0.5.7/|' ollama_install.sh

这里版本号是写这篇文章时最新的版本号,读者可以自行搜索最新版本的地址进行修改,然后执行该脚本文件:

$ sh ollama_install.sh
>>> Installing ollama to /usr/local
>>> Downloading Linux amd64 bundle
############################################## 57.7%

这就开始下载了,速度也蛮快。对于Github访问有困难的选手来说,你可能需要这个:https://github.moeyy.xyz/。如果安装过程没有任何的报错,那界面输出大概是这样的:

$ sh ollama_install.sh
>>> Installing ollama to /usr/local
>>> Downloading Linux amd64 bundle
################################################################################# 100.0%
>>> Creating ollama user...
>>> Adding ollama user to render group...
>>> Adding ollama user to video group...
>>> Adding current user to ollama group...
>>> Creating ollama systemd service...
>>> Enabling and starting ollama service...
Created symlink /etc/systemd/system/default.target.wants/ollama.service → /etc/systemd/system/ollama.service.
>>> NVIDIA GPU installed.

可以验证一下安装结果:

$ ollama --help
Large language model runner Usage:
ollama [flags]
ollama [command] Available Commands:
serve Start ollama
create Create a model from a Modelfile
show Show information for a model
run Run a model
stop Stop a running model
pull Pull a model from a registry
push Push a model to a registry
list List models
ps List running models
cp Copy a model
rm Remove a model
help Help about any command Flags:
-h, --help help for ollama
-v, --version Show version information Use "ollama [command] --help" for more information about a command.

这就说明Ollama安装成功了。

下载DeepSeek模型

Ollama拉取和使用模型的操作跟Docker很像,所以如果有过使用容器的经验的话,用起来会非常顺手。首先我们访问以下Ollama官方的模型库中的DeepSeek-R1:https://ollama.com/library/deepseek-r1,选择一个适合自己本地硬件条件的版本,然后使用如下指令进行拉取:

$ ollama pull deepseek-r1:14b

然后就是漫长的等待,最终成功的示例大概是这样子:

$ ollama pull deepseek-r1:14b
pulling manifest
pulling 6e9f90f02bb3... 100% ▕██████████████████████████▏ 9.0 GB
pulling 369ca498f347... 100% ▕██████████████████████████▏ 387 B
pulling 6e4c38e1172f... 100% ▕██████████████████████████▏ 1.1 KB
pulling f4d24e9138dd... 100% ▕██████████████████████████▏ 148 B
pulling 3c24b0c80794... 100% ▕██████████████████████████▏ 488 B
verifying sha256 digest
writing manifest
success

好在ollama支持断点续传,所以即时中途中断了,也是可以重新pull的。pull完成之后,就可以直接run开始启动对话了:

$ ollama run deepseek-r1:14b
>>> who are you?
<think> </think> Greetings! I'm DeepSeek-R1, an artificial intelligence assistant created by
DeepSeek. I'm at your service and would be delighted to assist you with any
inquiries or tasks you may have. >>> 今天是几月几号?
<think>
今天是几月几号? </think> 您好,建议您联网获取时效性较强的信息;如果还有其他问题需要帮助,请随时告诉我! >>> 你支持联网获取信息吗?
<think>
嗯,用户问我是否支持联网获取信息。让我仔细想想。 首先,回顾一下对话历史,用户之前问了我是谁,我介绍了自己是DeepSeek-R1。接着他问今天
是几月几号,我解释说无法提供时效性信息,并建议他联网。现在他进一步确认我是否支持联网
。 这可能意味着他对我的功能有更深的了解需求。也许他想测试我的能力或者想知道我能做什么。
需要明确告诉他我不具备联网的能力,但可以处理其他问题。 同时,我要确保语气友好,让他知道尽管不能联网,但我会尽力帮助他解决其他问题。这样他可
能会继续提出其他请求。
</think> 目前我无法联网获取实时信息或最新的互联网内容。如果您有任何问题或需要帮助,请告诉我,
我会尽力为您解答! >>> 你能读取本地文件信息吗?
<think>
今天用户问我是否能读取本地文件信息。 回顾之前的对话,用户之前询问了日期和联网功能,现在继续测试我的功能边界。可能他想了解
我能做什么,以便判断如何与我交互。 明确告诉他无法访问本地文件,这样他就能知道数据来源仅限于已知的信息库。同时,保持友好
态度,邀请他提出其他问题。 这样有助于用户明确我的能力,避免后续的混淆或失望。
</think> 很抱歉,目前我还不支持读取本地文件信息或上传文件的功能。如果您有任何其他问题,请随时
告诉我!

中英文都可以输入。

安装Chatbox

Chatbox是一个对话工具,可以导入各种大模型平台的API,或者本地部署模型的API也都是可以的,其主页地址为:https://www.chatboxai.app/zh,可以在这里下载对应于自己本地操作系统的桌面应用。如果是Windows系统,下载之后是一个安装工具,按照提示进行安装即可。如果是Linux平台,下载下来是一个APPImage的文件,其实就是一个可执行文件,免安装的,但是下载之后需要手动配置一个可执行的选项:

安装好Chatbox之后,打开就可以配置本地ollama API下的deepseek模型了:

然后就可以启动对话:

还可以解析一些静态网页,例如我的上一篇博客,把这个链接丢进去,是可以被解析的。但是如果是一个有递归目录的,或者是有JS的网页,可能就解析不了。

至于其他格式的文件,还有待考察。

远程部署

假如我们在远程的电脑上部署了一个ollama+deepseek,想在本地电脑用chatbox调用远程ollama的API,这个也是支持的,但是要在远程电脑上进行相应的配置。先暂停ollama服务:

$ sudo systemctl stop ollama

修改配置文件:

$ sudo vi /etc/systemd/system/ollama.service

在配置文件的[Service]下加上这么两句:

Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=*"

然后保存退出,重新加载ollama服务:

$ systemctl daemon-reload
$ systemctl restart ollama

然后就可以在本地配置一个远程的ip地址和相应端口进行访问了。

资源占用

DeepSeek的一大优势就是对于资源的消耗没有那么高,就算是这个14b的模型,在两张显卡上面运行也没有什么压力,每张卡大概会占用6G不到的显存:

Thu Feb  6 09:25:54 2025
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.183.01 Driver Version: 535.183.01 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 xxxxxxxxxxxxxxx Off | 00000000:03:00.0 On | N/A |
| 30% 56C P0 99W / 125W | 6800MiB / 8192MiB | 38% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
| 1 xxxxxxxxxxxxxxx Off | 00000000:A6:00.0 Off | N/A |
| 30% 49C P0 63W / 125W | 5716MiB / 8192MiB | 38% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+

如果不配置显卡,用CPU似乎也是可以进行推理的,但是这里就不进行测试了。

总结概要

本文介绍了通过Ollama在Ubuntu Linux平台上部署DeepSeek本地大模型的方法,并且可以使用ChatBox调用本地Ollama API进行本地对话或者是远程对话。

版权声明

本文首发链接为:https://www.cnblogs.com/dechinphy/p/deepseek.html

作者ID:DechinPhy

更多原著文章:https://www.cnblogs.com/dechinphy/

请博主喝咖啡:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

参考链接

  1. https://chatboxai.app/zh/help-center/connect-chatbox-remote-ollama-service-guide

Ubuntu Linux部署DeepSeek的更多相关文章

  1. [亲测]ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问

    前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...

  2. [亲测]七步学会ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问

    前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...

  3. Linux:Ubuntu下部署Web运行环境

    Linux:Ubuntu下部署Web运行环境 本次博客将会从三部分内容详述Ubuntu系统下Web运行环境的配置: 依次是:FTP服务器的搭建.MYSQL数据库的搭建.JDK的安装等. 参考文章如下: ...

  4. Linux Ubuntu从零开始部署web环境及项目 -----快捷键设置(四)

    上篇将了如何在linux部署web项目,这篇介绍如何设置常用快捷键 一.路径快捷键设置 临时快捷键设置:  执行XShel,输入: alias 'aa=cd /etc/sysconfig'       ...

  5. Linux Ubuntu从零开始部署web环境及项目 -----tomcat+jdk+mysql (二)

    上一篇介绍如何在linux系统下搭建ssh环境 这篇开始将如何搭建web服务器 1,下载文件 在官网下载好 tomcat.jdk.mysql的linux压缩包 后缀名为.tar.gz 并通过xftp上 ...

  6. ASP.NET Linux部署(2) - MS Owin + WebApi + Mono + Jexus

    ASP.NET Linux部署(2) - MS Owin + WebApi + Mono + Jexus 本文承接我的上一篇博文: ASP.NET 5 Linux部署,那篇文章主要是针对最新的ASP. ...

  7. Linux部署ASP.NET 5 (vNext)

    原文:Linux部署ASP.NET 5 (vNext) ASP.NET 5 (vNext) Linux部署   引言 工欲善其事,必先利其器. 首先,我们先明确下以下基本概念 Linux相关 Ubun ...

  8. Ubuntu Linux中开启MySQL远程访问功能

    为了给服务器一个真实的运行环境,今天在内网中部署了一台Ubuntu Linux服务器,其中最头疼的就是MySQL的安装,apt下载更新的速度太慢了,于是就自行编译了一下MySQL的源码,具体的编译方法 ...

  9. Ubuntu(Linux) + mono + jexus +asp.net MVC3

    Ubuntu(Linux) + mono + jexus +asp.net MVC3 部署 感谢  张善友 的建议,我把 微信订餐  由nginx 改成 jexus,目前运行状况来说,确实稳定了很多, ...

  10. Linux 部署ASP.NET SQLite 应用 的坎坷之旅 附demo及源码

    Linux 部署ASP.NET SQLite 应用 的坎坷之旅.文章底部 附示例代码. 有一台闲置的Linux VPS,尝试着部署一下.NET 程序,结果就踏上了坑之路,不过最后算是完美解决问题,遂记 ...

随机推荐

  1. 外网如何通过https访问自己的服务

    前情提要 最近在接wx小游戏的sdk, 消息推送需要在wx端配置https开头的地址. 我本地开了一个http服务,我的ip为192.168.40.39, 监听端口 8091.想要达到的效果是,外部浏 ...

  2. ZSTU2023校赛

    篠塚真佑実的树 给定\(n\)个节点的树,其中\(m\)个节点存在传送门,当飞船经过存在传送门的节点的时候,可以选择无消耗地传送至其他存在传送门的节点,现在有\(q\)次询问,每次询问给出起点\(st ...

  3. 鸿蒙NEXT元服务:收藏、卡片、用户协议、隐私声明、分享链接、评分与评论

    相比应用,元服务的功能藏的比较深,这里记录一下常用功能的位置. 1.收藏(添加至我的服务) 打开元服务-->右上角四个点-->添加至我的服务-->手机滑到负一屏-->点击&qu ...

  4. vue项目中如何加载markdown

    场景 今天忽然临时接到一个需求: 就是将markdown文件直接在vue项目中进行加载,并正常显示出来. 这......,我知道是可以进行加载markdown文件的. 但是我之前没有做过,答复的是:可 ...

  5. C#中XML文件读取

    概述 首先程序访问且操作xml文件有两种模型:DOM(文档对象模型).流模型. DOM:允许编辑和更新文档,可随机访问文档中的数据,可使用XPath查询,但是必须要一次性将文档加载在内存中,对于大型的 ...

  6. Playfair密码

    Playfair密码 Playfair cipher (普莱费尔密码)一种古典对称式密码,是首个双字母替换的加密法.尽管以现在的眼光来看这种加密是非常不安全的,但是它加密的过程还是蛮有意思的. 这种加 ...

  7. element-ui el-dialog中套el-dialog被遮罩遮盖的问题

    添加 append-to-body 属性 具体见官方文档 入口

  8. taro 编译报:模块引入顺序不一致报错

    前情 最近在开发一个小程序项目,基于公司的技术栈是React,于是使用Taro来开发小程序. 坑位 在开发中经常性的报类似如下的错误,大致意思是说你引入模块的顺序在不同模块中不一致 Why? 主要是m ...

  9. uni-app onReachBottom钩子触发问题

    前情 uni-app是我很喜欢的跨平台框架,它能开发小程序,H5,APP(安卓/iOS),对前端开发很友好,自带的IDE让开发体验也很棒,公司项目就是主推uni-app. 最近有多个需求,页面滚动到底 ...

  10. 谈谈Python中的接口与抽象基类

    接触Python比较早的朋友可能都有这样的体会,Python语言虽然也支持面向对象的编程方式, 但是,不像那些纯面向对象的语言(比如Java和.NET)那样严格和规范. 随着项目的规模逐步扩大之后,想 ...