Google Colab 跑 Ollama + Gradio:CPU 小模型實驗與限制
在 Google Colab 的 CPU runtime 試跑 Ollama、Qwen2.5 0.5B 或 Llama 3.2 1B,再用 Gradio 做一個聊天介面,確實是理解本機模型 API 的快速方法。但它不是長期自託管服務:Colab runtime 會中斷、資源與時限會變動,而 Gradio 在 Colab 產生的分享連結可能公開可用。把「短暫實驗」和「可對外服務」分開,才能避免測試 notebook 被誤當成正式系統。
先分清楚:Colab 實驗不等於自託管
「自託管」通常表示你控制運算主機、模型檔、網路入口、資料保留、身分驗證與更新節奏。Colab 則是受管的互動式 notebook 環境;官方說明其資源、閒置逾時與 VM 壽命會依可用性與使用模式動態調整,免費層 runtime 一般最長可運行約 12 小時,但不保證。
更重要的是,Colab 的受管 runtime 不應被當成一般 Web hosting。官方 FAQ 列出不允許的檔案/媒體 hosting 等服務型用途,也說明免費層若主要以 Web UI 進行內容生成,runtime 可能隨時被終止。因此,把 Gradio 放在 Colab 的正確定位是短時間、互動式的個人實驗,而不是拿來提供長期公開聊天網站。
Qwen2.5 0.5B 與 Llama 3.2 1B:小模型能做什麼?
小模型的優勢是下載量、記憶體需求與測試成本相對低,適合驗證「整條流程是否通」:模型能否被拉取、Ollama API 是否回應、聊天歷史是否被正確傳入、Gradio 介面是否穩定。不過小模型不是大型客服或高風險決策系統的替代品;回答完整度、推理、事實正確性與中文品質,都應用你的實際問題集評估。
Qwen2.5-0.5B-Instruct 的官方 model card 標示約 0.49B 參數與 32K context;Ollama 的 Llama 3.2 模型庫則列有 1B 版本。這些是模型規格與可用 tag 的起點,不是你的實際速度或可用上下文保證。量化格式、可用記憶體、CPU 指令集、runtime 版本、輸入長度和同時請求數,都會改變結果。
最小實驗架構:只讓介面呼叫本機 API
Ollama 安裝後,預設會在 http://localhost:11434/api 提供 API。最小測試架構可保持為:
- Ollama 在同一個 runtime 中執行,負責模型拉取與推論。
- Gradio 只呼叫
127.0.0.1的 Ollama API,提供一個短暫的測試 UI。 - 使用者輸入、對話紀錄、錯誤日誌都只用測試資料;不要放入密碼、API key、客戶資料或未公開文件。
- 實驗結束後,停止 runtime、刪除暫存資料並保留測試結果,而不是保留一個公開 URL。
先用 API smoke test,不要先公開 UI
在建立介面前,先確認模型與 API 真的可用。依 Ollama API 的 chat endpoint 格式,概念上的最小請求如下;模型 tag 請以你當下已拉取、且已確認授權的版本為準:
curl http://127.0.0.1:11434/api/chat \
-d '{
"model": "qwen2.5:0.5b-instruct",
"messages": [
{"role": "user", "content": "請用兩句話說明什麼是量化模型。"}
],
"stream": false
}'
這一步只驗證服務路徑、模型名稱和基本輸出。若失敗,先記錄 Ollama 版本、模型 tag、runtime 資源與完整錯誤,再處理相容性;不要用反覆重裝或公開 tunnel 來掩蓋問題。
Gradio 分享連結的安全界線
Gradio 的 share=True 會建立可公開分享的 URL。官方文件提醒,任何人都可能使用該連結;連結通常約一週過期,而在 Google Colab notebook 中分享連結預設會被建立。這意味著:即使你只是「傳給朋友測試」,也不應把未受保護的控制操作、檔案讀取、系統資訊或敏感 prompt 放進這個介面。
Gradio 可提供基本的 auth= 密碼登入,但官方也明確說它不適合需要多因素驗證、rate limiting 或自動鎖定等嚴格存取控制的應用。若真的需要讓他人測試,應使用獨立測試帳號、最小資料集、低權限功能和明確的到期時間;更嚴格的需求則應改用受控部署環境與正式身分系統。
CPU-only Colab 的實驗步驟
1. 定義一個小而可驗證的用途
例如「將 20 段公開文字摘要為三點」、「根據固定 FAQ 回答」或「比較兩個模型的繁中指令遵循」。不要一開始就嘗試全能客服、文件問答或對外服務,否則很難判斷失敗來自模型、資料、UI 還是 runtime。
2. 固定版本與測試資料
記錄 Colab runtime 版本、Ollama 版本、模型 tag/digest、量化格式與 prompt。建立一組不含個資的 10 至 30 題測試集,包含正常問題、空輸入、過長輸入、繁中用語與要求模型承認不知道的問題。
3. 比較品質,不只看是否有回應
對每個模型記錄成功率、第一個可讀回覆的等待時間、輸出長度、是否答非所問、是否捏造資料、是否能遵守格式,以及 CPU/記憶體是否在長對話後惡化。小模型若只是做摘要、改寫或固定格式輸出,可能很實用;若要處理事實性、複雜推理或高風險內容,就必須提高門檻或改用其他架構。
4. 把測試成果帶回你控制的環境
當流程驗證完成,再把同一份程式與測試集搬到本機、私有 VM 或容器平台。正式環境至少要有:HTTPS 與反向代理、經驗證的登入、rate limit、輸入大小限制、模型與套件更新、日誌遮罩、健康檢查、備份與明確的資料刪除政策。Ollama 的預設 localhost API 不應直接暴露到公網。
常見誤解
Q:CPU-only 代表一定免費、穩定又適合長時間運行嗎?
不是。CPU-only 只表示沒有使用加速器;Colab 的資源與 runtime 仍是受管且會變動。它適合學習與短期驗證,不是可用性承諾。
Q:只要用了 Ollama,就是自託管嗎?
不一定。Ollama 可在你控制的電腦或 VM 上運作,但若它跑在短暫的第三方受管 runtime,網路、資料、持久化與服務壽命並不由你完整掌握。是否「自託管」取決於整個部署邊界,而不只是一個推論工具。
Q:Gradio 分享 URL 有密碼就可以拿來正式服務嗎?
不建議。Gradio 的基本登入適合簡單測試,但不是完整的企業級存取控制。正式服務仍需要受控網路、身分系統、TLS、rate limit、監控和事件處理。
結論
在 Colab CPU runtime 用 Ollama 加 Gradio,最有價值的地方是快速驗證:小模型是否符合你的任務、API 與 UI 是否能串起來、以及你需要哪些品質與安全門檻。當測試成功後,請把部署移到你能真正控制的環境;這樣才能把「能在 notebook 跑」提升為可維護、可保護資料的聊天系統。
資料來源
- Google Colab FAQ(資源限制、runtime 壽命與受管 runtime 的使用限制)
- Ollama API Introduction(預設 local API 與基本請求方式)
- Gradio:Sharing Your App(公開 share link、到期時間與基本 authentication 限制)
- Qwen2.5-0.5B-Instruct model card(模型規格與使用條件)
- Ollama:llama3.2 model library(1B/3B 模型選項)














