赛题名称:谷歌AI模型运行时间预测 赛题类型:深度学习、TPU 赛题链接👇:
https://www.kaggle.com/competitions/predict-ai-model-runtime/overview
Alice是一个人工智能模型开发者,但她的团队开发的一些模型运行速度非常慢。最近,她发现编译器的配置可以改变编译器编译和优化模型的方式,从而使模型运行速度更快(或更慢)!你的任务是帮助Alice找到每个模型的最佳配置。
比赛目标:根据训练数据集中提供的运行时数据,训练一个机器学习模型,并进一步预测测试数据集中图形和配置的运行时。
关于AI编译器的一些技术背景将有助于你入门!一个AI模型可以表示为一个图,其中一个节点是张量操作(例如矩阵乘法、卷积等),一条边表示一个张量。编译配置控制编译器如何为特定的优化传递来变换图。具体来说,Alice可以控制两种类型的配置/优化:
布局配置 控制图中张量在物理内存中的布局,通过指定每个操作节点的输入和输出的维度顺序。 块配置 控制融合子图的块大小。
能够预测给定图形的最佳配置不仅有助于Alice的团队,还可以改进编译器选择最佳配置的启发式算法,无需人工干预。这将使AI模型更有效地运行,总体上消耗更少的时间和资源!
在这个竞赛中,你的目标是根据训练数据集中提供的运行时数据训练一个机器学习模型,并进一步预测测试数据集中图形和配置的运行时。
我们的数据集名为TpuGraphs,是关于在张量处理单元(TPUs)v3上运行的XLA HLO图的性能预测数据集。总共有5个数据集合:layout:xla:random
、layout:xla:default
、layout:nlp:random
、layout:nlp:default
和 tile:xla
。最终得分将是所有集合的平均值。要下载整个数据集并查看更多信息,你可以转到数据选项卡。
我们提供了基线模型以及一个已准备好的训练设置,供你开始使用,网址是:https://github.com/google-research-datasets/tpu_graphs。请参考我们的数据集论文以获取有关基线模型的详细信息。
根据实际需求,我们使用两个评估指标,并对它们求平均。
具体来说,对于集合 tile:xla
,我们使用 (1-slowdown)
指标来反映模型预测的前K个配置相对于实际最快配置的速度减慢程度,计算方法如下:
其中,K 是前K个预测,A 是来自数据集集合的给定图形的所有配置,y 是测量的执行时间。
对于集合 layout:*
,我们使用 Kendall Tau 相关性作为评估指标(一种排名度量:您的模型预测的排名与实际运行时间排名的匹配程度)。
选择这些指标的原因如下。对于 tile 大小的搜索空间,由于可能性相对较小,可以列举所有可能性,并在每个可能性上调用模型,然后选择模型建议的最佳几个(这里是5个)配置,针对每个配置编译,然后测量每个配置的运行时间并提交最佳结果。另一方面,对于 layout:*
集合,搜索空间相当大。因此,常见的搜索策略,如遗传算法、模拟退火和朗格温动力学,需要访问一个适应度/效用函数(可以是您的模型)。因此,模型能够很好地保持配置的顺序(从最快到最慢)非常重要。
您的提交必须是一个带有标题 ID,TopConfigs
的 csv
文件。每个 npz/**/test/*.npz
文件(参见数据)必须在 csv
文件中有一行。
ID 是 {collection}:{test_filename_without_extension}
,其中 collection 是以下之一:tile:xla
、layout:xla:random
、layout:xla:default
、layout:nlp:random
和layout:nlp:default
。TopConfigs 应列出根据您的模型预测,从最快(运行时间最短)到最慢(运行时间最长)的配置的索引,用分号分隔。 对于 tile:xla
集合,只有前5个条目将被考虑,其余将被忽略。对于 layout:*
集合,将考虑所有条目(您应该输出配置数量的排列)。有关示例提交文件,请从数据选项卡下载 sample_submission.csv
。
(推荐)从此页面下载。请下载 npz_all
zip文件(在此页面底部滚动,右侧找到"Data Explorer",点击npz_all
目录,然后点击"Data Explorer"面板左侧的下载图标。然后将此文件解压缩到路径~/data/tpugraphs
。您可以从tensorflow.org下载数据集。您可以按照我们的GitHub存储库上的说明进行下载,或者运行 curl https://raw.githubusercontent.com/google-research-datasets/tpu_graphs/main/echo_download_commands.py | python | bash
命令,该命令会自动下载到~/data/tpugraphs
目录。
在上述任何选项之后,您的最终数据路径应该包含~/data/tpugraphs/npz/layout
和~/data/tpugraphs/npz/tile
。默认情况下,训练脚本(请参阅GitHub存储库)从~/data/tpugraphs
读取数据,但您可以在train_lib.py或layout集合的训练器中覆盖标志--data_root
。
一旦您已经下载了数据集(例如,到~/data/tpugraphs
,这是训练代码的默认路径),并解压缩它,您将获得以下目录结构。
npz/tile/xla/{train, valid, test}/*.npz
:包含瓦片集合的.npz
文件。npz/layout/{nlp, xla}/{random, default}/{train, valid, test}/*.npz
:包含布局集合的.npz
文件。
参赛者的任务是使用训练数据集中提供的运行时数据,训练一个机器学习模型,以便在测试数据集中预测给定图形和配置的运行时。
比赛提供了两个不同集合的数据,其中一个集合是关于瓦片(tile)配置的,另一个集合是关于布局(layout)配置的。
比赛要求参赛者根据模型的预测,选择每个图形的最佳配置,以实现最短的运行时间。因此赛题可以考虑传统的数据挖掘思路,也可以考虑组合优化的思路。
# 竞赛交流群 邀请函 #
每天大模型、算法竞赛、干货资讯

内容中包含的图片若涉及版权问题,请及时与我们联系删除
评论
沙发等你来抢