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_HOST、OLLAMA_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 的設定說明可參考 macOS、Windows、Linux 官方文件,以及使用 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.1 與 0.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 的模型

如何新增金鑰 ​

  • 在 Mac 與 Windows 應用程式 的「設定」頁面登入
  • 透過 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」項目,點擊滑桿停用即可。