欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > deepseek内网离线部署手册

deepseek内网离线部署手册

2025/4/19 8:14:08 来源:https://blog.csdn.net/xionghui2007/article/details/146320591  浏览:    关键词:deepseek内网离线部署手册

前言

在当下 AI 浪潮汹涌的时代,DeepSeek 以其卓越的性能和出色的表现,迅速成为了众多专业人士和科技爱好者热议的焦点工具。在众多AI大模型的比拼中,DeepSeek 展现出了优越的实力。然而,对于许多企业和组织而言,出于数据安全、网络稳定性以及合规性等多方面的考量,将 DeepSeek 进行内网离线部署成为了一项紧迫且极具挑战性的任务。近期,因工作需要,完成了 DeepSeek 的内网离线部署,现在将部署经验分享给大家。

1. ollama安装部署

1.1 下载ollama的部署包

https://github.com/ollama/ollama/releases/download/v0.5.8/ollama-linux-amd64.tgz

1.2 将部署包上传到服务器,然后进行解压

sudo tar -C /usr -xzf ollama-linux-amd64.tgz

提示输入当前用户的密码

[sudo] password for XXX:

然后等待解压缩文件,1-2分钟。

然后在/usr/bin目录下找到解压缩后的ollama文件

ls -lrt /usr/bin/ollama

1.3 解压后,查看ollama的版本

ollama -v

1.4 前台启动ollama

ollama serve

启动成功后记录ollama服务的端口:127.0.0.1:11434,后续关联UI服务用到。

1.5 创建 Ollama 的用户和组并且指定该用户的主目录

sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama

sudo usermod -a -G ollama $(whoami)

注释:命令解释

1. sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama

useradd

这是用于在 Linux 系统中创建新用户的命令。

-r

该参数表示创建一个系统用户。系统用户通常用于运行系统服务或守护进程,它们一般不用于交互式登录,其 UID(用户标识符)通常小于 1000(在某些系统中可能规则略有不同)。

-s /bin/false

-s 参数用于指定用户的默认登录 shell。/bin/false 是一个特殊的 shell,它在被调用时会立即退出,返回一个失败状态码。将用户的 shell 设置为 /bin/false 意味着该用户无法通过正常方式登录系统,只能用于运行特定服务。

-U

该参数会自动创建一个与用户名相同的用户组,并将该用户添加到这个组中。例如,这里会创建一个名为 ollama 的用户组,并且用户 ollama 会成为该组的成员。

-m

此参数表示在创建用户时,自动为该用户创建主目录。主目录是用户在系统中的个人工作空间,通常包含用户的配置文件、文档等。

-d /usr/share/ollama

-d 参数用于指定用户的主目录路径。这里将用户 ollama 的主目录设置为 /usr/share/ollama,而不是默认的 /home/ollama

ollama

这是要创建的新用户的用户名。

2. sudo usermod -a -G ollama $(whoami)

usermod

这是一个用于修改用户账户信息的命令。可以对已存在用户的各种属性进行修改,比如用户名、用户 ID、主目录、所属用户组等。

-a

-a 是 --append 的缩写,它的作用是将用户追加到指定的用户组中,而不是替换用户原本所属的用户组。也就是说,执行该命令后,用户会保留原有的用户组成员身份,同时新增为指定用户组的成员。

-G

-G 即 --groups,用于指定要将用户添加到的目标用户组。这里指定的目标用户组是 ollama

$(whoami)

这是一个命令替换的语法。whoami 命令的作用是显示当前登录用户的用户名。通过 $( ) 将 whoami 命令括起来,会先执行 whoami 命令并获取其输出结果(即当前用户的用户名),然后将这个结果作为 usermod 命令要操作的用户名

1.6 配置系统自启动

先在 `/etc/systemd/system/` 目录下创建一个名为 `ollama.service` 的服务文件。

sudo vim /etc/systemd/system/ollama.service

然后在打开的 `vim` 编辑器中,输入以下示例内容:

[Unit]

Description=Ollama Service

After=network-online.target

[Service]

ExecStart=/usr/bin/ollama serve

User=ollama

Group=ollama

Restart=always

RestartSec=3

Environment="PATH=$PATH"

Environment="OLLAMA_HOST=0.0.0.0:11434"

Environment="OLLAMA_ORIGINS=*"

[Install]

WantedBy=default.target

在 `vim` 编辑器中,按下 `Esc` 键,然后输入 `:wq` 并按下回车键,即可保存并退出编辑器。

1.7 系统的方式启动ollama

1,重新加载 `systemd` 管理器配置

sudo systemctl daemon-reload

2,启动服务

sudo systemctl start ollama.service

3,查看服务状态

sudo systemctl status ollama.service

4,设置服务开机自启

sudo systemctl enable ollama.service

5,重启服务

sudo systemctl restart ollama.service

6,停止服务

sudo systemctl stop ollama.service

查看服务状态,确定ollama服务处于运行中。

2. 下载模型文件

2.1 下载模型

可以访问https://www.modelscope.cn/models网址进行模型下载

2.2 下载deepseek蒸馏过的模型,找到以GGUF为结尾的模型

比如:DeepSeek-R1-Distill-Qwen-7B-GGUF:选择合适机器的模型。

https://www.modelscope.cn/models/unsloth/DeepSeek-R1-Distill-Qwen-7B-GGUF

2.3 下载好的模型,需要上传到ollama部署的服务器

2.4 导入模型

1.模型文件同级目录下创建一个文件,这里命名叫做 Modelfile,文件内写入

FROM ./DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf

2.保存文件,执行命令

ollama create <模型名称-可自定义> -f ./Modelfile

ollama create DeepSeek-R1-Distill-Qwen-7B-Q4_K_M -f ./Modelfile

2.5模型导入完成后,查看导入的模型

ollama list

2.6 运行导入的模型

ollama run <上一步定义的模型名称>

ollama run DeepSeek-R1-Distill-Qwen-7B-Q4_K_M

到这步deepseek模型已经部署好了,但是只能后台命令运行,不方便,需要再部署一个UI前台服务方便使用。

3. 部署ollama-ui(docker方式部署)

3.1 下载ollama-ui的部署包

1.找一台可以科学联网的linux服务器,且该服务部署了docker

参考网址:https://github.com/jakobhoeg/nextjs-ollama-llm-ui

2.使用docker的方式拉取镜像

docker pull jakobhoeg/nextjs-ollama-ui

3.镜像拉取成功,打包镜像

docker save -o jakobhoeg_nextjs-ollama-ui.tar jakobhoeg/nextjs-ollama-ui:latest

3.2 将上面打包好的镜像包,上传到内网环境

1.内网环境,找一台安装了docker的服务器

2.加载镜像包

docker load -i jakobhoeg_nextjs-ollama-ui.tar

3.查看镜像

docker images

3.3 启动ollama-ui

1.ollama和ollama-ui没有部署在同一台服务器 (example.com需要更改为部署了ollama的服务器ip)

docker run -d -p 3000:3000 --add-host=host.docker.internal:host-gateway -e OLLAMA_URL=http://example.com:11434 --name nextjs-ollama-ui --restart always jakobhoeg/nextjs-ollama-ui:latest

2.ollama和ollama-ui部署在同一台服务器

docker run -d -p 3000:3000 --add-host=host.docker.internal:host-gateway -e OLLAMA_URL=http://host.docker.internal:11434 --name nextjs-ollama-ui --restart always jakobhoeg/nextjs-ollama-ui:latest

--修改ollama-ui默认监听端口

先查看端口是否被占用

netstat -tuln | grep 8000

没占用的话,即可修改UI监听端口

这里 8000 是宿主机的端口,3000 是容器内部服务监听的端口。

docker run -d -p 8000:3000 --add-host=host.docker.internal:host-gateway -e OLLAMA_URL=http://host.docker.internal:11434 --name nextjs-ollama-ui --restart always jakobhoeg/nextjs-ollama-ui:latest

3.4 打开浏览器,访问ollama-ui

http://host:8000/,选择模型,对话测试下

结尾

通过这次对内网离线部署 DeepSeek 的实践,我们不仅拓宽了技术视野,更在保障数据安全与高效利用工具之间找到了平衡。相信这次分享能为有类似需求的同行们提供有价值的参考。

如果你觉得文章内容对你有所启发,不妨点赞、关注支持一下。要是你在实际操作中遇到了不一样的情况,或是有独特的见解和经验,欢迎在评论区分享交流,大家共同进步。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com