《2核2G阿里云神操作!Ubuntu+Ollama低成本部署Deepseek模型实战》

简介:

"本文为AI开发者揭秘如何在阿里云2核2G轻量级ECS服务器上,通过Ubuntu系统与Ollama框架实现Deepseek模型的高效部署。无需昂贵硬件,手把手教程涵盖环境配置、资源优化及避坑指南,助力初学者用极低成本在云端跑通行业领先的大语言模型,解锁轻量化服务器运行AI任务的无限可能!"

一、环境准备清单

服务器

服务器:Ubuntu 24.04 64位

CPU&内存: 2 核(CPU) & 2 GiB

ESSD Entry云盘:40GB

SSH软件

MobaXterm_Personal_21.4

Deepseek版本

本教程选择:DeepSeek-R1-Distill-Qwen-1.5B

官方推荐配置

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

二、Shell工具连接云服务器

  1. 点击右上角的:Session
  2. 点击SSH
  3. 输入host和username点击OK
  4. 输入密码即可

三、安装Ollama

简介:

Ollama 是一款专注于本地化AI模型运行与管理的开源工具,其核心功能在于实现模型的轻量化部署与全生命周期维护,通过容器化封装与资源调度优化,显著降低开发者在本地环境构建私有AI服务的技术门槛。

github地址:https://github.com/ollama/ollama

Linux版安装
shell 复制代码
# Linxu安装
curl -fsSL https://ollama.com/install.sh | sh
本地解压版

由于网速的原因,很难将Linux版本的ollama下载下载,所以本文提供了tgz文件,从而实现解压安装。

网盘地址:https://pan.baidu.com/s/1mx_3R4NVjOSC9D8BaGdYHg?pwd=9eg7

  1. 步骤一:在服务器上建立一个空的文件夹,用来存放ollama文件
shell 复制代码
mkdir ollama
  1. 适用工具将压缩包上传到服务器上

工具:WinSCP-5.21.5-Setup

地址:https://pan.baidu.com/s/1mx_3R4NVjOSC9D8BaGdYHg?pwd=9eg7

打开软件后,输入服务器的ip、用户名、密码

上传完成

shell 复制代码
# 解压命令
# tar -zxvf 
sudo  -zxvf ollama-linux-amd64.tgz
# 将解压后ollama文件夹的bin目录中的ollama复制到 /usr/bin中
cp bin/ollama /usr/bin
shell 复制代码
# 测试是否安装成功,出现命令帮助表示为ollama安装成功
ollama
使用魔塔社区安装(建议使用)

官网安装教程:https://www.modelscope.cn/models/modelscope/ollama-linux

  1. 首先要安装支持大模型支持的环境:ModelScope Notebook

官网安装教程:https://modelscope.cn/notebook/share/ipynb/4a85790f/ollama-installation.ipynb

注意点:安装该平台需要服务器上有python和pip的环境

  1. 安装python和pip
shell 复制代码
sudo apt install python3
sudo apt install pip
  1. 安装ModelScope Notebook
shell 复制代码
# 本教程在使用此命令时,会发生错误
pip install modelscope -U

解决方案:

shell 复制代码
# 强制安装,无视风险
 pip install modelscope -U --break-system-package                                                                                                                              s.
# 以下为安装成功的截图
  1. 从ModelScope上下载Ollama安装包
shell 复制代码
modelscope download --model=modelscope/ollama-linux --local_dir ./ollama-linux --revision v0.6.2
  1. 安装ollama
shell 复制代码
cd ollama-linux && sudo chmod +x ./ollama-modelscope-install.sh && ./ollama-modelscope-install.sh
# 查看版本号
ollama --version
  1. 启动ollama
shell 复制代码
systemctl start ollama.service
# 查看服务活动状态
systemtcl status ollama.service
 systemctl is-active ollama.servie

启动Ollama(魔塔安装或直接安装可忽略此步骤)

shell 复制代码
# 检测是否启动   active 为启动;inactive为未启动
 systemctl is-active ollama.servie
 systemctl status ollama.service
# 启动
 systemctl start ollama.service
shell 复制代码
# 启动命令:
systemctl start ollama.service
# 结果:发现并不存在ollama.service

创建ollama.service文件(魔塔安装或直接安装可忽略此步骤)

  1. 建一个新的服务文件 /etc/systemd/system/ollama.service

切换到/etc/systemd/system

创建ollama.service

shell 复制代码
cd /etc/systemd/system
vim ollama.service
  1. 文件内容格式

Description 是服务的简单描述。

After 指定了在哪个服务启动后启动此服务。

Type 定义了服务进程的启动类型,simple 表示启动主进程。

User 指定运行服务的用户,本文用的是root ,你也可以用其他账户。

WorkingDirectory 设置服务的工作目录,本文用的/root,你也可以切换成其他用户目录。

ExecStart 指定启动服务的命令。命令位置为:/usr/bin/ollama 中的serve

Restart 指定服务崩溃时的重启策略。

RestartSec 设置重启服务前等待的时间。

WantedBy 指定了服务所在的 target,multi-user.target 表示多用户系统。

shell 复制代码
[Unit]
Description=Ollama Service
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/root
ExecStart=/usr/bin/ollama serve
Restart=on-failure
RestartSec=30

[Install]
WantedBy=multi-user.target
shell 复制代码
# 修改完后,切换到vim的命令格式输入:qw保存
# 步骤1: 按Esc
# 步骤2::wq
  1. 重新加载服务单元文件

命令解释:

在修改了某个服务单元文件后,想要让更改生效,所以需要执行这个命令。需要明确的是,当用户修改的是/etc/systemd/system/下的服务文件时,应该使用daemon-reload。但如果修改的是systemd本身的配置文件比如system.conf,则需要用daemon-reexec,

shell 复制代码
sudo systemctl daemon-reload

再次启动ollama(此步骤为离线包安装步骤)

shell 复制代码
# 查看服务状态
systemctl status ollama.service
systemctl is-active ollama.service
# 启动
systemctl start ollama.service
# 设置服务开机自启动
systemctl enable ollama.service

当前的服务状态图:(已启动)

开机自启动

四、Deepseek内存需求对比表(推理模式)

模型规模 数据类型 理论参数内存 实际显存估算(含激活值) 推荐显存配置
1.5B FP16 3 GiB 3.6-4.5 GiB 6-8 GB
Int8 1.5 GiB 1.95-2.4 GiB 4 GB+
7B FP16 14 GiB 16.8-21 GiB 24 GB
Int8 7 GiB 8.4-10.5 GiB 12 GB+
13B FP16 26 GiB 31.2-39 GiB 40 GB+
Int8 13 GiB 15.6-19.5 GiB 24 GB+
33B FP16 66 GiB 79.2-99 GiB 多卡并行
Int8 33 GiB 39.6-49.5 GiB 48 GB+
70B FP16 140 GiB 168-210 GiB 多卡并行
Int8 70 GiB 84-105 GiB 多卡并行

五、内存不足解决方案-虚拟内存

因为我们的云服务器只有2G的内存,所以将虚拟内存作为解决方案

▶ 技术定义

虚拟内存(Swap)是通过将磁盘空间模拟为内存使用的技术,当物理内存不足时,系统会将非活跃内存页暂存至磁盘交换区。

▶ 核心运行机制
bash 复制代码
物理内存(2GB) ←→ 交换分区/文件(如12GB)
           │
           └─ 内核通过分页算法自动管理热数据

虚拟内存的优劣对比
优势 劣势
内存扩展:突破物理内存限制 性能损失:磁盘I/O速度比内存慢100-1000倍
防OOM:避免程序崩溃 硬件损耗:SSD频繁写入降低寿命
成本低:无需硬件升级 安全风险:交换文件可能泄漏敏感数据
弹性配置:按需调整大小 响应延迟:交换抖动(Thrashing)导致卡顿

▶ 搭建模型使用虚拟内存优劣对比分析表
优势 劣势
** 突破硬件限制**:总可用内存达14GB(2+12) ** 性能断崖下降**:推理速度可能从3.2 tokens/s降至0.3-0.8 tokens/s
** 防OOM崩溃**:可支撑约512 tokens上下文 ** SSD寿命风险**:模型运行时可能产生15-30GB/日的写入量(SSD寿命约300TBW)
** 零硬件成本**:仅需磁盘空间 ** 响应不可靠**:P99延迟可能超过5秒
** 快速部署**:30分钟内完成配置 ** 功能阉割**:需关闭attention优化等特性

▶ 详细构建步骤(Ubuntu系统)
1. 创建12GB Swap文件
bash 复制代码
# 使用快速分配(需fallocate支持)
sudo fallocate -l 12G /swapfile
# 传统方式(若无fallocate):
# sudo dd if=/dev/zero of=/swapfile bs=1G count=12 status=progress

# 设置权限
sudo chmod 600 /swapfile

# 格式化为Swap
sudo mkswap /swapfile

# 立即启用
sudo swapon /swapfile
2. 查询内存分配
bash 复制代码
free -h
swapon --show
3. 云服务器持久化配置
  • 永久生效:通过修改 /etc/fstab,系统每次启动时会自动挂载 /swapfile作为 Swap 空间。
  • 避免手动重复配:解决临时 Swap 配置(如 swapon /swapfile)在重启后失效的问题。
  • 安全性:追加写入(-a)确保不破坏原有配置,但仍建议提前备份 /etc/fstab
bash 复制代码
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

六、下载Deepseek模型

官网地址:https://ollama.com/library/deepseek-r1:1.5b

bash 复制代码
# 下载模型并直接运行模型:
ollama run deepseek-r1:1.5b
相关推荐
DavidSoCool1 小时前
记一个阿里云CDN域名配置不当引起服务鉴权失效问题
阿里云·云计算·cdn
G皮T2 小时前
【弹性计算】异构计算云服务和 AI 加速器(四):FPGA 虚拟化技术
阿里云·fpga开发·云计算·虚拟化·fpga·异构计算·弹性计算
MobiCetus5 小时前
有关pip与conda的介绍
linux·windows·python·ubuntu·金融·conda·pip
开发小能手-roy6 小时前
ubuntu 安装mysql
mysql·ubuntu·adb
大桶矿泉水9 小时前
RK3588使用笔记:debian/ubuntu/麒麟系统下基础功能配置(不定期更新)
ubuntu·rk3588·银河麒麟
陈阳羽9 小时前
云服务器Ubuntu安装宝塔面板MongoDB修改配置文件本地连接
服务器·mongodb·ubuntu
Shier833_Ww10 小时前
目标识别与双目测距(1)环境搭建:Ubuntu+yolov5+pcl库
linux·yolo·ubuntu
开发小能手-roy13 小时前
Ubuntu 系统中安装 Nginx
数据库·nginx·ubuntu
MonkeyKing_sunyuhua13 小时前
Ubuntu 22.04 上安装阿里云 CLI(命令行工具)
linux·ubuntu·阿里云
m0_6873998413 小时前
build cinecert/asdcplib to .so or .a
c++·ubuntu·dci