微软开源InnerEye – 三郎君的日常

面试 · 2023年5月16日 0

微软开源InnerEye

以下文章来源于微软研究院AI头条,作者微软亚洲研究院

地址:

https://github.com/microsoft/InnerEye-DeepLearning

https://github.com/microsoft/InnerEye-Gateway

十多年来,微软剑桥研究院的 InnerEye 项目团队一直在开发最先进的机器学习方法,用于三维医学影像的自动定量分析。该项目的一个重要应用是在癌症放射疗法上,协助临床医生进行图像准备和手术计划。通常,癌症放射疗法需要放射肿瘤学专家或专业技术人员手动检查、标记数十个 3D CT 扫描图像,根据癌症的种类,这项任务可能需要一个小时到多个小时不等。项目团队的研究表明,机器学习可以将这个时间缩短到几分钟,帮助临床医生减轻负担。

InnerEye 项目一直与剑桥大学以及剑桥大学医院 NHS 基金会密切合作,通过深入研究,最终在这一问题上取得了突破。剑桥大学机器学习和放射学组负责人 Raj Jena 博士表示:“这项技术成功的最有力证明就是忙碌的临床医生与 InnerEye 的互动程度。在超过15年的时间里,用于放射治疗的图像自动分割技术一直没有完全实现。通过使用 InnerEye 机器学习模型,我们已经对数据进行了训练,现在观察到一致的分割效果在精确度上,达到了符合严格的临床要求的标准。”

InnerEye 项目的目标是希望人工智能在医学影像分析方面被普及化使用,并让研究机构、医院、生命科学组织和医疗服务提供者通过使用微软 Azure 云平台可以构建自己的医学影像人工智能模型。因此,为了使 InnerEye 项目的研究成果更容易获得,微软发布并开源了 InnerEye 深度学习工具包(https://github.com/microsoft/InnerEye-DeepLearning)。该工具包让使用集合训练高性能模型,以及使用 Azure 机器学习服务或 Azure Stack Hub 部署模型,变得容易。微软非常高兴看到人们或组织将如何在此基础上提升患者护理的水平。

开源InnerEye深度学习工具包

随着深度神经网络等新技术的不断发展,用于医学影像的机器学习模型也在迅速进步。由于需要复杂的软件工程和计算基础设施来定义、训练、测试和跟踪,所以关注核心机器学习的进展十分困难。InnerEye 项目团队已参与了多个机器学习项目(包括放疗、外科手术计划和定量放射学),并利用 Azure 为团队开发了一个通用框架,以简化工作流。同时,项目团队希望以开源的形式将这个工具包分享给更多有以下需要的人:

  • 大规模构建最先进的 3D/2D 医学影像分类、分割或序列模型
  • 避免管理和维护一个有弹性的前沿 GPU 集群
  • 按照最佳实例来构建 AI 模型——DevOps for ML (MLOps)

InnerEye 项目团队已建立了一种基于配置的方法,用于构建图像分类、分割或序列模型。不同的模型有不同的模板,包括常见的场景,如放射治疗分割、放射学分割和眼科分类等。其中,分类、回归和序列模型可以只使用图像作为输入,也可以使用图像和非图像数据的组合作为输入。该方法支持典型的医学数据使用场景,在这些用例中,除了图像之外,它还可以使用测量值、生物标记或患者特征。使用者可以使用预配置的神经网络,比如 UNet3D,也可以使用自己的网络。

使用 UNet3D 网络分析肺 CT 图像的放疗分割模型配置模板

建立先进模型的一大挑战,是大规模地训练现代计算体系结构。这就涉及到构建和维护 GPU 的弹性集群,但这不是机器学习研究人员和开发人员需要花费时间去做的事情。由于云计算可以使管理大量 GPU 的分布式训练变得更加容易,所以 InnerEye 深度学习工具包充分利用了 Azure 机器学习服务的优势:

  • 将集群从0扩展到 N 个计算节点,以在多个 GPU 上训练模型
  • 仅按实验次数付费
  • 利用低优先级节点节省成本
  • 使用最新的 GPU、IPU 和 FPGA
  • 使用 Azure 机密计算等高级功能
动图封面
Azure 机器学习服务使在云上扩大机器学习模型训练和管理规模成为可能

为了在机器学习模型中建立信任关系,遵循行业和社区的最佳实例来保证可靠性、可说明性和透明性是很重要的。InnerEye 深度学习工具包使用 Azure 机器学习服务来管理 DevOps for ML (MLOps),包括:

  • 实验可追溯性:Azure 机器学习服务可完整记录所有已执行的实验,包括代码快照。标签会自动添加到实验中,以帮助筛选和查找旧实验。
  • 实验透明度:所有的团队成员都可以看到彼此的实验和结果。
  • 模型再现性:例如,使用相同代码和数据的两个模型训练将产生相同的度量。所有的随机源,比如多线程,都是受控的。
  • 模型管理:包括具有丰富元数据的版本控制模型。
  • 模型部署:使用 Azure 机器学习服务或 Azure Stack Hub,作为智能边缘解决方案的一部分进行模型部署。
  • 与 Git 集成和持续集成(CI,Continuous Integration)。

此外,该工具包还支持更高级的机器学习开发功能,包括:

  • 使用 Azure 机器学习服务的内置支持进行交叉验证,其中用于单个折叠的模型是并行训练的。这对于医学影像的长时间训练作业尤其重要。
  • 使用 Azure 机器学习服务中的 HyperDrive 进行超参数调优。
  • 通过组合多个不同的模型来构建集成模型,以提高预测性能。
  • 通过使用统计检验,比较新模型和现有模型。
  • 基于已经配置好的方法轻松创建新模型,并从现有体系架构中“继承”。

InnerEye 深度学习工具包的设计以可用性和灵活性为核心,建立在 PyTorch 上,并深度整合了微软 Azure 云计算平台。

医学影像技术堆栈使用了 InnerEye 深度学习工具包和 PyTorch,以及 Azure 机器学习服务和 Azure Stack Hub

在临床上使用最先进的机器学习技术

NHS 的 Topol Review 强调,技术应该帮助临床医生节省更多的时间。InnerEye 技术就旨在提供构建模块,让用户可以做到这一点。

为了让更多的个人和组织使用机器学习库和技术组件,现在,InnerEye 深度学习工具包已作为开源软件在 GitHub 上发布。该工具包可以被研究人员用来构建和完善他们自己的模型,并将其应用于很多方面,包括我们尚未想到的应用场景。医疗健康提供商、公司和合作伙伴还可以使用此工具包开发自己的机器学习产品和服务,包括使用 Azure Stack Hub (需要经过适当的测试和监管批准,如 FDA 许可、CE 标记或内部豁免控制)。Azure Stack Hub 可以将 Azure 的服务和能力扩展到用户选择的从数据中心到其边缘的整个环境。用户可以在 IT 生态系统中一致地构建、部署和运行混合及边缘应用程序,并充分利用诸如AI和机器学习等云原生服务的优势。Azure 的这一扩展还可以使用户符合监管要求,并实现对延迟敏感的工作负载。

Jena 博士补充道,“通过 Azure Stack Hub 这样的技术,我们有可能自己完善并拥有模型。我们看到了一种方法,可以将机器学习技术整合到治疗路径中,从而形成长期、实用的解决方案,并随着时间的推移不断演进。”

InnerEye 深度学习工具包的潜在应用包括用于监测肿瘤的定量放射学、手术计划和放射治疗计划

微软期待在 InnerEye 深度学习工具包开源的基础上,建立研究和医疗技术社区,最终造福于世界各地的患者。