你是否想過在自己的設(shè)備上運(yùn)行自己的大型語言模型(LLMs)或視覺語言模型(VLMs)?你可能有過這樣的想法,但是一想到要從頭開始設(shè)置、管理環(huán)境、下載正確的模型權(quán)重,以及你的設(shè)備是否能處理這些模型的不確定性,你可能就猶豫了。
讓我們更進(jìn)一步。想象一下,在自己的信用卡大小的設(shè)備上——比如Raspberry Pi ——運(yùn)行自己的LLM或VLM。不可能嗎?完全不是。畢竟,我正在寫這篇帖子,所以這肯定是可能的。
確實(shí)可能,但為什么要這么做呢?
目前,在邊緣設(shè)備上運(yùn)行LLM似乎有些牽強(qiáng)。但這個(gè)特定的利基用例應(yīng)該會(huì)隨著時(shí)間的推移而成熟,我們肯定會(huì)看到一些很酷的邊緣解決方案,這些解決方案采用完全本地的生成式AI解決方案,在邊緣設(shè)備上運(yùn)行。
這也是為了探索可能性的極限。如果能在計(jì)算規(guī)模的這一極端實(shí)現(xiàn),那么在Raspberry Pi 和大型強(qiáng)大服務(wù)器GPU之間的任何級(jí)別上都可以實(shí)現(xiàn)。
傳統(tǒng)上,邊緣AI與計(jì)算機(jī)視覺緊密相連。探索在邊緣部署LLMs和VLMs為這個(gè)新興領(lǐng)域增添了一個(gè)令人興奮的維度。
最重要的是,我只是想用我最近購買的Raspberry Pi 5做一些有趣的事情。
那么,我們?nèi)绾卧赗aspberry Pi 上實(shí)現(xiàn)這一切呢?使用Ollama!
什么是Ollama?
Ollama已經(jīng)成為在個(gè)人電腦上運(yùn)行本地LLMs的最佳解決方案之一,而無需處理從頭開始設(shè)置的麻煩。只需幾條命令,就可以毫無問題地設(shè)置好一切。在我的經(jīng)驗(yàn)中,它完全自給自足,并且在多個(gè)設(shè)備和模型上都能完美運(yùn)行。它甚至提供了一個(gè)用于模型推理的REST API,因此你可以讓它在Raspberry Pi 上運(yùn)行,并從你的其他應(yīng)用程序和設(shè)備中調(diào)用它(如果你愿意的話)。
還有Ollama Web UI,這是一個(gè)與Ollama無縫運(yùn)行的漂亮的人工智能用戶界面(UI)/用戶體驗(yàn)(UX),適合那些對(duì)命令行界面感到不安的人。如果你愿意的話,它基本上是一個(gè)本地的ChatGPT界面。
Ollama和Ollama Web UI還支持VLM,如LLaVA,這為邊緣生成式AI用例打開了更多的大門。
技術(shù)要求
你只需要以下設(shè)備:
Raspberry Pi 5(或速度較慢的Raspberry Pi 4)——選擇8GB RAM版本以容納7B模型。
SD卡——至少16GB,容量越大,可容納的模型越多。預(yù)先加載有合適的操作系統(tǒng),如Raspbian Bookworm或Ubuntu。
互聯(lián)網(wǎng)連接
就像我之前提到的,在Raspberry Pi 上運(yùn)行Ollama已經(jīng)接近硬件譜系的極端。理論上,任何比Raspberry Pi 更強(qiáng)大的設(shè)備(只要它運(yùn)行Linux發(fā)行版并具有類似的內(nèi)存容量),都應(yīng)該能夠運(yùn)行Ollama和本文中討論的模型。
1. 安裝Ollama
為了在Raspberry Pi 上安裝Ollama,我們將避免使用Docker以節(jié)省資源。
在終端中運(yùn)行
curl https://ollama.ai/install.sh | sh
運(yùn)行上述命令后,你應(yīng)該會(huì)看到與下面類似的圖像。

就像輸出所說的那樣,轉(zhuǎn)到0.0.0.0:11434以驗(yàn)證Ollama是否正在運(yùn)行。由于我們使用的是Raspberry Pi ,所以看到“WARNING: No NVIDIA GPU detected. Ollama will run in CPU-only mode.”(警告:未檢測(cè)到NVIDIA GPU。Ollama將以僅CPU模式運(yùn)行。)是正常的。但是,如果你在這些說明中看到的是應(yīng)該具有NVIDIA GPU的設(shè)備,那么可能出現(xiàn)了問題。
2. 通過命令行運(yùn)行LLMs
查看官方the official Ollama model library,了解可以使用Ollama運(yùn)行的模型列表。在8GB的Raspberry Pi 上,大于7B的模型將無法容納。讓我們使用Phi-2,一個(gè)來自微軟推出的2.7B LLM,現(xiàn)在在MIT許可下。
在終端中運(yùn)行
ollama run phi
一旦你看到與下面類似的輸出,你就已經(jīng)在Raspberry Pi 上運(yùn)行了一個(gè)LLM!就是這么簡單。

以下是與Phi-2 2.7B的交互。顯然,你不會(huì)得到相同的輸出,但你應(yīng)該明白了

你可以嘗試其他模型,如Mistral、Llama-2等,只需確保SD卡上有足夠的空間存儲(chǔ)模型權(quán)重。
當(dāng)然,模型越大,輸出速度就越慢。在Phi-2 2.7B上,我可以獲得大約每秒4個(gè)令牌的速度。但是,使用Mistral 7B,生成速度下降到大約每秒2個(gè)令牌。一個(gè)令牌大致相當(dāng)于一個(gè)單詞。
以下是與Mistral 7B的交互

現(xiàn)在我們已經(jīng)在Raspberry Pi 上運(yùn)行了LLMs,但還沒有結(jié)束。終端并不適合所有人。讓我們也讓Ollama Web UI運(yùn)行起來!
3. 安裝和運(yùn)行Ollama Web UI
我們將遵循Ollama Web UI GitHub存儲(chǔ)庫official Ollama Web UI GitHub Repository(https://github.com/open-webui/open-webui)上的說明,在不使用Docker的情況下進(jìn)行安裝。它建議Node.js版本至少為20.10,因此我們將遵循這一建議。它還建議Python版本至少為3.11,但Raspbian OS已經(jīng)為我們安裝了該版本。
我們必須先安裝Node.js。在終端中運(yùn)行
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - &&\sudo apt-get install -y nodejs
對(duì)于未來的讀者,如果需要,可以將20.x更改為更合適的版本。
然后運(yùn)行下面的代碼塊。
git clone https://github.com/ollama-webui/ollama-webui.gitcd ollama-webui/
# Copying required .env filecp -RPp example.env .env
# Building Frontend Using Nodenpm inpm run build
# Serving Frontend with the Backendcd ./backendpip install -r requirements.txt --break-system-packages sh start.sh
這是對(duì)GitHub上提供的內(nèi)容的輕微修改。請(qǐng)注意,為了簡潔和方便,我們沒有遵循最佳實(shí)踐,比如使用虛擬環(huán)境,并且我們使用了--break-system-packages標(biāo)志。如果遇到找不到uvicorn之類的錯(cuò)誤,請(qǐng)重新啟動(dòng)終端會(huì)話。
如果一切順利,你應(yīng)該能夠通過Raspberry Pi 上的http://0.0.0.0:8080或同一網(wǎng)絡(luò)上的另一臺(tái)設(shè)備通過http://:8080/訪問Ollama Web UI。

創(chuàng)建賬戶并登錄后,你應(yīng)該會(huì)看到與下面類似的圖像。

如果你之前下載了一些模型權(quán)重,你應(yīng)該會(huì)在下面的下拉菜單中看到它們。如果沒有,你可以轉(zhuǎn)到設(shè)置以下載模型。可能的模型會(huì)出現(xiàn)在這里

如果你想要下載新的模型,去Settings > Models to pull models

整個(gè)界面非常簡潔直觀,因此我不會(huì)過多解釋。這確實(shí)是一個(gè)非常出色的開源項(xiàng)目。
以下是通過Ollama Web UI與Mistral 7B的交互示例
4. 通過Ollama Web UI運(yùn)行視覺語言模型(VLMs)
就像我在本文開頭提到的那樣,我們還可以運(yùn)行VLMs。讓我們運(yùn)行一個(gè)流行的開源VLM——LLaVA,它恰好也被Ollama支持。為此,請(qǐng)通過界面拉取“l(fā)lava”以下載其權(quán)重。
不幸的是,與大型語言模型(LLMs)不同,Raspberry Pi 上的設(shè)置需要相當(dāng)長的時(shí)間來解釋圖像。下面的示例大約需要6分鐘來處理。大部分時(shí)間可能是因?yàn)閳D像方面的處理尚未得到適當(dāng)優(yōu)化,但這種情況在未來肯定會(huì)改變。令牌生成速度約為每秒2個(gè)令牌。
總結(jié)
至此,我們已經(jīng)基本完成了本文的目標(biāo)。回顧一下,我們已經(jīng)成功使用Ollama和Ollama Web UI在Raspberry Pi 上運(yùn)行了Phi-2、Mistral和LLaVA等LLMs和VLMs。
我完全可以想象出幾個(gè)在Raspberry Pi (或其他小型邊緣設(shè)備)上托管本地LLMs的用例,特別是如果我們使用Phi-2等大小的模型,每秒4個(gè)令牌的速度對(duì)于某些用例中的流式傳輸來說似乎是可接受的速度。
“小型”LLMs和VLMs領(lǐng)域(考慮到其“大型”的指定,這一名稱有些自相矛盾)是一個(gè)活躍的研究領(lǐng)域,最近發(fā)布了相當(dāng)多的模型。希望這一新興趨勢(shì)能夠繼續(xù)下去,并發(fā)布更多高效且緊湊的模型!在未來幾個(gè)月里,這無疑是值得關(guān)注的。
免責(zé)聲明:作者與Ollama或Ollama Web UI沒有關(guān)聯(lián)。所有觀點(diǎn)均為作者個(gè)人的看法,不代表任何組織。
-
AI
+關(guān)注
關(guān)注
87文章
34223瀏覽量
275386 -
樹莓派
+關(guān)注
關(guān)注
121文章
1944瀏覽量
106984 -
大模型
+關(guān)注
關(guān)注
2文章
3027瀏覽量
3829
發(fā)布評(píng)論請(qǐng)先 登錄
用樹莓派“揪出”家里的耗電怪獸!

樹莓派“吉尼斯世界記錄”:將樹莓派的性能發(fā)揮到極致的項(xiàng)目!

用 樹莓派 Zero 打造的智能漫游車!

4臺(tái)樹莓派5跑動(dòng)大模型!DeepSeek R1分布式實(shí)戰(zhàn)!

樹莓派傳感器使用方法 樹莓派 Raspberry Pi 4優(yōu)缺點(diǎn)
樹莓派新推AI HAT+:26 TOPS高性能版本震撼登場(chǎng)
樹莓派gpio有什么用,樹莓派gpio接口及編程方法
什么是樹莓派?樹莓派是什么架構(gòu)的
樹莓派和單片機(jī)的優(yōu)缺點(diǎn)是什么
樹莓派的功能用途是什么
在英特爾酷睿Ultra7處理器上優(yōu)化和部署Phi-3-min模型

評(píng)論