Ollama:让本地大模型运行变得简单

Ollama:让本地大模型运行变得简单

简单、快速、本地运行大语言模型的开源利器

Ollama 是一个开源的大语言模型运行框架,旨在让在本地运行 LLM 变得前所未有的简单。无论你是开发者、研究者还是 AI 爱好者,Ollama 都能让你轻松地在自己的机器上运行各种开源模型,而无需担心复杂的依赖和配置。

什么是 Ollama?

Ollama 是一个命令行工具和 API 服务,它抽象了在本地运行大语言模型的复杂性。通过简单的命令如 ollama run llama3,你就可以启动一个功能完整的 LLM 服务,包括 REST API、流式输出和多模态支持。

核心特性

  • 一键运行模型:无需手动下载权重、配置环境或编写推理代码
  • 内置 REST API:开箱即用的 API,轻松集成到你的应用中
  • 模型管理:简单的下载、列表、删除和更新命令
  • 跨平台支持:macOS、Linux(AMD/Intel/NVIDIA)、Windows 全覆盖
  • 多模态支持:文本、图像、OCR 等多种输入类型
  • 工具调用(Tool Calling):原生支持函数调用和外部工具集成

Ollama 与 llama.cpp 的关系

很多人会问:Ollama 和 llama.cpp 有什么区别?简单来说:

llama.cpp:推理引擎

llama.cpp 是 Georgi Gerganov 开发的高效 C++ 推理引擎,专门为在 CPU 和 GPU 上运行 LLaMA 及其变体模型而设计。它是社区驱动的项目,以高性能和低资源占用著称。

特点

  • 速度最快,13-80% 快于纯 llama.cpp 封装
  • 紧跟上游更新,支持最新的模型架构
  • 需要一定的技术背景来配置和使用

Ollama:用户友好的封装层

Ollama 在底层使用 llama.cpp 作为推理引擎,但在此基础上提供了:

  1. 简化的 CLI:一个命令就能运行模型
  2. 内置 HTTP API:无需编写服务器代码
  3. 模型仓库:从 Ollama Library 下载模型,自动处理格式转换
  4. 多架构支持:除了 LLaMA,还支持 Mistral、Gemma、Qwen 等
  5. 图形界面:macOS 和 Windows 提供原生应用

核心关系:Ollama = llama.cpp + 易用层 + 生态系统

MLX 支持:Apple Silicon 的加速器

从 v0.14.0 开始,Ollama 引入了基于 Apple MLX 框架的实验性支持。MLX 是 Apple 为其自家芯片(M1/M2/M3/M4)设计的机器学习框架。

为什么选择 MLX?

对于 Apple Silicon 用户,MLX 提供了几个关键优势:

  • Metal 集成:直接使用 Apple GPU,无需第三方依赖
  • 内存效率:统一内存架构(UMA)减少数据拷贝
  • 性能优化:专门为 Apple 架构优化的算子

Ollama 中的 MLX 应用

  • 实验性图像生成:v0.14.0 引入,支持 Z-Image-Turbo、Flux.2 Klein 等模型
  • GLM-4.7-Flash 支持:v0.15.5 添加,30B 参数级别的快速模型
  • 未来计划:更多模型将逐步迁移到 MLX 引擎

要启用 MLX 引擎,目前需要通过环境变量选择,未来版本可能提供更简单的切换方式。

SDK 与集成

Ollama 提供了多种编程语言的 SDK 和库,让你轻松集成到任何项目中。

Python SDK

官方的 Python 库提供了类型安全的接口:

1
2
3
4
5
6
7
8
9
10
11
12
from ollama import Client

client = Client(host='http://localhost:11434')

response = client.chat(model='llama3', messages=[
{
'role': 'user',
'content': '为什么天空是蓝色的?'
}
])

print(response['message']['content'])

特性

  • 流式输出支持
  • 异步 API
  • 完整类型注解
  • 工具调用(Tool Calling)
  • 嵌入(Embeddings)

JavaScript / TypeScript SDK

1
2
3
4
5
6
7
8
import ollama from 'ollama'

const response = await ollama.chat({
model: 'llama3',
messages: [{ role: 'user', content: '为什么天空是蓝色的?' }]
})

console.log(response.message)

OpenAI 兼容 API

Ollama 提供了 OpenAI 兼容的 API 端点,让你无需修改代码就能切换:

  • /v1/chat/completions - 聊天完成
  • /v1/completions - 文本完成
  • /v1/embeddings - 向量嵌入
  • /v1/messages - Anthropic 风格消息(v0.14.0 新增)

这意味着你可以使用 LangChain、LlamaIndex 等主流框架,只需更改 base URL 即可。

其他集成方式

  • Go SDK:原生 Go 客户端库
  • REST API:HTTP JSON 接口,适用于任何语言
  • CLI 工具ollama runollama listollama pull 等命令

快速开始

安装

1
2
3
4
5
6
7
8
# macOS
brew install ollama

# Linux
curl -fsSL https://ollama.com/install.sh | sh

# Windows
# 从 ollama.com 下载安装包

运行模型

1
2
3
4
5
6
7
8
# 拉取并运行 LLaMA 3
ollama run llama3

# 拉取特定参数版本
ollama run llama3:8b

# 交互式聊天模式
ollama run qwen3-vl

使用 API

1
2
3
4
5
6
7
8
# 启动服务
ollama serve

# 使用 curl 调用
curl http://localhost:11434/api/generate -d '{
"model": "llama3",
"prompt": "用 Python 写一个排序算法"
}'

模型生态系统

Ollama 支持超过 100 种开源模型,包括:

模型系列 描述
LLaMA Meta 的开源模型系列(LLaMA 2/3)
Gemma Google 的轻量级模型(Gemma 2/3)
Mistral Mistral AI 的模型(Mistral 7B、Mixtral)
Qwen 阿里巴巴的 Qwen 系列(Qwen 2/3)
DeepSeek DeepSeek 的推理模型(DeepSeek-V3.1)
GLM 智谱 GLM 系列(GLM-4.7-Flash)
Code LLMs Qwen3-Coder、Mistral-Coder 等代码专用模型

访问 Ollama Library 浏览完整列表。

高级功能

工具调用(Tool Calling)

Ollama 原生支持工具调用,让模型能够调用外部函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"model": "qwen3-coder",
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取当前天气",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string"}
}
}
}
}],
"messages": [...]
}

多模态支持

1
2
3
# 视觉语言模型
ollama run qwen3-vl
# 然后提供图片路径

图像生成(实验性)

1
2
# MLX 引擎支持的图像生成
OLLAMA_ENGINE=mlx ollama run x/z-image-turbo

云模型(Cloud Models)

从 v0.12.0 开始,Ollama 提供云模型服务,让你运行本地无法承受的大模型:

1
ollama run qwen3-coder:480b-cloud

使用场景

1. 开发与测试

  • 本地测试 LLM 应用
  • 快速原型开发
  • 离线开发和调试

2. 隐私敏感应用

  • 文档处理(本地 OCR)
  • 代码分析
  • 个人知识库查询

3. 学习与研究

  • 模型对比研究
  • 提示词工程实验
  • 理解模型行为

4. 生产集成

  • 作为 OpenAI 的替代后端
  • 企业内部知识问答
  • 边缘设备部署

性能考虑

后端 性能 资源占用 适用场景
llama.cpp(CUDA/ROCm) 最高 中等 GPU 服务器、工作站
MLX(Apple Silicon) Mac 本地开发
Vulkan(实验性) AMD/Intel GPU
CPU(通用) 最低 兼容性优先

社区与生态

  • GitHub: ollama/ollama - 90k+ stars
  • Discord: 活跃的开发者社区
  • 模型贡献: 社区可以上传自定义模型到 Ollama Library
  • 插件生态: 与 LangChain、LlamaIndex、AutoGPTQ 等深度集成

总结

Ollama 通过将复杂的 llama.cpp 引擎包装在用户友好的界面中,显著降低了本地运行 LLM 的门槛。无论你是想要快速测试一个新模型,还是构建生产级的应用,Ollama 都提供了一个平衡的解决方案:既保持了底层引擎的性能优势,又提供了开箱即用的便利性。

如果你正在寻找一个简单、快速、跨平台的方式来运行开源大模型,Ollama 是一个极佳的选择。


参考链接: