微软在 2018 年 4 月 Windows 更新时第一次大规模使用机器学习(ML),ML 通过监测 PC 运行状况的六个核心领域(例如总体可靠性),以确定功能更新过程是否顺利进行。
而在 2019 年 5 月发布的更新推送中,这是微软使用 ML 的第三次迭代,可评估的领域增加到了 35 个,微软计划在未来的更新中进一步扩大覆盖范围。
微软表示,使用 ML 来部署更新拥有更好的更新体验,例如下图,通过 ML 更新后系统启动的卸载数量不到一半、内核崩溃的数量减少一半,以及更新后的驱动程序问题的数量减少了五倍。
微软如何设计和构建支持 Windows 10 更新的机器学习模型
最近,微软发布博文介绍了这一技术信息。微软使用的是一个经过动态训练的模型,它通过在最新更新的 PC 机上训练,有区分好的和坏的更新体验的能力。下图是一个详尽的机器学习图,展示了机器学习算法的整体框架。
每个 Windows 10 更新版本都先推给早期使用者(比如 Windows 内部人员和主动寻求更新的人)。有了这些体验者,微软开发人员就可以通过诊断数据(例如内核模式崩溃、异常关闭和驱动程序问题)来监控他们的更新体验。
机器学习在其中提供了两个关键功能:
它确定了一些有安全隐患的问题,从而可以及时采取措施保护尚未更新的 PC,以便 Windows 开发人员能够及时调查和解决这些问题
它预测和发现那些可以顺利进行更新的 PC,从而提供更新
每天都重复这样一个过程,使模型不断地从最近更新的 PC 机中获得学习。然后随着时间的推移和不断解决问题,相比之下,过去那些更新了的 PC 就又有了缺陷,而现在学习到的更好的经验就会重新对他们进行更新。
微软使用 Azure Databricks 构建 ML 模型,评估那些准备升级的 PC(准备数据,创建单个模型,并计算出分数):
微软表示,ML 驱动的推出过程中,一个关键因素就是具有能够及早发现兼容性问题的能力,使他们能够建立保护措施,以保护其他的 PC 不进行本次的更新。而以往来说,兼容性问题是通过实验室艰苦测试、反馈和其他渠道检测到的。
虽然这些手段仍在使用,但在微软复杂的生态系统中,将 ML 应用到 PC 的诊断数据,将使微软能够更快识别与任何更新相关的兼容性信息,如硬件特性、驱动程序、应用程序等方面。
为了发现兼容性问题,他们使用异常检测,以发现某些特征或模式在什么时候导致的故障率会比整体的预期高。通过使用 Azure Databricks,就可以快速扩展到数百万台 PC,并建立保护措施,以防止 PC 被更新相关的潜在问题干扰。
下图显示了某个功能或模式的失败率为 82%,而基准失败率约为 3%。从而确定需要保护的位置,以防止其他 PC 遇到类似问题:
微软表示,目前的机器学习方案还不够完善,接下来会进一步发展 ML,以确保 ML 是全面的、更自动化的和灵活的,能够在几秒钟内而不是几个小时内解决问题。