Ollama
Ollama 是一个本地模型运行器,允许您在本地运行多种开源大语言模型,确保数据隐私和离线使用。
支持的模型
Meta LLaMA 系列
- llama3 - LLaMA 3 系列模型
- llama3:8b - LLaMA 3 8B 参数版本
- llama3:70b - LLaMA 3 70B 参数版本
- llama2 - LLaMA 2 系列模型
其他热门模型
- codellama - 代码专用模型
- mistral - Mistral AI 的开源模型
- qwen - 阿里云通义千问
- gemma - Google 的开源模型
- phi3 - Microsoft 的 Phi-3 模型
配置方法
基础配置
yaml
models:
- name: "local-llama3"
provider: "ollama"
model: "llama3"
apiBase: "http://localhost:11434"
roles: ["chat"]
defaultCompletionOptions:
temperature: 0.7
maxTokens: 2000多模型配置
yaml
models:
- name: "llama3-chat"
provider: "ollama"
model: "llama3"
apiBase: "http://localhost:11434"
roles: ["chat"]
defaultCompletionOptions:
temperature: 0.7
maxTokens: 2000
- name: "codellama-edit"
provider: "ollama"
model: "codellama"
apiBase: "http://localhost:11434"
roles: ["edit"]
defaultCompletionOptions:
temperature: 0.3
maxTokens: 1500
- name: "qwen-autocomplete"
provider: "ollama"
model: "qwen:7b"
apiBase: "http://localhost:11434"
roles: ["autocomplete"]
defaultCompletionOptions:
temperature: 0.1
maxTokens: 500自定义端点配置
yaml
models:
- name: "remote-ollama"
provider: "ollama"
model: "llama3"
apiBase: "http://192.168.1.100:11434"
roles: ["chat"]
requestOptions:
timeout: 120000
verifySsl: false高级配置
带认证的配置
yaml
models:
- name: "secure-ollama"
provider: "ollama"
model: "llama3"
apiBase: "http://localhost:11434"
roles: ["chat"]
requestOptions:
timeout: 60000
headers:
"Authorization": "Bearer ${OLLAMA_TOKEN}"完整配置示例
yaml
models:
- name: "ollama-complete"
provider: "ollama"
model: "llama3:8b"
apiBase: "http://localhost:11434"
roles: ["chat", "edit", "apply"]
defaultCompletionOptions:
temperature: 0.7
maxTokens: 4000
topP: 0.9
stream: true
requestOptions:
timeout: 120000
verifySsl: true使用场景配置
本地开发
yaml
models:
- name: "local-dev"
provider: "ollama"
model: "codellama:7b"
apiBase: "http://localhost:11434"
roles: ["chat", "edit"]
defaultCompletionOptions:
temperature: 0.3
maxTokens: 2000隐私保护
yaml
models:
- name: "private-chat"
provider: "ollama"
model: "llama3"
apiBase: "http://localhost:11434"
roles: ["chat"]
defaultCompletionOptions:
temperature: 0.7
maxTokens: 1000
requestOptions:
timeout: 60000快速响应
yaml
models:
- name: "fast-local"
provider: "ollama"
model: "phi3:mini"
apiBase: "http://localhost:11434"
roles: ["autocomplete"]
defaultCompletionOptions:
temperature: 0.1
maxTokens: 200
requestOptions:
timeout: 10000安装和设置
1. 安装 Ollama
bash
# macOS
brew install ollama
# Linux
curl -fsSL https://ollama.com/install.sh | sh
# Windows
# 从 https://ollama.com/download 下载安装包2. 启动 Ollama 服务
bash
# 启动服务
ollama serve
# 或者在后台运行
nohup ollama serve > ollama.log 2>&1 &3. 下载模型
bash
# 下载 LLaMA 3
ollama pull llama3
# 下载代码模型
ollama pull codellama
# 下载轻量级模型
ollama pull phi3:mini
# 列出已下载的模型
ollama list4. 测试模型
bash
# 测试对话
ollama run llama3 "Hello, how are you?"
# 交互式聊天
ollama run llama3高级用法
自定义模型
bash
# 创建自定义模型
ollama create mymodel -f Modelfile
# Modelfile 示例
FROM llama3
SYSTEM """You are a helpful AI assistant."""
PARAMETER temperature 0.7
PARAMETER top_p 0.9GPU 加速
确保系统有合适的 GPU 驱动:
bash
# NVIDIA GPU
# 安装 CUDA 驱动
# Ollama 会自动检测并使用 GPU
# Apple Silicon (M1/M2/M3)
# Ollama 会自动使用 Metal 性能框架远程访问
bash
# 允许远程访问
OLLAMA_HOST=0.0.0.0 ollama serve
# 配置防火墙规则
sudo ufw allow 11434常见问题
Q: Ollama 连接失败怎么办?
A: 检查以下几点:
- Ollama 服务是否正在运行:
ps aux | grep ollama - 端口 11434 是否可用:
netstat -an | grep 11434 - 防火墙设置是否正确
Q: 模型下载很慢?
A:
- 使用镜像源或代理
- 选择较小的模型版本
- 考虑使用预下载的模型文件
Q: 内存不足怎么办?
A:
- 选择较小的模型(如 7B 而不是 70B)
- 关闭其他占用内存的程序
- 考虑增加系统内存
Q: 如何更新模型?
A:
bash
# 更新模型到最新版本
ollama pull llama3:latest
# 查看可用版本
ollama show llama3Q: 响应时间太长?
A:
- 使用较小的模型
- 启用 GPU 加速
- 减少 maxTokens 设置
- 使用量化版本(如 q4 版本)
最佳实践
1. 模型选择
- 开发测试: 使用较小的 7B 模型
- 生产环境: 根据硬件选择合适大小
- 隐私敏感: 始终使用本地模型
- 速度优先: 使用量化版本
2. 硬件优化
- GPU: 使用 CUDA 或 Metal 加速
- 内存: 至少 16GB RAM 用于 7B 模型
- 存储: 使用 SSD 提高加载速度
3. 安全考虑
- 本地部署确保数据隐私
- 定期更新 Ollama 和模型
- 限制网络访问(如仅本地访问)
4. 性能调优
- 预加载常用模型
- 使用合适的温度参数
- 启用流式响应
模型推荐
| 使用场景 | 推荐模型 | 显存需求 | 特点 |
|---|---|---|---|
| 通用对话 | llama3:8b | ~8GB | 平衡性能 |
| 代码生成 | codellama:7b | ~8GB | 代码专用 |
| 轻量级任务 | phi3:mini | ~4GB | 快速响应 |
| 高质量对话 | llama3:70b | ~40GB | 高质量 |
| 中文优化 | qwen:7b | ~8GB | 中文支持好 |