1.什么是Ollama?
Ollama是一個開源的大語言模型管理工具,具有以下特點:
- 簡單易用:提供簡單的命令行接口
- 本地部署:模型運行在本地,保護數據隱私
- 跨平臺支持:支持Windows、macOS、Linux
- 豐富的模型庫:支持多種主流大語言模型
- Docker支持:可以容器化部署
2. Linux 本地部署Ollama
(1)環境準備
在開始部署之前,先檢查一下系統環境:
# 檢查系統信息
cat /etc/os-release
uname -m# 檢查硬件資源(很重要!)
free -h # 查看內存
df -h # 查看磁盤空間
lscpu # 查看CPU信息# 如果有GPU,檢查CUDA支持
nvidia-smi # NVIDIA GPU
rocminfo # AMD GPU(如果適用)
(2)快速安裝
在 Linux 上安裝 Ollama 非常便捷,官方提供了一鍵安裝腳本。這個腳本會自動檢測您的系統環境(如 Ubuntu, CentOS 等),并自動下載并安裝 Ollama。
# 最簡單的安裝方式(適用于大多數Linux發行版)
curl -fsSL https://ollama.ai/install.sh | sh# 安裝完成后驗證
ollama --version
驗證時,如果看到類似 ollama version is 0.x.x
的輸出,說明安裝成功。
離線下載
curl -fsSL https://ollama.com/install.sh -o install.sh
也可以直接瀏覽器訪問https://ollama.com/install.sh,將腳本拷貝到文件install.sh中,再使用
sh install.sh命令安裝。
3.docker鏡像方式部署Ollama
ollama官方提供了鏡像,可以直接啟動容器使用,docker安裝教程可參考docker安裝和使用
(1)下載鏡像:
docker pull ollama/ollama
(2)啟動容器:
# 運行容器
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama# GPU加速運行容器
docker run -d --gpus=all -v ollama/.ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
(3)進入容器啟動模型:
docker exec -it ollama bashollama run deepseek-r1:1.5b
(4)多卡運行
ollama默認使用單卡進行部署,使用多卡推理需要設置環境變OLLAMA_SCHED_SPREAD=1,對于docker容器部署的ollama,直接在啟動命令里添加環境變量即可,對于Linux啟動的ollama,可手動更改環境變量,更改方法可參考Linux設置環境教程
docker run -d --gpus=all -e OLLAMA_SCHED_SPREAD=1 -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
4.Ollama的基本使用
(1)啟動服務
ollama serve
(2)模型管理
下載模型
查看已下載模型
# 列出所有模型
ollama list# 查看模型詳情
ollama show deepseek-r1:1.5b
刪除模型
# 刪除指定模型
ollama rm deepseek-r1:1.5b
(3)模型下載
ollama pull <model_name># 例如
ollama pull deepseek-r1:1.5b
需要下載的模型,可去官網Ollama上去查看,點擊左上角的Models,點擊需要下載的模型
復制模型名稱
(4)模型運行
命令行交互
# 啟動模型交互
ollama run deepseek-r1:1.5b# 帶參數運行
ollama run deepseek-r1:1.5b "你好,介紹一下你自己"
API調用
# 使用curl調用API
curl http://localhost:11434/api/generate -d '{"model": "deepseek-r1:1.5b","prompt": "你好世界","stream": false
}'
(5)Python集成
安裝依賴
pip install ollama
基本使用示例
import ollama# 簡單對話
response = ollama.chat(model='deepseek-r1:1.5b', messages=[{'role': 'user','content': '你好,介紹一下Python',},
])
print(response['message']['content'])# 流式輸出
response = ollama.generate(model='deepseek-r1:1.5b',prompt='寫一首關于春天的詩',stream=True,
)for chunk in response:print(chunk['response'], end='', flush=True)
高級應用
import ollama
import jsonclass OllamaClient:def __init__(self, model='deepseek-r1:1.5b'):self.model = modeldef chat(self, messages):"""聊天對話"""response = ollama.chat(model=self.model, messages=messages)return response['message']['content']def generate(self, prompt, **kwargs):"""文本生成"""response = ollama.generate(model=self.model, prompt=prompt, **kwargs)return response['response']def embed(self, text):"""文本嵌入"""response = ollama.embeddings(model=self.model, prompt=text)return response['embedding']# 使用示例
client = OllamaClient('deepseek-r1:1.5b')
result = client.chat([{'role': 'user', 'content': '什么是人工智能?'}
])
print(result)
5. Ollama 后臺部署方式
Ollama 服務 (ollama serve
) 通常在安裝后會自動作為系統服務啟動并后臺運行,但了解手動管理方式也很重要。
(1)默認后臺運行
安裝完成后,Ollama 服務通常已經啟動。您可以使用以下命令檢查其狀態:
# 對于使用 systemd 的系統 (如 Ubuntu, CentOS)
sudo systemctl status ollama
(2)使用 nohup
手動后臺啟動(不推薦長期使用)
如果您需要手動啟動 ollama serve
并讓它在終端關閉后繼續運行,可以使用 nohup
:
nohup ollama serve > ollama.log 2>&1 &
這會將服務在后臺啟動,并將輸出日志保存到 ollama.log
文件中。
6. Ollama 同時運行多個模型
Ollama 的現代版本(如 0.2 及以上)支持同時加載和運行多個不同的模型,以及處理單個模型的并發請求。
(1)配置環境變量
要啟用多模型并行,需要在啟動 ollama serve
時設置以下環境變量:
OLLAMA_MAX_LOADED_MODELS
:設置可以同時加載到內存中的模型最大數量。OLLAMA_NUM_PARALLEL
:設置單個模型可以同時處理的請求數量。
?更改環境變量方法可參考Linux設置環境教程
(2)示例配置(Docker 方式)
以下命令啟動一個 Docker 容器,并配置它可以同時加載最多 2 個模型,每個模型可以并行處理 3 個請求:
docker run -d \-v ollama:/root/.ollama \-p 11434:11434 \-e OLLAMA_MAX_LOADED_MODELS=2 \-e OLLAMA_NUM_PARALLEL=3 \--name ollama \ollama/ollama
注意: 同時運行多個模型會顯著增加內存(RAM)消耗。請確保您的系統有足夠的資源。
(3)運行多個模型
配置好環境變量并啟動服務后,就可以像平常一樣運行不同的模型,Ollama 會根據配置和系統資源自動管理模型的加載和卸載。
7. Ollama 的管理命令
Ollama 提供了豐富的命令行接口 (CLI) 來方便地管理模型和服務。
常用管理命令列表
ollama serve
:啟動 Ollama 服務(通常后臺自動運行)。ollama pull <model_name>
:從 Ollama 庫下載指定模型。ollama run <model_name>
:運行指定模型,可以進行交互式對話。ollama ls
:列出本地已安裝的所有模型。ollama ps
:查看當前正在運行的模型。ollama show <model_name>
:顯示模型的詳細信息。ollama cp <source_model> <destination_model>
:復制模型。ollama rm <model_name>
:刪除本地指定模型。ollama create <model_name> -f <Modelfile>
:使用Modelfile
創建自定義模型。
下載模型:
ollama pull deepseek-r1:1.5b
列出模型:
ollama ls
注:ollama list
和 ollama ls
?是完全相同的命令
運行模型(交互式):
ollama run deepseek-r1:1.5b
# 進入交互模式后,可以輸入問題,例如:
# >>> 你好,deepseek!
# <<< 你好!很高興見到你!有什么我可以幫你的嗎?
# 使用 /bye 或 Ctrl+C 退出交互模式
查看運行中的模型:
ollama ps
顯示模型信息:
ollama show deepseek-r1:1.5b
刪除模型:
ollama rm deepseek-r1:1.5b