🧠 目录
- Ollama 是什么
- Ollama 的核心特点
- Ollama 的安装教程(macOS / Linux / Windows)
- 下载与管理 LLM 模型(如 llama2、mistral、gemma 等)
- 使用命令行启动和交互推理
- 创建自定义模型
Modelfile
- Ollama 与 WebUI(如 Open WebUI)的集成
- 用 Ollama 构建本地聊天机器人
- 与 LangChain / LlamaIndex 集成
- 与 VSCode、Jupyter、Notebooks 集成
- 使用 Ollama 构建 API 服务
- 使用 Ollama 进行微调(Finetuning)
- 常见问题排查(FAQ)
- 模型性能比较与推荐
1. Ollama 是什么
Ollama 是一个轻量级的本地大语言模型(LLM)运行平台,专注于简化模型下载、部署与运行,特别适合个人用户在本地部署聊天、问答、写作等应用。
- 支持 Hugging Face 常见的开源模型(LLaMA2、Mistral、Gemma、Code LLaMA 等)
- 支持 macOS (支持 Apple Silicon)、Linux、Windows
- 零配置,开箱即用
2. 核心特点
- ✅ 本地部署,无需联网调用
- ✅ 支持 GPU 加速(macOS 支持 Metal)
- ✅ 模型容器化,快速切换运行多个模型
- ✅ 支持 REST API,可与前后端服务无缝对接
- ✅ 开发者友好,适合构建智能助手、代码生成器等应用
3. Ollama 安装教程
🖥️ macOS
brew install ollama
ollama run llama2
🐧 Linux
curl -fsSL https://ollama.com/install.sh | sh
安装后启动:
ollama run llama2
🪟 Windows(目前需 WSL)
- 安装 WSL2 和 Ubuntu
- 然后在 Ubuntu 下安装:
curl -fsSL https://ollama.com/install.sh | sh
4. 下载与管理模型
可用模型列表:
ollama list
下载模型:
ollama run mistral
自动下载 mistral
模型,首次启动会拉取模型。
查看当前模型:
ollama list
删除模型:
ollama remove mistral
5. 命令行交互示例
ollama run llama2
进入交互模式:
> What is the capital of Japan?
Tokyo is the capital of Japan.
支持多轮对话,也可以使用 ollama run model --prompt "Your question"
直接提问。
6. 创建自定义模型
创建一个 Modelfile
:
FROM mistral
SYSTEM "You are a professional Python tutor."
构建:
ollama create py-tutor -f Modelfile
使用:
ollama run py-tutor
7. 与 WebUI 集成
可以搭配如 Open WebUI 使用图形界面:
docker run -d --name open-webui -p 3000:3000 -v open-webui:/app/backend/data --add-host=host.docker.internal:host-gateway ghcr.io/open-webui/open-webui:main
默认访问地址:http://localhost:3000
8. 构建本地聊天机器人
用 Flask 示例快速构建 API 接口:
from flask import Flask, request, jsonify
import subprocess
app = Flask(__name__)
@app.route("/chat", methods=["POST"])
def chat():
user_input = request.json["message"]
result = subprocess.run(
["ollama", "run", "mistral", "--prompt", user_input],
capture_output=True, text=True
)
return jsonify({"response": result.stdout.strip()})
app.run(port=5000)
9. 与 LangChain / LlamaIndex 集成
LangChain 示例:
from langchain.llms import Ollama
llm = Ollama(model="mistral")
response = llm("Tell me a joke about AI.")
print(response)
10. VSCode / Notebook 中使用
可通过 REST API 或集成到 VSCode 的插件使用 Ollama,本地部署更方便调试、生成代码、问答等任务。
11. 构建 API 服务
启动 REST API 服务器:
ollama serve
请求接口:
curl http://localhost:11434/api/generate -d '{
"model": "mistral",
"prompt": "Tell me a fun fact"
}'
12. 模型微调(finetune)
目前 Ollama 支持基础微调方式(如提供文本对话格式),但更复杂的 LoRA、QLoRA 微调需借助其它工具(如 Axolotl)。
13. 常见问题排查
问题 | 解决方法 |
---|---|
模型下载太慢 | 换代理或提前下载模型手动放入缓存目录 |
无法启动模型 | 检查显存是否足够,推荐至少 8GB RAM |
API 无响应 | 确保已运行 ollama serve |
中文回答不通顺 | 换中文优化模型(如 qwen , yi , chatglm3 ) |
14. 模型推荐与对比(2025 年)
模型 | 大小 | 特点 | 推荐用途 |
---|---|---|---|
mistral | 4GB | 快速、泛用 | 对话、摘要 |
llama2 | 7B | 逻辑强 | 写作、问答 |
gemma | 2B | 谷歌出品 | 辅助编程 |
qwen | 7B | 中文能力强 | 中文对话 |
phi | 2.7B | 小而快 | 教学、学习助手 |
发表回复