搞完後Podman Desktop與Mtranserver應用後
很難不注意到Podman Desktop還有個AI Lab功能
可是使用之後,其效能沒有很好
說實話就是太慢到超出我容忍的限度
看來這應該是桌機與高階顯卡才能跑吧
正當測試不出我要的速度與效果,要放棄跑離線模型時
就這麼剛好,因為這陣子Google發表了最新開源的Gemma3
就看到有網友討論到ollama這軟體也有Gemma3可以用了
ollama?又是沒聽過的東西
於是就抽空研究了一下ollama這軟體
發現支援的模型還真不少,網路上中文說明也多
就試著使用看看
用完之後的簡單結論,這就是我要的離線AI應用啊
當然不是說podman不好,或不好用
而是該這麼說,應用方向不同所造成的差異
以運轉離線AI服務這目標來說,ollama在安裝與使用上的方便性,明顯遠超podman
畢竟podman只是執行容器服務的軟體,只是不少AI離線模型會用docker跑才有關聯
就連ollama也支援使用docker的方式執行
而ollama就是為了簡單應用離線模型而產生的應用
專用,自然更稱職許多
廢話不多說,開始進入ollama的世界
ollama支援多平台,包含MacOS、Linux與Windows
我自然是只使用windows平台,以下介紹都是在windows環境中
ollama的windows安裝檔差不多1GB,還算蠻肥的
雖然這次安裝沒有中文介面,但是安裝真的很簡單
便利度的差不多就是一鍵安裝的程度
![]() |
按下Install |
![]() |
等進度條跑完 |
這樣就結束了
裝完也沒有其它複雜的設定與介面,就一個指令「ollama」用到底
只要進命令列中,執行以下命令
ollama run gemma3:4b
然後它就會從網路上下載模型檔,再執行
好了,可以用了
就這麼簡單
弄到這裡,真的是感到相恨見晚啊
更進一步描述它實際的運轉狀況是這樣
ollama預設會在背景執行網路伺服功能,預設port:11434
在windows環境下可以看到系統匣圖示有這隻可愛的羊駝就是有在運作了
我們就可以透過這個服務配上特定網址與json格式與它溝通運作
類似上次架起來的Mtranserver
後面再提這些更詳細的API說明
先說明更簡單的指令應用
指令應用如前所說,通通靠ollama當主指令
除了剛剛講的run之外
還有ollama list可以列出目前有下載的模型
ollama pull可以預先下載模型不執行
還有ollama show可以查詢模型的一些參數
指令的部分差不多就這樣
回過頭來說ollama的API介面
詳細這可以看github上的這份文件
Ollama API 使用指南(簡體中文)
簡單地說,跟上次與Mtranserver溝通很相似
只是命令上複雜了不少
所以我也仿照上次的做法,叫grok弄了個網頁介面要來跑
然後就遇到了CORS(Cross-Origin Resource Sharing)問題
簡單地說,就是網頁資料請求不在同一個網域內,造成有安全上疑慮而被禁止
會這樣是因為離線網頁是放在files://下,而ollama api服務是放在http://localhost下
這樣視為跨網域,ollama伺服服務會拒絕命令,不給存取..........
可是我用curl命令就沒這問題,這甚至連網頁都不是啊...
算了,總之再問grok解法,它給了我幾個選項
最後我用python架簡易伺服器的選項,把網頁放在伺服器上就解掉這個問題
但自己用還好,給其它人用,他們應該不會用
如果要給其它人用的工具,還是得用python寫個簡單視窗吧
最好還是用pyinstaller包起來的執行檔最佳
所以研究另一個使用API的方式,就是靠Python了,文件連結如下
在 Python 中使用 Ollama API
一樣是簡體中文說明
總之送出去給ollama伺服的指令應該還是一樣的東西
差別只是這邊是用python寫而已,回來的資料可以做更多的處理
Ollama的API最後再介紹一個東西
就是ollama有相容OpenAI的API介面,說明文件如下
OpenAI compatibility(只有英文版)
換言之,如果之前有些開發的東西,像是翻譯應用,是靠open ai的api去向Chat GPT要資料的話
那透過這個相容的部分,你可以直接對ollama進行存取而不用改任何程式
雖然我目前用不到,但這個繼承性超棒超方便的啦,真的讚
Ollama講這麼多,另一個主題Gemma3還沒講到,後半就來講講這個部分
我下載測試的有兩個模型,一個是gemma3:4b,一個是gemma3:12b
先講這兩個的差異,4b代表的是4 billion,也就是這個模型有40億個參數
所以類推,12b就是有120億個參數的模型
這參數量也反應在其容量,佔用資源與運轉速度上
4b的模型大小約3.3GB,電腦跑下去,大概吃了4gb的記憶體,在我華碩電競筆電上速度還行
12b的模型大小約8GB,電腦跑下去,吃了8GB的記憶體,跑下來明顯比4b的慢上可能有4倍
12b就慢成這樣,我就沒勇氣再挑戰最大容量20b的模型了
至於兩者間的功能差異,我主功能要的是翻譯
就用一段ESPN今年開幕戰介紹大谷翔平的英文新聞來當對比
https://www.espn.com/mlb/story/_/id/44314472/
左下是4b,右下是12b
可以感受相同提詞下12b翻出來的有更好一點
尤其大谷翔平是用漢字而不是只用Ohtani
可惜,4B的首轟比12B的本壘打翻得好
然後這代gemma3可以接收一些外部的資料,像是圖片與短影音
我也有試了一下,像是餵下圖左邊後,問gemma3:4b得到這回答
可以從外部拿資料還蠻棒的
於是我臨時想到,那餵它網址會如何?
就丟了Mtranserver的github網址給它,結果跑出下面的說明
好像可以直接餵網址資料耶
驚訝之餘,想想似乎有點不太對
冷靜拔了網路線,關了Wifi,進飛航模式再測一次
發現仍然可以產出答案,那很明顯資料不是網路來的,是唬爛來的
再用新聞的網址測一次,就是前面大谷翔平的新聞連結,然後就看到明顯的唬爛文章了
雖然很厲害的還是大谷的新聞
不過內容就完全不同了,寫的還真順啊
最後就是把這個弄進公司筆電裡跑
有點遺憾的是,4b的速度沒有家裡那台筆電來得快,跑起來跟家裡跑12b差不多
但還能跑得動就已經是對我有很大的幫助了,幫是翻完後還不用再從簡轉繁就方便很多
寫寫一些提詞工具就可以輔助做不少的事
科技的進步真棒啊,只是要追得上就是了
沒有留言:
張貼留言