技术背景

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. VUE3刷新页面报错:Uncaught SyntaxError: Unexpected token ‘<‘

    今天用vue3配置嵌套路由时,发现刷新页面后,页面变为空白,打开控制台发现报错: Uncaught SyntaxError: Unexpected token '<' 解决方法: 修改vue.c ...

  2. VulnHub-Sick0s1.1解法二shellshock漏洞

    免责声明 本博客提供的所有信息仅供学习和研究目的,旨在提高读者的网络安全意识和技术能力.请在合法合规的前提下使用本文中提供的任何技术.方法或工具.如果您选择使用本博客中的任何信息进行非法活动,您将独自 ...

  3. golang之errors包

    errors包常用方法 func Unwrap(err error) error // 获得err包含下一层错误 func Is(err, target error) bool // 判断err是否包 ...

  4. PHP之环境搭建(php7.4 + php8.1)

    之前写过几次,使用lnmp,宝塔,源码编译等方式来进行PHP环境的搭建, 随着接触的越来越多, 这里做一个总结, 常用的搭建方式 1.编译安装 之前写个几次,可以参考之前的 这次记录下多个版本PHP的 ...

  5. groovy 内存回收测试

    问题 在使用我们的开发平台时,客户怀疑我们的动态执行脚本会导致系统内存回收的问题,导致系统不响应,为此我专门针对这个问题,做一下详细的测试,看看是不是到底有什么影响. 测试步骤 1.使用编写一个控制器 ...

  6. Node.js Express 框架(2)

    1.读取文件并返回给客户端 res.sendFile(path):读取文件并返回给客户端,适合静态页面 app.get("/",function(req,res){ res.sen ...

  7. [天坑]之qrcode二维码在app内置浏览器中无法显示问题

    记录一下最近的工作难点,之一... 首先本项目使用的是qrcode-generator,市面上生成二维码的第三方库有很多qrcode.vue.qrcode.QRious等等 <div id=&q ...

  8. cockpit-325以及新版本安装和cockpit-files安装

    查看版本cockpit可安装版本,发现最新的只有310版本 sudo yum list cockpit --showduplicates Last metadata expiration check: ...

  9. ECShop开源商城与COS互通:降低本地存储负载、提升访问体验

    ECShop简介 ECShop是一款开源电子商务平台,具有简单易用.安全稳定.模块化设计等特点.它提供了完整的电子商务解决方案,包括商品管理.订单管理.支付管理.配送管理.会员管理.促销管理.数据统计 ...

  10. RabbitMQ, Windows Server 上服务总线的替代品

    RabbitMQ, Windows Server 上服务总线的替代品 https://www.robfox.io/2017/04/17/rabbitmq-alternative-service-bus ...