如何把Ollama的大語言模型檔案,儲存到其他位置?

Ollama Logo
Ollama 預設將下載的大語言模型,儲存在 /usr/share/ollama/.ollama/models 這個目錄中。然而,在某些場合中,這個目錄是掛載在系統磁碟中。如今不少電腦的系統磁碟,都是安裝 SSD 磁碟,容量有限,沒辦法儲存過多的模型。必須設法讓Ollama改變預設的儲存位置。

以下的說明,是以 Ubuntu Linux 24.04 為例,其他的系統我不確定是不是相同。

要改變 Ollama 預設的模型儲存位置,你必須去改動 ollama.service 這個檔案,它位於 /etc/systemd/system 這個目錄中。

將模型檔案安裝到其他目錄

原本 ollama.service 的內容是這樣:

[Unit]

Description=Ollama Service

After=network-online.target


[Service]

ExecStart=/usr/local/bin/ollama serve

User=ollama

Group=ollama

Restart=always

RestartSec=3

Environment="PATH=/home/hawk/bin:/home/hawk/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin"


[Install]

WantedBy=default.target

你只要加入一行即可:

Environment="OLLAMA_MODELS=/home/ollama_models" ,其中,/home/ollama_models 可以改成其他你想要儲存的目錄。

改完之後像這樣:

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=/home/hawk/bin:/home/hawk/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin"
Environment="OLLAMA_MODELS=/home/ollama_models"

[Install]
WantedBy=default.target

重新載入 Ollama 服務

這樣就能改變預設的儲存目錄。改完了之後,記得執行以下兩個命令,重新載入 Ollama:

sudo systemctl daemon-reload
sudo systemctl restart ollama

我是將一顆大容量磁碟,mount 掛載在 /home 下面,用來當作獨立的使用者目錄磁碟,這樣每次重新安裝作業系統之後,我可以保留所有的設定,不用擔心遺失苦苦經營的設定檔,以及私人檔案。重灌作業系統的時候,也不用有所顧忌,直接 Format 重灌。重灌之後,各種軟體APP安裝回來之後,都會復原成原來的樣子,比如 Thunderbird 那種設定比較複雜的軟體,也都會保持原樣,不需要去動任何設定。

為了儲存 Ollama 的模型檔案,我在 /home 下面,建立一個叫做 ollama_models 的目錄,並更改目錄的權限給 Ollama:

sudo chown ollama:ollama /home/ollama_models

之後,執行 pull 指令,模型檔就會被儲存在 /home/ollama_models 中。

但是,如果你重灌作業系統跟 Ollama 之後,新的 Ollama 可能會不認得原本已經下載的檔案,你需要把整個目錄內的所有內容刪除,然後將全部的 models 重新 pull 下載。


沒有留言:

張貼留言