2025年伊始,DeepSeek的驚艷登場再次刷新了大眾對AI技術(shù)的認知邊界。隨著其迅速走紅,越來越多的AI芯片廠商紛紛宣布適配DeepSeek,展現(xiàn)出這一新興技術(shù)的強大潛力和吸引力。作為一名電子工程師,您是否已經(jīng)搶先完成了DeepSeek的本地部署?如果您還在摸索階段,不妨參考一下EEWorld論壇上眾多網(wǎng)友分享的寶貴經(jīng)驗。
Raspberry Pi 5 ——本地部署DeepSeek-R1大模型
作者:xusiwei1236
原文鏈接:https://www.eeworld.com.cn/aTmbD4S
一、DeepSeek簡介1.1 發(fā)展歷程
DeepSeek是由中國深度求索公司開發(fā)的開源大語言模型系列,其研發(fā)始于2023年,目標是為學術(shù)界和產(chǎn)業(yè)界提供高效可控的AI基礎設施。R1系列作為其里程碑版本,通過稀疏化架構(gòu)和動態(tài)計算分配技術(shù),在保持模型性能的同時顯著降低了計算資源需求。
1.2 模型特點
參數(shù)規(guī)模靈活:提供1.5B/7B/33B等多種規(guī)格
混合精度訓練:支持FP16/INT8/INT4量化部署
上下文感知優(yōu)化:動態(tài)分配計算資源至關鍵token
中文優(yōu)化:在Wudao Corpus等中文數(shù)據(jù)集上強化訓練
相比傳統(tǒng)LLM,DeepSeek-R1通過以下創(chuàng)新實現(xiàn)低資源部署:
MoE架構(gòu):專家混合層動態(tài)路由計算路徑
梯度稀疏化:反向傳播時僅更新關鍵參數(shù)
自適應量化:運行時根據(jù)硬件自動選擇最優(yōu)精度
Ollama是一個獲取和運行大語言模型的工具,官網(wǎng)的簡介是:
Get up and running with large language models. 2.2 主要功能
最常用的兩個功能是:
下載大語言模型;
運行大語言模型;
除此之外還有很多功能,通過它的命令行幫助信息可以看到:基本上可以歸納為兩類功能:
模型文件管理:下載(pull)、創(chuàng)建(create)、刪除(rm)、拷貝(cp)、查看(list)、上傳(push)、查看模型信息(show)
模型運行管理:運行(run)、啟動(serve)、停止(stop)、查看正在運行的模型(ps)
2.3 主要優(yōu)勢
其核心優(yōu)勢包括:跨平臺支持(Linux/Windows/macOS);
支持NIVIDA/AMD GPU加速,如有相應GPU推理速度快;
使用簡單,安裝軟件、下載模型、運行模型均只需要一條命令
安裝ollama非常簡單,官網(wǎng)提供了在線安裝腳本(install.sh)。
在樹莓派5上,使用如下命令即可下載在線安裝腳本并運行:
curl -fsSL https://ollama.com/install.sh | sh
運行輸出如下:
安裝后,會自動啟動服務進程:
ps -ef | grep ollama
執(zhí)行如下:
四、下載deepseek-r1:1.5b模型
安裝好了ollama之后,我們就可以使用ollama下載deepseek-r1:1.5b模型了,使用如下命令:
ollama pull deepseek-r1:1.5b
五、運行deepseek-r1:1.5b模型
下載好了deepseek-r1:1.5b模型之后,我們就可以使用ollama運行deepseek-r1:1.5b模型了,使用如下命令:
ollama run deepseek-r1:1.5b
直接運行也可以,該命令會下載模型,再運行,非常方便!
再問一個經(jīng)典的快速排序問題,回答如下:
>>> 用Python寫一個快速排序的函數(shù),實現(xiàn)對包含整數(shù)的列表進行排序
嗯,我現(xiàn)在需要幫用戶寫一個用于快速排序的Python函數(shù),而且用戶已經(jīng)給了這個任務。首先,我要理解用戶的需求是什么。他們可能是一個剛開始學編程的人,或者
需要快速完成一個簡單的排序程序。
接下來,我應該分析用戶的使用場景和身份。可能是剛接觸編程的新手,或者是需要快速實現(xiàn)一個基本功能的用戶。用戶的真實需求應該是了解如何編寫一個高效的排
序函數(shù),并且能夠運行在實際的應用中。
然后是思考用戶可能沒有明確表達出來的深層需求。比如,他們可能不僅僅想看到代碼,還希望了解排序算法的基本原理、優(yōu)缺點,或者如何優(yōu)化這個函數(shù)以提高效率
。這些都是潛在的需求,可能會幫助我更全面地回答問題。
現(xiàn)在,我要考慮用戶的編程基礎情況。快速排序作為一種高效的排序算法,通常需要理解遞歸的策略和選擇基準點的能力。因此,如果用戶的基礎較弱,可能在實現(xiàn)過
程中會遇到一些困難,比如如何正確分割數(shù)組或選擇合適的基準點。因此,我的解釋應該詳細但易于理解,確保用戶能夠逐步掌握。
我還需要思考現(xiàn)有的代碼結(jié)構(gòu)。快速排序的實現(xiàn)通常包括幾個步驟:選擇一個基準點,將數(shù)組分成兩部分,然后遞歸地對這兩部分進行排序。如果需要優(yōu)化,可以考慮
使用堆化結(jié)構(gòu)或者減少比較次數(shù),但這可能超出了用戶的需求范圍。
最后,我要確保提供的回答足夠詳細,能夠幫助用戶理解整個過程,并且代碼也盡可能簡潔,同時易于修改和擴展。這樣,即使用戶只是想測試函數(shù)的運作,也能快速
得到所需的結(jié)果。
好的!以下是用Python實現(xiàn)快速排序(QuickSort)的函數(shù),以及一個簡單的示例:
```python
def quicksort(arr):
if len(arr) <= 1:
return arr
pivot = arr[0]
rest = arr[1:]
less = []
greater = []
for num in rest:
if num < pivot:
less.append(num)
else:
greater.append(num)
return quicksort(less) + [pivot] + quicksort(greater)
def test_quicksort():
import random
arr = [3, 6, 8, 10, 1, 2, 9, 5]
random.shuffle(arr)
sorted_arr = quicksort(arr)
print("原數(shù)組:", arr)
print("快速排序后的結(jié)果:", sorted_arr)
if __name__ == "__main__":
test_quicksort()
```
### 使用說明:
1. **輸入**:一個包含整數(shù)的列表(數(shù)組)。
2. **實現(xiàn)過程**:
- 如果數(shù)組長度小于等于 1,直接返回該數(shù)組本身(作為基準情況)。
- 在選擇第一個元素作為基準點 `pivot`,然后將剩下的元素分成兩部分:一部分是所有比基準點小的元素,另一部分是比基準點大的元素。
- 對于較小的部分,繼續(xù)遞歸地應用快速排序方法,直到整個數(shù)組被排序。
3. **輸出**:
- 原始輸入數(shù)組的一個 shuffled 版本(因為示例中使用了 `random.shuffle`)。
- 快速排序后的結(jié)果。
### 示例運行結(jié)果:
```python
原數(shù)組:[1, 2, 9, 5, 3, 6, 8, 10]
快速排序后的結(jié)果:[1, 2, 3, 5, 6, 8, 9, 10]
```
這個函數(shù)實現(xiàn)了基本的快速排序?qū)崿F(xiàn),但需要根據(jù)實際需求進行調(diào)整和優(yōu)化。
total duration: 1m16.264529746s
load duration: 40.057974ms
prompt eval count: 65 token(s)
prompt eval duration: 1.097s
prompt eval rate: 59.25 tokens/s
eval count: 767 token(s)
eval duration: 1m14.622s
eval rate: 10.28 tokens/s
看起來好像沒啥問題,速度還行,達到了10 token/s。
但是,更復雜一點的問題,deepseek-r1:1.5b模型就回答不了了,比如:
>>> 水滸傳中有多少個梁山好漢?
嗯,用戶問的是《水滸傳》里有多少個梁山好漢。首先,我得回想一下梁山好漢是誰們。我記得梁山好漢主要是那些在梁山打倒的豪強人,比如黃忠、魯智深、張?zhí)鞄熯@些大人物,他們組成了一支好漢隊伍。
然后,問題來了,有多少個呢?《水滸傳》里可能沒有明確給出數(shù)字,所以可能需要根據(jù)故事來推斷或者查證。我好像聽說過梁山好漢一共有三路:第一路是黃忠、魯智深和張?zhí)鞄煟坏诙肥屈S光石、林沖、趙云;第三路是白虎、劉禪、黑虎。
算下來,每條路有三人,那應該是九個好漢。所以可能梁山好漢一共有九個人組成一支隊伍,或者可能是九個好漢在梁山打倒過。
不過,我也得考慮一下是否有其他的人加入或變動的情況。比如,在《水滸傳》中提到過,梁山好漢有三路,每路三人,加上一些后來的人物,但總體上還是九個人組成一支隊伍,也就是梁山好漢總共九人。
所以,綜合來看,梁山好漢一共有九個成員,也就是梁山好漢隊。這可能就是用戶在問的答案。
《水滸傳》中的梁山好漢一共有一路、二路、三路三個大隊伍,每組各有三人,組成總共**九個梁山好漢**(“梁山好漢”一詞)。這些好漢包括黃忠、魯智深、張?zhí)鞄煟稽S光石、林沖、趙云;白虎、劉禪、黑虎。他們在梁山打倒過許多豪強人,成為梁山的守護者和英雄。
total duration: 38.169465732s
load duration: 38.989844ms
prompt eval count: 14 token(s)
prompt eval duration: 645ms
prompt eval rate: 21.71 tokens/s
eval count: 396 token(s)
eval duration: 37.484s
eval rate: 10.56 tokens/s
這次的輸出就是在胡說了,模型太小了,考慮里面沒有相關的信息。PS:而且每次同樣這個問題,提問之后回答的還不一樣。
RDK X3上——部署deepseek
作者:YUPINLE
原文鏈接:https://www.eeworld.com.cn/aePmPm1
在RDK X3上利用ollama部署deepseek
看似本地部署deepseek很簡單,實際因為網(wǎng)絡問題,部署起來還是非常麻煩的。在這里給出我摸索出來的方法,在RDK X3上利用ollama部署deepseek,分發(fā)ip,使用chatbox同一局域網(wǎng)即可使用deepseek,獲得更好的體驗
一、手動安裝Ollama
確認系統(tǒng)信息
首先,確認你的Linux發(fā)行版和CPU架構(gòu),以便下載正確的Ollama版本。
查看Linux內(nèi)核版本:
Bash
cat /proc/version
查看CPU架構(gòu):
Bash
lscpu
查找輸出中的“Architecture”字段來確定是x86_64(適用于AMD/Intel 64位處理器)還是aarch64/arm64(適用于ARM架構(gòu)64位處理器)。
2.下載Ollama安裝包
根據(jù)你的CPU架構(gòu)從GitHub的release下載對應的.tgz安裝包。
對于aarch64/arm64架構(gòu),則下載ollama-linux-arm64.tgz。
3.安裝Ollama
確保你已經(jīng)將下載好的.tgz文件傳輸?shù)搅四繕薒inux服務器上。在vscode上直接拖動即可
使用以下命令解壓并安裝Ollama到系統(tǒng)目錄中(需要root權(quán)限):
Bash
sudo tar -C /usr -xzf ollama - linux - amd64.tgz
-C /usr指定了解壓的目標目錄,可根據(jù)實際情況調(diào)整路徑。
4.啟動Ollama服務
安裝完成后,使用以下命令啟動Ollama服務:
Bash
ollama serve
出現(xiàn)圖中這個情況說明,已經(jīng)啟動
這會在后臺啟動Ollama服務,準備好接收請求并管理模型。
5.驗證安裝
為了確保Ollama已成功安裝并正在運行,執(zhí)行以下命令來列出所有可用的模型:
Bash
ollama list
如果一切正常,你應該能看到已下載模型的列表。如果沒有下載任何模型,該命令不會返回錯誤,只會顯示一個空列表。
二、更換Ollama模型下載路徑(可以跳過)
有時需要根據(jù)實際需求更改模型文件的存儲路徑。以下是詳細步驟。
關閉Ollama服務
在更改模型路徑之前,需先停止當前運行的Ollama服務。
使用systemctl命令(如果Ollama作為服務運行):
Bash
sudo systemctl stop ollama
sudo systemctl disable ollama.service
或者手動停止服務:在運行Ollama的終端中按 Ctrl + C。
2.默認模型路徑
默認情況下,Ollama會在 /usr/share/ollama/.ollama/models 存儲模型文件。
3.創(chuàng)建新的模型存儲目錄
首先,創(chuàng)建一個新的目錄作為模型存儲路徑。例如,創(chuàng)建 /data/ollama/models 目錄:
Bash
sudo mkdir -p /data/ollama/models
4.更改目錄權(quán)限
確保新目錄的權(quán)限設置正確,允許Ollama訪問和寫入:
Bash
sudo chown -R root:root /data/ollama/models
sudo chmod -R 777 /data/ollama/models
注意:這里的用戶和組 (root:root) 應根據(jù)實際情況調(diào)整為運行Ollama服務的實際用戶和組。
5.修改Ollama服務配置文件
假設Ollama是通過systemd管理的服務,你需要編輯相應的服務配置文件來指定新的模型路徑。
編輯服務配置文件:
Bash
sudo gedit /etc/systemd/system/ollama.service
或者使用vim:
Bash
sudo vim /etc/systemd/system/ollama.service
修改配置內(nèi)容,在 [Service] 部分添加或更新以下行:
TOML
[Unit]
Description = Ollama Service
After = network - online.target
[Service]
ExecStart = /usr/local/bin/ollama serve
User = root
Group = root
Restart = always
RestartSec = 3
Environment = "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Environment = "OLLAMA_MODELS=/data/ollama/models"
[Install]
WantedBy = default.target
6.重載配置并重啟Ollama服務
重載systemd配置:
Bash
sudo systemctl daemon - reload
重新啟動Ollama服務:
Bash
sudo systemctl restart ollama.service
檢查服務狀態(tài)以確認服務是否正常運行:
Bash
sudo systemctl status ollama
7.驗證更改
檢查舊路徑 (/usr/share/ollama/.ollama/models) 是否已經(jīng)不再包含模型文件。
檢查新路徑 (/data/ollama/models) 下是否有生成的 blobs 和 manifests 文件夾,這表明模型路徑更改成功。
三、使用Ollama加載ModelScope上的GGUF模型
Ollama支持加載托管在ModelScope社區(qū)上的模型,魔搭社區(qū)是國內(nèi)的,所以拉取模型速度快更快。ollama默認是拉取huggingface上的,速度比較慢。
GGUF代表量化后的模型,根據(jù)RDK X3的性能選擇,選擇合適的量化模型,這里我使用Q2_K的,測試能做到一秒兩三個字。
https://www.modelscope.cn/docs/models/advanced-usage/ollama-integration
具體文檔在以上鏈接,可以自己查看。
一鍵運行ModelScope模型
Bash
ollama run modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF:DeepSeek-R1-Distill-Qwen-1.5B-Q2_K.gguf
出現(xiàn)以上樣式,說明模型在運行,通過top可以觀察CPU使用率
這樣就完成了deepseek的本地部署。
Jetson 利用 Ollama + Anything LLM 部署 Deepseek、LLama3
作者:LitchiCheng
原文鏈接:https://www.eeworld.com.cn/a0if5m1
安裝jetson_containers
git clone https://github.com/dusty-nv/jetson-containers
bash jetson-containers/install.sh
運行ollama容器,加載LLM
# 運行 ollama 容器,首次會下載
jetson-containers run --name ollama $(autotag ollama)
# 運行 deepseek 1.5b,首次會自動 pull 鏡像
ollama run deepseek-r1:1.5b
# 運行 deepseek 8b 占用大概內(nèi)存 6-7G
ollama run deepseek-r1:8b
# verbose 增加詳盡的輸出,會將當前的 tokens 速率等顯示出來
ollama run deepseek-r1:8b -verbose
# 列出已經(jīng)下載的 LLM
ollama list
輸出解釋
total duration: 3m31.258084877s
load duration: 29.482802ms
prompt eval count: 34 token(s)
prompt eval duration: 622ms
prompt eval rate: 54.66 tokens/s
eval count: 1417 token(s)
eval duration: 3m30.603s
eval rate: 6.73 tokens/s
“prompt eval rate(提示評估速率)”
指的是在對輸入的提示(prompt)進行評估處理時,模型每秒能夠處理的tokens數(shù)量。提示通常是用戶輸入給模型的文本內(nèi)容,用于引導模型生成特定的輸出,prompt eval rate主要衡量的是模型處理初始輸入提示部分的速度和效率。
“eval rate(評估速率)”
是模型在整體評估過程中,每秒處理tokens的數(shù)量。這里的評估過程不僅僅包括對輸入提示的處理,還涵蓋了模型根據(jù)提示進行推理、計算、生成等一系列操作的整個過程,它反映的是模型在完整的任務執(zhí)行過程中的綜合處理速度。
部署Anything LLM容器
export STORAGE_LOCATION=/opt/anythingllm
sudo mkdir -p $STORAGE_LOCATION
sudo chmod 777 -R $STORAGE_LOCATION
touch "$STORAGE_LOCATION/.env"
sudo docker run -it --rm -p 3001:3001 --cap-add SYS_ADMIN -v ${STORAGE_LOCATION}:/app/server/storage -v ${STORAGE_LOCATION}/.env:/app/server/.env -e STORAGE_DIR="/app/server/storage" ghcr.io/mintplex-labs/anything-llm
配置
歡迎將我們設為“星標”,這樣才能第一時間收到推送消息。
關注EEWorld旗下訂閱號:“機器人開發(fā)圈”
回復“DS”領取《DeepSeek:從入門到精通》完整版
掃碼添加小助手回復“機器人”
進群和電子工程師們面對面交流經(jīng)驗
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.