海报
利用 PyTorch 实现医学影像的最先进的可解释性
Dinkar Juyal、Syed Asher Javed、Harshith Padigela、Limin Yu、Aaditya Prakash、Logan Kilpatrick、Anand Sampat、PathAI
PathAI 是一家总部位于波士顿的公司,专注于利用 AI 驱动的病理学改善患者护理。我们大量使用 PyTorch 来构建我们的 ML 系统,特别是训练和部署大型千兆像素病理图像上的模型。在本案例研究中,我们重点介绍了我们如何使用 PyTorch 构建、实验和部署加性多实例学习 (MIL) 模型。加性 MIL 是一种使用 PyTorch Lightning 构建的新型 MIL 技术,它允许从数百万像素中进行端到端学习,同时提供空间热图的细粒度可解释性。这些模型允许精确计算千兆像素大小图像中每个较小区域对最终模型预测的贡献程度。这使得能够在病理图像之上可视化类别级的兴奋性和抑制性贡献。这使从业者能够了解模型的失败原因,并引导病理学家关注感兴趣的区域。所有这一切都得益于 PyTorch 快速的研究到原型到部署的迭代周期。
计算机视觉
TorchUnmix:PyTorch 中用于组织病理学图像的自动染色分离和增强
Erik Hagendorn
TorchUnmix 是一个旨在为组织病理学全幻灯片图像提供自动染色分离和增强的库。组织化学染色的分离(分离)是通过对来自预定义光吸收系数(称为染色向量 [1])的 RGB 像素数据进行正交变换来执行的。通常使用预先计算的公开可用的染色向量定义,但由于组织学和/或图像采集过程导致的实验室间差异很常见,从而导致分离结果不理想。经典的染色向量估计方法依赖于染色的丰富分布,这使得它们不太适用于从免疫组织化学染色中观察到的稀疏分布。Geis 等人提出了一种基于色相-饱和度-密度颜色空间中像素值的 k 均值聚类来确定最佳染色向量的方法,该方法已用于这项工作 [2]。虽然染色向量可用于量化单个染色,但 TorchUnmix 还提供执行染色增强功能的功能。染色增强是在深度学习模型的训练过程中使用的一种方法,通过分离图像、随机修改单个染色,然后将染色合成到最终增强图像中来提高泛化能力 [3]。据我们所知,没有其他库在 PyTorch 中完全实现上述方法,并利用 GPU 加速。此外,TorchUnmix 已扩展了用于执行自动染色分离和增强的所有计算,以对图像批次进行操作,与其他库相比,极大地提高了执行性能速度。
库
使用 Ray AIR 进行可扩展的训练和推理
Kai Fricke、Balaji Veeramani
扩展机器学习很困难:像 SageMaker 这样的云平台解决方案可能会限制灵活性,但自定义分布式框架通常难以实现。实际上,ML 工程师难以将他们的工作负载从本地原型扩展到云端。Ray AI 运行时(“Ray AIR”)是围绕分布式计算框架 Ray 构建的一组集成的机器学习库。它提供了一个易于使用的界面,用于可扩展的数据处理、训练、调整、批量预测和在线服务。将现有的 PyTorch 训练循环适配到 Ray AIR 的 PyTorch 集成只需要大约 10 行代码更改。从本地开发扩展到云端根本不需要任何代码更改。
库
AutoMAD:PyTorch 模型的混合模式自动微分
Jan Hückelheim
混合模式自动微分结合了反向传播和前向微分。这两种模式各有优缺点:反向传播对于具有许多可训练参数的标量函数来说是有效的。反向传播使用内存存储中间结果,需要数据流反转,对于许多输出变量来说扩展性不佳。前向微分易于实现,内存效率高,并且易于矢量化/并行化或移植到新的硬件。前向模式对于大量可训练参数的扩展性不佳。AutoMAD 使得结合这两种模式成为可能。对某些层使用前向微分,而对其他层使用反向传播。
库
xFormers:高效 Transformer 的构建块
Daniel Haziza、Francisco Massa、Jeremy Reizenstein、Patrick Labatut、Diana Liskovich
我们介绍了 xFormers,一个用于加速 Transformer 研究的工具箱。它包含高效的组件,例如精确的内存高效多头注意力,可以在使用少量内存的同时将训练速度提高 2 倍。xFormers 组件也是可定制的,可以组合在一起构建 Transformer 的变体。我们希望能够基于 Transformer 的下一代研究。
库
linear_operator - PyTorch 中的结构化线性代数
Max Balandat
linear_operator(https://github.com/cornellius-gp/linear_operator)是一个基于 PyTorch 构建的结构化线性代数库。它提供了一个 LinearOperator 类,该类表示一个从未实例化的张量,而是通过矩阵乘法、求解、分解和索引等操作进行访问。这些对象使用自定义线性代数运算,这些运算可以利用计算中的特定矩阵结构(例如对角线、块对角线、三角形、克罗内克等)来实现时间和内存复杂度的显着(多个数量级)改进。此外,许多高效的线性代数运算(例如求解、分解、索引等)可以从 LinearOperator 的 matmul 函数自动生成。这使得组合或实现自定义 LinearOperator 变得极其容易。使 linear_operator 易于在 PyTorch 代码中使用的关键方面是它与 `__torch_function__` 接口的集成 - 常用的线性代数运算(例如矩阵乘法、求解、SVD)映射到相应的 torch 函数(`__matmul__`、`torch.linalg.solve`、`torch.linalg.svd`),因此 LinearOperator 对象即使在现有代码中也可以作为密集张量的直接替换。LinearOperator 运算本身可能会返回 LinearOperator 对象,在每次计算后自动跟踪代数结构。因此,用户无需考虑要使用哪些高效的线性代数例程(只要用户定义的输入元素编码已知的输入结构)。
库
使用 Ludwig 进行声明式机器学习:使用简单灵活的数据驱动配置的端到端机器学习管道
Justin Zhao
Ludwig 是一个声明式机器学习框架,它使您可以轻松地使用简单灵活的数据驱动配置系统来定义和比较机器学习管道。最小的配置声明输入和输出特征及其相应的数据类型。用户可以指定其他参数来预处理、编码和解码特征、从预训练模型加载、组合内部模型架构、设置训练参数或运行超参数优化。Ludwig 将自动构建端到端的机器学习管道,使用配置中明确指定的任何内容,同时对于任何未指定的参数回退到智能默认值。科学家、工程师和研究人员使用 Ludwig 来探索最先进的模型架构、运行超参数搜索,并将数据集扩展到可用内存和多节点集群,并使用结构化和非结构化特征解决各种问题。Ludwig 在 Github 上拥有 8.5K+ 星,并且构建在 PyTorch、Horovod 和 Ray 之上。
库
广义形状:块稀疏性、MaskedTensor、NestedTensor
Christian Puhrsch
本海报概述了与稀疏内存格式、掩码计算和对可变形状数据集合的支持相关的可用和正在进行的开发。特别是,它包含块稀疏内存格式、MaskedTensor 和 NestedTensor 的案例研究。
库
Betty:用于广义元学习的自动微分库
Sang Keun Choe
Betty 是一个简单、可扩展且模块化的用于广义元学习 (GML) 和多级优化 (MLO) 的库,构建在 PyTorch 之上,它允许为许多 GML/MLO 应用(包括少样本学习、超参数优化、神经架构搜索、数据重新加权等)提供统一的编程接口。Betty 的内部自动微分机制和软件设计是通过将 GML/MLO 作为数据流图的新颖解释而开发的。
库
Functorch:Pytorch 中的可组合函数变换
Samantha Andow、Richard Zhou、Horace He、Animesh Jain
受 Google JAX 启发,functorch 是 Pytorch 中一个提供可组合 vmap(矢量化)和自动微分转换(grad、vjp、jvp)的库。自从其与 Pytorch 1.11 一起首次发布以来,结合这些转换帮助用户开发和探索了以前在 Pytorch 中难以编写的新技术,例如神经切线核和非线性优化(参见 Theseus,也来自 PyTorch)。本文将介绍一些基本用法,并重点介绍一些利用 functorch 的研究。
库
用于偏微分方程的大规模神经解算器
Patrick Stiller,Jeyhun Rustamov,Friedrich Bethke,Maksim Zhdanov,Raj Sutarya,Mahnoor Tanveer,Karan Shah,Richard Pausch,Sunna Torge,Alexander Debus,Attila Cangi,Peter Steinbach,Michael Bussmann,Nico Hoffmann
我们开源的神经解算器框架提供基于 Pytorch 的无数据机器学习解算器,用于研究和分析自然科学中的现象。我们是第一个证明由二维薛定谔方程建模的某些量子系统可以在保持强扩展性的同时被精确求解的团队。我们还开发了一种新颖的神经网络架构,即 GatedPINN [1],它将自适应域分解引入基于专家混合范式的物理信息神经网络的训练中。Horovod 促进了我们 GatedPINN 的分布式大规模训练,从而实现了出色的 GPU 利用率,使神经解算器为即将到来的 exascale 时代做好准备。未来的项目涉及更高维度的难题,例如 3D 激光系统和耦合模型,以研究 Vlasov-Maxwell 系统。在新型高度可扩展计算硬件上进行的进一步实验为将高保真神经解算器应用于逆散射问题等现实世界应用铺平了道路。
库
模型准备联合学习和设备计算
方志涵
具有差分隐私的联邦学习已被越来越多地采用,作为训练机器学习模型同时保护用户隐私的最有希望的方法之一。Meta 周围关于人员属性的现有模型大多建立在传统的集中式机器学习方法之上。最近,由于内部和外部对用户隐私的日益关注,Meta 的机器学习团队要么遇到信号丢失,要么在模型中应用新功能以进一步提高模型性能方面受到限制。在本文中,我们介绍了一个为联邦学习准备和生成模型而构建的通用框架。模型准备过程是利用传统的机器学习来理解目标问题的模型结构和超参数,包括训练、推理、评估。它还需要一个模拟过程来训练目标模型结构,并在服务器端了解模拟环境,以便调整特定于联邦学习的超参数。模型生成过程是生成与设备兼容的模型,这些模型可以直接在用户的设备上用于联邦学习。我们将联邦学习框架应用于我们的设备上模型,并与设备信号集成,以改善用户体验并保护用户隐私。
库
使用 Cooper 在 PyTorch 中进行约束优化
Jose Gallego-Posada,Juan Camilo Ramirez
Cooper(https://github.com/cooper-org/cooper)是 PyTorch 中一个通用的、深度学习优先的约束优化库。Cooper 与 PyTorch(几乎)无缝集成,并保留了通常的损失反向传播工作流程。如果您已经熟悉 PyTorch,那么使用 Cooper 将非常简单!该库旨在鼓励和促进对深度学习中约束优化问题的研究。Cooper 专注于非凸约束优化问题,其中损失或约束不一定“行为良好”或“理论上易于处理”。此外,Cooper 旨在与目标函数和约束函数的小批量/随机估计良好配合。Cooper 实现了几种流行的约束优化协议,因此您可以专注于您的项目,而我们将处理幕后的细节。
https://github.com/cooper-org/cooper
库
使用分布式张量进行二维并行
梁万超,王俊杰
本次演讲将介绍 PyTorch 中使用分布式张量的二维并行(数据并行 + 张量并行),分布式张量是 PyTorch 分布式提供的基本分布式原语,它支持张量并行。我们已经证明,将 FSDP + 张量并行结合起来可以使我们训练像 Transformer 这样的大型模型,并提高训练性能。我们提供端到端的训练技术,使您能够以二维并行的方式训练模型,并以分布式方式保存/加载检查点模型。
库
PyTorch Tabular:一个用于表格数据深度学习的框架
Manu Joseph
尽管在文本和图像等模态中表现出非凡的有效性,但深度学习在表格数据方面一直落后于梯度提升——无论是在流行度还是性能方面。但最近,专门为表格数据创建了一些更新的模型,这正在提升性能标准。然而,普及度仍然是一个挑战,因为深度学习没有像 Sci-Kit Learn 那样易于使用、现成的库。PyTorch Tabular 旨在通过成为一个易于使用且灵活的框架来改变这一点,该框架使在表格数据中使用 SOTA 模型架构变得像 Sci-Kit Learn 一样简单。
库
更好的 Transformer:加速 PyTorch 中的 Transformer 推理
Michael Gschwind,Christian Puhrsch,Driss Guessous,Rui Zhu,Daniel Haziza,Francisco Massa
我们介绍了 Better Transformer,这是一个 PyTorch 项目,旨在通过实现 Better Transformer 的“快速路径”来加速 Transformer 的推理和训练,并提供开箱即用的支持。快速路径加速了 Transformer 模型中许多最常执行的功能。从 PyTorch 1.13 开始,PyTorch 核心 API 使用加速操作实现,可以为许多 Transformer 模型(例如 BERT 和 XLM-R)提供高达 2 倍到 4 倍的速度提升。加速操作基于 (1) 算子和内核融合以及 (2) 利用可变序列长度 NLP 批次创建的稀疏性。除了使用快速路径改进 MultiHeadAttention 之外,该模型还包括对 MultiHeadAttention 和 TransformerEncoder 模块的稀疏性支持,以便利用嵌套张量为 NLP 模型提供可变序列长度信息。目前,我们使用 Better Transformer 支持 torchtext 和 Hugging Face 领域库,为文本、图像和音频模型提供了显著的速度提升。从下一个版本开始,PyTorch 核心将包含更快融合的内核和训练支持。您今天可以使用 PyTorch Nightlies(即将发布的 PyTorch 版本的每日预览版本)预览这些功能。
库
PiPPy:PyTorch 的自动化流水线并行
温克,Pavel Belevich,Anjali Sridhar
PiPPy 是一个为 PyTorch 模型提供自动化流水线并行的库。通过编译器技术,PiPPy 将模型拆分为流水线阶段,而无需更改模型。PiPPy 还提供了一个分布式运行时,将拆分的阶段分布到多个设备和主机,并以重叠的方式协调微批次执行。我们展示了 PiPPy 在 Hugging Face 模型上的应用,在云平台上实现了 3 倍的速度提升。
库
使用 AWS Inferentia 进行 PyTorch 推理的实用指南
渡边圭太
在本课程中,我们将逐步介绍如何使用 Inferentia 执行机器学习模型的推理过程。此外,我们将推理性能与 GPU 进行比较,并讨论成本优势。在课程的后半部分,我们还将介绍在 Kubernetes 上部署模型。
优化
PyG CPU 性能优化
马明飞
使用更快的稀疏聚合加速 PyG CPU 性能。PyG 是一个基于 PyTorch 构建的库,用于轻松编写和训练图神经网络,它严重依赖消息传递机制进行信息聚合。我们已经优化了 PyTorch 中消息传递的关键瓶颈,包括:1. Scatter Reduce:映射到经典的 PyG 使用案例,其中 EdgeIndex 存储在 COO 内存格式中。2. SpMM Reduce:映射到 EdgeIndex 存储在 CSR 内存格式中的使用案例。
优化
PyTorch 2.0 导出中的量化
张杰瑞
目前,PyTorch 架构优化(torch.ao)提供了两种量化流程工具:急切模式量化(beta)和 fx 图模式量化(原型)。随着 PyTorch 2.0 的推出,我们将重新设计基于 PyTorch 2.0 导出路径的量化,本次演讲将介绍我们支持 PyTorch 2.0 导出路径中的量化的计划、它相对于先前工具的主要优势,以及建模开发人员和后端开发人员将如何与该流程交互。
优化
Torch-TensorRT:用于使用 TensorRT 加速 PyTorch 推理的编译器
Naren Dasan,Dheeraj Peri,王博,Apurba Bose,George Stefanakis,Nick Comly,魏伟,吴士荣,陆鹰海
Torch-TensorRT 是一个开源编译器,针对 NVIDIA GPU,用于在 PyTorch 中进行高性能深度学习推理。它结合了 PyTorch 的易用性和 TensorRT 的性能,从而可以轻松优化 NVIDIA GPU 上的推理工作负载。Torch-TensorRT 支持 TensorRT 中所有类别的优化,包括将混合精度降低到 INT8,这可以通过专为直接从 PyTorch 工作而设计的简单 Python 和 C++ API 实现。Torch-TensorRT 输出标准的 PyTorch 模块以及 TorchScript 格式,以便允许使用完全自包含、可移植和静态的模块,其中嵌入了 TensorRT 引擎。我们介绍了 Torch-TensorRT 的最新改进,包括新的 FX 前端,它允许开发人员使用完整的 Python 工作流来优化模型并在 Python 中扩展 Torch-TensorRT,以及统一的 Torch-TensorRT 运行时,它支持混合 FX + TorchScript 工作流,并讨论了该项目的未来工作。
优化
通过利用 oneDNN Graph 中的图融合来加速 PyTorch 中的推理
Sanchit Jain
开源的 oneDNN Graph 库通过灵活的图 API 扩展了 oneDNN,以最大程度地优化在 AI 硬件上生成高效代码的机会(目前是 x86-64 CPU,但 GPU 支持即将推出)。它自动识别要通过融合加速的图分区。其融合模式包括融合计算密集型操作(如卷积、矩阵乘法及其相邻操作),用于推理和训练用例。从 PyTorch 1.12 开始,oneDNN Graph 已作为一项实验性功能得到支持,以加速 x86-64 CPU 上的 Float32 数据类型的推理。使用 BFloat16 数据类型的 oneDNN Graph 推理支持存在于 PyTorch 主分支中,因此也存在于 PyTorch 每日版本中。Intel Extension for PyTorch 是一个构建在 PyTorch 之上的开源库,可以被认为是 Intel 中 PyTorch 优化的“暂存地”。它利用 oneDNN Graph 进行 int8 数据类型的推理。本海报展示了 PyTorch 的 TorchBench 基准测试套件的可复制结果,以证明使用 PyTorch 和 oneDNN Graph 使用 Float32、BFloat16 和 int8 数据类型实现的推理加速。
优化
回到 Python:无需接触 C++ 即可扩展 PyTorch
Alban Desmaison
本海报介绍了 PyTorch 团队设计的新扩展点,以允许用户从 Python 扩展 PyTorch。我们将介绍张量子类化、模式和 torch 库。我们将简要描述每个扩展点,并讨论示例,例如内存分析、记录使用的算子、量化和自定义稀疏内核,所有这些示例的代码都不超过 100 行。我们还将介绍无需直接修改 PyTorch 即可添加新设备和编写内核的新方法。
其他
PyTorch 中的功能化
Brian Hirsh
功能化是一种从发送到下游编译器的任意 PyTorch 程序中移除变异的方法。PyTorch 2.0 堆栈完全是为了捕获 PyTorch 操作的图形并将其发送到编译器以获得更好的性能。PyTorch 程序可以变异和混淆状态,这使得它们对编译器不友好。功能化是一种技术,可以采用一个充满 PyTorch 算子的程序(包括可变和混淆算子),并从程序中移除所有变异,同时保留语义。
其他
沃尔玛搜索:在 TorchServe 上大规模服务模型
Pankaj Takawale,Dagshayani Kamalaharan,Zbigniew Gasiorek,Rahul Sharnagat
沃尔玛搜索已开始在搜索生态系统中采用深度学习,以提升各个部分的搜索相关性。作为我们的试点用例,我们希望在运行时提供计算密集型的Bert Base模型,目标是实现低延迟和高吞吐量。我们使用 JVM 托管的 Web 应用程序加载和服务多个模型。实验模型被加载到相同的应用程序中。这些模型体积庞大,计算成本高昂。我们使用这种方法面临以下限制:刷新模型以获取最新版本或添加新的实验模型需要应用程序部署。单个应用程序的内存压力增加。由于启动时加载多个机器学习模型,导致启动时间缓慢。由于 CPU 资源有限,并发性并无益处(并发模型预测与顺序预测的指标)。
其他
TorchX:从本地开发到 Kubernetes 再回到本地
Joe Doliner,Jimmy Whitaker
TorchX 对于快速开发 PyTorch 应用程序非常有用。但涉及到部署时,就没有那么容易了。使用 Docker 开发、Kubernetes 和客户调度程序,需要学习很多东西。在本演讲中,我们将讨论组织如何进行生产部署,为什么 TorchX 是一个非常适合此目的的系统,以及我们学到的经验教训,以便您避免重蹈覆辙。
生产环境
使用 PyTorch/XLA 中的全分片数据并行 (FSDP) 进行大规模训练
Shauheen Zahirazami,Jack Cao,Blake Hechtman,Alex Wertheim,Ronghang Hu
PyTorch/XLA 使 PyTorch 用户能够在其模型上运行 XLA 设备,包括 Google 的 Cloud TPU。PyTorch/XLA 的最新改进使使用 FSDP 训练 PyTorch 模型成为可能,从而可以训练非常大的模型。在这项工作中,我们展示了在 Cloud TPU v4 上训练 HuggingFace GPT-2 的基准测试和硬件浮点运算利用率。
生产环境
FSDP 生产就绪
Rohan Varma,Andrew Gu
本次演讲深入探讨了 PyTorch 全分片数据并行 (FSDP) 的最新进展,这些进展实现了更高的吞吐量、内存节省和可扩展性。这些改进使得 FSDP 可用于不同模态的模型以及不同的模型和数据大小。我们将分享将这些功能应用于特定用例的最佳实践,例如 XLMR、FLAVA、ViT、DHEN 和 GPT3 风格的模型。
生产环境
使用 Kubeflow Pipelines 和 TorchX 编排 Pytorch 工作流程
Erwin Huizenga,Nikita Namjoshi
TorchX 是一个通用的 PyTorch 应用程序作业启动器,可帮助机器学习从业者加快迭代速度并支持端到端生产。在本演讲中,我们将向您展示如何使用 Kubeflow Pipeline (KFL) DSL 将 TorchX 组件构建并作为管道运行。我们将详细介绍如何使用 KFP 和 TorchX 构建组件,以及如何使用 KFP DSL 编排和运行机器学习工作流程。
生产环境
机器学习编译器和基础设施项目的社区主导和开源生态系统
Shauheen Zahirazami,James Rubin,Mehdi Amini,Thea Lamkin,Eugene Burmako,Navid Khajouei
机器学习开发常常因框架和硬件之间的不兼容性而受阻,迫使开发人员在构建机器学习解决方案时不得不做出技术妥协。OpenXLA 是一个由社区主导的开源机器学习编译器和基础设施项目生态系统,由阿里巴巴、亚马逊网络服务、AMD、Arm、苹果、谷歌、英特尔、Meta、英伟达等 AI/ML 领导者共同开发。它将通过允许机器学习开发人员在其首选框架上构建模型并在任何硬件后端以高性能执行模型来解决这一挑战。这种灵活性将使开发人员能够为其项目做出正确的选择,而不是被封闭系统中的决策所束缚。我们的社区将首先协作发展 XLA 编译器和 StableHLO,这是一种可移植的机器学习计算操作集,使框架更容易跨不同的硬件选项部署。
生产环境
压缩 PyTorch 中的 GPU 内存使用量
Mao Lin,Keren Zhou,Penfei Su
有限的 GPU 内存资源常常会阻碍 GPU 加速应用程序的性能。虽然 PyTorch 的缓存分配器旨在最大程度地减少昂贵的内存分配和释放次数,并最大程度地提高 GPU 内存资源的有效利用率,但我们对常见深度学习模型的研究揭示了严重的内存碎片问题。在某些情况下,高达 50% 的 GPU 内存被浪费了。为了更好地了解内存碎片的根本原因,我们开发了一个工具,它以两种方式可视化 GPU 内存使用情况:分配器视图和块视图。分配器视图以每个分配或释放事件的形式显示内存使用情况,而块视图则显示特定内存块随时间的变化。我们的分析揭示了节省 GPU 内存的巨大潜力,这将缓解有限资源的瓶颈。通过采用交换、激活重计算和内存碎片整理等策略,我们能够显著减少 GPU 内存浪费。
工具
“Brainchop”:浏览器中的 MRI 体积分割和渲染
Mohamed Masoud,Farfalla Hu,Sergey Plis
在 brainchop 项目中,我们将用于结构磁共振成像 (MRI) 体积分析的高保真预训练深度学习模型直接带到科学家和临床医生的浏览器中,无需他们具备设置 AI 解决方案的技术技能。所有这一切都集成在一个可扩展的开源框架中。我们的工具是网络上第一个支持在浏览器中单次传递完成全脑体积处理的前端 MRI 分割工具。此特性由我们轻量级且可靠的深度学习模型 Meshnet 提供支持,该模型能够一次处理整个大脑的体积,从而在适度的计算需求下提高准确性。高质量的客户端处理解决了隐私问题,因为数据无需离开客户端。此外,基于浏览器的实现能够利用可用的硬件加速,无论其品牌或架构如何。GitHub:https://github.com/neuroneural/brainchop
https://github.com/neuroneural/brainchop
工具
TorchBench:在开发循环期间量化 PyTorch 性能
Xu Zhao,Will Constable,David Berard,Taylor Robie,Eric Han,Adnan Aziz
对于像 PyTorch 这样的机器学习框架来说,保持性能领先地位是一项挑战。现有的 AI 基准测试(如 MLPerf)是端到端的,因此需要大量数据集、大规模 GPU 集群和较长的基准测试时间。我们开发了 TorchBench,这是一种新颖的 AI 基准测试套件,它使用最少的数据输入、单个 GPU 和毫秒级的测试延迟来突出性能。TorchBench 现在已部署为 PyTorch 每晚发布流程的一部分,用于防止性能/正确性回归,并在 SOTA 机器学习模型上测试 PyTorch 的实验性功能。
工具
使用 OpenFold 将 AI 民主化,用于生物学
Gustaf Ahdritz,Sachin Kadyan,Will Gerecke,Luna Xia,Nazim Bouatta,Mohammed AlQuraishi
OpenFold 由哥伦比亚大学开发,是一个使用 PyTorch 实现的开源蛋白质结构预测模型。OpenFold 的目标是验证 DeepMind 的蛋白质结构预测模型 AlphaFold 2 是否可以从头开始复制,并在此基础上,使系统组件可供志趣相投的研究人员和学者使用,以便他们能够在其基础上进行构建。在这项研究中,Weights & Biases 用于加速 OpenFold 对 AlphaFold 2 的复制。W&B 的协作特性使见解能够从单个研究人员扩展到整个团队,并帮助解决了机器学习中的可重复性挑战。
工具