Skip to content

如何升級 Ollama?

macOS 與 Windows 上的 Ollama 會自動下載更新。點擊工作列或選單列的圖示,接著點擊「重新啟動以更新」即可套用更新。也可以透過手動下載最新版本的方式安裝更新。

在 Linux 上,請重新執行安裝腳本:

shell
curl -fsSL https://ollama.com/install.sh | sh

如何查看日誌?

如需了解更多關於使用日誌的資訊,請參考 疑難排解 文件。

我的 GPU 是否與 Ollama 相容?

請參考 GPU 文件

如何指定上下文視窗大小?

預設情況下,Ollama 使用的上下文視窗大小為 4096 個權杖(tokens)。

你可以透過 OLLAMA_CONTEXT_LENGTH 環境變數覆寫此設定。例如,要將預設上下文視窗大小設為 8K,請使用:

shell
OLLAMA_CONTEXT_LENGTH=8192 ollama serve

使用 ollama run 時若要變更此設定,請使用 /set parameter 指令:

shell
/set parameter num_ctx 4096

使用 API 時,請指定 num_ctx 參數:

shell
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "Why is the sky blue?",
  "options": {
    "num_ctx": 4096
  }
}'

如何判斷我的模型是否已載入至 GPU?

使用 ollama ps 指令查看目前載入記憶體中的模型。

shell
ollama ps

INFO

輸出

NAME        ID            SIZE    PROCESSOR   UNTIL
llama3:70b  bcfb190ca3a7  42 GB   100% GPU    4 minutes from now

Processor(處理器)欄位會顯示模型載入至哪種記憶體:

  • 100% GPU 表示模型已完全載入至 GPU
  • 100% CPU 表示模型已完全載入至系統記憶體
  • 48%/52% CPU/GPU 表示模型部分載入至 GPU、部分載入至系統記憶體

如何設定 Ollama 伺服器?

Ollama 伺服器可透過環境變數進行設定。

在 Mac 上設定環境變數

如果 Ollama 是以 macOS 應用程式形式執行,應使用 launchctl 設定環境變數:

  1. 針對每個環境變數,執行 launchctl setenv 指令。

    bash
    launchctl setenv OLLAMA_HOST "0.0.0.0:11434"
  2. 重新啟動 Ollama 應用程式。

在 Linux 上設定環境變數

如果 Ollama 是以 systemd 服務形式執行,應使用 systemctl 設定環境變數:

  1. 執行 systemctl edit ollama.service 指令編輯 systemd 服務,這會開啟編輯器。

  2. 針對每個環境變數,在 [Service] 區段下新增 Environment 設定行:

    ini
    [Service]
    Environment="OLLAMA_HOST=0.0.0.0:11434"
  3. 儲存並退出編輯器。

  4. 重新載入 systemd 並重新啟動 Ollama:

    shell
    systemctl daemon-reload
    systemctl restart ollama

在 Windows 上設定環境變數

在 Windows 上,Ollama 會繼承你的使用者與系統環境變數。

  1. 首先,在工作列上點擊 Ollama 圖示並退出應用程式。

  2. 開啟「設定」(Windows 11)或「控制台」(Windows 10)應用程式,搜尋「環境變數」。

  3. 點擊「編輯使用者帳戶的環境變數」。

  4. 為你的使用者帳戶編輯或新增 OLLAMA_HOSTOLLAMA_MODELS 等環境變數。

  5. 點擊「確定」/「套用」儲存設定。

  6. 從 Windows 開始選單啟動 Ollama 應用程式。

如何在代理伺服器後方使用 Ollama?

Ollama 會從網際網路下載模型,可能需要透過代理伺服器存取模型。請使用 HTTPS_PROXY 將外發請求導向至代理伺服器。請確保代理伺服器的憑證已安裝為系統憑證。設定環境變數的方法請參考上方的對應平台章節。

Note

請勿設定 HTTP_PROXY。Ollama 下載模型時僅使用 HTTPS,不會使用 HTTP。設定 HTTP_PROXY 可能會中斷用戶端與伺服器的連線。

如何在 Docker 中的代理伺服器後方使用 Ollama?

啟動 Ollama Docker 容器映像時,可以透過傳入 -e HTTPS_PROXY=https://proxy.example.com 參數來設定使用代理伺服器。

另外,也可以設定 Docker 守護程序使用代理伺服器。Docker Desktop 的設定說明可參考 macOSWindowsLinux 官方文件,以及使用 systemd 的 Docker 守護程序 設定說明。

使用 HTTPS 時,請確保憑證已安裝為系統憑證。若使用自簽憑證,可能需要建立新的 Docker 映像。

dockerfile
FROM ollama/ollama
# 將 my-ca.pem 複製到系統憑證儲存區
COPY my-ca.pem /usr/local/share/ca-certificates/my-ca.crt
RUN update-ca-certificates

建置並執行此映像:

shell
docker build -t ollama-with-ca .
docker run -d -e HTTPS_PROXY=https://my.proxy.example.com -p 11434:11434 ollama-with-ca

Ollama 是否會將我的提示詞與回答傳回 ollama.com?

Ollama 在本機執行。你在本機執行時,我們不會看到你的提示詞或資料。使用雲端代管模型時,我們會處理你的提示詞與回應以提供服務,但不會儲存或記錄這些內容,也不會用於訓練模型。我們僅收集基本帳戶資訊與有限的用量中繼資料以提供服務,其中不包含提示詞與回應內容。我們不會販售你的資料,你可以隨時刪除你的帳戶。

如何停用 Ollama 的雲端功能?

停用 Ollama 的雲端功能後,Ollama 將僅能在本機模式執行。關閉雲端功能後,你將無法使用 Ollama 的雲端模型與網路搜尋功能。

~/.ollama/server.json 中設定 disable_ollama_cloud

json
{
  "disable_ollama_cloud": true
}

你也可以設定環境變數:

shell
OLLAMA_NO_CLOUD=1

修改設定後請重新啟動 Ollama。停用完成後,Ollama 的日誌會顯示 Ollama cloud disabled: true

如何將 Ollama 公開至我的網路?

Ollama 預設綁定至 127.0.0.1 的 11434 連接埠。你可以使用 OLLAMA_HOST 環境變數變更綁定位址。

設定環境變數的方法請參考上方的對應平台章節

如何搭配代理伺服器使用 Ollama?

Ollama 執行 HTTP 伺服器,可以透過 Nginx 等代理伺服器公開。若要這麼做,請設定代理伺服器轉發請求,必要時也可設定要求的標頭(若未將 Ollama 公開至網路)。以下為 Nginx 的設定範例:

nginx
server {
    listen 80;
    server_name example.com;  # 替换為你的網域或 IP
    location / {
        proxy_pass http://localhost:11434;
        proxy_set_header Host localhost:11434;
    }
}

如何搭配 ngrok 使用 Ollama?

Ollama 可透過多種隧道應用程式存取,以下為 Ngrok 的範例:

shell
ngrok http 11434 --host-header="localhost:11434"

如何搭配 Cloudflare Tunnel 使用 Ollama?

搭配 Cloudflare Tunnel 使用 Ollama 時,請使用 --url--http-host-header 參數:

shell
cloudflared tunnel --url http://localhost:11434 --http-host-header="localhost:11434"

如何允許額外的網頁來源存取 Ollama?

Ollama 預設允許來自 127.0.0.10.0.0.0 的跨來源請求。你可以使用 OLLAMA_ORIGINS 設定額外的允許來源。

對於瀏覽器擴充功能,你需要明確允許擴充功能的來源模式。若要允許所有瀏覽器擴充功能存取,請將 OLLAMA_ORIGINS 設定為包含 chrome-extension://*moz-extension://*safari-web-extension://*,或根據需求設定特定擴充功能的來源:

# 允許所有 Chrome、Firefox 與 Safari 擴充功能
OLLAMA_ORIGINS=chrome-extension://*,moz-extension://*,safari-web-extension://* ollama serve

設定環境變數的方法請參考上方的對應平台章節

模型儲存在哪裡?

  • macOS:~/.ollama/models
  • Linux:/usr/share/ollama/.ollama/models
  • Windows:C:\Users\%username%\.ollama\models

如何將模型儲存位置設定為其他路徑?

若需要使用其他目錄,請將 OLLAMA_MODELS 環境變數設定為目標目錄。

Note

在 Linux 上使用標準安裝程式安裝時,ollama 使用者需要對指定目錄擁有讀寫權限。若要將目錄指派給 ollama 使用者,請執行 sudo chown -R ollama:ollama <directory> 指令。

設定環境變數的方法請參考上方的對應平台章節

如何在 Visual Studio Code 中使用 Ollama?

目前已有大量適用於 VS Code 及其他編輯器的外掛程式可供使用,這些外掛都可整合 Ollama。詳細的清單可參考主儲存庫 README 底部的擴充功能與外掛程式清單。

如何在 Docker 中使用 Ollama 的 GPU 加速功能?

Ollama Docker 容器可在 Linux 或 Windows(搭配 WSL2)上設定 GPU 加速功能,這需要安裝 nvidia-container-toolkit。更多詳細資訊請參考 ollama/ollama

由於 macOS 缺乏 GPU 直通與模擬功能,Docker Desktop 在 macOS 上無法使用 GPU 加速功能。

為什麼 Windows 10 上的 WSL2 網路速度緩慢?

這會同時影響 Ollama 的安裝與模型下載速度。

開啟「控制台 > 網路和網際網路 > 檢視網路狀態和任務」,在左側面板點擊「變更介面卡設定」。找到 vEthernet (WSL) 介面卡,右鍵點擊並選擇「內容」。點擊「設定」並開啟「進階」分頁。逐一瀏覽所有屬性,直到找到「Large Send Offload Version 2 (IPv4)」與「Large Send Offload Version 2 (IPv6)」,將這兩個屬性停用

如何將模型預先載入 Ollama 以提升回應速度?

如果你使用 API,可以向 Ollama 伺服器傳送空請求來預先載入模型。此方法適用於 /api/generate/api/chat 兩個 API 端點。

使用 generate 端點預先載入 mistral 模型時,請使用:

shell
curl http://localhost:11434/api/generate -d '{"model": "mistral"}'

使用 chat completions 端點時,請使用:

shell
curl http://localhost:11434/api/chat -d '{"model": "mistral"}'

使用 CLI 預先載入模型時,請使用以下指令:

shell
ollama run llama3.2 ""

如何讓模型保留在記憶體中,或立即卸載模型?

預設情況下,模型會保留在記憶體中 5 分鐘後才會被卸載。如果你需要對 LLM 發送大量請求,此設定可提升回應速度。若要立即從記憶體卸載模型,請使用 ollama stop 指令:

shell
ollama stop llama3.2

如果你使用 API,請在 /api/generate/api/chat 端點中使用 keep_alive 參數設定模型保留在記憶體中的時間。keep_alive 參數可設定為以下值:

  • 持續時間字串(例如 "10m" 或 "24h")
  • 秒數(例如 3600)
  • 任意負數,會讓模型永遠保留在記憶體中(例如 -1 或 "-1m")
  • '0',表示生成回應後立即卸載模型

例如,若要預先載入模型並讓其保留在記憶體中,請使用:

shell
curl http://localhost:11434/api/generate -d '{"model": "llama3.2", "keep_alive": -1}'

若要卸載模型並釋放記憶體,請使用:

shell
curl http://localhost:11434/api/generate -d '{"model": "llama3.2", "keep_alive": 0}'

另外,你也可以在啟動 Ollama 伺服器時,透過設定 OLLAMA_KEEP_ALIVE 環境變數來變更所有模型保留在記憶體中的時間。OLLAMA_KEEP_ALIVE 變數支援的參數類型與上述 keep_alive 參數相同。請參考設定 Ollama 伺服器的章節 以正確設定環境變數。

/api/generate/api/chat API 端點中的 keep_alive 參數會覆寫 OLLAMA_KEEP_ALIVE 設定。

如何管理 Ollama 伺服器可排隊的最大請求數?

如果傳送至伺服器的請求過多,伺服器會回傳 503 錯誤表示過載。你可以透過設定 OLLAMA_MAX_QUEUE 調整可排隊的請求數量。

Ollama 如何處理並行請求?

Ollama 支援兩個層級的並行處理。如果你的系統有足夠的可用記憶體(使用 CPU 推論時為系統記憶體,使用 GPU 推論時為 VRAM),則可以同時載入多個模型。對於單一模型,若載入時有足夠的可用記憶體,則會設定為允許平行請求處理。

如果已載入一個或多個模型時,沒有足夠的可用記憶體載入新模型,所有新請求都會排隊,直到可以載入新模型為止。當先前的模型進入空閒狀態時,會卸載一個或多個模型以騰出空間給新模型。排隊的請求會依序處理。使用 GPU 推論時,新模型必須能完全放入 VRAM 才能允許並行載入模型。

單一模型的平行請求處理會導致上下文大小隨平行請求數量增加。例如,2K 上下文搭配 4 個平行請求,會產生 8K 上下文並需要額外的記憶體配置。

以下伺服器設定可用於調整 Ollama 在大多數平台上處理並行請求的方式:

  • OLLAMA_MAX_LOADED_MODELS:可同時載入的最大模型數量(前提是模型能放入可用記憶體)。預設值為 GPU 數量的 3 倍,使用 CPU 推論時預設為 3。
  • OLLAMA_NUM_PARALLEL:每個模型同時處理的最大平行請求數量,預設為 1。所需 RAM 會隨 OLLAMA_NUM_PARALLEL * OLLAMA_CONTEXT_LENGTH 等比例增加。
  • OLLAMA_MAX_QUEUE:Ollama 忙碌時可排隊的最大請求數量,超過此數量會拒絕額外請求,預設為 512

注意:由於 ROCm v5.7 在可用 VRAM 回報上的限制,目前 Windows 搭配 Radeon GPU 時預設最多只能載入 1 個模型。待 ROCm v6.2 推出後,Windows 上的 Radeon GPU 將遵循上述預設值。你可以在 Windows 上的 Radeon GPU 上啟用並行模型載入功能,但請確保載入的模型總大小不會超過 GPU 的 VRAM 容量。

Ollama 如何在多張 GPU 上載入模型?

載入新模型時,Ollama 會評估模型所需的 VRAM 與目前可用的 VRAM 數量。如果模型能完全放入任何一張單一 GPU,Ollama 會將模型載入至該 GPU。這通常能提供最佳效能,因為能減少推論過程中透過 PCI 匯流排傳輸的資料量。如果模型無法完全放入單一 GPU,則會將模型分散至所有可用的 GPU 上。

如何啟用 Flash Attention?

Flash Attention 是多數現代模型具備的功能,能隨著上下文長度增長大幅降低記憶體用量。若所選後端與裝置支援,Ollama 會自動啟用 Flash Attention。若要強制開啟,啟動 Ollama 伺服器時請設定環境變數 OLLAMA_FLASH_ATTENTION=1;若要停用,則設定為 OLLAMA_FLASH_ATTENTION=0

如何設定 K/V 快取的量化類型?

啟用 Flash Attention 時,可對 K/V 上下文快取進行量化,大幅降低記憶體用量。

若要在 Ollama 中使用量化 K/V 快取,可設定以下環境變數:

  • OLLAMA_KV_CACHE_TYPE:K/V 快取的量化類型,預設值為 f16

注意

目前這是全域選項,代表所有模型都會以指定的量化類型執行。

目前可用的 K/V 快取量化類型如下:

  • f16:高精度、高記憶體用量(預設)。
  • q8_0:8 位元量化,記憶體用量約為 f16 的一半,精度損失極小,通常不會對模型品質造成明顯影響(若不使用 f16 則推薦此選項)。
  • q4_0:4 位元量化,記憶體用量約為 f16 的四分之一,精度損失為中小程度,在較長的上下文長度下可能更為明顯。

快取量化對模型回覆品質的影響程度取決於模型本身與任務類型。GQA 數量較高的模型(例如 Qwen2)受到量化導致的精度影響,會比 GQA 數量較低的模型更顯著。

你可能需要測試不同的量化類型,以找到記憶體用量與品質之間的最佳平衡。

哪裡可以找到我的 Ollama 公開金鑰?

你的 Ollama 公開金鑰 是金鑰對中的公開部分,用於讓你本機的 Ollama 實例與 ollama.com 通訊。

你需要用到它的場景包括:

  • 推送模型至 Ollama
  • 從 Ollama 拉取私有模型到你的裝置
  • 執行託管於 Ollama Cloud 的模型

如何新增金鑰

  • MacWindows 應用程式 的「設定」頁面登入
  • 透過 CLI 登入
shell
ollama signin

Ollama 公開金鑰的儲存位置

作業系統id_ed25519.pub 的路徑
macOS~/.ollama/id_ed25519.pub
Linux/usr/share/ollama/.ollama/id_ed25519.pub
WindowsC:\Users\<username>\.ollama\id_ed25519.pub

注意

將 <username> 替換為你的實際 Windows 使用者名稱。

如何讓 Ollama 在我登入電腦時不要自動啟動?

Windows 與 macOS 版的 Ollama 會在安裝時註冊為登入項目。若你不希望 Ollama 自動啟動,可以停用此設定。除非你解除安裝應用程式,否則 Ollama 會在後續升級時保留此設定。

Windows

  • 開啟「工作管理員」,切換到「啟動」分頁,搜尋「ollama」後點擊「停用」

MacOS

  • 開啟「設定」,搜尋「登入項目」,在「允許在背景執行」下找到「Ollama」項目,點擊滑桿停用即可。