随着AI和机器学习技术的变化日新月异,微软在今年的NVIDIA GTC活动中,一如既往地表现出色。


该公司的代表在多个会议上分享了他们最新的机器学习创新技术,包括大规模推理、在混合环境中训练机器学习模型的新功能以及首次亮相的PyTorch Profiler,它将帮助数据科学家提高工作效率、重新分析和解决ML性能问题。


GTC 2021大会上,微软介绍其最新的机器学习技术


在这三种情况下,Microsoft都将自己的技术(例如Azure)与开源工具以及NVIDIA的GPU硬件和技术进行了配对,以创建这些强大的新技术。


大规模推理


与收集数据和训练机器学习模型相关的开发成本巨大,尤其是对于大型项目而言,要花费数百万美元。推理(本质上是训练模型的应用)在与AI相关的计算成本的讨论中很少。但是随着深度学习模型变得越来越复杂,它们甚至在推理时也涉及巨大的数学表达式和许多浮点运算。


推理是AI令人兴奋的一环,因为这是像Microsoft Azure这样的团队向用户提供实际体验的步骤。例如,Azure团队与NVIDIA合作,改进了Microsoft Word中基于AI的语法检查器。任务不是训练模型以提供更好的语法检查。这是要为实际上执行语法检查的推理引擎提供动力。


鉴于Word庞大的用户群,这是一项计算密集型任务-包含数十亿个推论。有两个相互关联的问题:一个是技术问题,另一个是财务问题。为了降低成本,您需要更强大,更高效的技术。


GTC 2021大会上,微软介绍其最新的机器学习技术


NVIDIA开发了Triton Inference Server,以利用这些GPU的强大功能,并将其与Azure机器学习相结合进行推理。它们共同帮助您调整工作负载并使其运行良好。它们支持所有流行的框架,例如PyTorch、TensorFlow、MXNet和ONNX。


ONNX Runtime是一种高性能推理引擎,它利用各种硬件加速器在不同的硬件配置上实现最佳性能。微软与NVIDIA在ONNX Runtime中的TensorRT加速器集成方面紧密合作,以在NVIDIA GPU上进行模型加速。


Azure机器学习是一个托管的平台即服务平台,可以为用户执行大部分管理工作。在这里,技术问题有时会陷入财务危机,而Triton和Azure机器学习旨在解决这一难题。


使用Kubernetes使跨本地和多云,混合云和多云的ML模型训练更加轻松


创建混合环境可能具有挑战性,并且需要扩展资源密集型ML模型训练,这会使问题进一步复杂化。


在Azure的弧架构让客户Kubernetes资产适用的政策,执行安全监控等,都在一个“单一窗口”。现在,通过扩展Kubernetes API,Azure机器学习与Kubernetes的集成建立在此基础架构上。最重要的是,存在本地Kubernetes代码概念,例如运算符和CI / CD,并且“代理”在群集上运行,并使客户能够使用Azure机器学习进行ML培训。


无论用户混合使用哪种群集,Azure Machine Learning都可以使用户轻松切换目标。Azure机器学习Kubernetes本机代理支持的框架包括SciKit、TensorFlow、PyTorch和MPI。


本地代理也可以简化组织机构。它消除了数据科学家学习Kubernetes的需要,并且知道Kubernetes的IT运营商也不必学习机器学习。


新的PyTorch Profiler是Microsoft和Facebook的开源产品,为流行的机器学习框架PyTorch提供GPU性能调整。该调试工具有望帮助数据科学家和开发人员更有效地分析和解决大规模深度学习模型的性能问题,以最大程度地利用昂贵的计算资源进行硬件使用。


在机器学习中,分析的任务是检查模型性能。这与看模型的准确性是不同的; 在这种情况下,性能与模型使用硬件计算资源的效率和彻底程度有关。


它建立在现有的PyTorch autograd profiler的基础上,并通过高保真GPU分析引擎对其进行了增强,该引擎允许用户捕获和关联有关PyTorch操作的信息以及详细的GPU硬件级别信息。


PyTorch Profiler只需很少的工作即可设置和使用。它是完全集成的,是新的Profiler配置文件模块,新的libkineto库和PyTorch Tensorboard Profiler插件的一部分。您还可以将其可视化为所有Visual Studio Code。它适用于初学者和专家,涉及从研究到生产的所有用例,并且是NVIDIA更高级的NSight的补充。


PyTorch Profiler的主要功能之一是其时间线跟踪。本质上,它显示了CPU和GPU的活动,并允许用户放大各自发生的事情。您可以看到所有典型的PyTorch运算符,以及更多高级Python模型和GPU时间轴。


用户可能在PyTorch Profiler中看到的一种常见情况是,GPU利用率较低的实例。例如,GPU可视化中的微小间隙表示GPU不忙时的40毫秒。用户想要优化该空白空间并给GPU做一些事情。PyTorch Profiler使他们能够向下钻取并查看依赖关系以及在空闲间隙之前发生了哪些事件。他们可以将问题追溯到CPU,并发现这是瓶颈。


在这样的微观层面上检查低效率似乎完全是微不足道的,但是如果一个步骤只有150毫秒,则GPU活动中40毫秒的差距将占整个步骤的很大一部分。一个项目可能要运行数小时甚至是数周,这就是为什么要从要支付的计算周期中获得金钱的价值,每一步的损失如此之大,效率都非常低下。


免责声明

我来说几句

不吐不快,我来说两句
最新评论

还没有人评论哦,抢沙发吧~