今天,微软正在举办一个开发者日,他们展示的亮点之一是一个名为WinML的新应用程序接口。人工智能和机器学习是两个当今计算领域最大的趋势,但现在大部分计算都是在云数据中心完成的,其中定制服务器使用专用硬件来提高性能并降低能耗。 但是与计算中的其他内容一样,这个也有周期性,我们再一次考虑将部分计算转移回到边缘设备上,例如个人电脑,平板电脑和物联网。
WinML是一套新的API,它可以让开发人员利用任何Windows 10设备的全部功能使用预先训练的学习模型机器,从而允许AI任务从云端卸载。第一个原因是性能。 尽管云端拥有巨大的计算能力,但是现在将数据移动到云中的成本大,速度慢。任何网络连接的延迟比本地内存访问慢几个数量级,如果没有昂贵的专用高带宽互连,处理海量数据集可能会很困难。 本地执行计算任务可以显着提高性能,这要归功于较低的延迟,并提供实时结果。 通过减少网络带宽和减少云计算时间,可以节省运营成本。
为了遵守法规和安全方面的考虑,许多行业将无法利用机器学习和AI来处理数据集,因此WinML为他们提供了一个简单的选择,可以将这项工作从云端移开,这意味着更容易确保您符合所有必要的规定。
微软发言人提供的一个例子是工业系统,在该系统中拍摄产品图像,并且系统必须确定该产品是否正确或者是否存在缺陷。这是AI工具的理想工作负载,例如Microsoft的Computer Vision API。 将这种类型的计算转移到可能处于脱机状态的工业PC可提供卓越的性能,而无需持续的成本或云连接的需求。
微软新推出的一套AI API提供了几项关键优势,可帮助开发人员将其集成到他们的产品中。 可以说最重要的是,API为开发人员完成了所有繁重的工作,因此开发人员不必担心硬件在任何计算机上是否适用。WinML引擎将动态地利用硬件,并创建代码以获得设备在任何硬件上运行的最高性能。 该引擎构建在Direct 3D上,如果系统具有支持DX12的GPU,则将动态使用DX12计算着色器。 如果你有一个拥有大量VRAM的巨大GPU,工作负载将被卸载到GPU上。如果DX12 GPU不可用,或者由于集成图形性能问题,引擎也可能回退到CPU路径,但CPU路径也利用了所有芯片,并支持AVX512等产品。 该代码是在运行时生成的,因此它将始终针对可用硬件进行优化,并且引擎也将得到更新,以充分利用诸如英特尔Movidius VPU等新硅芯片。 也许更令人印象深刻的是,ML引擎甚至可以在基于SnapDragon 835的新电脑,甚至物联网设备上工作。 如果你有很多可用的性能,它会利用ML引擎,但如果系统是低功耗设备,它仍然可以工作。
这里的一个关键点是WinML API适用于已经过培训的模型。 训练本身将提前完成,然后提供给发动机的模型和数据进行分析并提供概率。
新的API将采用行业标准的ONNX ML型号,ONNX由微软,Facebook和亚马逊推动,并得到AMD,Intel和NVIDIA等所有关键硬件厂商的支持。 ONNX模型可以使用Azure机器学习工作台进行培训,然后模型将被引入到Visual Studio中,该工具将为引擎创建一个封装器以供使用。 Visual Studio Preview 15.7将支持这一点,而早期版本可以使用MLGen工具将其手动添加到项目中,并且可以从Azure直接导出ONNX模型。
微软坦率地表示,WinML的想法在2017年5月左右才真正得到了启发,并且在去年8月份开始在新的API上开展工作,所以在短短几个月内,他们已经从一个想法变成了带给开发人员的新ML工具包。 这个时间表相当令人印象深刻,这归功于DX12内置的功能以及高质量的驱动程序,这使得团队可以在如此短的时间内进行扩展。
AI和ML是当今开发和硬件行业的两大关键词,而WinML和面向Windows开发人员的AI平台应该帮助将这些功能用于更多任务。
原文链接:https://www.anandtech.com/show/12508/microsoft-announces-ai-platform-for-windows-developers-machine-learning-on-the-edge