亚马逊AWS官方博客

SNCF Réseau 和 Olexya 如何将 Caffe2 计算机视觉流水线任务迁移至 Amazon SageMaker 中的 Managed Spot Training

Original URL: https://aws.amazon.com/cn/blogs/machine-learning/how-sncf-reseau-and-olexya-migrated-a-caffe2-vision-pipeline-to-managed-spot-training-in-amazon-sagemaker/

 

.本文由来自SNCFOlexya的客座作者联合撰写。

运输与物流行业,可谓机器学习(ML)技术的沃土。在本文中,我们将了解法国国有铁路公司Société Nationale des Chemins de fer Français (SNCF),在其技术合作伙伴Olexya的帮助下,如何运用AWS提供的ML服务,研究、开发与部署创新的计算机视觉解决方案。

SNCF成立于1938年,目前拥有超过27万名员工。SNCF Réseau为SNCF旗下子公司,负责铁路网络基础设施的管理与运营工作。SNCF Réseau及其技术合作伙伴Olexya部署了一整套创的解决方案,希望以协助基础设施运营的同时,对基础设施安全性与质量保持高水平。现场团队使用计算机视觉检测基础设施中出现的异常。

SNCF Réseau的研究人员拥有丰富的ML经验,有一个团队已使用Caffe2深度学习框架开发出本地计算机视觉检测模型。接着,科学家们联系到SNCF Réseau的技术合作伙伴Olexya,他们帮助申请配置GPU资源来支持迭代模型。为了继续保持较低的运营开销与较高的生产效率,同时保持科学代码的全面灵活性,Olexya决定使用Amazon SageMaker编排Caffe2模型的训练与推理。整个流程涉及以下步骤:

  1. 创建自定义Docker。
  2. 通过 Amazon Simple Storage Service (Amazon S3)数据通道配置训练数据读取。
  3. 通过Amazon SageMaker Spot GPU训练实现有成本效益的训练。
  4. 使用Amazon SageMaker训练API实现有成本效益的推理。

创建自定义Docker

该团队创建一个Docker镜像,其中打包有符合Amazon SageMaker Docker规范的原始Caffe2代码。Amazon SageMaker能够容纳多个数据源,而且与Amazon S3进行了高级集成。存储在Amazon S3中的数据集能够被自动提取至运行在Amazon SageMaker上的训练容器当中。为了顺畅处理Amazon S3中的可用训练数据,Olexya需要指定训练代码从关联的本地路径 opt/ml/input/data/<channel name>处执行读取。相似的,模型写入位置必须设定为opt/ml/model。使用这种方式,在训练作业完成之后,Amazon SageMaker就能自动将训练完成的模型工件压缩并发送至Amazon S3。

通过 Amazon Simple Storage Service (Amazon S3)数据通道配置训练数据读取

原始Caffe2训练代码通过详尽且灵活的YAML配置文件实现参数调整,所以研究人员能够直接更改模型设置,而无需更改科学代码。外部文件很容易被保留在外部并在训练时使用数据通道读取到容器中。这里所说的数据通道,是指在训练过程中传递至Amazon SageMaker SDK的Amazon S3 ARN,其会在训练开始时被添加至Amazon SageMaker容器当中。Olexya将数据通道配置为通过副本读取的形式(即副本模式),这也是Amazon SageMaker中的默认配置。您也可以根据需求通过Unix管道(即Pipe模式)实现数据的流式传输。

通过Amazon SageMaker Spot GPU训练实现有成本效益的训练

该团队采用ml.p3.2xlarge GPU加速计算实例配置了训练基础设施。Amazon SageMaker ml.p3.2xlarge计算实例特别适用于深度学习计算机视觉类工作负载,其配备了一块有5120个核心的英伟达V100 GPU与16 GB高带宽内存(HBM),能够快速训练大型模型。

此外,Amazon SageMaker训练API被设置激活使用托管Spot实例,与Amazon SageMaker按需实例价格相比,Spot实例被报告节省了71%成本。Amazon SageMaker Managed Spot Training是Amazon SageMaker提供的功能选项,可使用Amazon Elastic Compute Cloud (Amazon EC2)Spot实例资源进行训练。Amazon EC2 Spot实例将处于闲置状态的冗余Amazon EC2计算容量以高折扣方式出售给客户。在Amazon SageMaker当中,Spot实例的实际使用由服务本身全面托管,用户可以设置两项训练SDK参数随时加以调用:

  • train_use_spot_instances=True,用于请求Amazon SageMaker Spot实例的资源使用量。
  • train_max_wait,用于设置以秒为单位的最大可接受等待时长。

Amazon SageMaker训练API实现有成本效益的推理

在本次研究计划中,最终用户可以接受推理中断与实例化延迟。因此,为了进一步优化成本,团队使用Amazon SageMaker训练API运行推理代码,在托管的Amazon SageMaker Spot实例之上同样可以用来推理。除了成本优势之外,使用训练API还能够降低学习曲线,因为在模型训练与推理周期之内使用相同的API。

时间与成本节省效果

通过以上四个步骤,Olexya成功将本地Caffe2深度计算机视觉检测模型移植到Amazon SageMaker当中,实现训练与推理。更令人印象深刻的是,该团队在约三周之内完成了工具学习,并将模型的训练周期由三天缩减至十个小时!该团队还进一步估计,与原有的本地可用GPU集群相比,Amazon SageMaker得以将总体拥有成本(TCO)降低71%。除此之外,其他优化技术能够进一步降低成本,例如使用Amazon SageMaker自动模型调优进行超参数智能搜索,并使用与之匹配的深度学习框架进行混合精度训练等。

除SNCF Réseau之外,不少来自运输与物流行业的AWS客户也都在ML技术的帮助下,切实改善了自身业务运营与创新能力。具体案例包括:

  • 来自迪拜的物流公司Aramex使用ML技术解决了地址解析与运输时间预测问题。该公司使用了150个模型,每天执行45万项预测作业。
  • 新南威尔士州运输局 使用云服务预测整个运输网络中的乘客数量,借此更好地规划劳动力与资产利用率,进而提升客户满意度。
  • 大韩航空 使用Amazon SageMaker启动多个创新项目,旨在预测并提前对飞机机群进行维护。

总结

Amazon SageMaker支持从数据注释、到生产部署、再到运营监控的整个ML开发周期。正如Olexya与SNCF Réseau的工作所示,Amazon SageMaker具有良好的框架中立性,能够容纳各类深度学习工作负载及框架。除了预先为Sklearn、TensorFlow、PyTorch、MXNet、XGBoost以及Chainer创建配套Docker镜像与SDK对象以外,您也可以使用自定义Docker容器,几乎任何框架,如PeddlePaddle、Catboost、R以及Caffe2。如果您是作为ML从业者,不要犹豫,请开始测试AWS SageMaker服务,并分享您在构建中总结出的经验与心得!

本篇作者

Olivier Cruchant

现居于法国里昂的AWS机器学习专业解决方案架构师。Olivier帮助不同规模的法国企业客户开发并部署生产级机器学习应用程序。在业余时间,他喜欢阅读研究论文,并与亲朋好友一道组织户外探险。

Samuel Descroix

SNCF Réseau公司地理与分析数据部门主管。他负责统领各项目团队与基础设施事务。为了能够回答所有的新用户案例,他一直在努力寻找最具创新性、相关性最高的解决方案,借此管理不断增长的量和日益复杂的分析需求。

Alain Rivero

SNCF Réseau公司通用工业与工程部门技术与数字化转型(TTD)部门项目经理。他负责管理涉及深度学习类解决方案的各类项目,借此检测机车与轨道上存在的缺陷,提高通行安全性并指导维护团队内部做出明智决策。他的主要研究方向包括图像处理方法、有监督与无监督学习技术以及应用。

Pierre-Yves Bonnefoy

是Olexya公司数据架构师,目前专门负责SNCF Réseau公司的IT项目。他的主要职责是为数据科学家与数据分析师们提供用于复杂分析的环境与数据集,并帮助他们快速获取软件解决方案。凭借着在开发与系统架构领域的丰富知识与技能储备,他领导SNCF Réseau加速在SageMaker实例环境下的项目部署、成本合理化与性能优化等。

Emeric Chaize

是Olexya公司认证解决方案架构师,目前专门负责SNCF Réseau公司的IT项目。他主管IT数据部门的数据迁移项目,为数据分析场景下的各类需求与使用场景提供支持。他负责定义并规划各项目及数据科学家们所需要的整体基础设施部署工作。

本篇译者

申绍勇

申绍勇是AWS解决方案架构师,主要负责基于AWS的云计算解决方案进行架构咨询和设计,目前服务移动互联网(包含媒体、游戏、广告、电商、区块链等)、金融、制造业等各行业客户,提供有关云计算、AI、大数据、物联网、高性能计算等各类云计算解决方案的咨询和架构设计。