亚马逊AWS官方博客

Category: Apache MXNet on AWS

Model Server for Apache MXNet 引入 ONNX 支持和 Amazon CloudWatch 集成

今天,AWS 发布了 Model Server for Apache MXNet (MMS) 版本 0.2,这是一个打包深度学习模型和为模型提供服务的开源库,适用于进行大规模预测。现在,您可以 Open Neural Network Exchange (ONNX) 的形式为模型提供服务,并直接向 Amazon CloudWatch (可在其中创建控制面板和警报) 发布运维指标。

Read More

使用 NNPACK 库加速 Apache MXNet

Apache MXNet 是供开发人员构建、训练和重复使用深度学习网络的开源库。在这篇博文中,我将向您介绍如何使用 NNPACK 库来加速推理。事实上,当 GPU 推理不可用时,要想从实例中获取更多性能,将 NNPACK 添加到 Apache MXNet 中或许不失为一种简单的方法。和往常一样,“您的情况可能会有所不同”,而且您应该始终运行自己的测试。

Read More

宣布推出 ONNX 1.0

今天,Amazon Web Services (AWS)、Facebook 和 Microsoft 很高兴宣布:开放神经网络交换 (ONNX) 格式已可用于生产环境。 ONNX 是深度学习模型的开放标准格式,实现深度学习框架 (如 Apache MXNet、Caffe2、Microsoft Cognitive 工具包和 PyTorch) 之间的互操作性。ONNX 1.0 使用户能够在框架之间移动深度学习模型,从而使其更容易投入生产。例如,开发人员可以使用 PyTorch 等框架构建复杂的计算机视觉模型,并使用 Microsoft Cognitive 工具包或 Apache MXNet 运行它们以进行推理。 自 9 月份 ONNX 首次发布以来,社区支持和参与的增长和发展势头都十分喜人。包括高通、华为和英特尔在内的众多硬件合作伙伴宣布,他们的硬件平台支持 ONNX 格式,使用户更容易在不同的硬件平台上运行模型。我们非常感谢那些为新功能提供代码和支持的贡献者社区。 我们将继续与 ONNX 合作伙伴和社区合作,共同发展 ONNX,确保开发人员获得最新的研究成果,以便将先进的模型集成到生产应用程序中。 相关公告 Facebook – 发布了 ONNX V1 Microsoft – 宣布推出 ONNX 1.0 – 适用于 AI 的开放生态系统 作者简介 […]

Read More

推出适用于 Apache MXNet 的模型服务器

本周早些时候,AWS 宣布推出适用于 Apache MXNet 的模型服务器,这是构建于 Apache MXNet 上的开源组件,用于处理深度学习模型。Apache MXNet 是一种可快速进行训练和推理的可扩展框架,具有易于使用、简明扼要的机器学习 API。工程师们现在可以利用适用于 Apache MXNet 的模型服务器,轻松、快速地对 MXNet 模型进行大规模处理。 什么是适用于 Apache MXNet 的模型服务器? 适用于 Apache MXNet 的模型服务器 (MMS) 是一种开源组件,旨在简化深度学习推理模型的大规模部署任务。部署推理模型并不是无关紧要的任务。它需要收集各种模型构件、设置处理堆栈、初始化并配置深度学习框架、公开终端节点、发送实时指标,以及运行自定义预处理和后处理代码,而这只是众多工程任务中的几项。虽然每项任务都不是特别复杂,但与部署模型相关的所有工作足以使部署过程变得缓慢而繁琐。 MMS 是 AWS 贡献的一款适用于 Apache MXNet 的开源工程工具集,可以极大地简化部署深度学习模型的过程。如果您使用 MMS 部署模型,可以使用以下主要功能: 将所有模型构件打包并导出为单一“模型存档”文件 (其中封装了处理 MXNet 模型的所有必要内容) 的工具作业。 自动设置处理堆栈,其中包括 HTTP 推理终端节点、基于 MXNet 的引擎,所有组件均根据处理的具体模型进行自动配置。 预配置的 Docker 镜像,利用 NGINX、MXNet 和 MMS 进行设置,以实现可扩展的模型处理。 能够自定义推理执行管道中的每个步骤,从模型初始化到预处理和推理,再到对模型输出的后处理。 用于监控推理服务和终端节点的实时运行指标,涵盖延迟、资源利用率和错误。 支持 […]

Read More

使用 Amazon EMR 上的 Apache MXNet 和 Apache Spark 进行分布式推理

在这篇博客文章中,我们将演示如何使用 Amazon EMR 上的 Apache MXNet (孵化) 和 Apache Spark 对大型数据集运行分布式离线推理。我们将说明离线推理如何起作用、为何离线推理具有挑战性以及如何利用 Amazon EMR 上的 MXNet 和 Spark 来应对这些挑战。 大型数据集上的分布式推理 – 需求与挑战 在进行有关深度学习模型的培训后,可以对新数据上运行推理了。可对需要即时反馈的任务 (如欺诈检测) 执行实时推理。这通常称作在线推理。或者,也可在预计算有用时执行离线推理。离线推理的常用案例是用于具有低延迟要求的服务,例如,要求对许多用户-产品分数进行排序和排名的推荐系统。在这些情况下,将使用离线推理来预计算推荐。结果将存储在低延迟存储中,而且将按需使用存储中的推荐。离线推理的另一个使用案例是使用从先进模型中生成的预测回填历史数据。作为一个假想的示例,报纸可利用此设置来使用从人员检测模型中预测的人员姓名回填已存档的照片。分布式推理还可用于基于历史数据测试新模型以验证这些模型在部署到生产之前是否会产生更好的结果。 通常,会在跨数百万条或更多记录的大型数据集上执行分布式推理。在合理的时间范围内处理这类大规模数据集需要一组计算机设置和深度学习功能。借助分布式群集,可使用数据分区、批处理和任务并行化来进行高吞吐量处理。但是,设置深度学习数据处理群集会面临一些挑战: 群集设置和管理:设置和监控节点、维护高可用性、部署和配置软件包等。 资源和作业管理:计划和跟踪作业、对数据进行分区和处理作业失败。 深度学习设置:部署、配置和运行深度学习任务。 接下来,本博客文章将介绍如何使用 Amazon EMR 上的 MXNet 和 Spark 来应对这些挑战。 使用 MXNet 和 Spark 进行分布式推理 利用 Amazon EMR,可轻松、经济高效地使用 Spark 和 MXNet 来启动可扩展群集。Amazon EMR 按秒计费,并且可使用 Amazon EC2 竞价型实例来降低工作负载的成本。 Amazon EMR […]

Read More

《制作无人驾驶车辆》第 4 部分:通过 Apache MXNet,为您的自动驾驶车辆应用行为克隆技术

在我们无人驾驶车辆系列的第一篇博客文章中,您制作了一辆 Donkey 车并将导航服务器部署到了 Amazon EC2 实例上。在第二篇博客文章中,您学习了如何驾驶 Donkey 车辆,Donkey 车辆也学习了如何自行驾驶。在第三篇博客文章中,您学习了如何通过 AWS IoT 将 Donkey 车辆的遥测数据流式传输到 AWS 的过程。 在这篇博文中,我们将深入探讨实现车辆自行驾驶的深度学习框架,并介绍采用卷积神经网络 (CNN) 的行为克隆概念。CNN 是一项面向计算机视觉任务的先进建模技术,可帮助解答车辆可能会遇到的问题,例如,“我前面是轨道还是圆锥形路标?” 1) 在 AWS 上制造一辆无人驾驶车辆,并参加 re:Invent 机器人车拉力赛 2) 《制作无人驾驶车辆》第 2 部分:驾驶您的车辆 3) 《制作无人驾驶车辆》第 3 部分:连接您的无人驾驶车辆 4) 《制作无人驾驶车辆》第 4 部分:通过 Apache MXNet,为您的自动驾驶车辆应用行为克隆技术 P2 上的 Donkey 训练数据设置 我们已在博客文章 2 中详细演练了如何运行训练。但是,让我们在这里回顾一下关键步骤和命令: 将数据从 Pi 复制到 Amazon EC2 实例: $ rsync -rva –progress -e […]

Read More

在 Amazon EMR 上运行带有多种 GPU 实例类型的深度学习框架

今天,AWS 很高兴地宣布 Amazon EMR 将支持 Apache MXNet 和新一代 GPU 实例类型,让您可以在进行机器学习工作流程和大数据处理的同时运行分布式深度神经网络。此外,您还可以在采用 GPU 硬件的 EMR 群集上安装并运行自定义深度学习库。通过使用深度学习框架,您可以使用新工具包来处理多种使用案例,包括无人驾驶车辆、人工智能、个性化医疗和计算机视觉。 Amazon EMR 提供一个 Hadoop 托管框架,可以让您轻松、快速且经济高效地使用 Apache Spark、Apache Hive、Presto、Apache HBase 和 Apache Flink 等框架处理 Amazon S3 中的大量数据。您可以低成本安全、高效地处理大量大数据使用案例,包括日志分析、Web 索引、数据转换 (ETL)、财务分析、科学模拟、实时处理和生物信息。 多年来,EMR 一直致力于帮助您运行可扩展的机器学习工作负载。2013 年,我们增加了对 Apache Mahout 的支持,以帮助您使用 Apache Hadoop MapReduce 来运行分布式机器学习工作负载。2014 年,客户开始利用 Apache Spark (我们在 2015 年增加了官方支持),以便利用 Spark ML 中提供的各种开源机器学习库来轻松构建可扩展的机器学习管道。 在过去 2 年内,我们还增加了对 Apache […]

Read More

宣布为 Apache MXNet 推出 ONNX 支持

今天,AWS 宣布推出 ONNX-MXNet,它是一种用于将 Open Neural Network Exchange (ONNX) 深度学习模型导入到 Apache MXNet 的开源 Python 程序包。MXNet 是功能齐全且可扩展的深度学习框架,可以跨 Python、Scala 和 R 等多种热门语言提供 API。通过 MXNet 的 ONNX 格式支持,开发人员可以使用 PyTorch、Microsoft Cognitive Toolkit 或 Caffe2 等其他框架构建和训练模型,然后将这些模型导入 MXNet 中运行,从而使用 MXNet 高度优化且可扩展的引擎进行推理。 我们还很激动地告诉大家,AWS 将在 ONNX 格式方面参与合作。我们将与 Facebook、Microsoft 和深度学习社区合作,进一步开发 ONNX,让深度学习从业人员都可以访问和使用它。 什么是 ONNX? ONNX 是一种用于对深度学习模型进行编码的开源格式。ONNX 定义神经网络计算图的格式以及图中使用的大量运算符的格式。随着越来越多的框架和硬件供应商支持 ONNX,从事深度学习的开发人员可以轻松地在框架间移动,选择最适合当前任务的框架。 快速入门 我们将介绍如何使用 ONNX-MXNet 将 ONNX 模型导入 MXNet,以及如何使用导入的模型进行推理,从 MXNet […]

Read More

Apache MXNet 版本 0.12 扩展了 Gluon 功能以支持前沿的研究

上周,Apache MXNet 社区发布了 MXNet 版本 0.12。主要功能是支持 NVIDIA Volta GPU 和 sparse tensor。该版本还包括一些新的 Gluon 编程接口功能。特别是,可以通过这些功能在您的深度学习模型中轻松开展前沿的研究: 变分丢弃;可用于有效地应用丢弃技术以减轻递归神经网络 (RNN) 中的过拟合问题 卷积 RNN、长短期记忆 (LSTM) 和门控循环单元 (GRU) 单元;可用于对具有基于时间的序列和空间维度的数据集进行建模 七个新的损失函数、导出功能和训练器函数增强功能 变分丢弃 (VariationalDropoutCell) 根据最新的研究提供一种新的工具以减轻 RNN 中的过拟合问题。本文参考了“A Theoretically Grounded Application of Recurrent Neural Networks”和“RNNDrop: A Novel Approach for RNNs in ASR”。过拟合是一种建模错误,其中拟合的模型与训练数据集非常接近,以至于在查看新数据或测试数据集时,将会降低其预测精度。丢弃是一种建模技术,它随机地将模型参数归零,以便模型在训练过程中不会过度依赖于任何单个输入或参数。不过,这种技术尚未成功应用于 RNN。迄今为止的研究侧重于仅将丢弃完全随机地应用于输入和输出,即,在 RNN 的所有时间步长中将其归零。变分丢弃消除了这种涵盖所有时间步长的随机性,并在每个时间步长将相同的随机丢弃数组 (或掩码) 应用于 RNN 的输入、输出和隐藏状态。

Read More

利用 Amazon CloudWatch 监控 GPU 利用率

深度学习需要进行大量的矩阵相乘和向量运算,而 GPU (图形处理单元) 可以并行处理这些运算,因为 GPU 拥有数以千计的核心。Amazon Web Services 为您提供的 P2 或 P3 实例非常适用于运行深度学习框架,如 MXNet,该框架强调加速部署大型深度神经网络。 数据科学家和开发人员在微调网络时,希望优化其 GPU 的利用率,以使用最适当的批处理大小。在这篇博文中,我将向您展示如何使用 Amazon CloudWatch 指标监控 GPU 和内存的使用情况。至于 Amazon 系统映像 (AMI),我们建议您的实例使用 Amazon Deep Learning AMI。 要监控和管理已启用 GPU 的实例,目前常见的有益做法是使用 NVIDIA 系统管理接口 (nvidia-smi),这是一个命令行实用程序。用户可以利用 nvidia-smi 查询 NVIDIA GPU 设备的 GPU 利用率、内存消耗情况、风扇使用情况、功耗以及温度信息。 由于 nvidia-smi 的基础是 NVIDIA Management Library (NVML),所以我们可以使用这个基于 C 的 API 库捕捉相同的数据点,并作为自定义指标发送给 Amazon CloudWatch。如需了解有关此库的更多信息,请转至参考手册。在这篇博文中,我们将使用此库的 Python […]

Read More