Macmini M4 原生部署教程:Miloco + 本地 7B 视觉模型 + 云端语言模型

我打牌超逊的 2026-05-25 16:10 1

之前看到miloco一直被8G显存和30系列显卡劝退,也一直担心云端的隐私安全问题,但是现在有了macmini后这些问题就迎刃而解啦:

如题,介绍一下大致流程:

目标:



  • Miloco 后端和 Web 页面运行在本机 https://127.0.0.1:8000

  • 本地视觉模型使用 Xiaomi MiMo-VL-Miloco-7B GGUF,通过 llama-server 提供 OpenAI 兼容接口

  • 规划/对话语言模型走云端 OpenAI 兼容接口

  • 米家摄像头、本地视觉理解、米家通知、米家设备控制可联动


以丐版为例(主要我的就是丐版 ^-^)

建议配置:



  • macOS,Apple Silicon

  • Python 3.12

  • Homebrew

  • 16 GB 以上可用磁盘空间

  • 和米家摄像头处于同一个局域网


1. 安装基础依赖


brew install [email protected] git git-lfs expat llama.cpp jq sqlite

如果没有安装 Homebrew,先安装:


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

确认版本:


python3 --version
llama-server --version

2. 获取 Miloco 源码


cd ~/Documents
git clone https://github.com/XiaoMi/xiaomi-miloco.git
cd xiaomi-miloco

进入项目目录:


cd ~/Documents/xiaomi-miloco

3. 创建 Python 虚拟环境并安装后端


python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install -U pip setuptools wheel
pip install -e miot_kit
pip install -e miloco_server

macOS 上如果遇到 expat 动态库加载问题,启动后端时需要设置:


export DYLD_LIBRARY_PATH="/opt/homebrew/opt/expat/lib:${DYLD_LIBRARY_PATH:-}"

4. 下载本地 7B 视觉模型


安装 Hugging Face CLI:


source .venv/bin/activate
pip install -U huggingface_hub

下载 Xiaomi MiMo-VL-Miloco-7B GGUF:


huggingface-cli download xiaomi-open-source/Xiaomi-MiMo-VL-Miloco-7B-GGUF \
MiMo-VL-Miloco-7B_Q4_0.gguf \
mmproj-MiMo-VL-Miloco-7B_BF16.gguf

5. 创建启动脚本


项目根目录创建后端启动脚本 start-miloco.sh


#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")"
export DYLD_LIBRARY_PATH="/opt/homebrew/opt/expat/lib:${DYLD_LIBRARY_PATH:-}"
export MILOCO_SERVER_STORAGE_DIR="${MILOCO_SERVER_STORAGE_DIR:-$PWD/.temp}"
exec .venv/bin/python scripts/start_server.py

创建视觉模型启动脚本 start-miloco-vision.sh


#!/usr/bin/env bash
set -euo pipefail

MODEL_FILE="${MILOCO_VISION_MODEL_FILE:-MiMo-VL-Miloco-7B_Q4_0.gguf}"
MMPROJ_FILE="${MILOCO_VISION_MMPROJ_FILE:-mmproj-MiMo-VL-Miloco-7B_BF16.gguf}"
HF_CACHE_ROOT="${HF_HOME:-$HOME/.cache/huggingface}/hub/models--xiaomi-open-source--Xiaomi-MiMo-VL-Miloco-7B-GGUF/snapshots"

if [[ -n "${MILOCO_VISION_MODEL_DIR:-}" ]]; then
MODEL_DIR="$MILOCO_VISION_MODEL_DIR"
else
MODEL_PATH="$(find "$HF_CACHE_ROOT" -maxdepth 2 -name "$MODEL_FILE" -print -quit 2>/dev/null || true)"
if [[ -z "$MODEL_PATH" ]]; then
echo "Cannot find $MODEL_FILE under $HF_CACHE_ROOT"
echo "Set MILOCO_VISION_MODEL_DIR to the directory containing the GGUF files."
exit 1
fi
MODEL_DIR="$(dirname "$MODEL_PATH")"
fi

if [[ ! -f "$MODEL_DIR/$MODEL_FILE" || ! -f "$MODEL_DIR/$MMPROJ_FILE" ]]; then
echo "Missing model files in $MODEL_DIR"
echo "Expected: $MODEL_FILE and $MMPROJ_FILE"
exit 1
fi

exec llama-server \
-m "${MODEL_DIR}/${MODEL_FILE}" \
--mmproj "${MODEL_DIR}/${MMPROJ_FILE}" \
--host 127.0.0.1 \
--port 8081 \
-c 8192 \
-ngl 99 \
-np 1 \
--alias miloco-7b \
--no-ui \
--media-path /private/tmp \
--cache-ram 0 \
--reasoning off \
--reasoning-budget 0 \
--reasoning-format none

赋予执行权限:


chmod +x start-miloco.sh start-miloco-vision.sh

关键参数说明:



  • -c 8192:上下文长度。低于这个值容易出现 exceeds the available context size

  • --alias miloco-7b:Miloco 里配置的模型名。

  • --reasoning off:减少模型输出 <think> 的概率。

  • -ngl 99:尽量使用 Apple GPU / Metal 加速。


6. 启动本地视觉模型


新开一个终端:


cd ~/Documents/xiaomi-miloco
./start-miloco-vision.sh


验证模型服务:


curl http://127.0.0.1:8081/v1/models

能看到模型列表即可。


7. 启动 Miloco 后端


再开一个终端:


cd ~/Documents/xiaomi-miloco
./start-miloco.sh

访问:


https://127.0.0.1:8000

浏览器会提示本地 HTTPS 证书不受信任,继续访问即可。


8. 配置模型


进入 Miloco 页面后,先登录并授权米家账号,然后进入模型配置。


视觉理解模型


新增或编辑视觉模型:


用途:随便填

Base URL:http://127.0.0.1:8081/v1

Model:miloco-7b

API Key:可以填任意非空值,例如 local


保存后设为当前视觉模型。


规划/对话语言模型


新增或编辑云端语言模型:


用途:规划/对话

Base URL:你的 OpenAI 兼容接口地址,例如 https://example.com/v1

Model:你的云端模型名

API Key:你的服务商密钥


保存后设为当前规划模型。


如果云端服务返回 Your request was blocked,一般不是本地视觉模型问题,而是云端代理拦截了请求。需要换可用的 OpenAI 兼容服务,或调整代理侧策略。


至此配置完成,愿诸君都能和我一样愉快玩耍 ^-^


纯手打,为什么被识别ai啊^-^

最新回复 (16)
  • acai 05-25 16:17
    1

    不如跑qwen3.6-35b-a3b,只激活3B,速度比7B、9B稠密模型还要快,效果也好,16G内存记得开mmap,否则会撑满,32G内存可不开

  • 我打牌超逊的 楼主 05-25 16:22
    2

    我也考虑过3B的,回头我来试试, 7B是它勉强能跑的程度,等待时间也还行,准确度不错^-^

  • acai 05-25 16:23
    3

    是35B-A3B那个,效果比mimo 7B、qwen3.5-9B好多了,而且还很快

  • acai 05-25 16:26
    4

    我笔记本rtx4050 6GB显存,配合cpu内存跑35B-A3B的q4量化,都能到约30t/s的速度

  • zay 05-25 16:27
    5

    丐版Macmini 拉下来上下文基本没了吧,恐怕没啥好体验

  • acai 05-25 16:30
    6

    推荐话题作者试试看,我之前只是跑起来测了下速度,没有关注上下文

  • 我打牌超逊的 楼主 05-25 16:32
    7

    目前没关注过上下文,联调配置设备的比较多,我来测试下

  • 🍏네로🍎 05-25 16:36
    8

    已经收藏了,感谢佬友分享教程 ^-^

  • 我打牌超逊的 楼主 05-25 16:53
    9

    我的丐版Macmin好像跑不满这个模型 ^-^有点难崩

  • 我打牌超逊的 楼主 05-25 16:55
    10

  • acai 05-25 16:56
    11

    可以的,不禁用mmap,默认不是一次性将模型完全加载进内存,按需加载,毕竟只激活3B的参数

  • 我打牌超逊的 楼主 05-25 16:59
    12

    哦,这个视觉模型我现在指定了8192的上下文长度,gpt的没配置

  • 我打牌超逊的 楼主 05-25 17:00
    13

    mmap,默认不是一次性将模型完全加载进内存,按需加载,毕竟只激活3B的参数



    好,我来试试,刚让它分析了一波。

  • 我打牌超逊的 楼主 05-26 10:53
    14



    ^-^我的Macmini带不动

  • orange 05-26 11:11
    15

    mark一下学习,准备入手macmini

  • bizyuyanke 06-06 21:05
    16

    mark一下学习,



    mark一下学习, 准备等几天看看M5的 macmini 是否推出

* 帖子来源Linux.do
返回