Hugging Face来源发布时间

你的模型是否运行在 AWS Trainium 上?查一查

在一份 上一篇, 我们推出了 TorchNeuron,即 AWS Trainium 的原生 PyTorch 后端( torch-neuronx 包)。借助它,Transformers 可以像在其他任何设备上一样,在 Trainium 上运行自己的建模代码,因此 Hub 上的任何 Transformers 模型都可能运行。

在一份 上一篇, 我们推出了 TorchNeuron,即 AWS Trainium 的原生 PyTorch 后端( torch-neuronx 包)。借助它,Transformers 可以像在其他任何设备上一样,在 Trainium 上运行自己的建模代码,因此 Hub 上的任何 Transformers 模型都可能运行。那么哪些模型实际上可以运行呢?

这个 torch-neuronx 模型支持 Space 为 Hub 上最受欢迎的模型解答了这个问题。它会告诉你某个模型能否在 Trainium 上不经修改直接运行,并提供你可以自己运行该模型的脚本。

查询模型

该 Space 打开时显示的是 Selected 视图:这是我们自己从 Hub 上按下载量和趋势分数挑选的热门模型中所做的选择。每一行都会给出运行结果、模型分片所使用的 Trainium 核心数量、运行的总耗时(包括编译)以及设备峰值内存。

要查询某个特定模型,请切换到 Trending 或 Downloads 视图,并输入其名称的一部分。这些视图遵循 Hub 自身的排名,一次显示一个任务,无论该模型是否经过测试。当某个模型被有意排除时,Space 会告诉你原因(大多数情况下是没有被优先安排,有时则是确实不兼容)。你还可以选择要查看的 Neuron 编译器(neuronx-cc)和 Transformers 的版本。

在撰写本文时,仅测试了 Transformers 模型,而且我们的选择仅限于 text-generation 和 image-text-to-text 模型。我们计划扩展到 diffusers、sentence transformers 以及其他 transformers 任务。

自己动手运行

选择一个模型即可查看如何运行它。该 Space 会列出该模型测试时所用的 Neuron 软件栈、需要额外安装的软件包,以及实际运行的 run.py 脚本。该脚本遵循 TorchNeuron 公告中的方案:先使用 from_pretrained加载模型,并在需要时进行分片,然后使用静态缓存和 torch.compile(backend="neuron").

进行生成。在配备了该软件栈的 Trainium2(trn2)实例上,例如在 AWS Neuron Deep Learning Container中,安装这些软件包,然后运行:

python3 run.py

不需要 torchrun:脚本会自行启动 torch.distributed 个排名,当模型被分片时。

首次运行首先会编译模型的计算图。要跳过这一步,可从公开的 NEFF 缓存 存储桶中复制测试期间同一编译器构建的计算图。该 Space 提供了带有正确编译器版本的命令:

hf buckets sync hf://buckets/aws-neuron/torch-neuronx-neff-cache/neuronxcc-<version> /tmp/neff_cache

“运行”意味着什么

每个测试都在一个 trn2 实例上加载模型,将其分片到能容纳其权重的最少 Trainium 核心数上。大多数模型使用张量并行进行分片。没有张量并行计划的混合专家模型仅使用专家并行。然后测试生成 32 个 token 并进行检查。在单个核心上,这些 token 会与同一检查点的 CPU 运行结果进行比较。当模型被分片时,一个小型评判模型会检查文本是否为流畅的英语。

在撰写本文时,仅测试能容纳在 4 个 Trainium2 设备上的模型,即最多 16 个核心。通过测试 PASS 并不能说明吞吐量或更长生成的情况。

结果是一个数据集

该 Space 显示的一切都来自公开的 aws-neuron/torch-neuronx-model-support 数据集,每对 neuronx-cc 和库版本对应一个 Parquet 文件。

每一行包含一个模型的结果、失败时的错误信息、整个技术栈的版本以及运行它的 run.py 。你可以直接查询它:

import pandas as pd

df = pd.read_parquet("hf://datasets/aws-neuron/torch-neuronx-model-support/data")
df[df.model_id == "Qwen/Qwen3-0.6B"][["neuronx_cc", "library", "library_version", "neuron_cores", "result"]]

该 数据集卡片 给出了每种结果的确切含义。

下次你想知道某个模型能否在 Trainium 上运行时, 去查一查.

原始出处

Hugging Face

内容说明

原始发布及相关权利归来源方。

机器翻译 · 请以原文为准