简介:
"本文为AI开发者揭秘如何在阿里云2核2G轻量级ECS服务器上,通过Ubuntu系统与Ollama框架实现Deepseek模型的高效部署。无需昂贵硬件,手把手教程涵盖环境配置、资源优化及避坑指南,助力初学者用极低成本在云端跑通行业领先的大语言模型,解锁轻量化服务器运行AI任务的无限可能!"
一、环境准备清单
1. 服务器
服务器:Ubuntu 24.04 64位
CPU&内存:2核(vCPU) & 2 GiB
ESSD Entry云盘:40GB
2. SSH软件
MobaXterm_Personal_21.4
3. 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工具连接云服务器
- 点击右上角的:Session
- 点击SSH
- 输入host和username点击OK
- 输入密码即可
三、安装Ollama
简介:
Ollama 是一款专注于本地化AI模型运行与管理的开源工具,其核心功能在于实现模型的轻量化部署与全生命周期维护,通过容器化封装与资源调度优化,显著降低开发者在本地环境构建私有AI服务的技术门槛。
github地址:https://github.com/ollama/ollama
a. Linux版安装
# Linxu安装 curl -fsSL https://ollama.com/install.sh | sh
b. 本地解压版
由于网速的原因,很难将Linux版本的ollama下载下载,所以本文提供了tgz文件,从而实现解压安装。
网盘地址:https://pan.baidu.com/s/1mx_3R4NVjOSC9D8BaGdYHg?pwd=9eg7
- 步骤一:在服务器上建立一个空的文件夹,用来存放ollama文件
mkdir ollama
- 适用工具将压缩包上传到服务器上
工具:WinSCP-5.21.5-Setup
地址:https://pan.baidu.com/s/1mx_3R4NVjOSC9D8BaGdYHg?pwd=9eg7
打开软件后,输入服务器的ip、用户名、密码
上传完成
# 解压命令 # tar -zxvf sudo -zxvf ollama-linux-amd64.tgz # 将解压后ollama文件夹的bin目录中的ollama复制到 /usr/bin中 cp bin/ollama /usr/bin
# 测试是否安装成功,出现命令帮助表示为ollama安装成功 ollama
c. 使用魔塔社区安装(建议使用)
官网安装教程:https://www.modelscope.cn/models/modelscope/ollama-linux
- 首先要安装支持大模型支持的环境:ModelScope Notebook
官网安装教程:https://modelscope.cn/notebook/share/ipynb/4a85790f/ollama-installation.ipynb
注意点:安装该平台需要服务器上有python和pip的环境
- 安装python和pip
sudo apt install python3 sudo apt install pip
- 安装ModelScope Notebook
# 本教程在使用此命令时,会发生错误 pip install modelscope -U
解决方案:
# 强制安装,无视风险 pip install modelscope -U --break-system-package s. # 以下为安装成功的截图
- 从ModelScope上下载Ollama安装包
modelscope download --model=modelscope/ollama-linux --local_dir ./ollama-linux --revision v0.6.2
- 安装ollama
cd ollama-linux && sudo chmod +x ./ollama-modelscope-install.sh && ./ollama-modelscope-install.sh # 查看版本号 ollama --version
- 启动ollama
systemctl start ollama.service # 查看服务活动状态 systemtcl status ollama.service systemctl is-active ollama.servie
启动Ollama(魔塔安装或直接安装可忽略此步骤)
# 检测是否启动 active 为启动;inactive为未启动 systemctl is-active ollama.servie systemctl status ollama.service # 启动 systemctl start ollama.service
# 启动命令: systemctl start ollama.service # 结果:发现并不存在ollama.service
1. 创建ollama.service文件(魔塔安装或直接安装可忽略此步骤)
- 建一个新的服务文件
/etc/systemd/system/ollama.service
切换到/etc/systemd/system
创建ollama.service
cd /etc/systemd/system vim ollama.service
- 文件内容格式
Description 是服务的简单描述。
After 指定了在哪个服务启动后启动此服务。
Type 定义了服务进程的启动类型,simple 表示启动主进程。
User 指定运行服务的用户,本文用的是root ,你也可以用其他账户。
WorkingDirectory 设置服务的工作目录,本文用的/root,你也可以切换成其他用户目录。
ExecStart 指定启动服务的命令。命令位置为:/usr/bin/ollama 中的serve
Restart 指定服务崩溃时的重启策略。
RestartSec 设置重启服务前等待的时间。
WantedBy 指定了服务所在的 target,multi-user.target 表示多用户系统。
[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
# 修改完后,切换到vim的命令格式输入:qw保存 # 步骤1: 按Esc # 步骤2::wq
- 重新加载服务单元文件
命令解释:
在修改了某个服务单元文件后,想要让更改生效,所以需要执行这个命令。需要明确的是,当用户修改的是/etc/systemd/system/下的服务文件时,应该使用daemon-reload。但如果修改的是systemd本身的配置文件比如system.conf,则需要用daemon-reexec,
sudo systemctl daemon-reload
2. 再次启动ollama(此步骤为离线包安装步骤)
# 查看服务状态 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)是通过将磁盘空间模拟为内存使用的技术,当物理内存不足时,系统会将非活跃内存页暂存至磁盘交换区。
▶ 核心运行机制
物理内存(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文件
# 使用快速分配(需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. 查询内存分配
free -h swapon --show
3. 云服务器持久化配置
- 永久生效:通过修改
/etc/fstab
,系统每次启动时会自动挂载/swapfile
作为 Swap 空间。 - 避免手动重复配:解决临时 Swap 配置(如
swapon /swapfile
)在重启后失效的问题。 - 安全性:追加写入(
-a
)确保不破坏原有配置,但仍建议提前备份/etc/fstab
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
六、下载Deepseek模型
官网地址:https://ollama.com/library/deepseek-r1:1.5b
# 下载模型并直接运行模型: ollama run deepseek-r1:1.5b