Ollama 默認會根據硬件自動分配計算資源(CPU/GPU),若需強制指定僅使用 CPU 計算(禁用 GPU),或調整 CPU 核心數、線程數等參數,可通過以下方式配置,覆蓋不同操作系統(Windows/macOS/Linux)和使用場景:

一、核心原理

Ollama 啓動時會讀取環境變量或配置文件中的參數,通過指定 OLLAMA_NUM_GPUS=0 可強制禁用 GPU,讓模型完全跑在 CPU 上;同時可通過 OLLAMA_CPU_THREADS 調整 CPU 線程數,優化計算效率。

二、分場景配置方法

場景1:臨時生效(單次啓動 Ollama)

適用於僅臨時測試 CPU 計算,重啓後配置失效。

1. Windows(命令提示符/PowerShell)
  • 命令提示符(cmd):
set OLLAMA_NUM_GPUS=0 && ollama serve
  • PowerShell:
$env:OLLAMA_NUM_GPUS=0; ollama serve
  • 啓動後,再新開終端執行 ollama run <模型名>(如 ollama run llama3),模型會僅使用 CPU 運行。
2. macOS/Linux(終端)
# 臨時設置環境變量,啓動 Ollama 服務
OLLAMA_NUM_GPUS=0 ollama serve

或先導出變量再啓動:

export OLLAMA_NUM_GPUS=0
ollama serve
場景2:永久生效(全局配置,重啓後仍有效)

適用於長期使用 CPU 計算,無需每次啓動都手動指定參數。

1. Windows 永久配置
  • 步驟1:打開「系統屬性」→「高級」→「環境變量」;
  • 步驟2:在「系統變量」中點擊「新建」,添加:
  • 變量名:OLLAMA_NUM_GPUS
  • 變量值:0(禁用 GPU)
  • (可選)若需調整 CPU 線程數,新增變量:
  • 變量名:OLLAMA_CPU_THREADS
  • 變量值:8(示例:指定8線程,建議設為 CPU 核心數,如4/8/16)
  • 步驟3:保存後,重啓 Ollama 服務(可通過任務管理器結束 ollama.exe 後重新啓動)。
2. macOS/Linux 永久配置
  • 編輯環境變量配置文件(根據終端類型選擇,bash 用 .bashrc,zsh 用 .zshrc):
# macOS/Linux 通用(bash)
nano ~/.bashrc
# 若為 zsh 終端,執行:nano ~/.zshrc
  • 在文件末尾添加:
# 禁用 GPU,強制 CPU 計算
export OLLAMA_NUM_GPUS=0
# (可選)指定 CPU 線程數(示例:8線程,根據自身CPU核心數調整)
export OLLAMA_CPU_THREADS=8
  • 保存並生效配置:
# bash 終端
source ~/.bashrc
# zsh 終端
source ~/.zshrc
  • 重啓 Ollama 服務:
# 停止現有服務(若運行中)
pkill ollama
# 重新啓動
ollama serve
3. Docker 運行 Ollama(強制 CPU)

若通過 Docker 部署 Ollama,需在啓動容器時傳入環境變量:

docker run -d \
  --name ollama \
  -e OLLAMA_NUM_GPUS=0 \  # 禁用 GPU
  -e OLLAMA_CPU_THREADS=8 \  # 可選:指定 CPU 線程數
  -v ollama:/root/.ollama \
  -p 11434:11434 \
  ollama/ollama
場景3:僅針對單個模型生效(不影響全局)

若需讓某一個模型用 CPU 運行,其他模型仍用 GPU,可通過 modelfile 自定義模型配置:

  1. 導出現有模型的 Modelfile:
ollama show --modelfile llama3 > ~/llama3-cpu.Modelfile
  1. 編輯 Modelfile,在末尾添加 ENV 指令指定 CPU 配置:
# 禁用該模型的 GPU 計算
ENV OLLAMA_NUM_GPUS 0
# 可選:指定該模型的 CPU 線程數
ENV OLLAMA_CPU_THREADS 8
  1. 基於修改後的 Modelfile 創建新模型(命名為 llama3-cpu):
ollama create llama3-cpu -f ~/llama3-cpu.Modelfile
  1. 運行該模型(僅使用 CPU):
ollama run llama3-cpu

三、驗證是否生效

啓動模型後,可通過以下方式確認是否僅使用 CPU:

  1. 查看系統資源監控
  • Windows:任務管理器 → 性能 → CPU 使用率飆升(GPU 無變化);
  • macOS:活動監視器 → CPU 標籤頁,ollama 進程佔用高;
  • Linux:tophtop 命令,查看 ollama 進程的 CPU 佔用率。
  1. 查看 Ollama 日誌: 啓動時日誌會顯示 num_gpus: 0,説明 GPU 已禁用:
2024/10/01 10:00:00 INFO num_gpus: 0
2024/10/01 10:00:00 INFO cpu_threads: 8

四、優化 CPU 計算性能

  1. 調整線程數OLLAMA_CPU_THREADS 建議設為 CPU 物理核心數(如 4核8線程 CPU 設為 4),避免超線程導致性能下降;
  2. 選擇輕量模型:CPU 算力有限,優先選擇 7B 及以下參數的模型(如 llama3:7b、qwen:7b),或量化版本(如 q4_0、q5_1);
  3. 關閉其他進程:運行模型時關閉無關程序,釋放 CPU 資源。

五、常見問題

  1. 配置後仍用 GPU?
  • 檢查環境變量是否生效:Windows 執行 echo %OLLAMA_NUM_GPUS%,Linux/macOS 執行 echo $OLLAMA_NUM_GPUS,確認輸出為 0
  • 重啓 Ollama 服務(包括終端/容器),確保配置加載。
  1. CPU 佔用過高、卡頓?
  • 降低 OLLAMA_CPU_THREADS 數值;
  • 切換更低量化的模型(如從 q5_1 改為 q4_0)。

通過以上配置,可完全控制 Ollama 僅使用 CPU 進行模型推理,適配無 GPU 或需避免 GPU 佔用的場景。