大家好!最近Deepseek大语言模型可算是火出了圈。deepseek-r1的推理模型拥有能够媲美o1的推理能力,并且更符合中文的本土化,因此得到了广泛的使用。
尽管大多数情况下,使用第三方提供的服务或者API是较好的方案,但是有些特定情况下我们仍然希望能够自己在本地或者服务器上部署一个大模型。自部署的大语言模型在某些特定方面有优势:
- 可以进行模型的进一步训练和调优
- 更容易调整使其契合自己的使用场景
- 数据隐私和保密
- 可以在一定程度上绕过模型的内限
今天,我们就来详细介绍如何在Linux服务器中部署大语言模型,我将以Deepseek开源模型为例进行介绍。本文作者为香菇肥牛,原文链接为 https://qing.su/article/llm-deepseek-linux-server.html, 转载请注明原文链接。谢谢!
1. 服务器基本要求与准备工作
众所周知,部署基于大语言模型的生成式人工智能需要较高的服务器算力要求。以Deepseek为例,完整的671b模型我们是没办法自行部署的,只能部署蒸馏模型。以下为粗略的部署建议,您可以自行参考。
CPU | GPU | RAM | 模型 |
GB6 > 2000 | 无 | > 8 GB | deepseek-r1:1.5b |
GB6 > 5000 | 无 | > 8 GB | deepseek-r1:7b |
GB6 > 8000 / GB6 > 5000 | 无 / RTX2070+ | > 16 GB | deepseek-r1:14b |
GB6 > 8000 | RTX4080+ | > 64 GB | deepseek-r1:32b |
更高的模型就不建议个人部署了,除非是家里有矿。一般来说,14b模型已经可以达到完整671b模型的80%左右的跑分了,因此没有必要追求太高的参数量。以下是官网上各蒸馏模型的测评结果。
本文的硬件环境为E5-1620v4 CPU, 32 GB DDR4 2133 ECC RAM, 无显卡。实测7b模型比较流畅,14b模型差不多每秒2-4 token, 有点卡。您可以自行衡量部署什么模型。
本文的服务器系统为Ubuntu 24.04 LTS操作系统,您也可以选择其他Linux系统。在部署开始前,请将您的域名解析到服务器的IP地址。如果您不想使用域名,也可以之后通过IP地址来访问。
请确保您的服务器上有30 GB+的磁盘容量。我们将部署Ollama + Deepseek + Open WebUI + Nginx来完整实现具有前后端的大语言模型生成式AI.
2. 安装Ollama
Ollama (https://ollama.com/) 是著名的本地模型管理器。使用ollama可以方便地安装和使用各类开源模型。我们可以直接使用一键包来安装ollama.
使用root用户执行:
1 2 3 | apt-get update && apt-get upgrade -y apt-get install python3 python3-pip python3-venv nginx python3-certbot-nginx git -y curl -fsSL https://ollama.com/install.sh | sh |
如果您的服务器上没有显卡,那么安装结束后会出现如下的警告,这是正常的,无视即可。
然后启动服务并设置开机自动启动。
1 2 | service ollama start systemctl enable ollama |
这样就安装设置好了ollama服务。
3. 下载安装deepseek开源模型
安装好ollama后,我们再来安装deepseek-r1开源模型 (https://github.com/deepseek-ai/DeepSeek-R1)。请参考第一节,如果您选择7b模型,那么执行:
1 | ollama run deepseek-r1:7b |
如果选择14b模型,那么执行:
1 | ollama run deepseek-r1:14b |
7b和14b模型分别需要5 GB及10 GB左右的数据下载,请耐心等待。下载好后,就会自动安装进入ollama的对话界面,我们可以试着和模型交流了。
可以看到,在我回复 Hello, Deepseek 之后,模型产生了完整的思考链和回复。
测试完毕后,输入/bye退出交互界面。
4. 安装部署Open WebUI
Open WebUI是著名的大语言模型AI前端,用于提供一个图形化的多功能用户交互界面。在前两节中,我们已经部署好了ollama + deepseek-r1作为我们的AI后端,接下来我们开始安装用于用户交互的前端。
Open WebUI基于Python编写。从Ubuntu 22开始,Python应用默认使用虚拟环境 (virtual environment, venv) 的方式安装和部署依赖环境,而非使用系统级的部署,这样可以避免多程序时依赖环境的冲突。因此,我们使用venv方式安装Open WebUI.
首先,新建一个用户openwebui用于运行Open WebUI. 本文中,我将把程序安装在 /opt/openwebui 目录中。
1 2 3 4 5 | mkdir /opt/openwebui adduser openwebui chown -R openwebui /opt/openwebui su openwebui cd /opt/openwebui |
然后,我们新建一个虚拟环境 (venv), 并使用VENV中的PIP安装Open WebUI.
1 2 | python3 -m venv ./openwebui-venv /opt/openwebui/openwebui-venv/bin/pip3 install open-webui |
如果没有报错,Open WebUI就安装好了。我们来写一个SystemD服务,将Open WebUI运行在后台并实现开机自动启动。
编辑文件 /etc/systemd/system/openwebui.service , 输入下面的内容。
1 2 3 4 5 6 7 8 9 10 11 12 | [Unit] Description=OpenWebUI After=network.target [Service] User=openwebui WorkingDirectory=/opt/openwebui/openwebui-venv ExecStart=/opt/openwebui/openwebui-venv/bin/open-webui serve Restart=always [Install] WantedBy=multi-user.target |
保存退出后,启动该服务并设置开机自动启动。
1 2 3 | systemctl daemon-reload service openwebui start systemctl enable openwebui |
此时,访问 http://your_ip_address:8080, 就能看到 下面的Open WebUI界面了。您可以设置一个管理员账户。
这样,Open WebUI也搭建部署完毕。
5. Nginx反代与证书设置
Open WebUI安装在了服务器的8080端口。我们更希望直接使用域名80或者443端口访问,并且设置好SSL安全证书。因此,这里将使用Nginx + Let’s Encrypt来实现简单的反代和安全证书部署。
编辑文件 /etc/nginx/conf.d/openwebui.conf , 输入下列内容。请将 ai.qing.su换为您自己的域名。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | server { listen 80; listen [::]:80; server_name ai.qing.su; access_log /var/log/nginx/openwebui_access.log; error_log /var/log/nginx/openwebui_error.log; location / { proxy_pass http://127.0.0.1:8080/; proxy_buffering off; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Connection $http_connection; } } |
重新载入Nginx.
1 2 | nginx -t service nginx reload |
最后,部署Let’s Encrypt安全证书。请将ai.qing.su换为您自己的域名。
1 | certbot --nginx --redirect -d ai.qing.su |
此时,您就可以直接访问你的域名 https://xxx.xxxx.com 来使用自己部署的deepseek-r1模型了。您也可以试着自行安装其他开源模型来使用。
至此,我们使用 ollama + deepseek-r1蒸馏模型 + Open WebUI前端 + Nginx反代,实现了全套大模型AI的搭建。如果您有任何疑问,欢迎在这里留言讨论。
本文作者为香菇肥牛,原文链接为 https://qing.su/article/llm-deepseek-linux-server.html, 转载请注明原文链接。谢谢!