云计算百科
云计算领域专业知识百科平台

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

文章目录

      • 写在前面:Deepseek简介:
    • 准备工作:为什么选择2核2G ECS服务器?
    • 环境准备
        • 官方推荐配置
        • 小落配置
        • 其他环境准备:
    • DeepSeek R1 模型的获取与部署
        • 第 1 步:安装 Ollama
        • 第 2 步:下载并运行 DeepSeek-R1 模型
        • 虚拟内存
      • **步骤 1:创建新的 Swap 文件**
      • **步骤 2:验证 Swap 是否增加**
      • **步骤 3:确保 Swap 文件在系统重启后仍然启用**
    • Deepseek Web UI 部署
    • **🟢 1. 安装 Docker**
    • **🟢 2. 部署 Open WebUI**
      • **1️⃣ 拉取 WebUI 镜像**
      • **2️⃣ 运行 WebUI**
    • **🟢 3. 确保 WebUI 端口可访问**
      • **1️⃣ 检查 WebUI 是否监听 8080 端口**
      • **2️⃣ 确保防火墙开放 8080 端口**
      • **3️⃣ 确保云服务器安全组开放 8080 端口**
    • **🟢 4. 访问 WebUI**
    • **🔴 如果仍然无法访问**
      • **1️⃣ 测试服务器本地访问**
      • **2️⃣ 检查 WebUI 日志**
      • **3️⃣ 确保 WebUI 连接到 Ollama**

写在前面: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.5B 1.5B 4-6 GB GTX 1660 Ti、RTX 2060
DeepSeek-R1-Distill-Qwen-7B 7B 12-16 GB RTX 3060、RTX 3080
DeepSeek-R1-Distill-Llama-8B 8B 16-20 GB RTX 3080 Ti、RTX 3090
DeepSeek-R1-Distill-Qwen-14B 14B 24-32 GB RTX 3090、RTX 4090
DeepSeek-R1-Distill-Qwen-32B 32B 48-64 GB A100、H100
DeepSeek-R1-Distill-Llama-70B 70B 80-128 GB A100、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.5B 1.5B 1.2 GiB
DeepSeek-R1:3B 3B 2.4 GiB
DeepSeek-R1:7B 7B 5.6 GiB
DeepSeek-R1:14B 14B 11.2 GiB
DeepSeek-R1:32B 32B 25.6 GiB
DeepSeek-R1:70B 70B 56 GiB

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


步骤 1:创建新的 Swap 文件

  • 创建一个 10GB 的 Swap 文件:sudo fallocate -l 10G /swapfile2
  • 在这里插入图片描述

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

    sudo dd if=/dev/zero of=/swapfile2 bs=1G count=10

  • 设置文件权限: 确保 Swap 文件只有 root 用户可以访问:

    sudo chmod 600 /swapfile2

  • 将文件设置为 Swap: 使用以下命令将文件设置为 Swap 空间:

    sudo mkswap /swapfile2

  • 启用新的 Swap 文件:

    sudo swapon /swapfile2


  • 步骤 2:验证 Swap 是否增加

  • 检查 Swap 空间:

    free -h

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

  • 显示所有启用的 Swap 文件:

    swapon –show

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


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

  • 编辑 fstab 文件:

    sudo nano /etc/fstab

  • 在文件末尾添加以下内容:

    /swapfile2 none swap sw 0 0

  • 保存并退出。


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

    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

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 手把手教你如何在一台2核2gECS服务器跑Deepseek R1模型
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!