最近智能驾驶和 Robotaxi 讨论很多,尤其是北京车展期间,各家都在讲端到端、智驾体验、数据闭环和仿真验证。
我也顺手搭了一个很简化的感知实验环境:不做完整自动驾驶,只做视频数据处理、目标检测服务、监控和简单回放。
结果模型还没跑起来,先卡在了镜像下载。
感知环境不是一个服务
一个最小实验环境也会有好几个组件:
- Python 推理服务;
- Redis 或消息队列;
- 视频抽帧/处理脚本;
- Prometheus 监控;
- 如果用 GPU,还要 CUDA 运行时;
- 如果上 K8s,还要拉 K8s 基础组件。
原始镜像大概是这些:
docker pull python:3.11-slim
docker pull redis:7-alpine
docker pull quay.io/prometheus/prometheus:latest
docker pull nvcr.io/nvidia/cuda:12.4.1-runtime-ubuntu22.04
在国内服务器上拉这些镜像,体验并不稳定。尤其是 NVIDIA 和 Quay 这类源,一旦失败就只能等。
先把镜像地址换掉
后来我改成:
docker pull docker.1ms.run/python:3.11-slim
docker pull docker.1ms.run/redis:7-alpine
docker pull quay.1ms.run/prometheus/prometheus:latest
docker pull nvcr.1ms.run/nvidia/cuda:12.4.1-runtime-ubuntu22.04
如果涉及 K8s:
crictl pull k8s.1ms.run/pause:3.9
crictl pull k8s.1ms.run/coredns/coredns:v1.10.1
我这次用的是毫秒镜像。它不是帮你写算法,也不会让模型变准,但能先把环境启动前最烦的镜像拉取问题降下来。
为什么智能驾驶/机器人这类场景更容易遇到这个坑
感知、仿真、机器人、边缘推理这类项目,和普通 Web 项目不太一样。
它们通常有几个特点:
- 镜像大:CUDA、推理框架、视频处理组件都不小;
- 来源多:Docker Hub、NVIDIA、Quay、K8s 都可能出现;
- 节点多:仿真服务器、GPU 节点、边缘设备可能分散;
- 更新频繁:模型版本、数据处理代码、评测工具都在变;
- 环境复杂:本地能跑,不代表云服务器和边缘节点能跑。
所以我现在搭这种环境,会先做一个小 checklist:
docker pull docker.1ms.run/python:3.11-slim
docker pull quay.1ms.run/prometheus/prometheus:latest
docker pull nvcr.1ms.run/nvidia/cuda:12.4.1-runtime-ubuntu22.04
镜像拉取稳定以后,再开始看数据、模型和推理性能。
小结
智能驾驶和机器人很热,但自己复现相关环境时,会发现很多问题并不在算法上,而在工程链路上。
容器能解决环境一致性,镜像加速能解决环境启动前的下载不稳定。这个步骤不酷,但很实际。
参考:
- 毫秒镜像:https://1ms.run
- 1ms-helper:https://cnb.cool/mliev/1ms.run/1ms-helper