技术背景

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. git 暂存区问题

    如果需要合别人的代码进来 需要暂时把自己的代码stash一下,用 git stash 放入暂存 如果需要释放出来用 git stash pop 当暂存用的越来越多,问题出现了需要清理暂存区队列,使用代 ...

  2. 分析什么情况下回有大量的垃圾回收(GC)

    在前端性能监控中,大量的垃圾回收(GC)通常是由以下原因导致的: 内存泄漏:当页面中的对象没有被正确地释放或引用计数错误时,会导致内存泄漏.当内存中的对象达到一定数量时,JavaScript 引擎会执 ...

  3. Apache Log4j2远程命令执行漏洞复现

    目录 漏洞原理 复现 漏洞修复 Apache Log4j2 是一个基于Java的日志记录工具,被广泛应用于业务系统开发,开发者可以利用该工具将程序的输入输出信息进行日志记录.Log4j2 远程代码执行 ...

  4. Java 日志缓存机制的实现

    本文介绍了 Java 日志机制,并通过扩展日志功能,实现日志缓存.同时,可以动态控制日志信息打印到日志文件的级别,从而提高了日志的灵活性,给产品质量带来更大的帮助.文章主要围绕 MemoryHandl ...

  5. Linux之SaltStack

    SaltStack是基于Python开发的一套C/S架构配置管理工具(功能不仅仅是配置管理,如使用salt-cloud配置AWS EC2实例),它的底层使用ZeroMQ消息队列pub/sub方式通信, ...

  6. 正也科技案例 | 药企使用S2P深入营销管理数据化建设

    为了获取更*的市场空间,医药健康行业正迎来一波前所未有的产业升级.尽管不少企业取得了许多成绩,但仍面临诸多挑战. 浙江某知名医药公司,在泌尿系统.心脑血管系统及眼科用药领域均拥有强势品牌.其产品更是荣 ...

  7. 要构建此项目,必须安装以下工作负载: wasm-tools

    要构建此项目,必须安装以下工作负载: wasm-tools 要安装这些工作负载,请运行以下命令: dotnet workload restore AdminAPP C:\Program Files\d ...

  8. 基于云主机的ModelArts模型训练实践,让开发环境化繁为简

    本文分享自华为云社区<[开发者空间实践]云主机安装Docker并制作自定义镜像在ModelArts平台做模型训练>,作者: 开发者空间小蜜蜂. 1.1 案例介绍 在AI业务开发以及运行的过 ...

  9. 以下哪一项是对CSMA/CA和CSMA/CD LAN控制通用的CSMA方法的适当描述?

    A.   检测载波信号并控制数据传输. B.   获得具有传输权的消息(令牌)的终端传输数据. C.   如果在数据传输过程中发生冲突,立即重新发送. D.   即使在使用传输线时也可以传输数据. = ...

  10. 史上最牛X的微信公众号!

    今天给大家推荐一个最牛逼的微信公众号,专注分享技术干货,包括但不限于Java,HTML,JavaScript,MySQL,Redis,Windows,Linux,Spring,SpringBoot,V ...