Mac 部署Ollama + OpenWebUI完全指南

news2025/2/8 14:34:05

文章目录

    • 💻 环境说明
    • 🛠️ Ollama安装配置
      • 1. 安装[Ollama](https://github.com/ollama/ollama)
      • 2. 启动Ollama
      • 3. 模型存储位置
      • 4. 配置 Ollama
    • 🌐 OpenWebUI部署
      • 1. 安装Docker
      • 2. 部署[OpenWebUI](https://www.openwebui.com/)(可视化大模型对话界面)
    • 🔒 离线部署方案
    • ⚡ 性能优化建议
    • ❓ 常见问题
    • 🎉 结语

想拥有一个完全属于自己的AI助手,还不依赖互联网?本教程带你从零开始搭建本地AI环境!(Apple Silicon架构)

💻 环境说明

配置项MacWindows
操作系统macOS SonomaWindows 10/11
CPUM412核或以上
内存16GB32GB或以上
硬盘空间20GB20GB或以上

🛠️ Ollama安装配置

1. 安装Ollama

# 使用Homebrew安装
brew install ollama

# 或直接下载安装包
curl https://ollama.ai/download/Ollama-darwin.zip -o Ollama.zip
unzip Ollama.zip

# 输入`ollama`或 `ollama -v`验证安装
ollama

在这里插入图片描述

2. 启动Ollama

# 启动Ollama服务
ollama serve

在这里插入图片描述

# 或点击浏览器访问:http://localhost:11434

在这里插入图片描述

显示Ollama is running代表已经运行起来了!

 # 下载Llama3 8B模型
ollama run llama3:8b  # 建议先尝试小模型

在这里插入图片描述
💡 小贴士:你应该至少有 8 GB 的 RAM 来运行 7B 模型,16 GB 的 RAM 来运行 13B 模型,以及 32 GB 的 RAM 来运行 33B 模型。

3. 模型存储位置

Mac下,Ollama的默认存储位置:

  • 模型文件:~/.ollama/models
  • 配置文件:~/Library/Application Support/Ollama

Windows下,Ollama的默认存储位置:

  • 程序目录:C:\Users\<用户名>\AppData\Local\Programs\Ollama
  • 模型目录:C:\Users\<用户名>\.ollamamodels
  • 配置文件:C:\Users\<用户名>\AppData\Local\Ollama

💡 小贴士:建议通过环境变量OLLAMA_MODELS自定义模型存储路径,避免占用系统盘空间。

4. 配置 Ollama

Ollama 提供了多种环境变量以供配置:

  • OLLAMA_DEBUG:是否开启调试模式,默认为 false。
  • OLLAMA_FLASH_ATTENTION:是否闪烁注意力,默认为 true。
  • OLLAMA_HOST:Ollama 服务器的主机地址,默认为空。
  • OLLAMA_KEEP_ALIVE:保持连接的时间,默认为 5m。
  • OLLAMA_LLM_LIBRARY:LLM 库,默认为空。
  • OLLAMA_MAX_LOADED_MODELS:最大加载模型数,默认为 1。
  • OLLAMA_MAX_QUEUE:最大队列数,默认为空。
  • OLLAMA_MAX_VRAM:最大虚拟内存,默认为空。
  • OLLAMA_MODELS:模型目录,默认为空。
  • OLLAMA_NOHISTORY:是否保存历史记录,默认为 false。
  • OLLAMA_NOPRUNE:是否启用剪枝,默认为 false。
  • OLLAMA_NUM_PARALLEL:并行数,默认为 1。
  • OLLAMA_ORIGINS:允许的来源,默认为空。
  • OLLAMA_RUNNERS_DIR:运行器目录,默认为空。
  • OLLAMA_SCHED_SPREAD:调度分布,默认为空。
  • OLLAMA_TMPDIR:临时文件目录,默认为空。
  • OLLAMA_DEBUG:是否开启调试模式,默认为 false。
  • OLLAMA_FLASH_ATTENTION:是否闪烁注意力,默认为 true。
  • OLLAMA_HOST:Ollama 服务器的主机地址,默认为空。
  • OLLAMA_KEEP_ALIVE:保持连接的时间,默认为 5m。
  • OLLAMA_LLM_LIBRARY:LLM 库,默认为空。
  • OLLAMA_MAX_LOADED_MODELS:最大加载模型数,默认为 1。
  • OLLAMA_MAX_QUEUE:最大队列数,默认为空。
  • OLLAMA_MAX_VRAM:最大虚拟内存,默认为空。
  • OLLAMA_MODELS:模型目录,默认为空。
  • OLLAMA_NOHISTORY:是否保存历史记录,默认为 false。
  • OLLAMA_NOPRUNE:是否启用剪枝,默认为 false。
  • OLLAMA_NUM_PARALLEL:并行数,默认为 1。
  • OLLAMA_ORIGINS:允许的来源,默认为空。
  • OLLAMA_RUNNERS_DIR:运行器目录,默认为空。
  • OLLAMA_SCHED_SPREAD:调度分布,默认为空。
  • OLLAMA_TMPDIR:临时文件目录,默认为空。

🌐 OpenWebUI部署

1. 安装Docker

  1. 访问 Docker官网 下载Mac版本(Apple Silicon)
  2. 安装并启动Docker Desktop
  3. 配置国内镜像源加速下载(我这里科学上网不需要)
    在这里插入图片描述

💡 小贴士:Windows 安装 Docker 需要开启 Hyper-V(Windows专业版必需)

2. 部署OpenWebUI(可视化大模型对话界面)

# 拉取镜像 (直接run默认会拉取 latest 标签的镜像)
docker pull ghcr.io/open-webui/open-webui:main

#(官方文档)以上是从 GitHub Container Registry (GHCR) 上拉取镜像,而不是从 Docker Hub。
# 也可以docker hub 拉取 open-webui镜像
docker pull dyrnq/open-webui:main

在这里插入图片描述

# 启动容器
docker run -d -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

访问 http://localhost:3000 即可使用Web界面。
在这里插入图片描述创建账号,这个是本地账号,随便添加账号信息即可
在这里插入图片描述
选择ollama中的模型,聊天测试
在这里插入图片描述
也可以在这里直接拉取模型
在这里插入图片描述
与下载的新模型进行对话
在这里插入图片描述
💡 小贴士:

  • 注册时邮箱可以随便填写,设置密码后注意保存!
  • ollama后台一定要运行着模型,如:ollama run phi-4

🔒 离线部署方案

如果需要在无网环境下部署,可以按照以下步骤操作:

  1. 在有网环境下准备资源:

    • 下载Ollama安装包
    • 导出模型文件
    • 导出Docker镜像
  2. 离线环境部署:

    • 安装Ollama
    • 复制模型文件到指定目录
    • 导入Docker镜像
    • 启动OpenWebUI

⚡ 性能优化建议

  1. 内存管理

    • 关闭不必要的后台应用
    • 使用Activity Monitor监控内存使用
  2. 模型选择

    • 建议从小模型开始测试
    • 推荐模型大小顺序:
      • qwen2:0.5b (最轻量)
      • llama2:7b (平衡型)
      • codellama:7b (代码专用)
  3. 温度控制

    • 保持Mac Mini通风良好
    • 可使用监控工具观察CPU温度

❓ 常见问题

  1. Q: M4芯片能跑多大的模型?
    A: 16GB内存的M4可以流畅运行8B参数的模型,更大的模型可能会影响性能。

  2. Q: Llama中文支持不好怎么办?
    A: 可以使用Llama-Chinese等经过中文优化的模型。

  3. Q: OpenWebUI打不开怎么办?
    A: 检查Docker状态:

    docker ps  # 查看容器状态
    docker logs open-webui  # 查看日志
    

🎉 结语

通过本教程的配置,你已经拥有了一个完全本地化的AI助手!有任何问题欢迎在评论区讨论,让我们一起探索AI的无限可能!


如果觉得这篇文章对你有帮助,别忘了点赞转发哦~ 👍

你用Mac Mini跑过哪些AI模型?欢迎分享你的使用体验!💭

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2294815.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工业物联网平台-视频识别视频报警新功能正式上线

前言 视频监控作为中服云工业物联网平台4.0的功能已经上线运行。已为客户服务2年有余&#xff0c;为客户提供多路视频、实时在线监视和控制能力。服务客户实时发现现场、产线、设备出现随机故障、事故等&#xff0c;及时到场处理维修。 视频识别&视频报警新功能当前正式上…

mysql的cpu使用率100%问题排查

背景 线上mysql服务器经常性出现cpu使用率100%的告警&#xff0c; 因此整理一下排查该问题的常规流程。 1. 确认CPU占用来源 检查系统进程 使用 top 或 htop 命令&#xff0c;确认是否是 mysqld 进程导致CPU满载&#xff1a;top -c -p $(pgrep mysqld)2. 实时分析MySQL活动 …

qt6.8安装mysql8.0驱动

qt6.8安装mysql8.0驱动 qt6.8本身是不带mysql驱动。想要在qt里面使用mysql,还是比较麻烦的。需要自己编译驱动 首先下载qt源码&#xff0c;链接Index of /archive/qt/6.8/6.8.1/single 下载mysql对于驱动文件&#xff0c;链接是MySQL :: Download MySQL Connector/C (Archiv…

π0开源了且推出自回归版π0-FAST——打造机器人动作专用的高效Tokenizer:比扩散π0的训练速度快5倍但效果相当

前言 过去的半个多月 对于大模型 deepseek火爆全球&#xff0c;我对其的解读也写成了整整一个系列 详见《火爆全球的DeepSeek系列模型》&#xff0c;涉及对GRPO、MLA、V3、R1的详尽细致深入的解读 某种意义来讲&#xff0c;deepseek 相当于把大模型的热度 又直接拉起来了——…

【算法篇】贪心算法

目录 贪心算法 贪心算法实际应用 一&#xff0c;零钱找回问题 二&#xff0c;活动选择问题 三&#xff0c;分数背包问题 将数组和减半的最小操作次数 最大数 贪心算法 贪心算法&#xff0c;是一种在每一步选择中都采取当前状态下的最优策略&#xff0c;期望得到全局最优…

《金字塔原理》笔记

金字塔原理一书的原理是关于结构化写作的&#xff0c;里面提出一个MECE法则&#xff1a;各个分论点之间要“相互独立、完全穷尽”。 我的总结 写作思路都是总分总。 要凝练最顶部的信息&#xff0c;然后按照三叉树&#xff08;最多四叉树&#xff09;一直分下去。 书中优雅的…

蓝桥杯准备 【入门3】循环结构

素数小算法&#xff08;埃氏筛&&欧拉筛&#xff09; 以下四段代码都是求20以内的所有素数 1.0版求素数 #include<iostream> using namespace std;int main() {int n 20;for(int i2;i<n;i){int j0;for(j2;j<i;j)//遍历i{if(i%j0){break;}}if(ij){cout&l…

MySQL三大日志——binlog、redoLog、undoLog详解

日志是mysql数据库的重要组成部分&#xff0c;记录着数据库运行期间各种状态信息&#xff0c;能帮助我们进行很多容错及分析工作&#xff0c;其中有三大日志与我们这些开发者息息相关&#xff0c;本文将介绍binlog、redoLog、undoLog三种日志&#xff1a; 1. redoLog 1.1 为什么…

SpringAI系列 - 使用LangGPT编写高质量的Prompt

目录 一、LangGPT —— 人人都可编写高质量 Prompt二、快速上手2.1 诗人 三、Role 模板3.1 Role 模板3.2 Role 模板使用步骤3.3 更多例子 四、高级用法4.1 变量4.2 命令4.3 Reminder4.4 条件语句4.5 Json or Yaml 方便程序开发 一、LangGPT —— 人人都可编写高质量 Prompt La…

springboot+vue导入ruoyi项目的框架

一、介绍 RuoYi-Vue版本&#xff0c;采用了前后端分离的单体架构设计软件环境&#xff1a;JDK、Mysql、Redis、Maven、Node技术选型: Spring Boot、Spring Security、MyBatis、Jwt、Vue3、Element-Plus官方地址: https://gitee.com/y_project/RuoYi-Vue 官方推荐的版本如下&a…

Conmi的正确答案——Rider中添加icon作为exe的图标

C#版本&#xff1a;.net 8.0 Rider版本&#xff1a;#RD-243.22562.250&#xff08;非商业使用版&#xff09; 1、添加图标到解决方案下&#xff1a; 2、打开“App.xaml”配置文件&#xff0c;添加配置&#xff1a; <Applicationx:Class"ComTransmit.App"xmlns&q…

360手机刷机 360手机解Bootloader 360手机ROOT

360手机刷机 360手机解Bootloader 360手机ROOT 问&#xff1a;360手机已停产&#xff0c;现在和以后&#xff0c;能刷机吗&#xff1f; 答&#xff1a;360手机&#xff0c;是肯定能刷机的 360手机资源下载网站 360手机-360手机刷机RootTwrp 360os.top 360rom.github.io 一、…

实验3 词法分析(二)

实验3 词法分析(二) [实验目的]&#xff1a; 1 . 熟悉给定的词法分析程序&#xff1b; 2 . 改进词法分析程序。 [实验内容]&#xff1a; 1.尝试多方面改进TEST语言的文法&#xff0c;参考教材附录B词法分析程序TESTscan.c&#xff0c;在此词法分析程序的基础上改进程序&#x…

VsCode创建VUE项目

1. 首先安装Node.js和npm 通过网盘分享的文件&#xff1a;vsCode和Node&#xff08;本人电脑Win11安装&#xff09; 链接: https://pan.baidu.com/s/151gBWTFZh9qIDS9XWMJVUA 提取码: 1234 它们是运行和构建Vue.js应用程序所必需的。 1.1 Node安装&#xff0c;点击下一步即可 …

【自开发工具介绍】SQLSERVER的ImpDp和ExpDp工具04

SQLSERVER的ImpDp和ExpDp工具演示 1、指定某些表作为导出对象外 (-exclude_table) 验证用&#xff1a;导出的表&#xff0c;导入到新的数据库 2、指定某些表作为导出对象外 (-exclude_table) 支持模糊检索&#xff0c;可以使用星号 以s开头的表作为导出对象外&#xff0c;…

国内知名Deepseek培训师培训讲师唐兴通老师讲授AI人工智能大模型实践应用

课程名称 《Deepseek人工智能大模型实践应用》 课程目标 全面了解Deepseek人工智能大模型的技术原理、功能特点及应用场景。 熟练掌握Deepseek大模型的提示词工程技巧&#xff0c;能够编写高质量的提示词。 掌握Deepseek大模型在办公、营销等领域的应用方法&#xff0c;提升…

【C语言标准库函数】指数与对数函数:exp(), log(), log10()

目录 一、头文件 二、函数简介 2.1. exp(double x) 2.2. log(double x) 2.3. log10(double x) 三、函数实现&#xff08;概念性&#xff09; 3.1. exp(double x) 的模拟实现 3.2. log(double x) 和 log10(double x) 的模拟实现 四、注意事项 4.1. exp(double x) 的注…

小白系列:数据库基础知识解析

前言 今天&#xff0c;我打算用简单明了的语言来讲解一下数据库的基本概念。总体上&#xff0c;这些内容与我在视频中讲解的基本一致。如果你发现视频的讲解有些难以理解&#xff0c;不妨看看这篇文字版的解释&#xff0c;希望能够更快速地帮助你掌握数据库的相关知识。需要注…

【AIGC魔童】DeepSeek核心创新技术(二):MLA

【AIGC魔童】DeepSeek核心创新技术&#xff08;二&#xff09;&#xff1a;MLA 1. MLA框架的定义与背景2. MLA框架的技术原理&#xff08;1&#xff09;低秩联合压缩&#xff08;2&#xff09;查询的低秩压缩&#xff08;3&#xff09;旋转位置嵌入&#xff08;RoPE&#xff09…

安卓/ios脚本开发按键精灵经验小分享

1. 程序的切换 我们经常碰到这样的需求&#xff1a;打开最近的应用列表&#xff0c;选取我们想要的程序。但是每个手机为了自己的风格&#xff0c;样式都有区别&#xff0c;甚至连列表的滑动方向都不一样&#xff0c;我们很难通过模拟操作来识别点击&#xff0c;那么我们做的只…