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

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

  • Miloco 后端和 Web 页面运行在本机 https://127.0.0.1:8000
  • 本地视觉模型使用 Xiaomi MiMo-VL-Miloco-7B GGUF,通过 llama-server 提供 OpenAI 兼容接口
  • 规划/对话语言模型走云端 OpenAI 兼容接口
  • 米家摄像头、本地视觉理解、米家通知、米家设备控制可联动

以丐版为例(主要我的就是丐版 :melting_face:
建议配置:

  • macOS,Apple Silicon
  • Python 3.12
  • Homebrew
  • 16 GB 以上可用磁盘空间
  • 和米家摄像头处于同一个局域网

1. 安装基础依赖

brew install python@3.12 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 兼容服务,或调整代理侧策略。

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

纯手打,为什么被识别ai啊:melting_face:

11 个赞

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

1 个赞

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

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

1 个赞

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

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

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

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

已经收藏了,感谢佬友分享教程 :hand_with_index_finger_and_thumb_crossed:

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

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

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

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


:melting_face:我的Macmini带不动

mark一下学习,准备入手macmini

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

和hermes3:9B相比呢,咋样?

之前折腾过qwen3.5和佬一样的配置,想问一下佬就是为了去了解这个流程还是说有什么用途呢

第一眼还以为是minimax又出新模型了呢 :joy: