本文将详细介绍如何在 Mac OS 与 Ubuntu 环境下使用 Ollama 与 vLLM 进行轻量级多模型部署,包括模型并行推理、安全与性能优化的实践经验,帮助初学者快速上手。
使用 Homebrew 快速安装 Ollama:
brew install ollama
ollama pull qwen:7b
ollama pull deepseek-r1:7b
ollama pull qwen2.5:7b
# 查看已下载模型
ollama list
Ollama 默认单实例无法同时运行多个模型,我们可以通过为每个模型实例分配不同端口实现并行部署:
# 启动实例1 - qwen:7b
export OLLAMA_HOST=127.0.0.1:11434
ollama serve &
ollama run qwen:7b
# 启动实例2 - deepseek-r1:7b
export OLLAMA_HOST=127.0.0.1:11435
ollama serve &
ollama run deepseek-r1:7b
也可使用 Docker 快速部署:
docker run -d -p 11434:11434 --name ollama-qwen ollama/ollama serve
docker exec ollama-qwen ollama run qwen:7b
docker run -d -p 11435:11434 --name ollama-deepseek ollama/ollama serve
docker exec ollama-deepseek ollama run deepseek-r1:7b
curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen:7b
ollama serve qwen:7b
创建 Dockerfile:
FROM ollama/ollama
RUN ollama pull qwen:7b
CMD ["ollama", "serve", "qwen:7b"]
容器启动示例:
docker build -t ollama-qwen .
docker run -d --name ollama-qwen -p 11434:11434 ollama-qwen
server {
listen 443 ssl;
server_name your-domain.com;
ssl_certificate /path/fullchain.pem;
ssl_certificate_key /path/privkey.pem;
location /ollama-qwen {
proxy_pass http://127.0.0.1:11434;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
vLLM 是一款性能强大的轻量级推理引擎,具有极佳的并发性能,适合生产环境。
conda create -n ai_assistant_env python=3.10
conda activate ai_assistant_env
pip install vllm transformers fastapi uvicorn
# 从 HuggingFace 下载模型
git clone https://huggingface.co/Qwen/Qwen-7B
git clone https://huggingface.co/deepseek-ai/deepseek-llm-7b-chat
# 启动服务
python -m vllm.entrypoints.api_server --model ./Qwen-7B --port 8000 &
python -m vllm.entrypoints.api_server --model ./deepseek-llm-7b-chat --port 8001 &
curl -X POST http://127.0.0.1:8000/generate -d '{"prompt": "Hello, AI!"}' -H "Content-Type: application/json"
curl -X POST http://127.0.0.1:8001/generate -d '{"prompt": "Explain quantum computing."}' -H "Content-Type: application/json"
使用量化提高推理性能:
python -m vllm.entrypoints.api_server --model MODEL_PATH --quantization awq
限制容器资源防止超载:
docker run -d --cpus=4 --memory=8g your-model-container
启用防火墙与 API 权限控制:
sudo ufw allow 11434/tcp
sudo ufw enable
使用 Nginx 提供基本认证:
location /model-api {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://127.0.0.1:8000;
}
创建认证用户:
sudo htpasswd -c /etc/nginx/.htpasswd username
启动 vLLM Prometheus 指标服务:
python -m vllm.entrypoints.api_server --model ./model_path --served-model-name my_model --metrics-port 9000
配置 Prometheus 抓取指标:
scrape_configs:
- job_name: 'vllm-my_model'
static_configs:
- targets: ['localhost:9000']
特性 | Ollama 默认 | Docker容器化 | vLLM推荐 |
---|---|---|---|
多模型并发 | 不支持 | 支持 | 支持,高效 |
性能优化 | 一般 | 中等 | 极佳(量化TP) |
安全保障 | 基本 | 推荐,容器化 | 推荐,安全隔离 |
资源消耗 | 中等 | 可控 | 低,高效 |
易用性 | 简单 | 中等 | 较易 |
使用场景 | 推荐方案 |
---|---|
本地开发与快速调试 | Ollama |
生产环境多模型部署 | vLLM 或 Docker 化的 Ollama |
希望本文能助你快速实现企业级 AI 模型部署与优化,与大家共同成长进步!