手把手教你如何在一台2核2gECS服务器跑Deepseek R1模型

写在前面:Deepseek简介:

DeepSeek是一款由国内人工智能公司研发的大型语言模型,拥有强大的自然语言处理能力,能够理解并回答问题,还能辅助写代码、整理资料和解决复杂的数学问题。一经发布,DeepSeek开发的移动应用程序超越OpenAI的ChatGPT,登顶苹果手机应用商店美国区、中国区免费应用榜单。

与OpenAI开发的ChatGPT相比,DeepSeek不仅率先实现了媲美OpenAI-o1模型的效果,还大幅降低了推理模型的成本。其新模型DeepSeek-R1以十分之一的成本达到了GPT-o1级别的表现,引发海外AI圈的广泛讨论。

在这里插入图片描述

那么,DeepSeek到底是什么?为什么能“引爆”美国科技圈?大家关注近几天的新闻就可一探究竟,本期主要带着大家一键部署自己的DeepSeek服务,一起来看看吧!

官网:https://www.deepseek.com
GitHub:https://github.com/deepseek-ai

准备工作:为什么选择2核2G ECS服务器?

因为我记得我好像有台四核八G的服务器一直没用过,这两天刷抖音逛b站都是各种博主本地部署Deepseek R1模型,我转头想想我的“破电脑”还能造吗???

那我就想着在服务器部署吧,但是服务器哪来的GPU,那不得吧CPU干冒烟,那我就想那就试试最小的1.5b参数的模型吧,刚开始就只当头一棒,卧槽,记错啦,服务器怎么成了2核2g???这还搞个头呢?

在这里插入图片描述

但是开弓哪有回头箭,硬着头皮干就完事啦!

环境准备

官方推荐配置

DeepSeek R1 模型参数和显存需求:

模型名称参数量显存需求推荐显卡型号(最低)
DeepSeek-R1-Distill-Qwen-1.5B1.5B4-6 GBGTX 1660 Ti、RTX 2060
DeepSeek-R1-Distill-Qwen-7B7B12-16 GBRTX 3060、RTX 3080
DeepSeek-R1-Distill-Llama-8B8B16-20 GBRTX 3080 Ti、RTX 3090
DeepSeek-R1-Distill-Qwen-14B14B24-32 GBRTX 3090、RTX 4090
DeepSeek-R1-Distill-Qwen-32B32B48-64 GBA100、H100
DeepSeek-R1-Distill-Llama-70B70B80-128 GBA100、H100、MI250X
小落配置

一台2核2g ECS云服务器,没啦!

其他环境准备:

操作系统:Ubuntu 22.04 或类似的 Linux 发行版。
软件:Python 3.8 或更高版本,并且您的系统上安装了 Git。
可用磁盘空间: 对于较小的模型,至少 10 GB;

话说CPU、内存就没要求吗,当然有,但我们这就配置还怎么要求,就用点魔法啦!

DeepSeek R1 模型的获取与部署

要成功运行 DeepSeek R1 模型,首先需要安装并配置好一些基础工具。这里我们将通过 Ollama 工具来下载和运行 DeepSeek 模型。Ollama 是一款专为在本地运行 AI 模型而设计的工具,它能够帮助你快速部署和管理模型,确保顺利完成 AI 服务的搭建。

第 1 步:安装 Ollama

Ollama 提供了一个简单的安装脚本,你可以通过以下命令在终端中直接安装:

curl -fsSL https://ollama.com/install.sh | sh

在这里插入图片描述

此命令将自动下载并执行 Ollama 安装脚本,在安装过程中,Ollama 会自动配置所需的服务并完成安装。安装完成后,你可以通过以下命令检查 Ollama 是否已成功安装:

ollama --version

在这里插入图片描述

如果安装成功,系统将输出版本信息。接下来,我们需要确认 Ollama 服务是否正在运行:

systemctl is-active ollama.service

在这里插入图片描述

如果输出为 active,说明 Ollama 服务正在运行,接下来就可以跳过此步骤,继续进行下一步。如果输出不是 active,则需要手动启动 Ollama 服务:

sudo systemctl start ollama.service

为了确保 Ollama 服务在系统启动时自动运行,你可以使用以下命令:

sudo systemctl enable ollama.service
第 2 步:下载并运行 DeepSeek-R1 模型

DeepSeek-R1 模型包括了基于 Qwen 和 Llama 架构微调的多个提炼模型,这些模型已经针对不同的性能需求和资源限制进行了优化。你可以根据自己系统的资源情况选择适合的模型进行部署。

在安装并启动 Ollama 后,你可以使用以下命令下载并运行 DeepSeek-R1 模型:

ollama run deepseek-r1:1.5b

!!!敲桌子!!!

这里是重点

下载报错

pulling manifest 
pulling aabd4debf0c8... 100% ▕██████████▏ 1.1 GB                         
pulling 369ca498f347... 100% ▕██████████▏  387 B                         
pulling 6e4c38e1172f... 100% ▕██████████▏ 1.1 KB                         
pulling f4d24e9138dd... 100% ▕██████████▏  148 B                         
pulling a85fe2a2e58e... 100% ▕██████████▏  487 B                         
verifying sha256 digest 
writing manifest 
success 
Error: model requires more system memory (1.6 GiB) than is available (1.3 GiB)
root@ecs-1a28:~# 
root@ecs-1a28:~# 

问题分析

内存限制:
    你的服务器只有 2 GiB 内存,对于运行像 DeepSeek-R1:7B 这样的模型来说,显然是不足的。

你的2核2g服务器大概率是无法安装运行模型的,就连最小的1.5b参数也不行!

这里我们就要用魔法啦,直接造出来10个G的虚拟内存来运行我们的模型!

虚拟内存

虚拟内存 是操作系统提供的一种内存管理机制,它使计算机能够扩展其有效内存的大小。通过虚拟内存,操作系统能够将部分内存内容(不常用的部分)从 物理内存(RAM)迁移到 硬盘 或 SSD 上,形成一个 虚拟内存空间。
虚拟内存的关键概念:

物理内存:是计算机中的实际内存(RAM)。当系统运行程序时,它会将数据加载到物理内存中。
Swap 空间(交换空间):Swap 是硬盘上的一块空间,用作扩展内存的补充。当物理内存不够用时,操作系统会将不活跃的数据或进程从物理内存移动到 Swap 空间。
分页机制:操作系统使用分页机制将内存划分为固定大小的块(页),当物理内存不足时,操作系统会将一些页面数据交换到 Swap 中。

虚拟内存的工作原理:

内存管理:当程序需要更多内存时,操作系统会检查物理内存和 Swap 空间。如果物理内存不足,操作系统会把部分内容转移到 Swap 空间,释放出更多空间给当前运行的程序。
内存交换:当程序不再频繁使用某些数据时,它会被移动到 Swap 空间。当这些数据再次需要时,操作系统会把它们从 Swap 空间读取回来。

这里我大概推算的一个模型内存占比

我们可以通过 7B 模型内存需求与参数量的比例 来估算其他模型的 内存需求。假设 1.5B 模型 需要大约 1.2 GiB 的内存(按 7B 模型的 5.6 GiB 内存比例推算),我们将继续使用这个比例来推算其他模型的内存需求。

假设内存需求与参数量呈线性关系:

7B 模型内存需求: 5.6 GiB
1.5B 模型内存需求: 5.6×0.214≈1.25.6×0.214≈1.2 GiB

推算其他模型的内存需求

模型名称参数量内存需求估算(GiB)
DeepSeek-R1:1.5B1.5B1.2 GiB
DeepSeek-R1:3B3B2.4 GiB
DeepSeek-R1:7B7B5.6 GiB
DeepSeek-R1:14B14B11.2 GiB
DeepSeek-R1:32B32B25.6 GiB
DeepSeek-R1:70B70B56 GiB

在你的 Ubuntu 22.04 服务器上,可以通过以下步骤再增加 10GB 的 Swap(虚拟内存)


步骤 1:创建新的 Swap 文件

  1. 创建一个 10GB 的 Swap 文件
    sudo fallocate -l 10G /swapfile2
    

在这里插入图片描述

如果 fallocate 不可用,可以使用以下命令代替:

sudo dd if=/dev/zero of=/swapfile2 bs=1G count=10
  1. 设置文件权限
    确保 Swap 文件只有 root 用户可以访问:

    sudo chmod 600 /swapfile2
    
  2. 将文件设置为 Swap
    使用以下命令将文件设置为 Swap 空间:

    sudo mkswap /swapfile2
    
  3. 启用新的 Swap 文件

    sudo swapon /swapfile2
    

步骤 2:验证 Swap 是否增加

  1. 检查 Swap 空间:

    free -h
    

    你应该看到总的 Swap 空间增加了 10GB。
    在这里插入图片描述

  2. 显示所有启用的 Swap 文件:

    swapon --show
    

    你应该看到 /swapfile2 在列表中。
    在这里插入图片描述


步骤 3:确保 Swap 文件在系统重启后仍然启用

  1. 编辑 fstab 文件:

    sudo nano /etc/fstab
    
  2. 在文件末尾添加以下内容:

    /swapfile2 none swap sw 0 0
    
  3. 保存并退出。


接下来就可以重新运行以下命令下载安装模型

ollama run deepseek-r1:1.5b

在这里插入图片描述

通过这一过程,你已经完成了 DeepSeek R1 模型的获取与部署,接下来可以开始进行更复杂的任务,或者根据需要进一步优化配置。

Deepseek Web UI 部署


🟢 1. 安装 Docker

如果未安装 Docker,可使用以下命令安装:

sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker
sudo usermod -aG docker $USER

验证 Docker 是否正常运行:

docker --version
docker ps

🟢 2. 部署 Open WebUI

1️⃣ 拉取 WebUI 镜像

docker pull ghcr.io/open-webui/open-webui:main

2️⃣ 运行 WebUI

使用 --network=host 让 WebUI 直接访问 Ollama:

docker run -d --network=host -v open-webui:/app/backend/data \
-e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
--name open-webui --restart always ghcr.io/open-webui/open-webui:main

参数说明:

  • --network=host 使 WebUI 能直接访问本机 127.0.0.1:11434
  • -v open-webui:/app/backend/data 持久化 WebUI 数据。
  • -e OLLAMA_BASE_URL=http://127.0.0.1:11434 指定 Ollama 地址。

检查 WebUI 是否正常运行:

docker ps

如果成功,状态应为 Up (healthy)

CONTAINER ID   IMAGE                                STATUS         PORTS   NAMES
abcd1234       ghcr.io/open-webui/open-webui:main   Up (healthy)   ...     open-webui

查看 WebUI 日志(排查错误):

docker logs open-webui --tail 50

🟢 3. 确保 WebUI 端口可访问

1️⃣ 检查 WebUI 是否监听 8080 端口

ss -tulnp | grep 8080

如果未监听,尝试重新启动 WebUI:

docker restart open-webui

2️⃣ 确保防火墙开放 8080 端口

sudo ufw allow 8080/tcp
sudo ufw status

应看到:

8080 ALLOW Anywhere

3️⃣ 确保云服务器安全组开放 8080 端口

如果使用 阿里云 / 腾讯云 / 华为云,需在 云服务器安全组 中添加 入站规则

  • 协议: TCP
  • 端口范围: 8080
  • 来源: 0.0.0.0/0

🟢 4. 访问 WebUI

在本地浏览器打开:

http://<你的服务器公网IP>:8080

如果页面加载正常,说明部署成功 🎉。

接下来就是注册登录,可以把ip发给小伙伴一起使用啦!

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


🔴 如果仍然无法访问

1️⃣ 测试服务器本地访问

在服务器上运行:

curl http://127.0.0.1:8080

如果有返回 HTML 或 JSON,说明 WebUI 在本机运行正常,问题可能是 防火墙或安全组 导致的。

2️⃣ 检查 WebUI 日志

docker logs open-webui --tail 50

如果日志中有 Connection Refused,可能是:

  • OLLAMA_BASE_URL 未正确设置。
  • WebUI 没有正确连接到 Ollama。

3️⃣ 确保 WebUI 连接到 Ollama

curl http://127.0.0.1:11434/api/tags

如果返回:

{"models":["deepseek-r1:1.5b"]}

说明 Ollama 正常运行。

如果 无法连接,尝试:

ollama serve &
docker restart open-webui
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落鱼科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值