关于机器学习:Amazon-SageMaker-助力医学影像AI诊断技术

4次阅读

共计 2824 个字符,预计需要花费 8 分钟才能阅读完成。

目前最新的计算断层成像(CT)、核磁共振成像(MRI)以及超声影像(US)等多种医学成像技术不仅实现了对肿瘤病变的高分辨率成像,同时还能够构造及性能多模态成像,从而实现对肿瘤病变无创检测。然而目前临床基于影像的肿瘤诊断和医治次要依赖于医生的集体教训和主观评判。然而,目前成像模态多样化,信息量也越来越大,凭借医生的集体判断也越发具备挑战性。如何通过 AI 技术对肿瘤影像数据进行全自动、精准的诊断和医治布局始终是钻研热点和难点。

越来越多的医疗用户在 AWS 平台寻求弹性,平安,高效,高可用的解决方案。同时,基于医疗的行业属性,医疗用户要求在云上的机器学习流程一方面与 AWS 其它服务如监控,平安,审计等服务集成,以合乎 HIPAA 要求;另一方面能贴合本地业务环境无缝集成,灵便部署。随着益体康,晶态科技等优良的医疗 +AI 用户通过在 AWS 上疾速搭建服务平台,他们极大缩短了产品从构想、开发,再到部署的工夫,同时,越来越多的用户发现 AWS 技术上的劣势能够让医疗 AI 用户的模型训练变得更为轻松。这篇内容旨在以开源的医疗影像数据与语义宰割算法为例,摸索 Amazon SageMaker 减速自定义医疗 AI 影像宰割算法构建的业务场景与劣势。

Amazon SageMaker 是一项齐全托管的服务,能够帮忙开发人员和数据科学家疾速构建、训练和部署机器学习 (ML) 模型。SageMaker 齐全打消了机器学习过程中每个步骤的沉重工作,让开发高质量模型变得更加轻松。比起本地 AI 集群:SageMaker 有以下劣势:

  • SageMaker 人造思考了数据安全,权限管制,审计合规,版本控制等问题,确保在 AI 我的项目的每一步都合乎寰球范畴内各个行业的标准以及 AI 工程化的最佳实际。
  • SageMaker 把 AI 开发步骤解耦合为数据 processing,estimator 与 fit,deploy 等操作,通过 sagemaker 的 API 或者 SDK 指令触发,做到一键运行,高弹性,最大限度在集群调度,散布训练,数据交互,版本控制等问题简化运维工作。同时,控制台能够实时监控各项任务的参数与指标,在算法疾速迭代期让开发者对于各项任务高深莫测。最初,SageMaker Studio (Web 可视化界面), Autopilot  (主动构建、训练和调优模型),Experiments  (组织、跟踪和评估训练运行状况),Debugger (剖析、检测和预警训练过程中的问题) 等新个性的推出,SageMaker 越来越成为 ML 用户的全开发周期中的无力助手。
  • SageMaker 与其余 AWS 服务高度集成,帮忙用户实现精细化权限管制,训练 / 部署过程中的具体性能监控与预先审计,主动生成报表,帮忙用户实现合规需要。同时通过与数据库,大数据分析,数据流,ETL 等服务集成,帮忙用户真正做到高效数据洞察,数据驱动决策。
  • SageMaker 反对训练应用 spot 实例,通过利用 AWS 云中未应用的 EC2 容量,最高节约 90% 的训练老本,模型部署应用 Elastic Inference , 能够节约 75% 的 serving 老本。

SageMaker 控制面板

在 AWS 主控制台搜寻 SageMaker 服务,进入后可见 SageMaker 的控制面板。

左侧栏笔记本下,抉择笔记本实例,能够看到该区域的笔记本实例列表。如果您须要创立笔记本实例,请点选右上角创立笔记本实例,而后参考 https://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/gs-setup-working-env.html 步骤。

在笔记本实例状态是绿色‘InService’时,点击关上 Jupyter 或者关上 JupyterLab。右上角点击 New,Terminal

数据集下载与预处理

本次试验所用数据集及代码存储在 S3 存储桶中,请进行下载,而后输出 unzip blog_files.zip 进行解压。

训练

关上 train.py , 能够看到咱们的原始脚本。留神在第 30 行到 39 行,别离是本地训练(不应用 SageMaker)和云上训练(应用 SageMaker)所用的模型门路和训练门路。这是因为在 SageMaker 封装 Estimator 进行训练时,训练实例会先从 S3 指定存储桶下载原始数据到 os.environ[‘SM_INPUT_DIR’],训练好的模型放到 os.environ[‘SM_MODEL_DIR’],在模型完结后上传到 S3 到指定地位。同时,咱们通过 argparse 传参。

而后,咱们能够在控制台中运行 python 测验脚本正确。

接下来,咱们进行脚本初始化,并指定 S3 门路与区域。

上传原始数据到 S3

查看数据

接下来,咱们援用 sagemaker 下的 PyTorch 类封装 Estimator。如果您心愿再一次在笔记本实例上检测训练流程是否正当,能够指定 train_instance_type=’local’/’local-gpu’。

您也能够通过训练实例进行训练,灵便减速已有脚本的训练过程。特地的,您还能够应用 spot 实例进行训练,最多可节俭 90% 的训练老本。为了应用 spot instance , 在封装 estimator 时请设置 train_use_spot_instances=True , 同时参考 https://docs.aws.amazon.com/sagemaker/latest/dg/model-managed-spot-training.html#model-managed-spot-training-using 设置 train_max_wait。

在控制台训练任务下,能够看到该工作正在训练。点击名称,能够看到训练任务的具体配置与监控信息。

点击工作名称进入具体配置页

监控指标

留神:在训练过程中进行 jupyter notebook , 并不会进行训练过程,能够在控制台训练任务下看目前进行的训练过程。

在训练完结后,咱们能够看到训练胜利的信息与 spot instance 的老本节俭信息。

部署

SageMaker 反对一键式部署,如以下代码所示:

删除

须要留神的是,应用 SageMaker Torch 自带推理镜像须要在脚本中指定 model_fn 等推理所用 function, 具体请参考 https://sagemaker.readthedocs.io/en/stable/using_pytorch.html。

在理论我的项目中,针对医疗用户的灵便部署需要,咱们能够在 S3 中获取训练好的数据。请在训练任务的配置页找到输入项并到 S3 对应门路下载并解压。

将解压后的文件通过各深度框架命令 load 模型, 即可自定义部署。

本地推理

批改 epoch 和 batchsize 后,能够失去更精确的预测后果。

总结

在本篇 blog 中,咱们以针对医疗公开数据集的语义宰割算法为例,摸索医疗畛域深度学习本地算法迁徙到 Amazon SageMaker 的步骤与劣势。心愿通过咱们的致力,让医疗 AI 开发者可能全力以赴优化算法,造福患者。

正文完
 0