🧠 目录

  1. Ollama 是什么
  2. Ollama 的核心特点
  3. Ollama 的安装教程(macOS / Linux / Windows)
  4. 下载与管理 LLM 模型(如 llama2、mistral、gemma 等)
  5. 使用命令行启动和交互推理
  6. 创建自定义模型 Modelfile
  7. Ollama 与 WebUI(如 Open WebUI)的集成
  8. 用 Ollama 构建本地聊天机器人
  9. 与 LangChain / LlamaIndex 集成
  10. 与 VSCode、Jupyter、Notebooks 集成
  11. 使用 Ollama 构建 API 服务
  12. 使用 Ollama 进行微调(Finetuning)
  13. 常见问题排查(FAQ)
  14. 模型性能比较与推荐

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)

  1. 安装 WSL2 和 Ubuntu
  2. 然后在 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 年)

模型大小特点推荐用途
mistral4GB快速、泛用对话、摘要
llama27B逻辑强写作、问答
gemma2B谷歌出品辅助编程
qwen7B中文能力强中文对话
phi2.7B小而快教学、学习助手