《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.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

二、Shell工具連接云服務器

  1. 點擊右上角的:Session
  2. 點擊SSH
  3. 輸入host和username點擊OK
  4. 輸入密碼即可

三、安裝Ollama

簡介:

Ollama 是一款專注于本地化AI模型運行與管理的開源工具,其核心功能在于實現模型的輕量化部署與全生命周期維護,通過容器化封裝與資源調度優化,顯著降低開發者在本地環境構建私有AI服務的技術門檻。

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

Linux版安裝
# Linxu安裝
curl -fsSL https://ollama.com/install.sh | sh

本地解壓版

由于網速的原因,很難將Linux版本的ollama下載下載,所以本文提供了tgz文件,從而實現解壓安裝。

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

  1. 步驟一:在服務器上建立一個空的文件夾,用來存放ollama文件
mkdir ollama

  1. 適用工具將壓縮包上傳到服務器上

工具: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

使用魔塔社區安裝(建議使用)

官網安裝教程: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
sudo apt install python3
sudo apt install pip
  1. 安裝ModelScope Notebook
# 本教程在使用此命令時,會發生錯誤
pip install modelscope -U

解決方案:

# 強制安裝,無視風險pip install modelscope -U --break-system-package                                                                                                                              s.
# 以下為安裝成功的截圖

  1. 從ModelScope上下載Ollama安裝包
modelscope download --model=modelscope/ollama-linux --local_dir ./ollama-linux --revision v0.6.2

  1. 安裝ollama
cd ollama-linux && sudo chmod +x ./ollama-modelscope-install.sh && ./ollama-modelscope-install.sh
# 查看版本號
ollama --version

  1. 啟動ollama
systemctl start ollama.service
# 查看服務活動狀態
systemtcl status ollama.servicesystemctl is-active ollama.servie

啟動Ollama(魔塔安裝或直接安裝可忽略此步驟)

# 檢測是否啟動   active 為啟動;inactive為未啟動systemctl is-active ollama.serviesystemctl status ollama.service
# 啟動systemctl start ollama.service

# 啟動命令:
systemctl start ollama.service
# 結果:發現并不存在ollama.service

創建ollama.service文件(魔塔安裝或直接安裝可忽略此步驟)

  1. 建一個新的服務文件 /etc/systemd/system/ollama.service

切換到/etc/systemd/system

創建ollama.service

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 表示多用戶系統。

[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
  1. 重新加載服務單元文件

命令解釋:

在修改了某個服務單元文件后,想要讓更改生效,所以需要執行這個命令。需要明確的是,當用戶修改的是/etc/systemd/system/下的服務文件時,應該使用daemon-reload。但如果修改的是systemd本身的配置文件比如system.conf,則需要用daemon-reexec,

sudo systemctl daemon-reload

再次啟動ollama(此步驟為離線包安裝步驟)

# 查看服務狀態
systemctl status ollama.service
systemctl is-active ollama.service
# 啟動
systemctl start ollama.service
# 設置服務開機自啟動
systemctl enable ollama.service

當前的服務狀態圖:(已啟動)

開機自啟動

四、Deepseek內存需求對比表(推理模式)

模型規模數據類型理論參數內存實際顯存估算(含激活值)推薦顯存配置
1.5BFP163 GiB3.6-4.5 GiB6-8 GB
Int81.5 GiB1.95-2.4 GiB4 GB+
7BFP1614 GiB16.8-21 GiB24 GB
Int87 GiB8.4-10.5 GiB12 GB+
13BFP1626 GiB31.2-39 GiB40 GB+
Int813 GiB15.6-19.5 GiB24 GB+
33BFP1666 GiB79.2-99 GiB多卡并行
Int833 GiB39.6-49.5 GiB48 GB+
70BFP16140 GiB168-210 GiB多卡并行
Int870 GiB84-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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/73700.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73700.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73700.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【bug解決】NameError: name ‘fused_act_ext‘ is not defined

問題 使用basicsr庫做超分的時候發現NameError: name fused_act_ext is not defined這個問題,一直不斷重復的使用pip uninstall basicsr 和 BASICSR_EXTTrue pip install basicsr 發現一直沒有執行編譯過程,導致一直推理失敗 原因 之前已經安裝過basi…

Anaconda開始菜單里添加JupyterLab快捷方式

Anaconda開始菜單里添加JupyterLab快捷方式 在 Windows 系統安裝 Anaconda 后,發現開始菜單只有 Jupyter Notebook,卻找不到Jupyter Lab入口。其實這是因為最新版 Anaconda 默認未預裝 Lab 組件,本篇介紹一種添加 Jupyter Lab入口到開始菜單…

【Qt】modbus客戶端筆記

Qt 中基于 Modbus 協議的通用客戶端學習筆記 一、概述 本客戶端利用 Qt 的 QModbusTcpClient 實現與 Modbus 服務器的通信,具備連接、讀寫寄存器、心跳檢測、自動重連等功能,旨在提供一個可靠且易用的 Modbus 客戶端框架,方便在不同項目中集…

解決Vmware 運行虛擬機Ubuntu22.04卡頓、終端打字延遲問題

親測可用 打開虛擬機設置,關閉加速3D圖形 (應該是顯卡驅動的問題,不知道那個版本的驅動不會出現這個問題,所以干脆把加速關了)

【網絡】Socket套接字

目錄 一、端口號 二、初識TCP/UDP協議 三、網絡字節序 3.1 概念 3.2 常用API 四、Socket套接字 4.1 概念 4.2 常用API (1)socket (2)bind sockaddr結構 (3)listen (4)a…

內聯函數/函數重載/函數參數缺省

一、內聯函數 為了減少函數調用的開銷 在函數定義前加“inline”關鍵字,即可定義內聯函數 二、函數重載 1.名字相同 2.參數個數或者參數類型不同 編譯器根據調用語句實參的個數和類型判斷應該調用哪個函數 三、函數的缺省參數 定義函數的時候可以讓最右邊的連…

基于神經網絡的文本分類的設計與實現

標題:基于神經網絡的文本分類的設計與實現 內容:1.摘要 在信息爆炸的時代,大量文本數據的分類處理變得至關重要。本文旨在設計并實現一種基于神經網絡的文本分類系統。通過構建合適的神經網絡模型,采用公開的文本數據集進行訓練和測試。在實驗中&#x…

Baklib內容中臺的核心定位是什么?

構建企業級知識中樞 在數字化轉型趨勢下,Baklib內容中臺通過構建企業級知識中樞,實現了從碎片化信息到體系化資產的躍遷。其核心能力體現為對多源內容的智能聚合與結構化存儲,支持從文檔、圖片到視頻的全格式整合,并通過語義標簽…

藍耘平臺API深度剖析:如何高效實現AI應用聯動

目錄 一、藍耘平臺簡介 1.1 藍耘通義大模型 1.2 藍耘云計算資源 1.3 藍耘API與微服務 二、 藍耘平臺應用聯動場景 2.1 數據采集與預處理聯動 2.2 模型推理與后端服務聯動 2.3 跨平臺聯動 三、藍耘平臺注冊體驗功能 3.1 注冊 3.2 體驗藍耘MaaS平臺如何使用海螺AI生成視頻…

《大語言模型賦能證券業開發安全:海云安技術方案在上交所專刊發表》

近日,海云安《大語言模型在證券業開發安全領域的探索與實踐》技術方案經過上海證券交易所(以下簡稱”上交所“)行業專家評審后正式收錄于《交易技術前沿——網絡安全專刊(2025年第1期 總第61期)》。 證券信息技術研究…

第三課:Stable Diffusion圖生圖入門及應用

文章目錄 Part01 圖生圖原理Part02 圖生圖基本流程Part03 隨機種子作用解析Part04 圖生圖的拓展應用 Part01 圖生圖原理 當提示詞不能足夠表達用戶需求的時候,加入圖片能讓AI更好的理解你的想法圖片上的像素信息會在加噪和去噪的過程中,作為一種特征反映…

將網絡安全和第三方風險管理與業務目標相結合

在網絡安全風險領域,我們經常遇到與企業語言不通的問題。這可能導致網絡安全風險管理計劃得不到支持。當發現網絡安全風險時,困難在于以符合組織語言和目標的方式來表達它。 第三方風險屬于另一個灰色地帶。在組織內部,許多利益相關者&#…

使用Github項目nghttp3的樣例學習HTTP/3

文章目錄 前言一、HTTP3測試 in Ubuntu1.1. 基本軟件1.2. gcc/g1.2.1. Ubuntu221.2.2. Ubuntu201.2.2.1. 必備庫1.2.2.1.1. gmp1.2.2.1.2. mpfr1.2.2.1.3. mpc 1.2.2.2. 安裝 1.3. libev > 4.11(備用)1.3.1. 安裝1.3.2. 測試 1.4. nghttp31.5. ngtcp2…

uniapp 在app上 字體如何不跟著系統字體大小變

在UniApp開發中,默認情況下App的字體可能會跟隨系統字體設置而變化。如果你希望保持固定的字體樣式,不隨系統字體設置改變,可以采用以下幾種方法: 方法一:全局CSS設置 在App.vue的樣式中添加以下CSS: /*…

跨域問題的解決方案

一、跨域問題的本質 1.1 同源策略的三要素 瀏覽器的同源策略(Same-Origin Policy)要求請求的 協議、域名、端口 完全一致,否則視為跨域: 協議不同:http 與 https域名不同:a.com 與 b.com端口不同&#x…

Linux 上使用 Docker 部署 Kafka 集群

在 Linux 上使用 Docker 部署 Kafka 集群的步驟如下 1. 準備工作 確保已安裝: Docker Docker Compose 2. 創建 Docker Compose 文件 (docker-compose.yml) version: 3.8services:zookeeper:image: wurstmeister/zookeepercontainer_name: zookeeperports:- &quo…

【性能優化點滴】odygrd/quill 中一個簡單的標記位作用--降低 IO 次數

在 StreamSink 類中,成員變量 _write_occurred 的作用是 跟蹤自上次刷新(Flush)以來是否有寫入操作發生,其核心目的是 優化 I/O 性能。以下是詳細解析: _write_occurred 的作用 1. 避免不必要的刷新(Flush…

Ubuntu Linux安裝PyQt5并配置Qt Designer

一 安裝 PyQt5 借助 apt 包管理器來安裝 PyQt5 及其相關的開發工具: sudo apt install python3-pyqt5 pyqt5-dev-tools 假如報錯, You might want to run apt --fix-broken install to correct these. 直接執行: sudo apt --fix-…

2025清華大學:DeepSeek教程全集(PDF+視頻精講,共10份).zip

一、資料列表 第一課:Deepseek基礎入門 第二課:DeepSeek賦能職場 第三課:普通人如何抓住DeepSeek紅利 第四課:讓科研像聊天一樣簡單 第五課:DeepSeek與AI幻覺 第六課:基于DeepSeek的AI音樂詞曲的創造法 第…

容器C++

string容器 string構造函數 #include<iostream> using namespace std; #include<string.h> void test01() {string s1;//默認構造const char* str "hello world";string s2(str);//傳入char*cout << "s2" << s2 << endl;s…