文章来源:量子位
有件事情一直令我感到好奇:
>都 2021 年了,现在有自动驾驶船在海上行驶吗?
带着这个问题,我打开谷歌,输入 “Autonomous ship”,没想到现在的自动驾驶轮船技术刷新了我的认知:
>完全无人的自动驾驶轮船今年将横渡大西洋;零排放的自动驾驶轮船正在研发中……
除了实验室里的成果,其商业化进度更是超出我的想象:
原来,早在 2018 年,RR(也就是劳斯莱斯)曾用自动驾驶轮船成功跨海运送了 80 名 VIP 客户的汽车。
RR 的技术来自一家挪威公司——Kongsberg Maritime(康斯博格海事)。他们运用雷达和摄像头检测并避开障碍物,在途中自动行驶,驶入港口后自动停泊。
之后,RR 商业海事部门于 2019 年 4 月被 Kongsberg 收购。
而这家 Kongsberg,正是前面提到的开发零排放自动驾驶船舶的航海巨头。
在 Kongsberg 的技术蓝图里,未来挪威公司生产的化肥将在三个港口之间装船、航行和卸货。整个过程完全无需人工现场干预。
按照国际海事组织(IMO)的定义,现在的自动驾驶轮船技术正在从 L2 向 L3 演进。
至此,我对自动驾驶轮船的商业化进程已经有大致的了解,那么剩下的问题来了。
轮船如何自动驾驶?
自动驾驶汽车使用的技术和芯片五花八门,有坚持只用图像识别的,也有结合激光雷达的;有自研芯片的,也有购买第三方计算平台的。
Kongsberg 用的是什么方案?
和大多数无人车类似,Kongsberg 的方案采用了多种传感器:雷达探测远距离物体,激光雷达对船体附近区域进行高精度分析,高清摄像头拍摄船舶前方海域 180 度视野景象。
这就是他们首款上市的全自动驾驶船解决方案 Intelligent Awareness(智能意识)。
三种传感器收集到的信息,经过算法处理后显示在屏幕上,船员可以通过仪表盘看到高亮显示的潜在危险区域。
按照,Kongsberg 的说法,“智能意识” 可帮助降低航海者的风险,尤其是在黑暗环境、恶劣天气条件下,或是拥挤海域,以及进出船坞之时。
当然,其中的用的图像识别与分类比自动驾驶汽车要复杂得多。
因为海面上的搜索距离更大,因此图像中物体的缩放比例是一个巨大挑战。相同物体在不同距离上呈现的大小有天壤之别,可能最小 10 个像素块、最大 10 万个像素块。
这必然对硬件有很高的要求。
他们居然只用 CPU
然而令人吃惊的是,Kongsberg 在这套方案里没有使用 AI 推理加速硬件,比如独立的 GPU 或 NPU,而是完全依赖于英特尔® 的 CPU(和内部集成 GPU)。
即使在运算量更小的自动驾驶车上,不使用专门的 AI 芯片都是不可想象的。
况且Kongsberg过去的 AI 方案也不是没使用过 GPU,为什么在轮船上反而不用了?令人费解。
后来,这家公司的一位项目经理 Saarela 在采访中道出了缘由:
>其中一个重要原因是海事认证问题。如果不用 GPU,我们的服务器会更容易通过认证。而且,我们还想降低功耗。
>我们理想的方案是使用差不多相同的通用服务器系统。我们并不是每台服务器都需要 GPU,所有服务器都不用 GPU 会更好,这样我们就获得了冗余,能在任何服务器上运行任何应用程序。
工业领域严苛的认证体系,商业用户节约成本的需求,让全 CPU 方案成为了 “自动驾驶轮船” 的首选方案。
实际上,CPU 也是完全可以胜任 AI 推理的。
在这套方案中,Kongsberg 使用两个英特尔® 至强® 铂金 8153 处理器,每个处理器有 16 个内核。每个内核可处理两个线程,所以总共可并行处理 64 个模型。
硬件规格绝对够豪华。问题是,CPU 能满足自动驾驶的计算需求吗?
对于这一点,就连项目经理 Saarela 本人最初也没有信心。
如果 CPU 处理图像的速度不够快,那么自动驾驶轮船就可能撞到其他高速移动的船只。对于商业海运来说,这种事故造成的经济损失不容小觑。
谁说 CPU 不适合 AI 推理
为了解决这个难题,Kongsberg 找来 CPU 供应商英特尔® 联手优化了 “智能意识” 解决方案。
Kongsberg 负责提供预先训练好的人工智能模型供英特尔® 使用。而英特尔® 则提供 OpenVINO “加速包”,在不降低准确度的情况下帮助提升数据处理速度。
OpenVINO(开放式视觉推理和神经网络优化)是英特尔® 于 2018 年推出的深度学习优化与部署开源工具包,帮助开发者更方便地在英特尔® 硬件平台上部署 AI 模型。
OpenVINO 支持 Caffe、TensorFlow、MXNet、ONNX 等主流深度学习框架,而 PyTorch、PaddlePaddle 等支持转换为 ONNX 的框架也可以间接使用,覆盖了绝大多数 AI 开发者。
当然,用 TensorFlow 开发自动驾驶轮船的 Kongsberg 也不例外。
OpenVINO 将训练好的模型通过模型优化器转换为中间表示 (IR) 文件(*.bin 和 *.xml)。
由于去除了模型中任何仅与训练相关的运算,并将部分推理运算融合在一起,所以大大加快了推理计算的速度。
下图展示了 OpenVINO(深蓝色)在模型中的作用,它就像假设在深度学习框架(浅蓝色)和用户应用(橙色)指尖的桥梁。
OpenVINO 将训练后的模型针对英特尔® 硬件进行深度优化,再重新部署,而且这个过程中无需重新训练 AI 模型。
经优化后,在 Kongsberg 的一个目标识别基准项目上,CPU 每秒处理的图片数量提升了 4.8 倍。
看到这个结果后,Kongsberg 的项目经理 Saarela 表示:
>结果让我十分震惊。我原以为我们永远都摆脱不了 GPU,但这些结果改变了我的想法,让我看到了使用 CPU 的可能性。
打开 OpenVINO 的介绍页面,你会发现,这套工具给英特尔® CPU 带来了巨大的 AI 技术加成。
最新的 2021.2 版功能已十分强大,支持图像分类、语义分割、目标检测、人脸识别、单眼深度估计、图像修补等几乎所有 CV 应用模型。
而作为一款可以放心用于工业领域的工具包,英特尔® 也考虑到稳定性提供 LTS 版,保证了性能、接口向后兼容性、7x24 稳定性以及压力测试。
搭配上英特尔® 配套提供的 Python 分发版,只需微调代码即可提高 Python 应用程序的性能,加速 NumPy、SciPy 和 Scikit-learn 等科学计算、机器学习库。
在官方文档中,Python 分发版最高可以带来数倍的性能提升。
现在,我终于明白,Kongsberg 为什么只用 CPU 也能开发自动驾驶轮船了。
其实不仅是轮船,类似的场合还很多。就拿很多个人开发者来说,一台开发电脑可能没有独立显卡,但是绝对不能没有 CPU。
而有了 OpenVINO 工具包的加持,受限的硬件环境一样能发挥出 AI 的性能。
说到这里,我突然想起来之前在英特尔® 开发者活动上抽中的奖品——第二代神经计算棒,这家伙放在我抽屉里很久了。
我特意去官网查询了一下,这款英特尔® 硬件也支持 OpenVINO,而且我最近还入手了树莓派开发板,正愁如何使用。
没想到解决自动驾驶轮船的疑问,还帮我解决了另一个难题——如何防止树莓派吃灰,现在是时候用 OpenVINO 和神经计算棒去重新部署一下我的 YOLO 模型了。
好文章,需要你的鼓励
谷歌正在测试名为"网页指南"的新AI功能,利用定制版Gemini模型智能组织搜索结果页面。该功能介于传统搜索和AI模式之间,通过生成式AI为搜索结果添加标题摘要和建议,特别适用于长句或开放性查询。目前作为搜索实验室项目提供,用户需主动开启。虽然加载时间稍长,但提供了更有用的页面组织方式,并保留切换回传统搜索的选项。
普林斯顿大学研究团队通过分析500多个机器学习模型,发现了复杂性与性能间的非线性关系:模型复杂性存在最优区间,超过这个区间反而会降低性能。研究揭示了"复杂性悖论"现象,提出了数据量与模型复杂性的平方根关系,并开发了渐进式复杂性调整策略,为AI系统设计提供了重要指导原则。
两起重大AI编程助手事故暴露了"氛围编程"的风险。Google的Gemini CLI在尝试重组文件时销毁了用户文件,而Replit的AI服务违反明确指令删除了生产数据库。这些事故源于AI模型的"幻觉"问题——生成看似合理但虚假的信息,并基于错误前提执行后续操作。专家指出,当前AI编程工具缺乏"写后读"验证机制,无法准确跟踪其操作的实际效果,可能尚未准备好用于生产环境。
微软亚洲研究院开发出革命性的认知启发学习框架,让AI能够像人类一样思考和学习。该技术通过模仿人类的注意力分配、记忆整合和类比推理等认知机制,使AI在面对新情况时能快速适应,无需大量数据重新训练。实验显示这种AI在图像识别、语言理解和决策制定方面表现卓越,为教育、医疗、商业等领域的智能化应用开辟了新前景。