一步一步 Docker 部署Miloco教程

Miloco的发布,是小米将大模型技术落地家庭场景的重要实践,更是对智能家居体验升级的一次探索。通过端侧大模型与全链路开放的结合,为行业提供了一种新的技术思路——让智能家居告别传统“硬编码规则”的局限,转向“对话式交互+视觉感知”的人机交互新形态。
这种新形态的核心,是从“人适应设备”到“设备适应人”的转变:用户无需学习复杂操作,可通过自然语言轻松设置自动化。这种形态之下,设备不再是孤立的控制单元,而是能主动理解场景、协同工作的“生活辅助伙伴”。未来,小米将持续迭代Miloco的技术能力,与全球开发者共同推动全屋智能行业向着更开放、更智能、更贴合用户需求的方向发展。
核心支撑:Xiaomi MiMo-VL-Miloco-7B端侧视觉语言大模型
作为Miloco智能体验的技术核心,Xiaomi MiMo-VL-Miloco-7B端侧视觉语言大模型为全屋智能赋予了“感知+理解”的核心能力,是实现场景化智能联动的关键所在。
Xiaomi MiMo-VL-Miloco端侧视觉语言模型,基于小米自研MiMo-VL-7B大模型优化构建,凭借强大的视觉-语言融合能力,赋予家庭摄像头“理解画面”的感知力。
Miloco 的“一步一步 Docker 部署”目前分两种场景
A) 只想跑通后端(最轻量,AI 能力走云端 API);
B) 后端 + 本地 AI 引擎(需要 NVIDIA GPU)。
下面给出两条完整可复制的命令流,按顺序执行即可。
https://github.com/XiaoMi/xiaomi-miloco/tree/main
(以下路径、端口均可按需改,但建议第一次先照抄跑通。)
一、通用准备工作(任何场景都要做)
硬件自检
CPU x86-64,内存 ≥16 GB,空闲磁盘 ≥20 GB。
如需本地 AI,再检查 NVIDIA 30 系以上 + 8 GB 显存,并装好 515 以上驱动 。
软件依赖
Linux / WSL2-Ubuntu22.04 已装:
– Docker ≥ 20.10
– docker compose plugin(≥ v2)
– NVIDIA Container Toolkit(本地 AI 才需要)
验证命令:
docker info | grep -i nvidia # 本地 AI 必须回显 nvidia
二、场景 A:只部署后端(无 GPU,AI 用云 API)
环境env文件
################################################
# Common configuration.
################################################
TZ=Asia/Shanghai
#DOCKER_REPO=ghcr.nju.edu.cn/
################################################
# Backend configuration.
################################################
# Backend host.
BACKEND_HOST=0.0.0.0
# Backend port.
BACKEND_PORT=9000
# Log level: debug, info, warning, error, critical.
BACKEND_LOG_LEVER=info
################################################
# AI engine configuration.
################################################
# AI engine host.
AI_ENGINE_HOST=0.0.0.0
# AI engine port.
AI_ENGINE_PORT=9001
# Log level: debug, info, warning, error, critical.
AI_ENGINE_LOG_LEVER=info
一次性创建目录与文件
services:
backend:
container_name: miloco-backend
image: ghcr.nju.edu.cn/xiaomi/miloco-backend:latest
# NOTICE: MUST be host for miot device discovery.
network_mode: host
expose:
- ${BACKEND_PORT:-8000}
environment:
- BACKEND_HOST=${BACKEND_HOST:-0.0.0.0}
- BACKEND_PORT=${BACKEND_PORT:-8000}
- AI_ENGINE_HOST=${AI_ENGINE_HOST:-0.0.0.0}
- AI_ENGINE_PORT=${AI_ENGINE_PORT:-8001}
- BACKEND_LOG_LEVEL=${BACKEND_LOG_LEVEL:-info}
- TZ=${TZ:-Asia/Shanghai}
volumes:
- ./data:/app/miloco_server/.temp
- ./log/backend:/app/miloco_server/.temp/log
# NOTICE: Mount configuration files, if you want to use your own configuration files, please mount them here.
# - ./config/server_config.yaml:/app/config/server_config.yaml
# - ./config/prompt_config.yaml:/app/config/prompt_config.yaml
restart: unless-stopped
healthcheck:
disable: true启动
mkdir -p data log/backend
docker compose up -d # 第一次会拉 2 GB 左右镜像
docker compose logs -f # 看到 “Application startup complete” 即可
访问
浏览器打开 https://<宿主机IP>:8000
首次会提示“证书风险”→ 点“继续访问”→ 用小米账号扫码登录 → callback 填相同地址,完成 。
三、场景 B:后端 + 本地 AI 引擎(需要 GPU)
创建完整 compose 文件
services:
ai_engine:
container_name: miloco-ai_engine
image: ghcr.nju.edu.cn/xiaomi/miloco-ai_engine:latest
ports:
- ${AI_ENGINE_PORT:-8001}:${AI_ENGINE_PORT:-8001}
environment:
- AI_ENGINE_HOST=${AI_ENGINE_HOST:-0.0.0.0}
- AI_ENGINE_PORT=${AI_ENGINE_PORT:-8001}
- AI_ENGINE_LOG_LEVEL=${AI_ENGINE_LOG_LEVEL:-info}
- TZ=${TZ:-Asia/Shanghai}
volumes:
- ./models:/models
- ./log/ai_engine:/app/.log/ai_engine
# NOTICE: If you want to use your own configuration files or models path, please mount them here.
# - ./config/ai_engine_config.yaml:/app/config/ai_engine_config.yaml
# - ./config/prompt_config.yaml:/app/config/prompt_config.yaml
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
restart: unless-stopped
healthcheck:
disable: true
backend:
container_name: miloco-backend
image: ghcr.nju.edu.cn/xiaomi/miloco-backend:latest
# NOTICE: MUST be host for miot device discovery.
network_mode: host
expose:
- ${BACKEND_PORT:-8000}
environment:
- BACKEND_HOST=${BACKEND_HOST:-0.0.0.0}
- BACKEND_PORT=${BACKEND_PORT:-8000}
- AI_ENGINE_HOST=${AI_ENGINE_HOST:-0.0.0.0}
- AI_ENGINE_PORT=${AI_ENGINE_PORT:-8001}
- BACKEND_LOG_LEVEL=${BACKEND_LOG_LEVEL:-info}
- TZ=${TZ:-Asia/Shanghai}
volumes:
- ./data:/app/miloco_server/.temp
- ./log/backend:/app/miloco_server/.temp/log
# NOTICE: Mount configuration files, if you want to use your own configuration files, please mount them here.
# - ./config/server_config.yaml:/app/config/server_config.yaml
# - ./config/prompt_config.yaml:/app/config/prompt_config.yaml
restart: unless-stopped
healthcheck:
disable: true启动
docker compose up -d # 会依次拉两个镜像,共 12+ GB
docker compose logs -f ai_engine # 看到 “Loading model … completed” 即 OK
访问与账号绑定同场景 A。
四、后续常用操作
• 停止:docker compose down
• 更新镜像:docker compose pull && docker compose up -d
• 看实时日志:docker compose logs -f <service>
五、快速排错
端口被占:lsof -i:8000 / 8001 找到进程杀掉或改 BACKEND_PORT / AI_ENGINE_PORT。
权限报错:compose 里加 user: "0"(root)或宿主机 chmod 777 data log。
GPU 不可用:检查 nvidia-smi 与 docker info 是否都能列出 GPU;没有就重装 NVIDIA Container Toolkit。
镜像拉不动:大陆机器可在 /etc/docker/daemon.json 加镜像源,或给 docker 走代理。
照以上步骤逐行执行,即可一次性把 Miloco 用 Docker 跑起来;后续想接云端大模型,只要在 WebUI 里“模型管理→云端模型”填入对应 BaseURL 与 Key 即可 。祝部署顺利!
bash -c "$(wget -qO- https://xiaomi-miloco.cnbj1.mi-fds.com/xiaomi-miloco/install.sh)"