Skip to content

Commit 3af9cdf

Browse files
committed
新增 Ollama 容器化調研筆記,記錄技術選型與實作過程
1 parent 5c8b094 commit 3af9cdf

File tree

1 file changed

+134
-0
lines changed

1 file changed

+134
-0
lines changed
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
---
2+
title: " [實作筆記] Ollama 容器化調研筆記"
3+
date: 2025/06/22 23:36:35
4+
---
5+
6+
## 前情提要
7+
8+
最近在搞 AI 模型的本地部署,並試著將 Ollama 容器化。
9+
經過一段時間的調研和實測,想記錄一下目前的進度和對幾個主流方案的看法。
10+
11+
### 目標
12+
13+
- 找到穩定的 Ollama 容器化方案
14+
- 評估各種新興工具的可用性
15+
- 為未來的產品開發做技術預研
16+
17+
### Ollama 簡介
18+
19+
Ollama 是一個開源工具,讓你在本地電腦上輕鬆運行大型語言模型(如 Llama、CodeLlama、Mistral 等)。
20+
安裝簡單,一行指令就能下載和運行各種 AI 模型,無需複雜設定。支援 macOS、Linux 和 Windows。
21+
22+
```bash
23+
# 安裝後直接用
24+
ollama run llama3.2
25+
```
26+
27+
類似 Docker 的概念,但專門為 AI 模型設計。
28+
還提供 REST API:
29+
30+
```bash
31+
# 啟動後自動開啟 API server (預設 port 11434)
32+
curl http://localhost:11434/api/generate \
33+
-d '{"model": "llama3.2", "prompt": "Hello"}'
34+
```
35+
36+
沒有 Ollama 的話,你需要:
37+
38+
- 手動下載模型檔案(通常好幾 GB)
39+
- 處理不同模型格式(GGUF、GGML 等)
40+
- 設定 GPU 加速環境
41+
- 寫代碼載入模型到記憶體
42+
- 處理 tokenization 和 inference
43+
- 自己包 API server
44+
45+
Ollama 把這些都幫你搞定了。
46+
47+
## 實作
48+
49+
### 目前採用:Ollama Container + 指令初始化
50+
51+
經過評估,暫時保留傳統的 ollama container 方案,透過指令的 init 方法來取模型。
52+
53+
**為什麼選這個?**
54+
- 穩定,bug 少
55+
- 好 debug,每個步驟都可控
56+
- 彈性高,要調整什麼都很容易
57+
58+
**痛點**
59+
- 需要手動操作(未來會優化成全自動)
60+
61+
基本用法:
62+
```bash
63+
# 啟動 ollama container
64+
docker run -d --name ollama -p 11434:11434 ollama/ollama
65+
66+
# 下載模型
67+
docker exec -it ollama ollama pull llama3.2
68+
```
69+
70+
### Docker Model Runner:值得關注但暫不採用
71+
72+
DMR 在 2025 年 4月推出 Beta 版,看起來很有潛力,但目前不打算用在產品上。
73+
74+
**問題點**
75+
1. **平台差異**:Linux 上的啟用方法跟 Mac 不一樣,需要額外適配
76+
2. **實驗階段**:API 和功能還在快速變化,對產品開發風險太高
77+
3. **跨平台支援**:雖然最新的 Docker Desktop 4.41 已經支援 Windows,但整體成熟度還需觀察
78+
79+
會持續觀察,如果穩定性和跨平台支援改善,未來可能會是主流選擇。
80+
81+
### Podman AI Lab:理想與現實的差距
82+
83+
概念上跟 DMR 類似,但有個致命問題:**模型清單限制**
84+
85+
**問題**
86+
- 只能用官方清單中的模型
87+
- 清單不夠齊全(連 Gemma3 都沒有)
88+
- 比 DMR 的模型支援少很多
89+
90+
雖然最近跟 RamaLama 整合,但模型支援的局限性讓我直接 pass。
91+
92+
## 一些要注意的小問題
93+
94+
### Ollama Container 常見坑
95+
96+
1. **GPU 支援**:記得加 `--gpus all` 或用 docker-compose 設定
97+
2. **模型路徑**:預設在 `/root/.ollama`,要持久化記得 mount volume
98+
3. **網路設定**:如果在 k8s 環境,注意 service 的 port 設定
99+
100+
### Docker Model Runner 評估心得
101+
102+
- 目前主要在 macOS Apple Silicon 上比較穩定
103+
- Linux 支援還在完善中
104+
- Windows 支援是最近才加的,需要更多實測
105+
106+
## 技術選型思考
107+
108+
這次調研讓我想到幾個點:
109+
110+
1. **穩定性 > 新功能**:對產品開發來說,穩定性永遠是第一考量
111+
2. **生態完整性**:單一工具再好,生態不完善就是硬傷
112+
3. **維護成本**:新技術通常需要更多維護工作
113+
114+
## 下一步
115+
116+
短期計畫:
117+
1. 把 Ollama container 的初始化流程自動化
118+
2. 持續追蹤 DMR 發展
119+
3. 建立技術方案評估標準
120+
121+
中期目標:
122+
- 等 DMR 穩定後再評估導入
123+
- 研究其他容器化方案
124+
- 整理最佳實踐文件
125+
126+
## 小結
127+
128+
AI 基礎設施變化很快,容器化技術也在演進。目前沒有完美方案,但這個調研過程很有價值。
129+
130+
技術選擇是動態平衡的過程,要在穩定性、功能性、維護成本間找平衡點。
131+
132+
會持續關注這領域的發展,有新發現再分享。
133+
134+
(fin)

0 commit comments

Comments
 (0)