Skip to content

Latest commit

 

History

History
59 lines (34 loc) · 1.76 KB

3.14-3.27.md

File metadata and controls

59 lines (34 loc) · 1.76 KB

简介

2021.3.27 dyy

经过两周的时间,实现了3.13交流的两个想法,并对想法作了一些细化。

  • value输入模型
  • 基于主外键的loss策略

value输入模型

改动的代码

duorat/preproc/utils.py

最大最小value的计算,基于SQL的ORDER BY排序,value加入column_name中

configs/duorat/duorat-bertlarge.jsonnet

model.encoder.initial_encoder.use_segments: True,将此参数设为True, 一个column过一次BERT,避免column过长被掩盖

目前的效果

能跑通,设use_segments为True后,单卡一次实验从2天变到5天,效果能到60+,是否能到70+还不清楚

基于主外键的loss策略

改动的代码

duorat/types.py

TableToken加入保存主外键,DuoRATDecoderItem加入Enhance_key_join_mask,DuoRATDecoderBatch加入Enhace_key_join_mask

duorat/preproc/tokens.py

TableToken生成的两个地方加入主外键信息

duorat/preproc/target.py

新建类EnhanceKeyJoinMaskBuilder,其中有Enhance_key_join_mask的生成逻辑,检测from生成表作标记,第一个表照搬答案,后续表与前一个表有主外键关系,要么你引用我要么我引用你。

duorat/preproc/duorat.py

预处理主流程中加入EnhanceKeyJoinMaskBuilder,最后把生成的EnhanceKeyJoinMask加到DuoRATDecoderItem和DuoRATDecoderBatch中

duorat/models/duorat.py

在loss计算中根据EnhanceKeyJoinMask计算一份loss,和copy_loss,gen_loss一起堆叠生成overall_loss

目前的效果

能跑通,打印loss在训练过程中正常,但还没实验

enhance_link

改动的代码

duorat/utils/schema_linker.py

上次的bug修复了一下,改动很小,对相似度为None的时候加了一句判断

目前的效果

还没试