前言
在当下 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
这是用于在 Linux 系统中创建新用户的命令。
该参数表示创建一个系统用户。系统用户通常用于运行系统服务或守护进程,它们一般不用于交互式登录,其 UID(用户标识符)通常小于 1000(在某些系统中可能规则略有不同)。
该参数会自动创建一个与用户名相同的用户组,并将该用户添加到这个组中。例如,这里会创建一个名为
此参数表示在创建用户时,自动为该用户创建主目录。主目录是用户在系统中的个人工作空间,通常包含用户的配置文件、文档等。
这是要创建的新用户的用户名。 2. sudo usermod -a -G ollama $(whoami)
这是一个用于修改用户账户信息的命令。可以对已存在用户的各种属性进行修改,比如用户名、用户 ID、主目录、所属用户组等。
这是一个命令替换的语法。 |
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.模型文件同级目录下创建一个文件,这里命名叫做
|
2.5模型导入完成后,查看导入的模型
ollama list |
2.6 运行导入的模型
ollama run <上一步定义的模型名称> ollama run |
到这步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 的实践,我们不仅拓宽了技术视野,更在保障数据安全与高效利用工具之间找到了平衡。相信这次分享能为有类似需求的同行们提供有价值的参考。
如果你觉得文章内容对你有所启发,不妨点赞、关注支持一下。要是你在实际操作中遇到了不一样的情况,或是有独特的见解和经验,欢迎在评论区分享交流,大家共同进步。