Ollama 是什么
Ollama 是由一家旧金山创业公司开发的本地 LLM 运行工具。它把模型下载、量化、推理封装成一条命令。
和直接跑 Hugging Face Transformers 相比:不需要写 Python、不需要管理 CUDA 版本、不需要手动下载模型权重。它帮你搞定一切。
安装和首次运行
# macOS:直接下载 dmg
# Linux:一行命令
curl -fsSL https://ollama.com/install.sh | sh
# 拉取并运行模型(3B 版本约 2GB)
ollama run llama3.2
# 或者试试通义千问(中文更好)
ollama run qwen2.5:7b
首次运行会自动下载模型。7B 模型约 4-5GB,下载速度取决于网络。
REST API
Ollama 启动后会在 localhost:11434 提供兼容 OpenAI 格式的 API:
# 普通请求
curl http://localhost:11434/api/generate -d '{
"model": "qwen2.5:7b",
"prompt": "用中文解释什么是 Transformer 的 Self-Attention",
"stream": false
}'
# 流式输出(打字机效果)
curl http://localhost:11434/api/generate -d '{
"model": "qwen2.5:7b",
"prompt": "写一首关于 AI 的七言绝句",
"stream": true
}'
# Chat 格式(支持多轮对话)
curl http://localhost:11434/api/chat -d '{
"model": "qwen2.5:7b",
"messages": [
{"role": "user", "content": "什么是 LoRA?"}
]
}'
Python 调用
import requests
import json
def chat(model, messages):
resp = requests.post('http://localhost:11434/api/chat', json={
'model': model,
'messages': messages,
'stream': False
})
return resp.json()['message']['content']
# 使用
response = chat('qwen2.5:7b', [
{'role': 'system', 'content': '你是一个 AI 技术专家'},
{'role': 'user', 'content': '解释 Flash Attention 的原理'}
])
print(response)
自定义 Modelfile
你可以创建自定义的系统 prompt 来给模型”设定角色”:
# Modelfile
FROM qwen2.5:7b
SYSTEM "你是一个 AI 技术写作助手,擅长用简洁清晰的中文解释复杂概念。
回复要结构化,包含代码示例和实际应用场景。"
PARAMETER temperature 0.7
PARAMETER top_p 0.9
然后创建自定义模型:
ollama create ai-writer -f Modelfile
ollama run ai-writer
搭配 Open WebUI
命令行不够友好?Open WebUI 提供了一个类 ChatGPT 的界面:
docker run -d -p 3000:8080 \
-v open-webui:/app/backend/data \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
ghcr.io/open-webui/open-webui:main
打开 http://localhost:3000 就能看到聊天界面,支持多模型切换、对话历史、文件上传等功能。
常用模型推荐
| 模型 | 大小 | 特色 |
|---|---|---|
| llama3.2:3b | 2GB | 轻量通用,适合快速问答 |
| qwen2.5:7b | 4.5GB | 中文最强 7B,代码和推理俱佳 |
| mistral:7b | 4.1GB | 英文写作流畅 |
| deepseek-r1:7b | 4.7GB | 推理能力强,适合复杂分析 |
| phi3:mini | 2.2GB | 微软出品,性价比高 |
本地推理的性能瓶颈主要在显存和内存带宽。如何优化见 LLM 推理优化。