2366 字
12 分钟

Ollama多模型部署完全指南:Llama/Qwen/GLM统一管理与GPU优化(2026最新)

Ollama 已成为本地部署开源大模型的事实标准。相比仅部署单一 DeepSeek 模型,本文聚焦如何使用 Ollama 统一管理 Llama、Qwen、GLM 等多种开源大模型,实现多模型并行、GPU 加速与服务化集成。

Ollama多模型部署完全指南

阅读提示

本文与 《本地部署 DeepSeek + Ollama 完全指南》 互为补充:后者聚焦 DeepSeek 单模型部署与 RAG 知识库,本文聚焦多模型统一管理、GPU 优化与服务化集成。


一、Ollama 多模型架构概览#

1.1 为什么需要多模型管理?#

场景推荐模型理由
中文对话Qwen2.5 / GLM-4中文能力最强
代码生成DeepSeek-Coder / Qwen2.5-Coder代码专项优化
多模态(图文)LLaVA / GLM-4V支持图像理解
轻量部署Phi-3-mini / Gemma-2-2B资源占用低
顶级推理Llama 3.3 70B / Qwen3 72B综合能力最强
函数调用Qwen2.5 / GLM-4工具调用能力强

1.2 Ollama 多模型架构#

┌─────────────────┐
│ Open WebUI │
│ (统一界面) │
└────────┬────────┘
┌────────▼────────┐
│ Ollama Server │
│ (API: 11434) │
└────────┬────────┘
┌────────────┬───────┼───────┬────────────┐
▼ ▼ ▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────┐ ┌─────┐ ┌─────────┐
│ Llama3.3│ │ Qwen2.5 │ │GLM-4│ │Phi-3│ │DeepSeek │
│ 70B │ │ 72B │ │ 9B │ │mini │ │ V3 │
└─────────┘ └─────────┘ └─────┘ └─────┘ └─────────┘
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
┌─────────────────────────────────────────────────────┐
│ GPU 显存池 / CPU 内存池 │
└─────────────────────────────────────────────────────┘

二、安装与基础配置#

2.1 安装 Ollama#

macOS / Linux#

Terminal window
# 一键安装
curl -fsSL https://ollama.com/install.sh | sh
# 验证安装
ollama --version

Windows#

ollama.com/download 下载安装包。

Docker 部署#

Terminal window
# 基础部署
docker run -d \
--name ollama \
-p 11434:11434 \
-v ollama_data:/root/.ollama \
ollama/ollama
# GPU 加速(NVIDIA)
docker run -d \
--name ollama \
--gpus=all \
-p 11434:11434 \
-v ollama_data:/root/.ollama \
ollama/ollama

2.2 环境变量配置#

Terminal window
# Linux/macOS:编辑 ~/.ollama 或 systemd 配置
# 模型存储路径
export OLLAMA_MODELS=/data/ollama/models
# 监听地址(允许远程访问)
export OLLAMA_HOST=0.0.0.0:11434
# 并行请求数
export OLLAMA_NUM_PARALLEL=2
# 显存保留(避免OOM)
export OLLAMA_MAX_VRAM=20
# 上下文窗口
export OLLAMA_CONTEXT_LENGTH=8192
# GPU 设备选择
export CUDA_VISIBLE_DEVICES=0,1

2.3 systemd 服务配置#

Terminal window
# 编辑服务配置
sudo systemctl edit ollama
# 添加环境变量
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/data/ollama/models"
Environment="OLLAMA_NUM_PARALLEL=2"
Environment="CUDA_VISIBLE_DEVICES=0,1"
# 重启服务
sudo systemctl restart ollama

三、主流模型下载与运行#

3.1 模型选择指南#

模型参数量显存需求(Q4)中文能力推荐场景
Qwen2.5 7B7B5GB⭐⭐⭐⭐⭐中文对话主力
Qwen2.5 32B32B20GB⭐⭐⭐⭐⭐高质量中文
Qwen2.5 72B72B42GB⭐⭐⭐⭐⭐顶级中文推理
Llama 3.3 70B70B40GB⭐⭐⭐⭐英文/代码
Llama 3.1 8B8B5GB⭐⭐⭐轻量英文
GLM-4 9B9B6GB⭐⭐⭐⭐⭐中文+函数调用
DeepSeek V3671B404GB⭐⭐⭐⭐⭐顶级推理(需集群)
Phi-3-mini3.8B2.5GB⭐⭐⭐轻量部署
Gemma 2 2B2B1.5GB⭐⭐⭐边缘设备

3.2 下载模型#

Terminal window
# 中文主力:Qwen2.5
ollama pull qwen2.5:7b
ollama pull qwen2.5:32b
# 英文/代码:Llama 3.3
ollama pull llama3.3:70b
# 中文+工具调用:GLM-4
ollama pull glm4:9b
# 轻量模型:Phi-3
ollama pull phi3:mini
# 多模态:LLaVA
ollama pull llava:13b
# 代码模型:DeepSeek-Coder
ollama pull deepseek-coder-v2:16b

3.3 运行模型#

Terminal window
# 交互式运行
ollama run qwen2.5:7b
# 指定模型运行
ollama run llama3.3:70b "解释量子计算"
# 使用 Modelfile 自定义模型
ollama create my-qwen -f Modelfile

3.4 Modelfile 自定义模型#

# Modelfile
FROM qwen2.5:7b
# 系统提示
SYSTEM """
你是一个专业的中文AI助手,回答问题时使用简洁清晰的中文。
"""
# 参数调整
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER num_ctx 8192
PARAMETER stop "<|im_end|>"
# 模板
TEMPLATE """
{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
"""
Terminal window
# 创建自定义模型
ollama create my-qwen -f Modelfile
# 运行
ollama run my-qwen

3.5 模型管理#

Terminal window
# 查看已下载模型
ollama list
# 查看运行中模型
ollama ps
# 查看模型信息
ollama show qwen2.5:7b
# 删除模型
ollama rm phi3:mini
# 复制模型
ollama cp qwen2.5:7b qwen2.5-custom

四、GPU 加速与多 GPU 配置#

4.1 检测 GPU#

Terminal window
# NVIDIA GPU
nvidia-smi
# Apple Silicon
system_profiler SPDisplaysDataType
# 查看 Ollama GPU 使用
ollama ps

4.2 单 GPU 优化#

Terminal window
# 限制 GPU 使用量
export OLLAMA_MAX_VRAM=20 # 保留20GB显存
# 指定 GPU
export CUDA_VISIBLE_DEVICES=0
# 调整批处理大小
export OLLAMA_NUM_PARALLEL=1

4.3 多 GPU 配置#

Terminal window
# 使用多张 GPU
export CUDA_VISIBLE_DEVICES=0,1,2,3
# 张量并行(自动分布到多GPU)
ollama run llama3.3:70b
# 指定 GPU 分配
export OLLAMA_GPU_MEMORY_FRACTION=0.9

4.4 CPU 模式优化#

Terminal window
# 强制 CPU 模式
export OLLAMA_NOGPU=1
# CPU 线程数
export OLLAMA_NUM_THREAD=8
# 内存优化
export OLLAMA_NUM_PARALLEL=1
export OLLAMA_CONTEXT_LENGTH=4096

4.5 显存分配策略#

显存推荐模型并行数上下文
8GB7B Q414K
12GB7B Q8 / 13B Q418K
16GB13B Q8 / 33B Q418K
24GB33B Q8 / 70B Q418K
48GB70B Q8116K
80GB70B FP16232K

五、Open WebUI 进阶配置#

5.1 Docker 部署 Open WebUI#

Terminal window
# 连接本地 Ollama
docker run -d \
--name open-webui \
-p 3000:8080 \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
-v open-webui-data:/app/backend/data \
--restart always \
ghcr.io/open-webui/open-webui:main
# 连接远程 Ollama
docker run -d \
--name open-webui \
-p 3000:8080 \
-e OLLAMA_BASE_URL=http://192.168.1.100:11434 \
-v open-webui-data:/app/backend/data \
--restart always \
ghcr.io/open-webui/open-webui:main

5.2 多模型对话#

Open WebUI 支持在对话中切换模型:

  1. 模型选择器:顶部下拉选择不同模型
  2. 多模型对话:同一对话中切换模型
  3. 模型对比:并排对比多个模型回答

5.3 RAG 知识库配置#

Terminal window
# 启用 RAG(Open WebUI 内置)
# 环境变量配置
-e ENABLE_RAG=True
-e CHUNK_SIZE=1000
- CHUNK_OVERLAP=200
-e RAG_TOP_K=4

5.4 多用户管理#

Terminal window
# 启用用户认证
-e ENABLE_SIGNUP=False
-e WEBUI_AUTH=True
# 管理员配置
-e ADMIN_EMAIL=admin@example.com

5.5 主题与界面定制#

Terminal window
# 自定义主题
-e THEME=dark
-e CUSTOM_NAME="My AI Assistant"
-e CUSTOM_LOGO=/path/to/logo.png

六、API 服务化与集成#

6.1 REST API 调用#

Terminal window
# 生成补全
curl http://localhost:11434/api/generate -d '{
"model": "qwen2.5:7b",
"prompt": "为什么天空是蓝色的?",
"stream": false
}'
# 对话补全
curl http://localhost:11434/api/chat -d '{
"model": "qwen2.5:7b",
"messages": [
{"role": "user", "content": "你好"}
],
"stream": false
}'
# 流式响应
curl http://localhost:11434/api/chat -d '{
"model": "qwen2.5:7b",
"messages": [{"role": "user", "content": "写一首诗"}],
"stream": true
}'

6.2 OpenAI 兼容 API#

Ollama 提供 OpenAI 兼容的 API 端点:

Terminal window
# OpenAI 兼容端点
curl http://localhost:11434/v1/chat/completions -d '{
"model": "qwen2.5:7b",
"messages": [
{"role": "user", "content": "Hello"}
]
}'

Python SDK 调用

from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama" # 任意值即可
)
response = client.chat.completions.create(
model="qwen2.5:7b",
messages=[
{"role": "user", "content": "解释机器学习"}
]
)
print(response.choices[0].message.content)

6.3 LangChain 集成#

from langchain_community.chat_models import ChatOllama
from langchain_core.prompts import ChatPromptTemplate
# 初始化模型
llm = ChatOllama(
model="qwen2.5:7b",
temperature=0.7
)
# 创建提示模板
prompt = ChatPromptTemplate.from_messages([
("system", "你是一个专业的中文助手。"),
("user", "{input}")
])
# 创建链
chain = prompt | llm
# 调用
response = chain.invoke({"input": "什么是大模型?"})
print(response.content)

6.4 LlamaIndex 集成#

from llama_index.llms.ollama import Ollama
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
# 加载文档
documents = SimpleDirectoryReader("./data").load_data()
# 初始化 Ollama
llm = Ollama(model="qwen2.5:7b", request_timeout=60.0)
# 创建索引
index = VectorStoreIndex.from_documents(documents, llm=llm)
# 查询
query_engine = index.as_query_engine(llm=llm)
response = query_engine.query("文档的主要内容是什么?")
print(response)

6.5 多模型路由#

import requests
class MultiModelRouter:
def __init__(self):
self.models = {
"chinese": "qwen2.5:7b",
"code": "deepseek-coder-v2:16b",
"english": "llama3.3:70b",
"vision": "llava:13b"
}
def chat(self, query_type, message):
model = self.models.get(query_type, "qwen2.5:7b")
response = requests.post(
"http://localhost:11434/api/chat",
json={
"model": model,
"messages": [{"role": "user", "content": message}],
"stream": False
}
)
return response.json()["message"]["content"]
# 使用
router = MultiModelRouter()
print(router.chat("chinese", "你好"))
print(router.chat("code", "写一个快速排序"))

七、多模型并行部署#

7.1 单实例多模型#

Terminal window
# 通过环境变量配置
export OLLAMA_NUM_PARALLEL=2
export OLLAMA_MAX_VRAM=40
# 多模型可同时加载(需显存充足)
ollama run qwen2.5:7b &
ollama run glm4:9b &

7.2 多实例部署#

Terminal window
# 实例1:主模型(GPU 0)
OLLAMA_HOST=0.0.0.0:11434 \
CUDA_VISIBLE_DEVICES=0 \
ollama serve &
# 实例2:代码模型(GPU 1)
OLLAMA_HOST=0.0.0.0:11435 \
CUDA_VISIBLE_DEVICES=1 \
ollama serve &
# 实例3:多模态模型(GPU 2)
OLLAMA_HOST=0.0.0.0:11436 \
CUDA_VISIBLE_DEVICES=2 \
ollama serve &

7.3 Docker Compose 多实例#

services:
ollama-main:
image: ollama/ollama
ports:
- "11434:11434"
environment:
- CUDA_VISIBLE_DEVICES=0
volumes:
- ollama-data:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
device_ids: ['0']
ollama-code:
image: ollama/ollama
ports:
- "11435:11434"
environment:
- CUDA_VISIBLE_DEVICES=1
volumes:
- ollama-code-data:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
device_ids: ['1']
volumes:
ollama-data:
ollama-code-data:

7.4 Nginx 负载均衡#

upstream ollama_backend {
server localhost:11434;
server localhost:11435;
server localhost:11436;
}
server {
listen 8080;
location / {
proxy_pass http://ollama_backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}

八、性能优化技巧#

8.1 量化选择#

量化精度显存速度质量
FP1616位100%最好
Q88位50%
Q44位25%较好
Q33位20%最快一般

推荐

  • 日常使用:Q4(性价比最高)
  • 高质量需求:Q8
  • 资源受限:Q3

8.2 上下文窗口优化#

Terminal window
# 增大上下文(消耗更多显存)
export OLLAMA_CONTEXT_LENGTH=32768
# Modelfile 中设置
PARAMETER num_ctx 16384

8.3 批处理优化#

Terminal window
# 增加并行请求数
export OLLAMA_NUM_PARALLEL=4
# 但需要更多显存

8.4 预热模型#

Terminal window
# 启动时预加载模型
ollama run qwen2.5:7b "" --keepalive 24h
# 保持模型在显存中
OLLAMA_KEEP_ALIVE=24h

8.5 性能监控#

Terminal window
# 实时监控
watch -n 1 nvidia-smi
# Ollama 状态
ollama ps
# API 响应时间
time curl http://localhost:11434/api/generate -d '{
"model": "qwen2.5:7b",
"prompt": "test",
"stream": false
}'

九、常见问题排错#

Q1:模型下载失败/速度慢#

解决

Terminal window
# 使用代理
export HTTP_PROXY=http://proxy:port
export HTTPS_PROXY=http://proxy:port
# 或使用镜像
export OLLAMA_MODELS=/path/to/models

Q2:GPU 未被识别#

排查

Terminal window
# 检查驱动
nvidia-smi
# 检查 CUDA
nvcc --version
# Docker GPU 支持
docker run --rm --gpus all nvidia/cuda:12.0-base nvidia-smi

Q3:显存不足(OOM)#

解决

  1. 使用更小的量化版本(Q4 替代 Q8)
  2. 减小上下文窗口
  3. 使用更小的模型
  4. 减少 OLLAMA_NUM_PARALLEL

Q4:响应速度慢#

排查

  1. 确认是否使用 GPU:ollama ps
  2. 检查显存占用:nvidia-smi
  3. 减小上下文长度
  4. 使用更小量化版本

Q5:中文输出质量差#

解决

  1. 使用 Qwen2.5 或 GLM-4(中文能力最强)
  2. 在 Modelfile 中设置中文系统提示
  3. 调整 temperature 到 0.7

十、总结与最佳实践#

10.1 部署清单#

□ 安装 Ollama 并配置环境变量
□ 下载所需模型(Qwen2.5 + GLM-4 + DeepSeek-Coder)
□ 配置 GPU 加速
□ 部署 Open WebUI 统一界面
□ 配置 API 服务化
□ 集成 LangChain/LlamaIndex(按需)
□ 设置多模型路由(按需)
□ 配置性能监控
□ 测试备份与恢复

10.2 推荐配置#

场景推荐模型显存需求
个人中文助手Qwen2.5 7B Q46GB
代码辅助DeepSeek-Coder-V2 16B10GB
高质量推理Qwen2.5 32B Q420GB
多模态应用LLaVA 13B8GB
企业级部署Qwen2.5 72B Q442GB

📚 相关文章推荐#


:::info 免责声明 本文为技术信息分享,不构成任何建议。实际部署请根据硬件配置和业务需求选择合适的模型与参数。 :::

Ollama多模型部署完全指南:Llama/Qwen/GLM统一管理与GPU优化(2026最新)
https://971918.xyz/posts/docs/ollama-multi-model-guide/
作者
九所长
发布于
2026-07-07
许可协议
CC BY-NC-SA 4.0