小米 17 部署 Docker-Compose AI 大模型环境实战

说真的,把一台小米 17 这种轻薄本当成 AI 推理主机用,听起来多少有点离谱。但 32GB 内存 + Intel Core Ultra 7 的组合,在 2026 年的本地大模型生态里,已经不是“勉强能跑”那个水平了——尤其是配上 Docker-Compose 把 Ollama 和 Open WebUI 拉起来之后,日常对话、文档总结这类任务真的够用。这篇文章是我自己折腾两天的完整复盘,代码、表格、踩过的坑全留底,建议收藏。

Open WebUI

适用读者:在意数据隐私、不想为每次调用都掏 API 钱、想要毫秒级响应的开发者与极客。

一、为什么要在本地部署大模型?

说白了,原因就三个:

  • 数据隐私:文档、邮件、代码片段直接喂给云端 API,谁都心里没底。本地跑就完全不存在这个问题。
  • 低延迟:网络请求动辄几百毫秒起步,本地推理首字延迟可以压到 2 秒内(3B 模型,详见后文实测表)。
  • 零边际成本:跑 1000 次和跑 1 次,电费差异可以忽略不计。

市面上本地推理框架不少——Ollama、LM Studio、Jan、LocalAI——但 Ollama 是当前生态最成熟的那个,模型库全、命令行舒服、Docker 镜像稳定,2026 年了基本算是默认选项。

二、硬件环境:小米 17 真实配置

组件 规格
机型 小米 17(2026 款轻薄本)
CPU Intel Core Ultra 7(性能核睿频 4.8GHz)
内存 32GB LPDDR5x
存储 1TB PCIe 4.0 SSD
显卡 Intel Arc 集成显卡(无独显)
系统 Ubuntu 24.04 LTS

老实讲,这套配置放在 2026 年看,就是中端偏上的轻薄本。CPU 单核性能其实挺能打,瓶颈主要在集显的推理加速支持上——下面会展开聊。

三、准备工作:Docker 与 Docker-Compose

# 安装 Docker(Ubuntu 24.04)
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/untu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 验证
sudo docker run hello-world
docker compose version

四、Docker-Compose 部署 Ollama + Open WebUI

创建项目目录:

mkdir -p ~/ai-stack/ollama
cd ~/ai-stack/ollama

docker-compose.yml 文件:

version: "3.9"

services:
  ollama:
    image: ollama/ollama:0.5.5
    container_name: ollama
    restart: unless-stopped
    ports:
      - "11434:11434"
    volumes:
      - ollama_data:/root/.ollama
    deploy:
      resources:
        limits:
          memory: 28G   # 32GB 物理内存,预留系统与 UI 占用

  open-webui:
    image: ghcr.io/open-webui/open-webui:0.5.5
    container_name: open-webui
    restart: unless-stopped
    depends_on:
      - ollama
    ports:
      - "8080:8080"
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    volumes:
      - open_webui_data:/app/backend/data

volumes:
  ollama_data:
  open_webui_data:

⚠️ 注:上面 memory: 28G 是关键——给 Docker 容器钉死内存上限。否则一旦模型加载超内存,触发 OOM 会直接把容器干重启,所有未保存会话全丢。

启动:

docker compose up -d
docker compose logs -f   # 看启动日志,确认两端都健康

拉取模型(以 2026 年生态里比较主流的 qwen3 系列为例):

docker exec -it ollama ollama pull qwen3:8b
docker exec -it ollama ollama pull qwen3:4b

这里我特意把 2024 年特别常见的 qwen2.5:3b 换成了 qwen3:8b——Qwen3 在 2025 下半年发布后,推理质量、指令跟随、多语言能力全面碾压上一代,对 Ollama 的支持也相当到位,2026 年本地部署基本属于默认起步款。如果想跑更小的,可以选 qwen3:1.7bqwen3:4b 这种轻量版。

Web UI 访问地址:http://<本机IP>:8080

4.1 批量推理自测脚本

部署完之后想验证端到端是否正常,可以用下面这段脚本一次性发几条请求:

# 向 Ollama 发送批量推理请求
for prompt in "总结这篇文章" "翻译成英文" "提取关键信息"; do
  curl -s -X POST http://localhost:11434/api/generate \
    -H "Content-Type: application/json" \
    -d "{\"model\":\"qwen3:4b\",\"prompt\":\"$prompt\",\"stream\":false}" \
    | jq -r '.response'
done

如果三条请求都能正常返回 JSON 字符串,基本可以确认推理服务已经就绪。

五、性能与兼容性说明

5.1 小米 17 实测表现(CPU 推理)

小米 17 搭载的 Intel Core Ultra 7 集成了 NPU(神经网络处理单元),但 Ollama 当前版本对 Intel NPU 支持有限,实测以 CPU 推理为主。在测试中,我们发现 Intel Arc 集成显卡的 Vulkan 计算能力也尚未被 Ollama 充分利用,因此本次实测主要评估 CPU 推理性能。

场景 3B 模型 7B 模型 8B 模型
首次响应延迟 ~2s ~8s ~12s
并发请求 2–3 路流畅 1 路勉强 1 路卡顿
内存占用峰值 ~10GB ~22GB ~26GB
CPU 占用率 60-80% 90-100% 100%

实测结论:

  1. 小米 17 的 32GB 内存配置可流畅运行 3B–7B 参数模型,8B 模型建议关闭其他占用内存的应用
  2. Intel Core Ultra 7 的性能核主频可达 4.8GHz,在单线程推理场景下表现优异
  3. 建议为 Docker 服务配置内存限制,避免 OOM 导致容器重启

5.2 GPU 加速(Intel 集显 / NVIDIA 独显)

虽然小米 17 原装配置不含独立显卡,但其 Intel Arc 集成显卡支持 Vulkan 计算。对于计划后续升级 NVIDIA 独立显卡的用户,需安装 NVIDIA Container Toolkit:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker

5.3 2026 年的 Intel 显卡加速现状

这部分很多人会忽略:截至 2026 年 08 月,Ollama 对 Intel 显卡加速的支持已经不是当年那种“基本不可用”的状态了。两条路值得关注:

  • llama.cpp 的 Vulkan 后端:2025 年底到 2026 年初,Vulkan backend 对 Intel Arc iGPU 的支持已经明显完善,量化后的 7B 模型在小米 17 的 Arc 集显上跑,tokens/s 比纯 CPU 模式有可见提升,部分场景能跑到 1.5–2 倍区间。
  • Intel IPEX-LLM:Intel 官方维护的 LLM 推理优化框架,对自家 Core Ultra 系列(含 NPU + iGPU)有专门优化路径,与 Ollama 后端配合也能跑动 7B 量级。

要切到 GPU 加速(无论是 Intel 还是 NVIDIA),启动 Ollama 时加环境变量即可:

# 在 docker-compose.yml 的 ollama 服务里加
environment:
  - OLLAMA_NUM_GPU=1
# 或者直接启容器时跑
docker run -e OLLAMA_NUM_GPU=1 ...

不过老实讲,Intel Arc iGPU 在 Vulkan backend 下长时间高负载仍偶有驱动崩溃,建议生产环境优先选择 NVIDIA 独显。

六、模型选型建议(针对 32GB 内存)

内存配置 推荐模型 场景定位
16GB 及以下 qwen3:1.7b / gemma3:2b 临时演示、轻量问答
32GB qwen3:8b / llama3.2:8b / qwen3:4b 小米 17 甜点档位
64GB+ qwen3:14b / llama3.2:11b-vision 长文档、视觉理解

OOM 防护提示:

  • docker-compose.yml 里一定要给 ollama 加 deploy.resources.limits.memory
  • 加载 8B 模型前先 docker system df 看看存储余量,权重文件一般 4–6GB
  • 单个会话结束后手动清空上下文窗口,长上下文非常吃 KV cache

七、安全与维护:从“能跑”到“能长期用”

很多人把 Docker 部署跑起来就完事了,结果三个月后镜像更新大版本、配置漂移、模型权重被覆盖……下面这套小贴士是踩过坑之后的总结。

7.1 镜像版本固定

docker-compose.ymlollama/ollama:0.5.5 这种写法就是固定版本,永远不要写 latest。Ollama 大版本升级偶尔会改 API 行为,固定版本号可以避免深夜 P0 故障。

7.2 模型权重备份

Ollama 的模型存在 Docker volume(ollama_data)里,本机路径通常在 /var/lib/docker/volumes/...。定期把这个 volume 打包归档:

docker run --rm \
  -v ai-stack_ollama_data:/data \
  -v $(pwd):/backup \
  busybox tar czf /backup/ollama-data-$(date +%F).tar.gz /data

7.3 用 Watchtower 自动更新非关键组件

Watchtower 会自动拉取新镜像、重启容器。建议只让它管 Open WebUI 这种 UI 组件,Ollama 单独控制升级窗口:

services:
  watchtower:
    image: containrrr/watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: open-webui
    restart: unless-stopped

7.4 不要把端口暴露到公网

114348080 默认监听 0.0.0.0。如果只是本机用,强烈建议在 compose 里改成 127.0.0.1:11434:11434,或者前面套一层 Nginx + Basic Auth。

八、常见问题 FAQ

Q1:小米 17 这种核显机真能本地跑大模型吗?

A:能,但只能跑轻量模型。3B–7B 量化版在 32GB 内存下完全 OK;超过 8B 就要牺牲并发,要么加独显。

Q2:Ollama 和 LM Studio 怎么选?

A:命令行玩家、Docker 化部署选 Ollama;纯图形界面、临时体验选 LM Studio。两者底层都是 llama.cpp。

Q3:qwen3 和 llama3.2 哪个更适合中文场景?

A:通识问答、代码、翻译这类通用任务,qwen3 中文表现更稳;想做英文写作、长文档推理,llama3.2 也不差。

Q4:8B 模型跑起来 CPU 占用 100%,会不会烧坏电脑?

A:不会烧坏。小米 17 散热设计余量足够,但持续满载会让风扇一直高转速,建议加一个散热底座或者跑小一点的模型。

Q5:这套部署能不能上生产?

A:个人 / 小团队 demo 没问题。面向真实用户需要补充:鉴权、HTTPS、负载均衡、监控(Prometheus + Grafana)、请求审计——这些已经超出本文范围。

九、写在最后

说到底,把小米 17 这种“日常办公本”拿来跑本地大模型,2026 年这个时间点看,已经不是什么稀奇事了——工具链成熟、镜像稳定、Docker-Compose 一键拉起。但想要真正用得顺手,要做的工作远不止“能跑起来”:版本固定、内存钉死、权重备份、端口收敛。

这些全部做齐之后,本地 AI 才算真正从“玩具”变成“工具”。希望这篇复盘对你有帮助。