感谢令人赞叹的 PyTorch 社区,让首届 PyTorch 生态系统日取得圆满成功!生态系统日活动在 Gather.Town 上举行,利用了礼堂、展厅和分组讨论室,供合作伙伴预订用于讲座、演示或教程。为了满足全球社区的需求,活动设置了两个场次:上午场(太平洋时间上午 8 点至下午 1 点)和下午场(太平洋时间下午 3 点至晚上 7 点)。活动期间进行了关于新发展、趋势和挑战的讨论,展示了 71 个海报、32 场分组会议和 6 位主旨演讲嘉宾的分享。
特别感谢我们的 6 位主旨演讲嘉宾:Piotr Bialecki, Ritchie Ng, Miquel Farré, Joe Spisak, Geeta Chauhan, 和 Suraj Subramanian。你可以在这里找到开场演讲:
海报

使用 PennyLane 将量子机器学习引入 PyTorch
Josh Izaac, Thomas Bromley
PennyLane 允许你像训练神经网络一样训练量子电路!本海报展示了如何将 PennyLane 与 PyTorch 对接,从而实现量子和混合机器学习模型的训练。量子电路的输出作为具有特定梯度的 Torch 张量提供。我们重点介绍了如何利用这一功能探索机器学习的新范例,包括使用混合模型进行迁移学习。
平台、运维与工具

在 VS Code 中进行 PyTorch 开发
Jeffrey Mew
Visual Studio Code 是一款免费的跨平台轻量级代码编辑器,已成为 Python 开发者在 Web 和机器学习项目中最受欢迎的工具。我们将带你完成一个端到端的 PyTorch 项目,展示 VS Code 为 PyTorch 开发者提供的诸多功能,以提高他们的生产力。首先,利用 VS Code 的环境/依赖管理和内置的 Jupyter Notebook 支持,快速启动并运行你的 PyTorch 项目。其次,借助我们由 AI 驱动的 IntelliSense,轻松完成编码。运行代码时,使用内置的 Tensorboard 集成来监控你的训练过程,并使用集成的 PyTorch profiler 来分析和调试你的代码。当你准备好部署到云端时,VS Code 提供的 Azure 服务集成可以让你扩展模型的训练和部署。将代码编辑器的强大功能与便捷的 Azure 服务相结合,VS Code 可以成为任何希望使用 PyTorch 构建机器学习模型的开发者的一站式商店。
https://pytorch.ac.cn/blog/introducing-pytorch-profiler-the-new-and-improved-performance-tool/
编译器、转换与生产

TorchScript 的新特性预告
Yanan Cao, Harry Kim, Jason Ansel
TorchScript 是 PyTorch 灵活的 eager 模式与更具确定性和高性能的 graph 模式之间的桥梁,后者适用于生产部署。作为 PyTorch 1.9 版本的一部分,TorchScript 将推出一些我们希望提前与你分享的功能,包括:a) 定义 TorchScript 中支持的 Python/PyTorch 特性子集的新正式语言规范;b) Profile-Directed Typing,减轻将松散类型(loosely-typed)的 eager 模型转换为严格类型(strictly-typed)的 TorchScript 模型的负担;c) TorchScript profiler,可揭示 TorchScript 模型的性能特征。我们一直在持续改进,使 TorchScript 更易于使用且性能更佳。
编译器、转换与生产
使用 Brevitas 进行量化感知训练
Alessandro Pappalardo
Brevitas 是一个用于量化感知训练的开源 PyTorch 库。凭借其在多个抽象层次的灵活设计,Brevitas 在一套统一的 API 下泛化了深度学习社区中采用的典型均匀 affine 量化范例。Brevitas 提供了一个平台,供机器学习从业者和研究人员应用内置的最新技术进行低精度推理训练,或实现新颖的量化感知训练算法。用户可以针对支持的推理工具链,如 onnxruntime, TVM, Vitis AI, FINN 或 PyTorch 本身,或尝试使用假设的目标硬件平台。特别是,当结合 Xilinx FPGAs 的灵活性和 FINN 工具链时,Brevitas 支持以机器学习驱动的方式共同设计新的硬件构建块。在 Xilinx 内部,Brevitas 已被各种与量化神经网络相关的研究项目以及针对定制可编程逻辑加速器的大规模部署所采用。
https://github.com/Xilinx/brevitas/
编译器、转换与生产

PyTorch 量化:FX 图模式量化
Jerry Zhang, Vasiliy Kuznetsov, Raghuraman Krishnamoorthi
量化是一种常见的模型优化技术,可以将模型的运行时速度提升高达 4 倍,同时可能会有一点精度损失。目前,PyTorch 支持 Eager Mode 量化。FX 图模式量化在 Eager Mode 量化的基础上进行了改进,增加了对函数式(functionals)的支持并自动化了量化过程。要使用 FX 图模式量化,可能需要重构模型,使其与 FX 图模式量化兼容(可使用 torch.fx 进行符号跟踪)。
https://pytorch.ac.cn/docs/master/quantization.html#prototype-fx-graph-mode-quantization
编译器、转换与生产

使用 Amazon EC2 Inf1 和 TorchServe 容器加速深度学习模型在生产环境的部署
Fabio Nonato
深度学习模型可以对机器学习应用产生颠覆性影响。然而,在生产环境中部署和管理深度学习模型是复杂的,需要大量的工程工作——从构建自定义推理 API 和扩展预测服务,到保护应用程序安全,同时还要利用最新的机器学习框架和硬件技术。由 AWS Inferentia 提供支持的 Amazon EC2 Inf1 实例在云端提供了最高的机器学习推理性能和最低成本。开发者可以使用原生集成到 PyTorch 中的 AWS Neuron SDK 将他们的深度学习模型部署到 Inf1 实例。参加本次海报会议,了解如何使用 Inf1 实例和 TorchServe 容器优化和加速深度学习模型在生产环境中的部署。你将学习如何在 Inf1 上部署 TorchScript 模型,以及如何通过 NeuronCore Groups 和 NeuronCore Pipeline 等功能以最少的代码更改来优化模型,以满足你的吞吐量和延迟要求。你可以直接将这些模型级别的优化集成到使用 TorchServe 的推理端点中。我们还将深入探讨我们如何优化自然语言处理端点的性能,并展示使用 TorchServe 容器在 Amazon ECS 上部署优化模型的工作流程。
编译器、转换与生产

Torch.fx
James Reed, Zachary DeVito, Ansley Ussery, Horace He, Michael Suo
FX 是一个用于对 PyTorch 代码编写 Python 到 Python 转换的工具包。FX 包含三个部分:> 符号跟踪(Symbolic Tracing)——一种通过使用“代理”值运行程序来提取程序表示的方法。> 基于图的转换(Graph-based Transformations)——FX 提供一个易于使用的基于 Python 的 Graph API 来操作代码。> Python 代码生成(Python code generation)——FX 从图中生成有效的 Python 代码,并将这些代码转换为可执行的 Python `nn.Module` 实例。
https://pytorch.ac.cn/docs/stable/fx.html
编译器、转换与生产

AI 模型效率工具包 (AIMET)
Abhijit Khobare, Murali Akula, Tijmen Blankevoort, Harshita Mangal, Frank Mayer, Sangeetha Marshathalli Siddegowda, Chirag Patel, Vinay Garg, Markus Nagel
AI 正在通过显著增强的体验来彻底改变行业、产品和核心能力。然而,当今的深度神经网络使用了过多的内存、计算和能源。为了让 AI 真正普及,它需要在终端设备上以紧凑的功耗和散热预算运行。量化和压缩有助于解决这些问题。在本教程中,我们将讨论:现有的量化和压缩挑战、我们在新颖的量化和压缩技术方面的研究以克服这些挑战、开发者和研究人员如何通过 AI 模型效率工具包实现这些技术。
编译器、转换与生产

通过 SQL 命令使用 Pytorch:一个灵活、模块化的 AutoML 框架,使数据库用户能够轻松使用机器学习
Natasha Seelam, Patricio Cerda-Mardini, Cosmo Jenytin, Jorge Torres
Pytorch 能够构建具有复杂输入和输出的模型,包括时间序列数据、文本和音视频数据。然而,构建此类模型需要专业知识和时间,通常耗费在繁琐的任务上,例如清理数据或将其转换为模型所需的格式。因此,当研究人员只想研究问题的某个特定方面时,通常会直接使用预训练模型。例如,FastAI 在优化器、调度器和通过预训练残差模型的渐进式训练方面的工作,或者以 Hugging Face 模型为骨干的自然语言处理项目。我们认为,对于其中许多问题,我们只需从原始数据和端点即可自动生成“足够好”的模型和数据处理流水线。为了解决这种情况,我们正在开发 MindsDB,这是一个开源的、基于 PyTorch 的机器学习平台,它通过 SQL 命令在数据库内部工作。它采用模块化方法构建,在本次演讲中,我们将重点介绍 Lightwood,这个独立的、执行基于 PyTorch 框架的机器学习自动化的核心组件。Lightwood 将模型构建自动化为 5 个阶段:(1)将每个特征分类为“数据类型”,(2)对数据集的每一列运行统计分析,(3)拟合多个模型来规范化(normalize)、分词(tokenize)并为每个特征生成嵌入(embeddings),(4)部署嵌入以拟合最终估计器,以及(5)对最终集成模型运行分析以评估它并生成置信度模型。它可以生成快速的“基线”模型,用于对任何数据类型的自定义编码器表示进行性能基准测试,也可以作为探索新假设(架构、优化器、损失函数、超参数等)的脚手架。我们旨在展示涵盖各种问题类型的基准测试结果,并通过一个动手演示说明 Lightwood 如何对研究人员和工程师有用。
数据库与 AI 加速器

使用 SmartSim 在超级计算机上进行 PyTorch 模拟和大规模 AI
Sam Partee , Alessandro Rigazzi, Mathew Ellis, Benjamin Rob
SmartSim 是一个开源库,致力于为传统高性能计算(HPC)模拟提供在线分析和机器学习(ML)能力。它提供了常见的 HPC 模拟语言(C/C++/Fortran)客户端,使模拟能够在大型 HPC 系统上并行执行推理请求。SmartSim 利用 Redis 生态系统托管和提供 PyTorch 模型与模拟并行运行。我们展示了 SmartSim 的一个用例:一个用于气候建模的全球海洋模拟,通过一个 PyTorch 模型增强,以解析模拟中的涡动能(eddy kinetic energy)数量。
https://github.com/CrayLabs/SmartSim
数据库与 AI 加速器

使用保形预测器进行模型无关的 AutoML 置信度估计
Patricio Cerda-Mardini, Natasha Seelam
许多领域利用机器学习算法非凡的预测性能。然而,为了在应用场景中部署这些模型,对其透明度的需求日益增加。开发可信赖的模型是一项巨大的挑战,因为它们通常针对准确性进行优化,而将真实分布和预测分布之间的拟合度放在次要位置 [1]。这种获得与真实似然相匹配的预测概率估计的概念也称为校准(calibration)。目前的机器学习模型通常表现出较差的校准性。有几种方法旨在生成经过校准的机器学习模型 [2, 3]。归纳保形预测(Inductive conformal prediction, ICP)是一个简单而强大的框架,可以实现这一点,为任何机器学习模型的错误率提供了强有力的保证 [4]。ICP 提供置信度分数,并通过非一致性度量(nonconformity measures)将任何点预测转换为预测区域,非一致性度量表示数据点与校准数据集相比所呈现的内在异常程度。在这项工作中,我们讨论了 ICP 与 MindsDB(一个开源的 AutoML 框架)的集成,成功地取代了其现有的分位数损失方法来实现置信度估计功能。我们的贡献分为三个方面。首先,我们研究了“自感知”神经网络归一化器在预测区域宽度(也称为效率)方面相对于未归一化基线的影响。我们的基准测试考虑了 30 多个不同领域的、包含分类和数值目标的性能结果。其次,我们提出了一种算法,可以根据预测区域的目标大小动态确定置信水平,从而有效地优先考虑效率而非最低错误率。最后,我们展示了专门为小数据集设计的非一致性度量的结果。参考文献:[1] Guo, C., Pleiss, G., Sun, Y., & Weinberger, K.Q. (2017). On Calibration of Modern Neural Networks. ArXiv, abs/1706.04599. [2] Naeini, M., Cooper, G., & Hauskrecht, M. (2015). Obtaining Well Calibrated Probabilities Using Bayesian Binning. Proceedings of the AAAI Conference on Artificial Intelligence. AAAI Conference on Artificial Intelligence, 2015, 2901-2907 . [3] Maddox, W., Garipov, T., Izmailov, P., Vetrov, D., & Wilson, A. (2019). A Simple Baseline for Bayesian Uncertainty in Deep Learning. NeurIPS. [4] Papadopoulos, H., Vovk, V., & Gammerman, A. (2007). Conformal Prediction with Neural Networks. 19th IEEE International Conference on Tools with Artificial Intelligence (ICTAI 2007), 2, 388-395.
数据库与 AI 加速器

使用 AMD ROCm™ 开放软件平台在 AMD Instinct™ GPU 上启用 PyTorch
Derek Bouius
AMD Instinct GPU 通过 ROCm 开放软件平台与上游 PyTorch 仓库集成。现在,用户还可以轻松下载可安装的 Python 包,该包由上游 PyTorch 仓库构建,并托管在 pytorch.org 上。值得注意的是,它包括对跨多个 GPU 的分布式训练的支持,并支持加速混合精度训练。AMD 还为 PyTorch 社区构建提供硬件支持,以帮助开发和维护新功能。本次海报将重点介绍为实现 PyTorch 支持所做的一些工作。
数据库与 AI 加速器

DeepSpeed:打破深度学习速度与规模的壁垒
DeepSpeed 团队 微软公司
在本次海报(以及分组讨论会期间的讲座)中,我们将介绍 DeepSpeed(https://github.com/microsoft/DeepSpeed)的三个方面,这是一个基于 PyTorch 框架的深度学习优化库:1) 我们如何通过 ZeRO 驱动的数据并行打破 GPU 内存壁垒。2) 我们如何通过 1-bit Adam 和 1-bit Lamb 压缩优化算法打破网络带宽壁垒。3) 我们如何通过与 Azure ML、HuggingFace 和 PyTorch Lightning 集成来克服可用性壁垒。
分布式训练
Dask PyTorch DDP:一个将 Dask 并行化引入 PyTorch 训练的新库
Stephanie Kirmer, Hugo Shi
我们开发了一个库,它有助于简化 PyTorch 模型的多机并行训练任务,将 PyTorch DDP 的强大功能与 Dask 的 GPU 并行能力结合起来。我们的海报描述了该库及其核心功能,并演示了多机训练过程在实践中如何工作。
https://github.com/saturncloud/dask-pytorch-ddp
分布式训练

优化物理信息神经网络。
Vignesh Gopakumar
使用神经网络求解偏微分方程(PDE)通常非常费力,因为它需要朝着一个明确的解进行训练,即网络架构-目标函数组合的全局最小值。对于复杂 PDE 族,物理信息神经网络(Physics Informed Neural Networks, PINNs)与传统数值方法相比并不能提供太多优势,因为它们的全局最小值变得越来越难以处理。我们提出了一种改进的方法,该方法依赖于持续和参数化学习,可以创建更通用的 PINNs,能够解决各种 PDE 场景,而不仅仅是解决一个明确的案例。我们相信这使得基于神经网络的 PDE 求解器可以与数值求解器相媲美。
分布式训练

FairScale - 一个用于高性能和大规模训练的通用模块化 PyTorch 库
Mandeep Baines, Shruti Bhosale, Vittorio Caggiano, Benjamin Lefaudeux, Vitaliy Liptchinsky, Naman Goyal, Siddhardth Goyal, Myle Ott, Sam Sheifer, Anjali Sridhar, Min Xu
FairScale 是一个库,它扩展了 PyTorch 的基本功能,同时增加了最新的 SOTA 技术,用于在单机或多机上进行高性能和大规模训练。FairScale 以可组合模块和易于使用的 API 的形式提供了最新的分布式训练技术。大规模机器学习 (ML) 训练传统上意味着数据并行,以利用多个设备在更大的批次大小上训练,从而缩短训练时间。然而,随着最近机器学习模型规模的增大,数据并行已不足以满足所有的“扩展”需求。FairScale 提供了几种选项来克服一些扩展的限制。对于受内存瓶颈(优化器状态、中间激活、参数)限制的训练扩展,FairScale 提供了实现优化器、梯度和参数分片(sharding)的 API。这将允许用户以更节省内存的方式使用设备来训练大型模型。为了克服大型模型所需的内存,FairScale 提供了各种流水线和模型并行(pipeline and model parallelism)、MOE(混合专家)层以及卸载模型(Offload models)的功能。这些方法允许仅对模型的分片在多个设备上进行计算,并通过微批次数据最大化设备效率。FairScale 还提供了模块,帮助用户有效扩展批次大小,而无需更改其现有的学习率超参数(AdaScale),并通过检查点激活中间层来节省内存。FairScale 也已集成到 Pytorch Lightening, HuggingFace, FairSeq, VISSL 和 MMF 中,使用户能够利用这些框架的特性。
分布式训练

AdaptDL:一个开源资源自适应深度学习训练/调度框架
Aurick Qiao, Sang Keun Choe, Suhas Jayaram Subramanya, Willie Neiswanger, Qirong Ho, Hao Zhang, Gregory R. Ganger, Eric P. Xing
AdaptDL 是一个开源框架和调度算法,直接优化集群范围的训练性能和资源利用率。通过弹性地调整作业规模、协同调整批次大小和学习率,并避免网络干扰,AdaptDL 与其他调度器相比,提高了共享集群训练的效率。AdaptDL 可以根据作业的需求自动确定最优的资源数量。它将动态有效地添加或移除资源,以确保最高水平的性能。AdaptDL 调度器将根据作业的可伸缩性,自动确定分配给作业的最有效 GPU 数量。当集群负载较低时,你的作业可以动态扩展以利用更多 GPU。AdaptDL 提供易于使用的 API,使现有的 PyTorch 训练代码具有弹性,支持自适应批次大小和学习率。展示:分布式训练和数据加载。
分布式训练
使用 ONNX Runtime 加速 PyTorch 大模型训练:只需添加一行代码!
Natalie Kershaw
随着深度学习模型,尤其是 Transformer 模型变得越来越大,减少训练时间成为财务和环境上的必要任务。ONNX Runtime 可以通过一行代码更改(除了导入语句外 ;-))加速 PyTorch Transformer 模型的大规模分布式训练。加入 DeepSpeed 库可以进一步提高训练速度。通过新的 ORTModule API,你可以封装一个现有的 torch.nn.Module,然后我们会自动执行:将模型导出为 ONNX 计算图;使用 ONNX Runtime 编译和优化它;以及将其集成到你现有的训练脚本中。在此海报中,我们演示了如何在 Azure Machine Learning 云服务的多 GPU 集群上微调一个流行的 HuggingFace 模型,并展示了性能提升。
分布式训练

PyTorch/XLA 与新的 Cloud TPU VM 和 Profiler
Jack Cao, Daniel Sohn, Zak Stone, Shauheen Zahirazami
PyTorch/XLA 使用户能够在 XLA 设备(包括 Cloud TPU)上训练 PyTorch 模型。Cloud TPU VM 现在提供对 TPU 主机机器的直接访问,因此提供了更大的灵活性,并使调试更容易,减少了数据传输开销。PyTorch/XLA 现在完全支持这种新架构。还开发了一个新的 Profiling 工具,以更好地对 PyTorch/XLA 进行性能分析。这些改进不仅使模型开发更加容易,还降低了在 Cloud TPU 上运行大规模 PyTorch/XLA 训练的成本。
http://goo.gle/pt-xla-tpuvm-signup
分布式训练

PyTorch Lightning:无需样板代码的深度学习
Ari Bornstein
PyTorch Lightning 减少了实现最新 AI 所需的工程样板代码和资源。使用 Lightning 组织 PyTorch 代码,可以在多 GPU、TPU、CPU 上进行无缝训练,并使用难以实现的最佳实践,例如模型分片、16 位精度等,而无需进行任何代码更改。在此海报中,我们将使用实际的 Lightning 示例,演示如何用更少的样板代码训练深度学习模型。
https://www.pytorchlightning.ai/
前端与实验管理器

使用 Intel BF16 技术,通过 IPEX 和 oneDNN 加速 PyTorch
Jiong Gong, Nikita Shustrov, Eikan Wang, Jianhui Li, Vitaly Fedyunin
Intel 和 Facebook 合作,使 BF16 成为 PyTorch 中的一流数据类型,该数据类型可在第三代 Intel® Xeon® 可扩展处理器上进行原生加速。本海报介绍了在 PyTorch 和 oneAPI DNN 库之上,在 Intel Extension for PyTorch (IPEX) 中添加的最新软件进展,旨在实现易用性和高性能的 CPU BF16 深度学习计算。借助这些软件进展,我们展示了易于使用的 IPEX 用户端 API,并且与原生 PyTorch 的 FP32 训练相比,IPEX BF16 训练实现了 1.55 倍至 2.42 倍的加速;与原生 PyTorch 的 FP32 推理相比,IPEX BF16 推理实现了 1.40 倍至 4.26 倍的加速。
https://github.com/intel/intel-extension-for-pytorch
前端与实验管理器

TorchStudio,一款基于 PyTorch 的机器学习工作室软件
Robin Lobel
TorchStudio 是一款基于 PyTorch 和 LibTorch 的独立软件。它旨在简化 PyTorch 模型的创建、训练和迭代过程。它可在 Windows、Ubuntu 和 macOS 上本地运行。它可以加载、分析和探索 TorchVision 或 TorchAudio 类别的 PyTorch 数据集,或具有任意数量输入和输出的自定义数据集。然后可以加载模型,或从头开始编写模型,进行分析,并使用本地硬件进行训练。训练可以同时运行并进行比较,以确定性能最佳的模型,并将其导出为训练好的 TorchScript 或 ONNX 模型。
前端与实验管理器

Hydra 框架
Jieru Hu, Omry Yadan
Hydra 是一个用于配置和启动研究性 Python 应用程序的开源框架。主要功能:- 动态组合和覆盖配置,为每次运行获取完美的配置 - 在 SLURM 和 AWS 等远程集群上运行,无需代码更改 - 执行基本的贪婪搜索和超参数优化,无需代码更改 - 命令行动态配置选项卡补全等。
前端与实验管理器

PyTorch-Ignite:让常规训练轻松,让困难训练成为可能
Victor Fomin, Sylvain Desroziers, Taras Savchyn
本海报旨在为深度学习爱好者、专业人士和研究人员简要而生动地介绍 PyTorch-Ignite 可以提供的功能。PyTorch-Ignite 秉承与 PyTorch 相同的理念,旨在保持简单、灵活和可扩展,同时实现高性能和可伸缩。在本海报中,我们将介绍 PyTorch-Ignite 的基本概念、其 API 和提供的功能。我们假设读者熟悉 PyTorch。
前端与实验管理器

Farabio - 生物医学成像深度学习工具包
Sanzhar Askaruly, Nurbolat Aimakov, Alisher Iskakov, Hyewon Cho
深度学习最近改变了许多工业流程的方方面面。生物医学成像研究的科学家们也正在受益于人工智能的力量来应对复杂的挑战。尽管学术界广泛接受了图像处理工具,如 scikit-image, ImageJ 等,但仍然需要一个将深度学习集成到生物医学图像分析中的工具。我们提出了一个基于 PyTorch 的极简但方便的 Python 包,包含常见的深度学习模型,并扩展了灵活的训练器和医学数据集。
https://github.com/tuttelikz/farabio
医疗与健康

MONAI:一个专注于医疗影像的领域专用库
Michael Zephyr, Prerna Dogra Richard Brown, Wenqi Li, Eric Kerfoot
医疗影像分析(包括放射学和病理学)正越来越多地通过基于深度学习的解决方案来解决。这些应用有特定要求,需要支持各种成像模式,如 MR、CT、超声、数字病理学等。该领域的研究人员开发自定义功能来处理这些要求需要付出巨大的努力。因此,存在重复工作,导致研究人员使用的工具互不兼容,难以协作。MONAI 代表 Medical Open Network for AI。其使命是通过提供领域专用构建块和社区融合的共同基础(采用原生 PyTorch 范式),加速医疗影像解决方案的开发。
医疗与健康

theator 如何构建持续训练框架以扩展其手术智能平台
Shai Brown, Daniel Neimark, Maya Zohar, Omri Bar, Dotan Asselmann
Theator 正在通过其手术智能平台重塑外科手术,该平台利用高度先进的人工智能,特别是机器学习和计算机视觉技术,分析外科手术的每一步、事件、里程碑和关键环节。我们的平台分析冗长的手术视频并提取有意义的信息,为外科医生提供手术关键时刻的精彩回放,并辅以注释。随着团队的壮大,我们意识到我们在手动运行模型训练上花费了太多时间,并且专注于 DevOps 任务,而没有足够的时间用于核心研究。为了应对这种情况,我们构建了一个自动化框架,该框架由使用 PyTorch 和 ClearML 构建的多个训练流水线组成。我们的框架自动化并管理我们从模型开发到部署再到模型改进的持续训练的整个过程。新数据现在可以立即处理并直接馈送到训练流水线——从而加快工作流程,最大限度地减少人为错误,并解放研究团队去完成更重要的任务。因此,这使我们能够扩展我们的机器学习运营,并为终端用户提供更好的模型。
医疗与健康

Q&Aid:一个由 PyTorch 提供支持的对话智能体
Cebere Bogdan, Cebere Tudor, Manolache Andrei, Horia Paul-Ion
我们介绍 Q&Aid,这是一个对话智能体,它依赖一系列机器学习模型来过滤、标记并根据提供的图像和文本输入回答医疗问题。Q& Aid 通过将医院后端逻辑标准化为 Health Intel Provider (HIP) 来简化它。HIP 是一系列在本地数据上训练的模型集合,接收文本和视觉输入,然后过滤、标记数据并将其馈送到正确的模型,最终为聚合器生成输出。任何医院都被识别为 HIP,根据其知识拥有自定义模型和标记。医院正在训练和微调他们的模型,例如视觉问答(VQA)模型,使用私有数据(例如脑部异常分割)。我们将医院可以提供的所有任务聚合成一个单一的聊天应用,将结果提供给用户。聊天结束后,对话记录会转发给每家医院,由医生负责最终决定。
医疗与健康

Sleepbot:医院和家庭使用的多信号睡眠阶段分类 AI
Jaden Hong, Kevin Tran, Tyler Lee, Paul Lee, Freddie Cha, Louis Jung, Dr. Jung Kyung Hong, Dr. In-Young Yoon, David Lee
睡眠障碍和失眠症现在被视为一个全球性问题。全球约有 62% 的成年人认为自己睡眠不好。然而,睡眠难以追踪,因此很难获得适当的治疗来改善睡眠质量。目前,多导睡眠图(PSG)是准确评估睡眠质量的唯一方法,但它昂贵且常因首晚效应而不准确。我们提出了一种用于非接触式睡眠追踪的多信号睡眠阶段分类器:Sleepbot。通过自动化手动 PSG 读取并提供可解释的分析,Sleepbot 为在家庭和医院应用睡眠分期 AI 开辟了新的可能性。Sleepbot 使用智能手机应用记录的声音和 Asleep 非接触式睡眠追踪器测量的射频信号,提供临床级别的睡眠阶段分类。Sleepbot 在使用从 3,700 名受试者测量的 PSG 信号进行的 5 类(清醒、N1、N2、N3、REM)分类中达到了 85.5% 的准确率;在使用仅从 1,2000 名受试者测量到的声音数据进行的 3 类(清醒、睡眠、REM)分类中达到了 77% 的准确率。
医疗与健康
PyMDE:最小失真嵌入
Akshay Agrawal, Alnur Ali, Stephen Boyd
我们为向量嵌入问题提供了一个统一的框架:给定一组项目以及它们之间的一些已知关系,我们旨在通过向量来表示这些项目,可能需要满足一些约束条件(例如,要求向量具有零均值和单位协方差)。我们希望相似项目关联的向量彼此接近,而不相似项目关联的向量不接近,距离度量采用欧几里得距离。我们通过引入针对某些项目对定义的失真函数来对此进行形式化。我们的目标是选择一个在约束条件下最小化总失真的嵌入。我们称之为最小失真嵌入 (MDE) 问题。MDE 框架概括了许多知名的嵌入方法,例如 PCA、拉普拉斯特征映射、多维尺度变换、UMAP 等,同时也包含了新型嵌入方法。我们配套的软件库 PyMDE 使得用户能够轻松指定并近似求解 MDE 问题,从而能够对知名和自定义嵌入方法进行实验。通过利用自动微分和借助 PyTorch 的硬件加速,我们能够扩展到非常大的嵌入问题。我们将展示嵌入真实数据集的示例,包括学术合著网络、单细胞 mRNA 转录组数据、美国人口普查数据和群体遗传学数据。
医疗与健康

TorchIO:深度学习应用中的医学图像预处理与增强
Fernando Pérez-García, Rachel Sparks, Sébastien Ourselin
与计算机视觉中通常使用的 RGB 图像相比,处理 MRI 或 CT 等医学图像存在独特的挑战。这些挑战包括大型数据集缺乏标签、高计算成本以及描述体素物理属性的元数据。数据增强用于人工增加训练数据集的大小。使用图像块进行训练可降低对计算能力的需求。空间元数据需要仔细考虑,以确保卷的正确对齐。我们推出了 TorchIO,一个开源 Python 库,用于实现医学图像的高效加载、预处理、增强和基于图像块的采样,以用于深度学习。TorchIO 遵循 PyTorch 的风格,并集成了标准医学图像处理库,以便在训练神经网络期间高效处理图像。TorchIO 变换可以组合、复现、追踪和扩展。我们提供了多种通用预处理和增强操作,以及 MRI 特有伪影的模拟。开发 TorchIO 旨在帮助研究人员标准化医学图像处理流水线,并使他们能够专注于深度学习实验。它鼓励开放科学,因为它支持可复现性并进行版本控制,以便可以精确引用该软件。由于其模块化特性,该库与用于医学图像深度学习的其他框架兼容。
医疗与健康

基于深度学习预测新冠肺炎患者入院时预后的模型
Laila Rasmy, Ziqian Xie, Degui Zhi
随着电子病历的广泛使用和历史患者信息的可用性,能够根据患者早期病史识别高风险患者的预测模型可以作为临床医生判断的重要补充。深度学习模型可以通过利用患者的病史,无论数据长度和复杂性如何,从而更好地预测患者的预后。我们使用 Pytorch_EHR 框架训练了一个模型,该模型可以预测新冠肺炎患者入院时的健康预后。我们使用了 Cerner Real-world COVID-19 (Q2) 群组数据,其中包括来自 62 个卫生系统的 117,496 名新冠患者的信息。我们使用了一个包含 55,068 名患者的群组,并将预后(包括死亡率、插管和住院时间超过 3 天)定义为二元结果。我们将所有诊断、药物治疗、实验室结果以及在患者首次接触新冠肺炎入院日期之前或当天可用的其他临床事件信息输入模型。为了方便和实用性,我们尽量减少了数据预处理,而是依赖于从大型训练集中学习特征表示的嵌入层。与逻辑回归 (LR) 等其他基线机器学习模型相比,我们的模型显示出改进的性能。对于住院死亡率,我们的模型显示 AUROC 分别为 89.5%、90.6% 和 84.3%(针对住院死亡率、插管和住院时间超过 3 天),而 LR 的 AUROC 分别为 82.8%、83.2% 和 76.8%。
https://github.com/ZhiGroup/pytorch_ehr
医疗与健康

使用 TorchScript 和 Inferentia 部署 Transformer 模型
Binghui Ouyang, Alexander O’Connor
虽然 Transformer 模型在提高自然语言处理应用的准确性和开发便捷性方面带来了前所未有的提升,但由于模型规模庞大和计算复杂性高,其部署仍然充满挑战。事实上,直到最近,托管高性能基于 Transformer 的模型成本过高且技术难度大这一观点一直是一个普遍的误解。幸运的是,PyTorch 生态系统和用于推理的定制硬件方面的最新进展,创造了一个可以以经济高效、可扩展的方式部署模型的世界,无需复杂的工程工作。在本次演示中,我们将讨论如何使用 PyTorch 和 AWS Inferentia 在聊天机器人意图分类场景(一个特别相关且要求苛刻的场景)中部署生产规模的模型。Autodesk 部署了许多基于 Transformer 的模型来解决我们各个渠道的客户支持问题,我们提供灵活、高质量机器学习解决方案的能力,通过利用基于 Transformer 的分类等尖端技术得到支持。我们的聊天机器人 AVA 每月响应数万次客户交互,我们正在演进我们的架构以支持客户推理。我们将讨论我们试点基于 Transformer 的意图模型的经验,并展示针对类似项目从数据到部署的工作流程。
自然语言处理与多模态、强化学习与时间序列

PyTorchTS:基于 PyTorch 的概率时间序列预测框架
Kashif Rasul
PyTorchTS 是一个基于 PyTorch 的概率时间序列预测框架,提供了最先进的单变量和多变量模型。
https://github.com/zalandoresearch/pytorch-ts
自然语言处理与多模态、强化学习与时间序列

MMF:一个用于多模态研究的模块化框架
Sasha Sheng, Amanpreet Singh
MMF 从零开始设计,让您能够专注于最重要的事情——您的模型——通过提供用于分布式训练、常用数据集和开箱即用的最先进预训练基线的样板代码。MMF 构建在 PyTorch 之上,将其所有力量交到您手中。MMF 没有强烈的观点约束,因此您可以在此充分利用您的 PyTorch 知识。MMF 旨在易于扩展和组合。通过我们的模块化设计,您可以使用 MMF 中您关心的特定组件。我们的配置系统允许 MMF 轻松适应您的需求。
自然语言处理与多模态、强化学习与时间序列
AllenNLP:一个用于开发最先进模型的自然语言处理研究库
Dirk Groeneveld, Akshita Bhagia, Pete Walsh, Michael Schmitz
一个基于 PyTorch 构建的 Apache 2.0 自然语言处理研究库,用于在各种语言任务上开发最先进的深度学习模型。
https://github.com/allenai/allennlp
自然语言处理与多模态、强化学习与时间序列

Tubi 的 Spock 项目:使用深度学习进行自然语言处理来理解内容
John Trenkle, Jaya Kawale & Tubi ML team
Tubi 是向全球观众提供免费高质量流媒体电影和电视节目的领先平台之一。我们采用数据驱动的方法,并利用 PyTorch 的先进机器学习技术,尽可能多地增强我们的平台和业务。AVOD(广告支持视频点播)的三大支柱是我们工作的指导原则。这三大支柱是:内容(我们在库中维护的所有片源)、受众(所有在 Tubi 上观看片源的用户)和广告(代表品牌向观众展示的广告)。在本海报中,我们将重点关注内容方面,并详细介绍各种用例,特别是内容理解。内容是 Tubi 的重要支柱,要成功,我们需要查看现有片源并超越我们已有的内容,尝试理解所有外部片源,以及它们如何以某种方式使我们的平台受益。内容理解围绕着消化丰富的、结构化(元数据)和非结构化(文本)形式的第一方和第三方数据集合展开,并开发捕捉这些片源精髓的表示形式。用线性代数类比,我们可以说我们正在尝试将片源向量从宇宙尽可能高保真地投影到我们的 Tubiverse,以便确定每个目标用例的潜在价值。我们将描述几种使用 PyTorch 更好地理解内容的技术。
自然语言处理与多模态、强化学习与时间序列

基于强化学习的深度神经网络性能优化
Benoit Steiner, Chris Cummins, Horace He, Hugh Leather
随着机器学习技术的应用日益普及,神经网络的高效执行对许多应用至关重要。Halide 和 TVM 等框架将深度学习模型的算法表示与决定其实现的调度分离开来。然而,找到好的调度仍然极具挑战性。自动调优方法搜索有效调度的空间并执行每个候选,从而识别一些表现最好的调度,但搜索可能需要数小时,阻碍生产力。所需要的是一种无需广泛搜索即可达到相似性能、快速提供所需效率的方法。使用 PyTorch,我们将调度过程建模为一系列优化选择,并实现一种新技术,通过使用 LSTM 对精心设计的、描述每个 DNN 算子及其当前调度选择的特征进行预测,从而准确预测部分调度的预期性能。利用这些预测,我们能够贪婪地做出这些优化决策,并且无需在目标硬件上进行任何执行,快速识别高效调度。这项技术使得找到的调度相对于 Halide 提高了 2.6 倍的执行性能,相对于 TVM 提高了 1.5 倍。此外,我们的技术在几秒钟内完成,而不是几小时,使其有可能作为 PyTorch 本身的新后端被包含进来。
自然语言处理与多模态、强化学习与时间序列

一个以数据为中心的组合式自然语言处理框架
Zhenghong Liu
Forte 是一个开源工具包,通过组装最先进的自然语言处理和机器学习技术来构建自然语言处理工作流。该工具包的特点包括可组合的流水线、跨任务交互以及可适应的数据模型接口。高度可组合的设计允许用户通过组合现有工具包或自定义 PyTorch 模型来构建涵盖文档检索、信息抽取和文本生成等广泛任务的复杂自然语言处理流水线。跨任务交互能力允许开发者利用单个任务的结果做出明智的决策。数据模型接口通过抽象出领域和预处理的细节,帮助开发者专注于构建可重用的 PyTorch 模型。我们表明 Forte 可用于构建复杂的流水线,并且生成的流水线只需对代码做少量改动即可轻松适应不同的领域和任务。
https://github.com/asyml/forte
自然语言处理与多模态、强化学习与时间序列

多任务强化学习的环境与基线
Shagun Sodhani, Amy Zhang, Ludovic Denoyer, Pierre-Alexandre Kamienny, Olivier Delalleau
多任务强化学习代码库的两个关键组成部分是 (i) 多任务强化学习算法和 (ii) 多任务强化学习环境。我们为这两个组件开发了开源库。[MTRL](https://github.com/facebookresearch/mtrl) 提供了实现多任务强化学习算法的组件,而 [MTEnv](https://github.com/facebookresearch/mtenv) 是一个用于与现有多任务强化学习环境交互并创建新环境的库。MTRL 有两个构建模块:(i) 单任务策略和 (ii) 用于增强单任务策略以适应多任务设置的组件。理想的工作流程是从基础策略开始并添加多任务组件。MTRL 使 GradNorm、Distral、HiPBMDP、PCGrad、Soft Modularization 等算法成为可能。MTEnv 旨在标准化多任务强化学习环境并提供更好的基准。我们扩展了 Gym API 以支持多任务,并遵循两个指导原则:(i) 对 Gym 接口进行最小改动(社区对此非常熟悉)和 (ii) 方便将现有环境迁移到 MTEnv。此外,我们提供了一系列常用的多任务强化学习环境(Acrobot、Cartpole、DeepMind Control Suite 的多任务变体、Meta-World、多臂老虎机等)。强化学习实践者可以将其自己的环境与 MTEnv 包装器结合,通过少量代码更改添加多任务支持。MTRL 和 MTEnv 已被用于 FAIR 的多项正在进行或已发表的工作中。
http://qr.w69b.com/g/tGZSFw33G
自然语言处理与多模态、强化学习与时间序列

Hugging Face 生态系统
Lysandre Debut, Sylvain Gugger, Quentin Lhoest
迁移学习已成为在自然语言处理领域获得最先进结果的常态。Hugging Face 为您提供工具,帮助您完成每一个步骤:- 一个免费的基于 Git 的共享中心,拥有 7,500 多个 PyTorch 模型检查点和 800 多个自然语言处理数据集。- ? Datasets 库,可轻松下载、处理和准备数据集。- ? Tokenizers 库,提供由 Rust 支持的超快速分词器,并将文本转换为 PyTorch 张量。- ? Transformers 库,提供 45 多种 Transformer 架构的 PyTorch 实现作为简单的 nn.Module,以及训练 API。- ? Accelerate 库,一个非侵入式 API,允许您在任何分布式设置上运行原始训练循环。然后,流水线就是一个简单的六步流程:从中心选择一个预训练模型,使用 Datasets 处理数据,使用 Tokenizers 对文本进行分词,使用 Transformers 加载模型,使用 Trainer 或由 Accelerate 提供支持的您自己的循环进行训练,最后在中心与社区分享您的结果。
https://hugging-face.cn/models
自然语言处理与多模态、强化学习与时间序列

Asteroid:基于 PyTorch 的音频源分离研究工具包
Manuel Pariente, Samuele Cornell, Jonas Haag, Joris Cosentino, Michel Olvera, Fabian-Robert Stöter, Efthymios Tzinis
Asteroid 是一个使用 PyTorch 和 PyTorch-Lightning 构建的音频源分离工具包。受最成功的神经源分离系统启发,它提供了构建此类系统所需的所有神经构建模块。为了提高可复现性,提供了常见音频源分离数据集的处理流程 (recipes),包括从数据下载/准备到训练再到评估的所有步骤,以及许多当前最先进的 DNN 模型。Asteroid 向用户开放了所有级别的粒度,从简单层到完整的即用模型。我们的预训练模型托管在 Zenodo 的 asteroid-models 社区和 Huggingface 模型中心。加载和使用预训练模型非常简单,使用 asteroid 的命令行界面 (CLI) 分享模型也很容易。
https://asteroid-team.github.io/
自然语言处理与多模态、强化学习与时间序列

rlstructures:一个用于强化学习研究的轻量级 Python 库
Ludovic Denoyer, Danielle Rothermel, Xavier Martinet
RLStructures 是一个轻量级 Python 库,提供简单的 API 和数据结构,对您的智能体或任务结构尽可能少地做假设,同时允许透明地在多个环境上并行执行多个策略(包括多 GPU)。因此,它促进了强化学习算法的实现,同时避免了复杂的抽象。
自然语言处理与多模态、强化学习与时间序列

MBRL-Lib:一个用于基于模型的强化学习研究的 PyTorch 工具箱
Luis Pineda, Brandon Amos, Amy Zhang, Nathan O. Lambert, Roberto Calandra
基于模型的强化学习 (MBRL) 是一个活跃且潜力巨大的研究领域。与无模型强化学习相比,MBRL 算法通过学习任务动态的预测模型来解决任务,并使用此模型预测未来并促进决策制定。许多研究人员认为 MBRL 可以带来更低的样本复杂度、更好的泛化能力,以及更安全、更可解释的决策。然而,尽管人气飙升且潜力巨大,目前在该领域缺乏广泛接受的、促进研究的库。由于 MBRL 方法通常涉及概率集成、潜变量模型、规划算法,甚至无模型方法等复杂组件的相互作用,缺乏这样的库提高了进入该领域的门槛并减缓了研究进展。在这项工作中,我们旨在通过引入 MBRL-Lib 来解决这个问题,MBRL-Lib 是一个专门设计用于促进基于模型的强化学习研究的模块化 PyTorch 工具箱。MBRL-Lib 为训练动态模型和运行规划算法提供了可互换的选项,然后可以以混搭的方式使用它们来创建新颖的 MBRL 方法。该库还提供了一系列实用函数来运行常见的 MBRL 任务,以及一套诊断工具,用于识别训练动态模型和控制算法时可能出现的问题。
https://github.com/facebookresearch/mbrl-lib
自然语言处理与多模态、强化学习与时间序列

介绍新的 PyTorch Profiler
Geeta Chauhan, Gisle Dankel, Elena Neroslavaskaya
分析和改进大规模深度学习模型的性能是一项持续的挑战,并且随着模型规模的增加,其重要性持续增长。Microsoft 和 Facebook 合作创建了一个名为 PyTorch Profiler 的原生 PyTorch 性能调试工具。该 profiler 基于 PyTorch autograd profiler 的基础构建,增加了新的高保真 GPU 分析引擎,以及 Tensorboard 中开箱即用的瓶颈分析工具。新的 Profiler 提供了迄今为止最简单的体验,用户无需安装任何额外软件包即可分析模型,并立即在 Tensorboard 中查看结果。直到今天,PyTorch 的初学者用户可能由于任务复杂性而未尝试分析他们的模型。借助新的瓶颈分析工具,他们将发现分析变得容易和易于使用。有经验的用户将对详细的轨迹视图感到高兴,这些视图展示了 GPU 内核执行事件及其与 PyTorch 操作的关系。快来学习如何使用这个令人愉快的简单新工具分析您的 PyTorch 模型。
https://pytorch.ac.cn/blog/introducing-pytorch-profiler-the-new-and-improved-performance-tool
性能与分析工具

TRTorch:一个面向使用 TensorRT 的 NVIDIA GPU 的 TorchScript 编译器
Naren Dasan
对于机器学习模型的实验和开发,很少有工具像 PyTorch 一样易于上手。然而,从研究转向生产时,PyTorch 在开发方面的优秀特性使得部署变得困难。随着 TorchScript 的引入,PyTorch 拥有了扎实的工具来解决部署 PyTorch 模型的一些问题。TorchScript 消除了对 Python 的依赖,生成可移植、自包含的代码和权重静态表示。但除了可移植性之外,用户也希望在部署中优化性能。在 NVIDIA GPU 上部署时,NVIDIA 的深度学习优化器 TensorRT 提供了最大化工作负载性能的能力,通过为特定目标硬件调整模型执行。TensorRT 还提供了通过混合精度和低精度执行以及训练后量化 (PTQ) 进行进一步优化的工具。我们介绍 TRTorch,一个针对使用 NVIDIA GPU 的 PyTorch 和 TorchScript 编译器,它结合了 PyTorch 的易用性与 TensorRT 的高性能,允许用户无需离开 PyTorch 生态系统即可完全优化其推理工作负载。它还通过利用常见的 PyTorch 工具简化了执行 PTQ 等复杂优化。TRTorch 可以直接从 PyTorch 作为 TorchScript 后端使用,嵌入到应用程序中或从命令行使用,以轻松提高推理应用的性能。
https://nvidia.github.io/TRTorch/
性能与分析工具

WeightWatcher:一个用于深度神经网络 (DNN) 的诊断工具
Charles H. Martin
WeightWatcher (WW) 是一个开源诊断工具,用于分析深度神经网络 (DNN),无需访问训练数据甚至测试数据。它可用于:分析预训练/已训练的 PyTorch 模型;检查难以训练的模型;衡量模型性能的改进;预测不同模型的测试准确率;以及检测压缩或微调预训练模型时潜在的问题。WeightWatcher 基于理论研究(与加州大学伯克利分校合作完成)——“深度学习为何有效”,利用随机矩阵理论 (RMT)、统计力学和强关联系统中的思想。
性能与分析工具
通过 Parametrizations 在 PyTorch 1.9 中进行约束优化
Mario Lezcano-Casado
本海报介绍了将在 PyTorch 1.9.0 中添加的“parametrizations”特性。此特性使得剪枝、权重归一化或谱归一化等方法的简单实现成为可能。更普遍地说,它实现了一种拥有“计算参数”的方式。这意味着我们将层中的参数 `weight` 替换为 `f(weight)`,其中 `f` 是一个任意模块。换句话说,在 `layer.weight` 上放置 parametrization `f` 后,`layer.weight` 将返回 `f(weight)`。它们实现了一个缓存系统,以便值 `f(weight)` 在前向传播期间只计算一次。实现 parametrisation 的模块也可能有一个 `right_inverse` 方法。如果存在此方法,则可以对参数化的张量进行赋值。这在初始化参数化的张量时很有用。此特性可被视为迈向可逆模块的第一步。特别是,它也可能有助于使分布成为 PyTorch 中的一等公民。Parametrisations 还允许简单地实现约束优化。从这个角度来看,parametrisation 将无约束张量映射到约束空间,例如正交矩阵、SPD(对称正定)矩阵、低秩矩阵的空间。此方法在 GeoTorch 库中实现 (https://github.com/Lezcano/geotorch/)。
性能与分析工具

使用 Ray 进行分布式 PyTorch
Richard Liaw, Kai Fricke, Amog Kamsetty, Michael Galarnyk
Ray 是一个流行的分布式 Python 框架,可以与 PyTorch 配对以快速扩展机器学习应用。Ray 包含庞大的应用和库生态系统,它们利用并与 PyTorch 集成。这包括 Ray Tune,一个用于任意规模实验执行和超参数调优的 Python 库;RLlib,一个最先进的强化学习库;以及 Ray Serve,一个用于可扩展模型服务的库。Ray 和 PyTorch 共同成为下一代生产机器学习平台的核心基础。
平台、运维与工具

Avalanche:一个基于 PyTorch 的持续学习端到端库
Vincenzo Lomonaco, Lorenzo Pellegrini Andrea Cossu, Antonio Carta, Gabriele Graffieti
从非平稳数据流中持续学习是机器学习研究长期追求的目标。最近,我们见证了对持续学习重新燃起的快速增长的兴趣,特别是在深度学习社区内。然而,算法解决方案通常难以重新实现、评估并在不同设置中移植,即使是标准基准测试上的结果也难以复现。在这项工作中,我们提出了一个基于 PyTorch 的开源端到端持续学习库,它可以为快速原型设计、训练和持续学习算法的可复现评估提供一个共享的协作代码库。
https://avalanche.continualai.org
平台、运维与工具

IBM Z 和 LinuxONE (s390x) 上的 PyTorch
Hong Xu
IBM Z 是用于关键任务应用(如金融和健康应用)的硬件产品线。它采用自己的 CPU 架构,PyTorch 官方不支持此架构。在本海报中,我们讨论了为何在 Z 上支持 PyTorch 很重要。然后,我们展示了我们为 IBM Z 预构建的最小 PyTorch 软件包。最后,我们展示了我们持续致力于在 IBM Z 上提供更多 PyTorch 特性的承诺。
https://codait.github.io/pytorch-on-z
平台、运维与工具

研发 MLOps 的基础:编排、自动化、可复现性
Dr. Ariel Biller
从合理性考量和生产力角度来看,数据科学家、机器学习工程师、研究生和其他面向研究的角色都开始采用生产级 MLOps 的最佳实践。然而,大多数工具链带来额外的代码和维护的巨大成本,减少了可用于研发的实际时间。我们将展示一种替代方法,使用开源 MLOps 解决方案 ClearML。在这份“最佳实践”海报中,我们将概述研发 MLOps 的“必备项”:编排、自动化和可复现性。这些通过神奇的可复现设置实现轻松远程执行,甚至是自定义的、可重用的、自下而上的流水线。我们将以一个例子为例,图解式地将其从“从 GitHub 下载”阶段转换为一个功能完善、可扩展、版本控制、可参数化的研发流水线。我们将衡量代码库所需的更改数量,并提供真实低成本集成的证据。所有代码、日志和指标将作为支持信息提供。
平台、运维与工具

FairTorch:致力于缓解机器学习模型的不公平性
Masashi Sode, Akihiko Fukuchi, Yoki Yabe, Yasufumi Nakata
您的机器学习模型是否足够公平,可以在您的系统中使用?如果招聘 AI 歧视性别和种族怎么办?如果医疗 AI 的准确性取决于一个人的年收入或其使用国家/地区的 GDP 怎么办?当今的 AI 有可能导致此类问题。近年来,机器学习中的公平性受到越来越多的关注。如果当前用于决策的机器学习模型可能导致不公平歧视,开发一个公平的机器学习模型在许多领域都是一个重要目标,例如医疗、就业和政治。尽管这一目标对社会很重要,但截至 2020 年,没有 PyTorch 项目将公平性纳入机器学习模型。为了解决这个问题,我们在 2020 年 PyTorch 夏季黑客马拉松中创建了 FairTorch。FairTorch 提供了一个工具来缓解机器学习模型的不公平性。我们工具的一个独特之处在于,它允许您通过添加少量代码行来为模型添加公平性约束,使用库中提供的公平性准则。
https://github.com/wbawakate/fairtorch
平台、运维与工具

TorchDrift:用于 PyTorch 的漂移检测
Thomas Viehmann, Luca Antiga
当机器学习模型部署后用于解决特定任务时,一个关键问题是它们是否能如预期般运行。TorchDrift 解决了答案的一个方面,即漂移检测,或者说流经我们模型的信息(无论是输入、输出还是中间层的探测)是否仍与训练和评估时的数据保持一致。简而言之,TorchDrift 被设计用于插入到 PyTorch 模型中,并检查它们是否在规格范围内运行。TorchDrift 的原则将 PyTorch 的座右铭“从研究到生产”应用于漂移检测:我们提供了一个方法库,可以用作漂移检测研究的基线或构建模块,并为在生产环境中部署 PyTorch 模型的实践者提供最新方法和教育材料,以构建必要的统计背景。在此,我们通过一个示例介绍 TorchDrift,该示例说明了底层的双样本检验。我们展示 TorchDrift 如何集成到高性能运行时(例如 TorchServe 或 RedisAI)中,借助 PyTorch JIT,在现实世界应用中实现漂移检测。
平台、运维与工具

Ouroboros:自动驾驶的 MLOps
Quincy Chen, Arjun Bhargava, Sudeep Pillai, Marcus Pan, Chao Fang, Chris Ochoa, Adrien Gaidon, Kuan-Hui Lee, Wolfram Burgard
用于自动驾驶的现代机器学习需要根本不同的基础设施和生产生命周期,与其标准的软件持续集成/持续部署对应物不同。在丰田研究院 (TRI),我们开发了 Ouroboros——一个现代化的机器学习平台,支持交付给 TRI 自动驾驶车队的所有机器学习模型的端到端生命周期。我们设想交付给车队的所有机器学习模型都经过系统且严谨的处理。Ouroboros 提供了几个基本特性,包括:a. 机器学习数据集治理和基础设施即代码,确保所有通过程序生成并交付给 TRI 车队的机器学习数据集和模型的可追溯性、可复现性、标准化和公平性。b. 统一的机器学习数据集和模型管理:统一且精简的机器学习数据集整理、标签管理和模型开发工作流程,目前支持交付给 TRI 车队的几个关键机器学习模型。c. 一个用于自动驾驶的大规模多任务、多模态数据集,目前支持各种模型的开发,包括 3D 对象检测、2D 对象检测、2D BeVFlow、全景分割。d. 编排的机器学习工作流,建立可扩展的机器学习应用,如一键式再训练解决方案、机器学习 CI/CD 流水线、数据集整理工作流、自动标注流水线,利用最先进的云工具。在其生命周期内,确保在构建用于生产驾驶环境的可重用、可复现、鲁棒、可追溯和公平的机器学习模型方面进行严格治理。通过遵循最佳 MLOps 实践,我们期望我们的平台为自动驾驶车队中的持续终身学习奠定基础,并加速从研究到生产的转化。
平台、运维与工具

carefree-learn:表格数据集 ❤️ PyTorch
Yujian He
carefree-learn 让熟悉机器学习但不一定熟悉 PyTorch 的人也能使用 PyTorch。通过在底层已经实现所有预处理和后处理,用户可以专注于使用 PyTorch 实现核心机器学习算法/模型,并在各种数据集上测试它们。通过精心设计整个结构,用户可以轻松定制整个流水线中的每个块,还可以轻松“组合”已实现的块来“构建”新模型。通过精心设计的抽象,用户可以将其适应于他们特定的下游任务,例如量化交易(事实上,我已经为我的公司实现了一个,而且效果相当好 XD)。carefree-learn 仔细处理分布式训练,因此用户可以同时运行多个任务,或用一行代码使用 DDP 运行一个大型模型。carefree-learn 还集成了 mlflow 并支持导出到 ONNX,这意味着它在某种程度上已经为生产做好了准备。
平台、运维与工具

OpenMMLab:一个用于计算机视觉的开源算法平台
Wenwei Zhang
OpenMMLab 项目构建用于人工智能 (AI) 的开源工具箱。其目标是 1) 提供高质量代码库,降低算法重新实现的难度;2) 提供完整的研发平台,加速研究产出;3) 缩短研究产出与工业应用之间的差距。基于 PyTorch,OpenMMLab 开发了 MMCV,提供统一的抽象训练 API 和常用工具,作为 15 个以上工具箱和 40 个以上数据集的基础。自 2018 年 10 月首次发布以来,OpenMMLab 已发布 15 个以上工具箱,涵盖 10 个以上方向,实现了 100 多个算法,并包含 1000 多个预训练模型。通过与社区更紧密的合作,OpenMMLab 未来将发布更多工具箱以及更灵活、易用的训练框架。
平台、运维与工具

Catalyst – 加速深度学习研发
Sergey Kolesnikov
在过去的三年里,Catalyst 团队和合作者一直在致力于 Catalyst——一个用于深度学习研究和开发的高级 PyTorch 框架。它专注于可复现性、快速实验和代码库重用,这样你就可以创造新的东西,而不是再写另一个训练循环。你可以获得指标、模型检查点、高级日志记录和分布式训练支持,没有样板代码和低级错误。
平台、运维与工具

PyTorch 中生成模型的细节丰富性能指标
Anton Obukhov
生成模型(如 GAN)的评估是深度学习研究的重要组成部分。在 2D 图像生成领域,三种方法变得广泛应用:Inception Score、Fréchet Inception Distance 和 Kernel Inception Distance。尽管这些指标有清晰的数学和算法描述,但它们最初是在 TensorFlow 中实现的,并继承了框架本身的一些特性,例如插值函数的特定实现。这些设计决策被有效地固化到评估协议中,并成为指标规范的固有部分。因此,希望与生成建模领域最先进技术进行比较的研究人员,不得不使用原始指标作者的代码库进行评估。PyTorch 和其他框架中存在对这些指标的重新实现,但它们的保真度不够高,因此不适合报告结果并与其他方法进行比较。本软件旨在在 PyTorch 中提供所述指标的 epsilon 级精确实现,并消除与生成模型评估和开发相关的不便。所有评估流程步骤均经过正确测试,剩余的非确定性因素及其来源已在下文各节中总结。TLDR; PyTorch 中快速可靠的 GAN 评估。
https://github.com/toshas/torch-fidelity
平台、运维与工具

利用卫星图像识别海洋石油污染
Jona Raphael (jona@skytruth.org), Ben Eggleston, Ryan Covington, Tatianna Evanisko, John Amos
船舶的运营性石油排放,也称为“舱底水倾倒”,已被确定为石油产品进入海洋的主要来源,即使在短时间内,其累积量也超过了最大的石油泄漏事件,如埃克森瓦尔迪兹号和深水地平线号泄漏。然而,我们仍然无法很好地估算出 ● 排放了多少石油;● 排放发生在哪里;● 责任船只是哪些。这使得预防和有效应对可能损害我们的海洋和沿海环境以及依赖它们的经济体的石油污染变得困难。在本海报中,我们将分享 SkyTruth 最近利用机器学习工具解决这些差距的工作,以检测石油污染事件,并在可能的情况下识别责任船只。我们使用 ResNet-34 架构的卷积神经网络 (CNN) 对所有传入的 Sentinel-1 合成孔径雷达 (SAR) 图像进行像素分割,以对油污进行分类。尽管卫星的海洋覆盖并不完整,我们平均每月检测到 135 起船舶油污事件,并确定了几个规律发生含油排放的地理热点。对于捕捉到正在排放石油的船只的图像,我们依靠自动识别系统 (AIS) 数据库提取船只的详细信息,包括船只类型和船旗国。我们将分享我们的经验 ● 从本质上稀疏的卫星图像数据集中制作足够的训练数据;● 使用 PyTorch 和 fastai 构建计算机视觉模型;● 在亚马逊网络服务 (AWS) 云中实现整个流程的完全自动化。该应用程序自 2020 年 8 月以来持续运行,已处理超过 380,000 张 Sentinel-1 图像,并已在数据库中记录了来自船只的 1100 多起高可信度油污事件。我们将讨论该数据集的初步结果以及有待克服的剩余挑战。了解更多信息请访问 https://skytruth.org/bilge-dumping/
愿景

UPIT:用于非配对图像到图像翻译的 fastai 包
Tanishq Abraham
非配对图像到图像翻译算法已用于各种计算机视觉任务,如风格迁移和域适应。这些算法极具吸引力,因为它们无需收集配对数据集。在本海报中,我们展示了 UPIT,一个新颖的 fastai/PyTorch 包(使用 nbdev 构建),用于非配对图像到图像翻译。它实现了 CycleGAN、DualGAN、UNIT 等各种最先进的非配对图像到图像翻译算法。它支持对非配对数据集进行简单的训练和推理。它还包含 FID、KID 和 LPIPS 等常用指标的实现。它还集成了 Weights-and-Biases,便于实验跟踪。由于它是基于 fastai 和 PyTorch 构建的,因此支持混合精度和多 GPU 训练。它具有高度灵活性,也可以使用自定义数据集类型、模型和指标。使用 UPIT,训练和应用非配对图像到图像翻译只需要几行代码。
https://github.com/tmabraham/UPIT
愿景

PyTorchVideo:用于视频理解的深度学习库
Aaron Adcock, Bo Xiong, Christoph Feichtenhofer, Haoqi Fan, Heng Wang, Kalyan Vasudev Alwala, Matt Feiszli, Tullie Murrell, Wan-Yen Lo, Yanghao Li, Yilei Li, Zhicheng Yan
PyTorchVideo 是新的 Facebook AI 深度学习库,用于视频理解研究。它包含各种最先进的预训练视频模型、数据集、增强方法以及用于视频理解的工具。PyTorchVideo 在移动设备上提供高效的视频组件以进行加速推理。
愿景
深度学习以高精度实现快速密集单分子定位
A. Speiser, L-R. Müller, P. Hoess, U. Matti, C. J. Obara, J. H. Macke, J. Ries, S. C. Turaga
单分子定位显微镜 (SMLM) 在实现纳米分辨率的细胞结构成像方面取得了显著成功,但仅需激活单个孤立发射器的要求限制了成像速度和标记密度。在这里,我们通过深度学习克服了这一主要限制。我们开发了 DECODE,这是一种计算工具,可以在 3D 中以高密度定位单个发射器,并在大范围成像模式和条件下实现最高精度。在一项公开的软件基准测试竞赛中,在比较检测精度和定位误差时,它在 12 个数据集中有 12 个数据集的表现优于所有其他拟合器,且通常优势显著。DECODE 使我们能够在短短 3 秒内以较低的光照曝光获取活细胞 SMLM 数据,并以超高标记密度对微管进行成像。DECODE 已打包以便于安装和使用,它将帮助许多实验室减少 SMLM 的成像时间并提高定位密度。
http://github.com/turagalab/decode
愿景

傅里叶域中鲁棒的 PyTorch 可训练入口卷积层
Abraham Sánchez, Guillermo Mendoza, E. Ulises Moya-Sánchez
我们的灵感来源于皮层区域 V1。我们试图通过以下方式模仿其主要处理特性:四元数局部相位/方向计算特定方向的线和边缘检测。我们分析了该层如何通过其几何特性对大的光照和亮度变化保持鲁棒。
https://gitlab.com/ab.sanchezperez/pytorch-monogenic
愿景

PyroNear:用于早期野火检测的嵌入式深度学习
François-Guillaume Fernandez, Mateo Lostanlen, Sebastien Elmaleh, Bruno Lenzi, Felix Veith, 和超过 15 位贡献者
“PyroNear 是一个仅由志愿者组成的非营利组织,成立于 2019 年底。我们的核心信念是,最新的技术发展可以支持人类与其自然栖息地之间的共存。我们致力于为防御自然灾害提供高性能、易于获取且经济实惠的技术解决方案。更具体地说,我们的首要工作重点是通过增加自动检测系统的覆盖范围来保护野火。我们正在进行的倡议现已汇集了数十名志愿者,共同完成了以下主要贡献:- 计算机视觉:编译与野火检测相关的视觉任务的开源模型和数据集(即将发布)- 边缘计算:开发一个经济实惠的物理原型,在 Raspberry Pi 上运行我们的 PyTorch 模型 - 端到端检测工作流程:构建一个负责任的端到端系统,用于大规模检测和警报管理(API、前端监控平台)- 部署:与法国消防部门合作,收集现场知识,并在即将到来的欧洲夏季进行测试阶段。” PyTorch3D 是一个用于 PyTorch 3D 深度学习的模块化优化库。它支持:用于 3D 数据异构批处理的数据结构(网格、点云和体素)、优化的 3D 运算符和损失函数(带有自定义 CUDA 内核)、用于网格、点云和隐式函数的可微渲染 API 模块,以及其他用于 3D 深度学习的工具。
愿景

PyTorch3D:快速、灵活的 3D 深度学习
Nikhila Ravi, Jeremy Reizenstein, David Novotny, Justin Johnson, Georgia Gkioxari, Roman Shapovalov, Patrick Labatut, Wan-Yen Lo
PyTorch3D 是一个用于 PyTorch 3D 深度学习的模块化优化库。它支持:用于 3D 数据异构批处理的数据结构(网格、点云和体素)、优化的 3D 运算符和损失函数(带有自定义 CUDA 内核)、用于网格、点云和隐式函数的可微渲染 API 模块,以及其他用于 3D 深度学习的工具。
https://arxiv.org/abs/2007.08501
愿景

Kornia:一个用于 PyTorch 的开源可微分计算机视觉库
E. Riba, J. Shi, D. Mishkin, L. Ferraz, A. Nicolao
这项工作介绍了 Kornia,这是一个建立在一系列可微分例程和模块之上的开源计算机视觉库,旨在解决通用计算机视觉问题。该软件包使用 PyTorch 作为其主要后端,不仅是为了效率,也是为了利用逆向自动微分引擎来定义和计算复杂函数的梯度。受 OpenCV 启发,Kornia 由一组包含算子的模块组成,这些算子可以集成到神经网络中,以训练模型执行各种操作,包括图像变换、相机校准、对极几何以及低级图像处理技术,例如滤波和边缘检测,这些操作直接在图形处理单元上的高维张量表示上进行,生成更快的系统。提供了使用我们的框架实现的经典视觉问题示例,包括与现有视觉库进行比较的基准测试。
愿景

NNGeometry:在 PyTorch 中轻松快速计算 Fisher 信息矩阵和神经切线核
Thomas George
Fisher 信息矩阵 (FIM) 和神经切线核 (NTK) 是神经网络相关多种应用中有用的工具。然而,对于实际规模的网络,由于它们需要逐样本梯度,并且由于它们随参数数量(对于 FIM)或样本数量 x 输出空间基数(对于 NTK)而扩展,需要大量内存,因此使用现有库很难实现这些理论工具。NNGeometry 是一个 PyTorch 库,它提供了一个高级 API,用于计算各种线性代数运算,如矩阵-向量乘积、迹、Frobenius 范数等,其中矩阵是 FIM 或 NTK,利用了这些矩阵逼近的最新进展。
https://github.com/tfjgeorge/nngeometry/
愿景

CompressAI:一个用于端到端压缩的研究库和评估平台
Bégaint J., Racapé F., Feltman S., Pushparaja A.
CompressAI 是一个 PyTorch 库,它提供自定义操作、层、模块和工具,用于研究、开发和评估端到端图像和视频压缩编解码器。特别是,CompressAI 包括预训练模型和评估工具,用于将学习方法与传统编解码器进行比较。最先进的端到端压缩模型已在 PyTorch 中重新实现并从头开始训练,重现了已发表的结果,并允许在该领域进行进一步研究。
愿景

pystiche:一个用于神经风格迁移的框架
Philip Meier, Volker Lohweg
Gatys、Ecker 和 Bethge 于 2016 年发表的开创性工作催生了“神经风格迁移”(NST)领域。NST 描述了两个任意图像的内容和艺术风格的融合。这个想法在非真实感渲染 (NPR) 领域并非新鲜事。NST 与传统 NPR 方法的区别在于其通用性:NST 只需要一个任意内容图像和一个风格图像作为输入,因此“首次使得广义风格迁移变得可行”。除了外围任务,NST 的核心是定义一个称为“感知损失”的优化准则,用于评估风格化图像的感知质量。通常,感知损失包含一个需要提供来自不同深度的图像编码的深度神经网络。`pystiche` 是一个用 Python 编写并基于 PyTorch 构建的 NST 库。它为常用的感知损失和神经网络架构提供了模块化和高效的实现。这使得用户可以轻松地将当前最先进的技术与新想法结合起来。本海报将展示 `pystiche` 的核心概念,这些概念将使其他研究人员以及普通用户能够在几分钟内运行一个 NST。
https://github.com/pmeier/pystiche
愿景

GaNDLF – 一个用于临床成像工作流程的通用细致深度学习框架
Siddhish Thakur
深度学习 (DL) 极大地凸显了优化机器学习在科学和临床社区中的潜在影响。主要工业实体(如 Google 的 TensorFlow、Facebook 的 PyTorch)开源 DL 库的出现,进一步促进了 DL 在计算分析民主化方面的承诺。然而,开发 DL 算法需要更多的技术和专业背景,并且实现细节的可变性阻碍了其可重复性。为了降低门槛,使 DL 开发、训练和推理的机制更加稳定、可重复和可扩展,而无需广泛的技术背景,本文提出了通用细致深度学习框架 (GaNDLF)。GaNDLF 内置了对 k-折交叉验证、数据增强、多模态和输出类别、多 GPU 训练的支持,以及处理放射影像和组织学影像的能力,旨在为所有与 DL 相关的任务提供端到端解决方案,解决医学影像问题,并为临床工作流程部署提供一个强大的应用框架。关键词:深度学习、框架、分割、回归、分类、交叉验证、数据增强、部署、临床、工作流程
愿景