Ollama 部署 DeepSeek
最快能在十分鐘內跑起來的方式。適合個人試用與小團隊內部使用。
安裝
# Linux / macOS curl -fsSL https://ollama.com/install.sh | sh # Windows # 下載安裝包:https://ollama.com/download # 確認安裝 ollama --version
拉取模型
# 查看可用版本 ollama list # 拉取 DeepSeek 系列(版本名以官方庫為準) ollama pull deepseek-r1:7b ollama pull deepseek-r1:32b # 直接對話 ollama run deepseek-r1:32b
關鍵:上下文長度預設太小
這是 OLLAMA 最常見的坑。
預設上下文通常只有 2048 或 4096 tokens,你貼一份長文進去,
模型會「假裝看完了」但其實只讀了前兩千字。必須手動調大。
# 方法一:啟動時指定 OLLAMA_CONTEXT_LENGTH=32768 ollama serve # 方法二:Modelfile 自訂 # 建立 Modelfile: FROM deepseek-r1:32b PARAMETER num_ctx 32768 # 然後 ollama create my-deepseek -f Modelfile ollama run my-deepseek
用 API 調用
# Ollama 預設在 11434 提供 OpenAI 相容接口
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-r1:32b",
"messages": [{"role":"user","content":"你好"}]
}'
因為相容 OpenAI 格式,原來的程式只要改 base_url 就能切換到本地:
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama", # 本地不需要真的 key
)
resp = client.chat.completions.create(
model="deepseek-r1:32b",
messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)
三個常見坑
- 上下文被截斷:如上,預設太小。長文任務必須調 num_ctx,代價是顯存佔用增加。
- 顯存不足自動降級到 CPU:速度會慢十倍以上。用
ollama ps確認是否全在 GPU 上。 - 模型版本選錯:7B 與 32B 能力差距很大,先確認任務需要多大。
Ollama 適合與不適合
| 適合 | 不適合 |
|---|---|
| 個人試用、快速驗證想法 | 多使用者同時併發 |
| 內部工具、單機部署 | 需要高吞吐的生產環境 |
| 不想碰 Docker 與 CUDA | 需要精細控制推理參數 |
生產環境建議看 llama.cpp(可控性高)或 vLLM(吞吐量高)。