最近鼓搗ollama本地運行開發大模型,配合open-webui搭建自己的服務確實不錯,可以本地用cpu運行本地化運行開發大模型,號稱只要內存夠用就行。當然,沒有顯卡支持是真的慢!(這個沒錢解決不了的問題不是本文的關注點。)
一切彷彿都很美好(除了需要耐心),但是玩了兩三天後出問題了。這天心血來潮,拉取了一下open-webui的最新鏡像,接着停掉並移除運行中的鏡像,再次啓動新版本鏡像,結果發現啓動不了了。用命令”docker ps --all“查看,發現鏡像啓動18秒後就退出了。於是使用 logs命令查看docker鏡像啓動的日誌。
[yh@lnew ~]$ sudo docker ps --all CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 196fafb4344e ghcr.io/open-webui/open-webui:main "bash start.sh" 22 seconds ago Exited (1) 13 seconds ago open-webui [yh@lnew ~]$ sudo docker logs 196fafb4344e No WEBUI_SECRET_KEY provided Generating WEBUI_SECRET_KEY Loading WEBUI_SECRET_KEY from .webui_secret_key No sentence-transformers model found with name sentence-transformers/all-MiniLM-L6-v2. Creating a new one with MEAN pooling. Traceback (most recent call last): File "/usr/local/bin/uvicorn", line 8, in <module> sys.exit(main()) ^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1157, in __call__ return self.main(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^
...此處省略不到十萬行...
File \"/usr/local/lib/python3.11/site-packages/transformers/utils/hub.py line 441, in cached_file
raise EnvironmentError
OSError: We couldn't connect to 'https://huggingface.co' to load this file, couldn't find it in the cached files and it looks like sentence-transformers/all-MiniLM-L6-v2 is not the path to a directory containing a file named config.json.
Checkout your internet connection or see how to run the library in offline mode at 'https://huggingface.co/docs/transformers/installation#offline-mode'
(注意日誌中紅色的錯誤行,是我自己着色的)看了日誌才知道,原來是open-webui啓動時期需要首先在線安裝transformers庫,但是huggingface.co對於國內來說是經常不可訪問):
於是趕緊求助bing,找到一個鏡像網站,"hf-mirror.com",於是給docker啓動命令中增加一個環境變量"HF_ENDPOINT",經測試完美解決了。後來又想到開始雖然運行鏡像啓動成功了,但是啓動特別慢,2、3分鐘服務才能訪問,看來也是需要訪問huggingface網站的原因。
注意這裏設置環境變量HF_ENDPOINT,必須設置爲”https://hf-mirror.com“,否則依然會報錯,大概是說未知的scheme,我已經趟過這個坑了。完整的命令行如下:
[yh@lnew ~]$sudo docker run -d -e HF_ENDPOINT=https://hf-mirror.com -p 3000:8080 -e OLLAMA_BASE_URL=http://192.168.2.26:11434 -v open-webui/backend/data:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main