Edge Computing
边缘计算在生成数据的设备上或其附近处理数据,从而降低延迟和带宽消耗。涵盖边缘层级、边缘 AI 和模型部署。
边缘计算是在靠近数据生成或使用位置的地方运行计算和存储数据的一种实践,例如在设备、本地部署的服务器和网关上,或在电信网络边缘的小型数据中心中,而不是将所有内容都发送到遥远的云区域。在数据源附近处理数据可以缩短响应时间、减少传输原始数据所需的带宽、将敏感数据保留在本地,并让系统在网络中断时继续工作。这个概念源于 20 世纪 90 年代末的内容分发网络;当时,内容分发网络会在靠近用户的位置缓存网页。2009 年,以 Mahadev Satyanarayanan 为首的研究人员提出了面向移动设备的邻近“cloudlet”;Cisco 于 2012 年提出“雾计算”一词;欧洲标准组织 ETSI 于 2014 年开始为移动网络的多接入边缘计算制定标准。在这类基础设施上运行机器学习模型称为边缘 AI。
边缘计算层级#
“边缘”涵盖传感器与云之间的多个层级:
- 设备边缘:摄像头、手机、无人机、机器人和车辆等使用自身处理器处理数据的设备,通常还配有内置加速器。
- 本地部署边缘:工厂、商店、医院或农场内的网关和紧凑型服务器,用于汇集许多设备的数据,例如由一台 GPU 服务器分析数十路摄像头视频流。
- 网络边缘:电信基站或区域接入点中的服务器,距离移动用户只有几毫秒的网络延迟,可为本地处理能力不足的设备运行工作负载。
- 云:用于训练模型、存储长期数据和管理边缘设备群的中心区域。
为什么要在边缘处理数据#
首先是延迟。光在光纤中的传播速度约为每毫秒 200 千米,因此距离 1,000 km 的数据中心至少会带来 10 ms 的往返延迟,还未计入路由、排队或处理耗时;需要在几毫秒内作出反应的自动驾驶汽车和机器人会在设备端运行实时推理。其次是带宽:单路 1080p H.264 摄像头视频流每秒需要数兆比特带宽,因此一个有 100 台摄像头的站点会持续上传数百兆比特的数据,而以 JSON 形式发送一次检测事件只需几千字节。在本地处理还能将包含人员的原始图像保留在本地,只把计数、警报或匿名化结果传出建筑物,从而简化数据隐私方面的合规义务;此外,即使农场、船舶、矿场和偏远基础设施的网络中断,系统也能继续运行。
实际上,边缘与云会形成一个闭环。设备在本地处理每一帧,只将事件和选定的样本向上传输;云端则使用这些样本重新训练模型,再将改进后的模型推送回设备:
这种模式可用于生产线上的质量检测,确保在下一个零件到达前剔除有缺陷的零件;也可用于网络连接不佳的田地中的作物和牲畜监测,以及根据交叉路口摄像头画面调整信号灯的交通管理系统。
边缘计算与相关术语的区别#
云计算将弹性计算能力集中在大型数据中心,而边缘计算则从云端向外延伸计算,因此大多数系统会同时使用两者。边缘 AI 是运行 AI 模型的边缘计算子集。“雾计算”是 Cisco 提出的术语,指设备与云之间的网关和本地服务器层,大体上是本地部署层级和网络层级的同义词。物联网 (IoT) 是由互联传感器和设备组成的网络,而边缘计算是处理这些设备所产生大量数据的主要位置。
将模型部署到边缘设备#
与数据中心 GPU 相比,边缘硬件的内存、算力和功耗预算要少得多,范围涵盖功耗仅为毫瓦的微控制器、NVIDIA Jetson模块和 Raspberry Pi开发板。通过将模型量化为 8 位整数、剪枝和知识蒸馏,可以缩小模型并提升速度,然后针对目标运行时和加速器进行编译,例如 NVIDIA GPU 上的 TensorRT、Intel CPU 和 NPU上的 OpenVINO、Android 上的 LiteRT,或 Apple 设备上的 Core ML。Ultralytics YOLO 的导出模式可通过一个训练好的模型生成这些格式。此示例将 YOLO26导出为 NCNN(腾讯为移动设备和 ARM CPU 提供的推理框架),然后运行导出的模型:
from ultralytics import YOLO
# Export YOLO26n to NCNN, a lightweight runtime for ARM CPUs and mobile devices
model = YOLO("yolo26n.pt")
ncnn_path = model.export(format="ncnn") # writes the yolo26n_ncnn_model folder
# Load the exported model and run it on this machine's CPU
ncnn_model = YOLO(ncnn_path)
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
print(f"Inference: {results[0].speed['inference']:.1f} ms")导出会生成一个 yolo26n_ncnn_model 文件夹,其中包含网络结构文件 model.ncnn.param、权重文件 model.ncnn.bin,以及类别名称和输入尺寸文件 metadata.yaml。输出的耗时表示运行机器上的单张图像推理延迟,这个数值决定模型能否满足边缘应用的帧率预算。










