返回列表

3rd place solution write-up

581. Google - Fast or Slow? Predict AI Model Runtime | predict-ai-model-runtime

开始: 2023-08-29 结束: 2023-11-17 基础软件 数据算法赛
第三名解决方案分享

第三名解决方案分享

作者:Janis
发布日期:2023-11-19
排名:第3名

首先,感谢主办方举办这次比赛。这是我第一次参加Kaggle竞赛,一时兴起就报名了,因为当时有些空闲时间。整个过程既充满乐趣又令人沮丧(乐趣+挫折)。看到其他队伍出色的解决方案,我觉得能取得这样的排名非常幸运!

编辑:在整理代码后,我注意到之前遗漏了一些内容,现已补充完善。代码已发布于 GitHub

概述

我的解决方案主要分为三个部分:基础特征提取与工程、图结构处理(如剪枝)以及图神经网络(GNN)训练。GNN层基于GPS层构建,使用了SAGE卷积、Linformer和可学习的位置编码RWPE。以下内容主要针对布局数据集,平铺数据集的解决方案在最后简要说明。

输入特征

我使用了所有140个输入特征,并采用对数变换(先将每个特征值平移确保大于1)。此外,我从协议缓冲区中提取了以下特征:

  • has_dynamic_com:表示图是否包含动态计算的标志位
  • is_root_of_com:表示节点是否为计算输出节点的标志位
  • indices_are_sorted:一个我不确定为何添加的标志位(注:可能是冗余特征)
  • 针对dot操作,提取了:
    • lhs_contracting_dimensionsrhs_contracting_dimensions
    • lhs_batch_dimensionsrhs_batch_dimensions
    这些整数序列被填充至长度3,共12个特征
  • 针对gather操作,提取了:
    • 填充至长度3的整数序列:offset_dimscollapsed_slice_dimsstart_index_map
    • 单个整数:index_vector_dim
    • 填充至长度5的序列:gather_slice_sizes

填充长度基于数据集中的最大序列长度确定,填充值统一为-1。这些特征中部分在图剪枝后可能失效,但仍保留在输入中。

此外,我还从协议缓冲区中提取了dotconv操作的两个输入参数的6D形状(确保顺序一致,如dot操作的lhs/rhs),并计算了形状的和与积,增加了16维特征。这样做是为了帮助网络理解操作中输入的顺序和约减维度。

对于30维特征,我进行了两种处理:先用模128运算((x % 128)/128),再用整数除法((x // 128)/10)并归一化。目的是帮助网络处理张量维度并与TPU的寄存器大小关联。

OP代码嵌入与位置编码

OP代码使用128维嵌入向量。位置编码采用论文中描述的RWPE方法:使用有向邻接矩阵生成16维PE,无向邻接矩阵生成112维PE,总计128维特征。编码始终基于完整图计算,独立于训练时的图剪枝策略。

图结构修改

我尝试了三种剪枝/池化策略:

  • 策略1:仅保留可配置节点及其连接,相当于训练MLP模型
  • 策略2:保留可配置节点及其输入/输出节点
  • 策略3:合并非关键节点(除可配置节点及其输入/输出外)。当两个节点存在连接且均不属于关键节点时进行合并,直到无法继续合并。合并后的节点使用特殊OP代码,其特征设为零

此外,我添加了虚拟输出节点,连接所有产生输出的节点。

图神经网络架构

GNN由SAGE卷积和Linformer组成(架构图如下)。SAGE卷积对输入/输出节点使用不同权重,消息维度为输入维度的一半。Linformer维度设为128(部分实验使用256)。采用SiLU激活函数和多层归一化。

网络架构图

使用Adam优化器和余弦退火学习率调度。尝试的批量大小:8/16/32,配置数:5/8/10,采用成对 hinge-loss。先在全部数据集上联合训练,再针对各数据集微调。

由于时间限制,合并节点策略仅在最后实现,且仅在xla:default数据集上训练(取得了最佳交叉验证效果)。最终提交方案:

  • xla:randomnlp 数据集:使用策略2训练的网络
  • xla:default 数据集:使用策略3训练的网络

平铺网络方案

平铺数据集采用简易GNN:5层SAGE卷积,无额外特征和位置编码。

其他尝试

以下尝试未取得持续的正向效果或未能充分验证:

  • 节点丢弃与测试时数据增强
  • 使用完整图结构(未剪枝)
  • 用Transformer替代Linformer(内存限制)
  • 自定义的注意力机制(结合配置与特征)
同比赛其他方案