只需一条命令,就能在Mac上拥有本地大模型,不依赖云端,数据完全私有。本文手把手带你从安装到运行,甚至让Java程序调用它。


📌 前言

Ollama 是一个轻量级的本地大模型运行工具,支持 Mac、Linux 和 Windows。它像 Docker 管理容器一样管理大模型,让你轻松在本地运行 Llama、Gemma、Phi 等开源模型。

本文将完整记录在 macOS(Apple Silicon) 上部署 Ollama 并运行 gemma3:1b 模型的全部步骤。无论你是开发者想集成到项目中,还是只是想体验本地 AI,这篇文章都适合你。


🔧 环境要求

  • 硬件:Apple Silicon(M1/M2/M3/M5)或 Intel 芯片,建议内存≥8GB

  • 系统:macOS 12 Monterey 或更新版本

  • 网络:需要访问 GitHub 和 Ollama 官方仓库(下载模型时需要)


第一步:安装 Homebrew(如已安装可跳过)

Homebrew 是 macOS 的包管理器,我们将用它来安装 Ollama。

打开 终端(Terminal),粘贴以下命令并回车:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装完成后,按提示将 Homebrew 加入 PATH(通常会自动完成)。验证安装:

brew --version

如果输出版本号,说明 Homebrew 已就绪。


第二步:安装 Ollama

通过 Homebrew 安装 Ollama 非常简单:

brew install ollama

安装完成后,你可以查看版本:

ollama --version

此时客户端已安装,但服务还未启动。


第三步:启动 Ollama 服务

Ollama 采用 C/S 架构,需要先启动服务端,才能使用客户端命令(如 ollama run)。提供了两种启动方式,任选其一。

方式一:后台服务(推荐,开机自启)

Homebrew 可以托管 Ollama 为 macOS 的后台服务:

brew services start ollama

检查状态:

brew services list

如果看到 ollama 状态为 started,说明服务已成功运行。以后每次开机都会自动启动。

⚠️ 如果因为权限或环境变量问题导致 brew services start 报错(例如 Bootstrap failed: 5),请改用下面的方式二或方式三。

方式二:前台运行(适合调试)

直接在前台启动,方便查看实时日志:

ollama serve

保持该终端窗口打开,按 Ctrl + C 可停止服务。

方式三:后台挂起(不依赖 launchd)

如果你不想用 brew services,也可以用 nohup 让服务在后台持续运行:

nohup ollama serve > /tmp/ollama.log 2>&1 &

关闭终端后进程依然存活。停止时执行 pkill ollama 即可。


第四步:验证服务是否正常

无论用哪种方式启动,打开另一个终端窗口(或使用 curl)测试连通性:

curl http://localhost:11434/api/tags

如果返回 JSON 数据(可能为空列表),说明服务已就绪。


第五步:下载并运行模型

本文以轻量级模型 gemma3:1b 为例(约 815MB),适合大多数 Mac 配置。其他可选模型有 llama3.2:3btinyllama 等。

直接运行模型,Ollama 会自动下载(如果本地没有):

ollama run gemma3:1b

首次执行会显示下载进度。完成后进入交互式对话界面,看到 >>> 提示符即可输入消息。

聊天示例

>>> 你好,请介绍一下自己 我是 Gemma,一个由 Google 开发的轻量级语言模型... >>> 1+1 等于几? 2 >>> /bye

输入 /bye 或按 Ctrl + D 退出对话。

如果想只下载不运行,可使用:

ollama pull gemma3:1b

查看本地已下载的模型:

ollama list

第六步:模型文件存放在哪里?

默认存储路径为 ~/.ollama/models。你可以通过环境变量 OLLAMA_MODELS 修改位置,例如在 ~/.zshrc 中添加:

export OLLAMA_MODELS="/path/to/your/models"

之后新下载的模型将保存到新路径。


第七步:让 Java 后端程序调用 Ollama

Ollama 提供了 RESTful API,默认监听 http://localhost:11434。Java 程序只需发送 HTTP 请求即可。

7.1 确保服务运行

无论你是用 brew services start 还是 ollama serve,确保服务一直在运行。

7.2 Java 调用示例(使用 Spring Boot RestTemplate)

import org.springframework.web.client.RestTemplate;
import org.springframework.http.ResponseEntity;
import java.util.HashMap;
import java.util.Map;

public class OllamaClient {
    public static void main(String[] args) {
        RestTemplate rest = new RestTemplate();
        String url = "http://localhost:11434/api/generate";

        Map<String, Object> request = new HashMap<>();
        request.put("model", "gemma3:1b");
        request.put("prompt", "为什么天空是蓝色的?");
        request.put("stream", false);   // 非流式响应

        ResponseEntity<String> response = rest.postForEntity(url, request, String.class);
        System.out.println(response.getBody());
    }
}

运行该程序,你会得到模型生成的 JSON 响应,其中 response 字段即为文本回答。

7.3 常用 API 端点

接口 用途
POST /api/generate 生成文本(非对话)
POST /api/chat 多轮对话(支持上下文)
GET /api/tags 获取本地模型列表
DELETE /api/delete 删除模型

更多接口请参考 Ollama API 文档


第八步:常见问题及解决方案

❌ could not connect to ollama server

  • 原因:服务未启动。

  • 解决:执行 ollama serve 或 brew services start ollama

❌ brew services start 报错 Bootstrap failed: 5

  • 尝试 brew reinstall ollama 并重启 Mac。

  • 或直接使用 nohup ollama serve & 临时替代。

❌ 模型下载速度慢

  • 如果网络不佳,可设置代理(export https_proxy=...)。

  • 或从国内镜像站手动下载模型文件并放置到 ~/.ollama/models/blobs/(较复杂,建议耐心等待)。

❌ 端口 11434 被占用

  • 执行 sudo lsof -i :11434 查看占用进程,kill -9 PID 释放。


📦 一些推荐的小模型

模型 参数 大小 推荐用途
gemma3:1b 1B 815MB 日常对话、轻量推理
llama3.2:1b 1B 1.3GB 高质量小型模型
llama3.2:3b 3B 2.0GB 性能均衡,适合多数任务
tinyllama:1.1b 1.1B 638MB 极致轻量,适合低配设备

你可以根据自己 Mac 的内存大小选择。一般建议 8GB 内存使用 1B~3B 模型,16GB 以上可尝试 7B 模型。

本地图片:


✅ 结语

通过以上步骤,你已经在 Mac 上成功部署了 Ollama 并运行了本地大模型。无论是用命令行聊天,还是通过 API 集成到 Java 后端,都变得十分简单。

本地模型的好处:

  • 🔒 数据隐私:所有计算在本地完成,无需上传数据

  • 💰 零成本:无限调用,不花一分钱

  • ⚡ 低延迟:响应迅速,适合开发测试

如果你觉得这篇文章对你有帮助,欢迎收藏或分享。如果在部署过程中遇到任何问题,也欢迎在评论区留言交流。


Happy Coding! 🚀

更多推荐