Hugging Face上线Trainium模型支持查询空间,可查模型是否能在AWS芯片上原样运行
该Space由Hugging Face博客介绍,覆盖Hub上按下载量和趋势排名靠前的文本生成与图像文本转文本Transformers模型,显示测试结果、分片核数、运行耗时和峰值显存,并给出可复现的运行脚本。作者说明,PASS不代表吞吐量或更长生成的表现。
AI解读:这个查询工具解决的是一个具体问题:Transformers模型在Hub上数量庞大,但“能在Trainium上跑”需要逐个验证。Space对所选模型给出是否原样运行的结果,并附上实际使用的运行脚本,读者可以据此判断自己的目标模型是否已被测试、在什么软件栈下测试。
适用范围有明确边界。规划中的diffusers、sentence transformers等其他任务尚未覆盖。
“能跑”的判定标准较窄:在trn2实例上按能容纳权重的最少核数分片,生成 32 个token并校验;单核时与同一checkpoint的CPU运行结果对比,分片时由一个小型评判模型检查文本是否为流利英文。作者明确说明,PASS不涉及吞吐量,也不代表更长生成的质量。
结果以公开数据集aws-neuron/torch-neuronx-model-support发布,每对neuronx-cc与库版本对应一个Parquet文件,记录结果、失败时的错误、完整栈版本和所用run.py,读者可直接用pandas查询,不必依赖页面展示。
对未收录的模型,Space会说明原因:多数是未被优先安排测试,少数是确实不兼容。结果页还允许切换Neuron编译器和Transformers的版本,因此同一模型在不同版本下的结论可能不同,查询时需留意所选版本。
Hugging Face博客介绍了一个名为torch-neuronx模型支持的Space,用于查询Hub上的模型能否在AWS Trainium上不经修改运行。该工具覆盖按下载量和趋势分数挑选的热门模型,并给出运行脚本。
Space默认打开Selected视图,展示团队挑选的模型;用户可切换到Trending或Downloads视图,按Hub自身排名逐个任务查找,输入模型名的一部分即可检索。每行显示测试结果、模型分片所用的Trainium核数、包含编译在内的实际耗时,以及峰值设备内存。
作者说明,目前只测试Transformers模型,范围限于文本生成和图像文本转文本;计划扩展到diffusers、sentence transformers及其他Transformers任务。测试仅覆盖能放进 4 台Trainium2设备、即最多 16 核的模型。
“能跑”的判定方式与边界
按照博客的描述,每项测试在trn2实例上加载模型,按能容纳其权重的最少核数分片,多数模型采用张量并行;没有张量并行方案的混合专家模型只使用专家并行。随后生成 32 个token并校验。
单核运行时,生成的token与同一checkpoint的CPU运行结果对比;模型被分片时,改由一个小型评判模型检查文本是否为流利英文。作者明确指出,PASS不说明吞吐量,也不说明更长生成的表现。
复现运行与结果数据
选中模型后,Space列出测试所用的Neuron软件栈、需要额外安装的包,以及实际执行的run.py。脚本按TorchNeuron公告中的做法:用from_pretrained加载模型,按需分片,再用静态缓存和torch.compile(backend="neuron") 生成;分片时脚本自行启动torch.distributed ranks,无需torchrun。
首次运行会编译模型计算图。Space提供命令,可从公开的NEFF缓存桶同步同一编译器版本生成的图,以跳过编译。
页面展示的全部内容来自公开数据集aws-neuron/torch-neuronx-model-support,每对neuronx-cc与库版本对应一个Parquet文件,行内包含结果、失败时的错误、完整软件栈版本和run.py。数据集卡片给出每种结果的确切含义。
对于被有意排除的模型,Space会给出原因:多数是未被优先安排,少数是确实不兼容。用户还可切换neuronx-cc与Transformers的版本查看不同结果。