2023/12/14

ollama : run llama locally

ollama.ai 是一個很方便的 run LLM 的program.
作者寫好了 shell script 自動安裝:
curl https://ollama.ai/install.sh | sh
執行完就裝完了。
他是用 以 service 的形式,用 systemd 管理。
所以 ollama.service 和 user, group 都 create 好了。
之後,只要用 ollama 這個 command 就可以控制。

舉例來說, run model:llamma2
ollama run llama2
>>>
等一下download 完model file,就會出現 提示符號等你輸入prompt

作者的blog有很多model 的執行 command.
可以直接照著試試看。
-- 例如uncensored llama2

專案的github 頁面有 "community integration",是一些其他作者的相關專案。
例如: 就是提供一個類似 chatgpt web 頁面的專案。

以ollama-webui 為例:

先把 ollam.service run 在 ip 上 (default 是 127.0.0.1):
要在 /etc/systemd/system/ollama.service.d/下 create 一個 file:
cat /etc/systemd/system/ollama.service.d/environment.conf
[Service]
Environment=OLLAMA_HOST=0.0.0.0:11434
然後 systemctl daemon-reload, restart ollama.service.
用 systemctl status (或是 journalctl -u ollama.service)看 log,會有
 routes.go:843: Listening on [::]:11434 (version 0.1.14)
之後 follow ollama-webui 中,用 dockerfile 的作法:
git clone https://github.com/ollama-webui/ollama-webui.git
cd ollama-webui
docker build -t ollama-webui .
build 好 image 後..

uninstall ollama -- 就是 uninstall systemd service
sudo systemctl stop ollama
sudo systemctl disable ollama
sudo rm /etc/systemd/system/ollama.service
sudo rm -r /usr/share/ollama 
sudo userdel ollama 
sudo groupdel ollama
sudo rm /usr/local/bin/ollama



2024/11/12 update:

新的好像是用 open-webui
安裝可以用 docker 或是手動。
手動就是...
因為要 python 3.11,所以用 conda create 一個 env
然後
pip install open-webui
就會下載完所有 package 安裝。

啟動就:
open-webui serve
-- 沒有 r
就會在 http://0.0.0.0:8080 上。
她會自己找到同一台機器上的 ollama service。都不用設定。


ollama 有提供一格類似 openai 的 OpenAI Chat Completion url
參考 ollama 的 openai compatibility 頁面。
可以用 curl 測試:
先確認你有下載 llama2 model, 然後:
curl http://localhost:11434/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "llama2",
        "messages": [
            {
                "role": "system",
                "content": "You are a helpful assistant."
            },
            {
                "role": "user",
                "content": "Hello!"
            }
        ]
    }'
就可以看到 ollama 回覆。
但是這要在 ollama 的server 上,因為 ollama 只有對 localhost 開啟。
要改對 public ip 開啟的話,參考 Allow listening on all local interfaces,在 systemd 服務設定 /etc/systemd/system/ollama.service 中,增加一個環境變數
Environment="OLLAMA_HOST=0.0.0.0"
原來的 Environment設定不用改,因為 systemd service file 允許重複設定變數。

然後
sudo systemctl deamon-reload
sydo systemctl restart ollama
之後, curl 命令改用 http://192.168.145.64:11434/v1/char/completions 就會動了。

沒有留言:

張貼留言