如何在離線的Linux伺服器上部署 Ollama,並使用 Ollama 管理執行 Qwen 大模型

flameking發表於2024-11-04

手動安裝 Ollama

根據Linux的版本下載對應版本的 Ollama,

  • 檢視Linux CPU型號,使用下面的命令
#檢視Linux版本號
cat /proc/version
#檢視cpu架構
lscpu
  • x86_64 CPU選擇下載ollama-linux-amd64;aarch64|arm64 CPU選擇下載ollama-linux-arm64

ollama不同型號

安裝和執行

  • 在有網路的環境下載好tgz安裝包,並上傳到離線 Linux 伺服器
  • 安裝,使用下面的命令:
sudo tar -C /usr -xzf ollama-linux-amd64.tgz
  • 啟動 Ollama,使用下面的命令:
ollama serve
  • 另外啟動一個終端驗證是否執行成功,使用下面的命令:
#檢視所有下載的模型
ollama list

這樣 Ollama 就算安裝完成了。之所以下載 Ollama,是因為 Ollama 提供了大模型執行的所有環境,使用它能方便的在本地執行各種 LLM。

在 Ollama 上部署 Qwen2.5

下載 Qwen2.5

  • 在國內 AI 社群 ModelScope 下載 Qwen2.5 模型,國外的 AI 社群 Hugging Face 也可以下載,不過要想下載國外的大模型,例如 Llama,需要填寫聯絡資訊進行申請,不過申請了也不一定會給過的。

image

  • 推薦使用 Git 下載,使用下面的命令:
git lfs install
git clone https://www.modelscope.cn/Qwen/Qwen2.5-1.5B-Instruct.git

從 Safetensors 匯入模型

  • Git 克隆下來的倉庫會包含一個 model.safetensors 檔案,需要將其格式轉換為二進位制 .bin 形式,才能由 Ollama 著手匯入進行管理。

image

  • 大模型格式轉換主要用到一個工具 llama.cpp,使用下面的命令同步 llm/llama.cpp 子模組:
#首先克隆 Ollama 倉庫
git clone [git@github.com](mailto:git@github.com):ollama/ollama.git ollama
cd ollama

#然後同步子模組
git submodule init
git submodule update llm/llama.cpp

#接著安裝 python 依賴
python3 -m venv llm/llama.cpp/.venv
source llm/llama.cpp/.venv/bin/activate
pip install -r llm/llama.cpp/requirements.txt
  • 轉換模型Qwen2.5,使用下面的命令:
python llm/llama.cpp/convert_hf_to_gguf.py ./model --outtype f16 --outfile converted.bin
  • 編寫模型檔案 Modelfile (沒有字尾名),檔案內容如下:
FROM converted.bin
TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
"""
SYSTEM """
你是一個樂於助人的助手,但你會用20世紀30年代黑手黨暴徒的風格去回答問題
"""
  • 將轉換後的 .bin 檔案和 Modelfile 檔案上傳到離線的 Linux 伺服器的同一目錄下,使用下面的命令匯入到 Ollama:
ollama create Qwen2.5 -f Modelfile
  • 檢視和執行大模型,使用下面的命令:
#檢視大模型資訊
ollama show Qwen2.5

#檢視 Ollama 管理的所有大模型
ollama list

#執行大模型
ollama run Qwen2.5

#檢視正在執行的大模型
ollama ps

這樣 Qwen2.5 就算匯入成功了,實際上 llama 工具還可對大模型進行量化,量化後的大模型會更加精確,更加節省系統資源,有關量化的資訊可自行研究。

相關文章