科大讯飞大赛 事件抽取挑战赛冠军分享


[TOC]

🔗原文链接:https://mp.weixin.qq.com/s/WXWD7fmitaFHfUAv1mNLPA

🔗赛题链接:http://challenge.xfyun.cn/topic/info?type=hotspot

🔗Github仓库链接:https://github.com/WuHuRestaurant/xf_event_extraction2020Top1

赛题介绍📃

赛题背景

事件抽取将非结构化文本中的事件信息展现为结构化形式,在舆情监测、文本摘要、自动问答、事理图谱自动构建等领域有着重要应用。在真实新闻中,由于文本中可能存在句式复杂,主被动转换,多事件主客体共享等难点,因此“事件抽取”是一项极具挑战的抽取任务。

赛事任务

本赛事任务旨在从通用新闻文本中抽取事件触发词、事件论元以及事件属性。在传统的事件定义中,事件由事件触发词(Trigger) 和描述事件结构的元素 (Argument)构成。事件触发词标识着事件的发生。事件论元为事件主体(Subject)、客体(Object)、时间(Time)、地点(Location)等,是表达事件重要信息的载体。

事件属性包括事件极性(Polarity)、时态(Tense),是衡量事件是否真实发生的重要依据。通过极性,事件分为肯定、否定、可能事件。通过时态,事件分为过去发生的事件、现在正在发生的事件、将要发生的事件以及其他无法确定时态的事件。

本赛事任务一为初赛任务,任务二为复赛任务,在任务一的基础上增加了事件属性识别。为了模拟真实场景,数据中包含了非实际发生的事件。

  • 任务一:事件触发词及论元抽取

该任务旨在从文本中抽取标识事件发生的触发词和论元,触发词往往为动词和名词。触发词对应的事件论元,主要为主体、客体、时间、地点,其中主体为必备论元。

  • 任务二:事件属性抽取

该任务旨在从文本中抽取表达事件发生状态的属性,包括极性、时态。极性分为:肯定、否定、可能;时态分为:过去、现在、将来、其他。

评审规则

  1. 初赛数据说明:本次比赛初赛为参赛选手提供了6958条中文句子,及其9644条提取结果(存在一对多的情况)。
  2. 复赛数据说明:本次比赛复赛为参赛选手提供了3335条中文句子,及其3384条提取结果(存在一对多的情况):
  3. 评价指标:本模型依据提交的结果文件,采用F值进行评价。

冠军思路👑

将任务分割为触发词抽取论元抽取属性抽取。具体而言是论元和属性的抽取结果依赖于触发词,因此只有一步误差传播。

time&loc 并非每个句子中都存在,并且分布较为稀疏,因此将 time & locsub & obj 的抽取分开(role1 提取 sub & obj;role2 提取 time & loc)

具体的数值如下:

模型先进行触发词提取,由于复赛数据集的特殊性,模型限制抽取的事件仅有一个,如果抽取出多个触发词,选择 logits 最大的 trigger 作为该句子的触发词,如果没有抽取触发词,筛选整个句子的 logits,取 argmax 来获取触发词;

然后根据触发词抽取模型抽取的触发词,分别输入到 role1 & role2 & attribution 模型中,进行后序的论元提取和属性分类;

四种模型都是基于 Roberta-wwm 进行实验,加入了不同的特征。最后将识别的结果进行整合,得到提交文件。

pipeline 思路

注意:

  • 输入的数据是复赛数据而不是初赛数据,这份开源代码中只考虑复赛任务,而不考虑初赛任务。但是由于复赛任务是在初赛任务上增加了属性抽取模块,所以复赛任务包含了初赛任务。唯一不同的是复赛和初赛的数据集不一样,而且在这份开源代码中,复赛任务也使用了初赛的数据进行数据增强!

触发词提取模块

trigger 提取采用的特征是远程监督 trigger,把所有标注数据当做一个知识库,对当前文本进行匹配。

注:

  • train时,需要排除自身的label,我们采用的是K-Fold的训练集 distant trigger 构造,即将训练集分成K份,用前K-1份的所有label当做后一份的知识库,构造训练数据的distant trigger;
  • test 时候采用所有 trigger。

在测试时若出现预测为空,选取 distant trigger logits 最大的解码输出 trigger。

具体模型如下:

论元提取模块

role 采用的特征是trigger的相对距离,然后采用了苏神的 Conditional Layer Norm 来让整个句子融入 trigger 信息,同样采用 Span 解码的方式。

由于数据中 subject/object 分布相似,同时与 time/loc 分布相差很大,我们进一步进行了优化,将前两者和后两者的抽取分开,防止 time/loc 的数据对 subject/object 的 logits 稀疏化。

attribution分类器

attribution 分类器并没有进行特殊优化,采用了一个动态窗口的方法,我们认为某一 trigger 的 tense & polarity 只与其附近的语境有关。

因此我们设定了一个窗口,对该窗口内进行 pooling 操作,然后利用 pooling 后的 logits 进行多任务学习,同时分类出 tense 和 polarity。因属性数据类别不均及其严重,最后我们用 ERNIE 模型做了一个10折交叉验证,有较大的提升。

方案优化✅

触发词提取优化

  • 初始方案:采用BERT-CRF的方式对触发词进行提取;

  • 缺点:存在5%的句子会出现解码为空的现象,导致误差传播极大;

  • 解决方案:

    1. 舍弃CRF结构,采用指针式解码的方案,并利用前面提到的标注数据中的 trigger字典。如果未解码出trigger,则比较句子中匹配知识库的所有distant trigger 的 start + end logits,选取最大的一个作为解码出的 trigger;
    2. 观察复赛数据,发现绝大部分训练语料中仅有一个事件,故限制解码输出一个trigger,如果解码出多个trigger,选取 logits(应该是sum of start logits & end logits) 最大的那个trigger作为候选trigger。

论元提取优化

  • 初始方案:采用BERT-指针式解码的方式同时对 sub & obj & time & loc 进行抽取。

  • 缺点:sub & obj 与 time & loc 的分布差别很大,time & loc 样本数量很少,造成 logits 很稀疏,降低了所有 role 的 recall。

  • 改进方案:

  1. 将 time & loc 和 subject & object 的提取分开,采用两个独立的模型进行提取。

  2. time & loc 的抽取采用CRF,同时随机丢弃70%的负样本,使正负样本均衡。

属性分类优化

这个问题已经不像前面一样是Sequence Labeling的,这里显然是一个分类问题!整个句子输出一个标签。

  • 初始方案:BERT + 两个分类器

  • 难点:属性分类中的两个属性出现了严重的类别不均。

  • 改进方案:

    1. 观察数据样本发现,能决定事件属性的词大多存在触发词左右,故舍弃CLS中的全局特征,采用trigger左右两端动态池化特征作为全局特征;
    2. 由于样本类别不均极其严重,尝试很多增强方式都无效,故采用10折交叉验证的方法来提升模型的泛化性能

数据增强💎

数据增强(Data Augmentation)是NLP任务中常见的一种手段,用于缓解标注数据集少的问题。

本次比赛主要的上分点在于数据增强的工作,初赛和复赛数据的分布差别极大,一起训练反而会导致结果下降。

因此我们做了一个初赛数据筛选的工作,筛选出与复赛数据分布相近的数据进行增量训练。主要流程详见PPT中基于标签验证的数据增强部分

undefined

  1. 使用复赛train set作为input,训练Trigger/Role Extract Model得到Base Model;
  2. 将初赛的train set作为input,输入到Base Model中,得到经过Base Model预测后的trigger/role;
  3. 对比Base Model的预测结果和初赛数据的原为label,筛选出与复赛数据分布相近的数据
  4. 使用【复赛train set + 筛选后的初赛train set】作为input,训练Trigger/Role Extract Model得到Base Model得到Final Model。

触发词增强

上图表示的是src_final/preprocess/convert_raw_data.py中的split_preliminary_trigger_data()函数的执行流程。

论元增强

上图表示的是src_final/preprocess/convert_raw_data.py中的split_preliminary_role_data()函数的执行流程。

项目运行主要环境🔨

运行系统:

Ubuntu 18.04.4
python3.7

python 运行环境,可以通过以下代码完成依赖包安装:

pip install -r requirements.txt
transformers==2.10.0
pytorch_crf==0.7.2
numpy==1.16.4
torch==1.5.1+cu101
tqdm==4.46.1
scikit_learn==0.23.2
torchcrf==1.1.0

CUDA:

CUDA Version: 10.2  Driver 440.100 GPU:Tesla V100 (32G) * 2

项目目录说明

xf_ee
├── data                                    # 数据文件夹
│   ├── final                               # 复赛数据(处理过的)
│   │   ├── mid_data                        # 中间数据 (词典等)
│   │   ├── preliminary_clean               # 清洗后的初赛数据
│   │   └── raw_data                        # 复赛经过初步清洗后的 raw_data
│   └── preliminary                         # 初赛数据(略)
│
├── out                                     # 存放训练的模型
│   ├── final                               # 复赛各个单模型(trigger/role/attribution)
│   └── stack                               # 十折交叉验证的 attribution 模型
│
├── script/final                            # 放训练 / 评估 / 测试 的脚本
│   ├── train.sh                            
│   ├── dev.sh                     
│   └── test.sh                
│
├── src_final
│   ├── features_analysis                   # 数据分析
│   │   └── images                          # 分析时画得一些图 
│   ├── preprocess                       
│   │   ├── convert_raw_data.py             # 处理转换原始数据
│   │   ├── convert_raw_data_preliminary.py     # 转换初赛数据为复赛格式并处理
│   │   └── processor.py                    # 转换数据为 Bert 模型的输入
│   ├── utils                      
│   │   ├── attack_train_utils.py           # 对抗训练 FGM / PGD
│   │   ├── dataset_utils.py                # torch Dataset
│   │   ├── evaluator.py                    # 模型评估
│   │   ├── functions_utils.py              # 跨文件调用的一些 functions
│   │   ├── model_utils.py                  # 四个任务的 models
│   │   ├── options.py                      # 命令行参数
│   |   └── trainer.py                      # 训练器
|
├── 答辩PPT                                 # 决赛PPT
├── dev.py                                  # 用于模型评估
├── ensemble_predict.py                     # 用百度 ERNIE 模型对 attribution 十折交叉验证
├── predict_preliminary.py                  # 对初赛数据进行清洗
├── readme.md                               # ...
├── test.py                                 # pipeline 预测复赛数据 (包含 ensemble)
└── train.py                                # 模型训练

使用说明

数据转换

数据转换部分只提供代码已经转换好的数据,具体操作在 src_final/preprocess 中的 convert_raw_data()中,包含对初赛/复赛数据的清洗和转换。

训练阶段

bash ./script/final/train.sh

注:脚本中指定的 BERT_DIR 指BERT所在文件夹,BERT采用的是哈工大的全词覆盖wwm模型,下载地址 https://github.com/ymcui/Chinese-BERT-wwm ,自行下载并制定对应文件夹,并将 vocab.txt 中的两个 unused 改成 [INV] 和 [BLANK](详见 processor 代码中的fine_grade_tokenize

如果设备显存不够,自行调整 train_batch_size,脚本中的 batch_size(32)在上述环境中占用显存为16G

最终训练的结果是每一个 epoch 下存一次,线下评估结果在 eval_metric.txt 下,保留最优线下结果作为训练结果,其余删掉即可

可更改的公共参数有

lr: bert 模块的学习率
other_lr: 除了bert模块外的其他学习率(差分学习率)
weight_decay:...
attack_train: 'pgd' / 'fgm' / '' 对抗训练 fgm 训练速度慢一倍, pgd 慢两倍,但是效果都有提升
swa_start: 滑动权重平均开始的epoch

trigger提取模型训练 (TASK_TYPE=“trigger”)

可更改的参数有

use_distant_trigger: 是否使用复赛数据构造的远程监督库中的 trigger 信息

由于解决方案使用的是Ubuntu系统,但是我只有Windows系统,因此在执行上需要改动一下。

Windows下的命令操作:

python train.py \
--gpu_ids="0" \
--mode="train" \
--raw_data_dir="./data/final/raw_data" \
--mid_data_dir="./data/final/mid_data" \
--aux_data_dir="./data/final/preliminary_clean" \
--bert_dir="../bert/torch_roberta_wwm" \
--output_dir="./out" \
--bert_type="roberta_wwm" \
--task_type="trigger" \
--max_seq_len=320  \
--train_epochs=6 \
--train_batch_size=1 \
--lr=2e-5 \
--other_lr=2e-4 \
--attack_train="pgd" \
--swa_start=4 \
--eval_model \
--enhance_data \
--use_distant_trigger

但是,为了方便起见,我就直接在./train.py__main__函数中修改参数值了,代码如下:

args.gpu_ids = "0"
args.mode = "train"
args.raw_data_dir = "./data/final/raw_data"
args.mid_data_dir = "./data/final/mid_data"
args.aux_data_dir = "./data/final/preliminary_clean"
args.bert_dir = "../bert/torch_roberta_wwm"
args.output_dir = "./out"
args.bert_type = "roberta_wwm"
args.task_type = "trigger"
args.max_seq_len = 320
args.train_epochs = 6
args.train_batch_size = 1
args.lr = 2e-5
args.other_lr = 2e-4
args.attack_train = "pgd"
args.swa_start = 4
args.eval_model = True
args.enhance_data = True
args.use_distant_trigger = True

role 提取模型训练 (TASK_TYPE=“role1/role2”)

可更改的参数有

use_trigger_distance: 是否使用句子中的其他词到 trigger 的距离这一个特征

attribution 分类模型训练 (TASK_TYPE=“attribution”)

未使用其他特征

MODE=“stack” 时候对 attribution 任务进行十折交叉验证,换用百度 ERNIE1.0 模型作为预训练模型

验证阶段

bash ./script/final/dev.sh

主要的参数有三个:

  • TASK_TYPE:需要验证任务的 type
  • start/end threshold :trigger / role1 model 需要进行调整的阈值
  • dev_dir: 需要验证的模型的文件夹

测试阶段

bash ./script/final/test.sh

利用训练最优的四个单模型进行 pipeline 式的预测 sentences.json 文件,获取最终的 submit 文件,

其中 submit_{version},json 为四个单模型的结果, submit_{version}ensemble,json 为单模型 + attribution 交叉验证后的结果。

四个任务 model 的上级文件夹必须指定,同时文件夹名称应包含模型的参数特征。

  • trigger_ckpt_dir: trigger 所在的文件夹
  • role1_ckpt_dir: role1 所在的文件夹
  • role2_ckpt_dir: role2 所在的文件夹
  • attribution_ckpt_dir: attribution所在的文件夹

测试效果

classification score
submit_v1.json 0.73684
submit_v1_ensemble.json 0.73859

各阶段提升

数据增强

在我们的训练过程中,实际使用了组委会提供的初赛(经过清洗和转换)+复赛数据进行训练,在项目内部提供了清洗完毕的初赛数据;

具体清洗流程如下所示:

  • 只使用复赛数据train得到trigger抽取模型和role1抽取模型(需指定model的上级文件夹)

    trigger_simple_ckpt_dir:单独复赛数据train trigger 所在的文件夹

    role1_simple_ckpt_dir:单独复赛数据train role1 所在的文件夹

  • 使用predict_prelimiary.py调用train好的trigger model 和role1 model 预测初赛数据的trigger和sub/ob

    python predict_preliminary.py --dev_dir_trigger trigger_simple_ckpt_dir  --dev_dir_role role1_simple_ckpt_dir
    
  • 运行src_final/preprocess下的convert_raw_data_preliminary.py

    python convert_raw_data_preliminary.py
    
  • 运行src_final/preprocess下的convert_raw_data.py即完成了初赛数据的清洗

    python convert_raw_data.py
    

需要学习的知识点

  1. 远程监督trigger

    这个好像没啥重要的,就是一个knowledge base的概念。

  2. NER中的span解码是什么意思?

  3. 数据增强

实操问题

运行脚本:

你说的是ipython下吧,%run python_file.py

整体思路框架

  1. 解析命令行参数
  2. 数据预处理
  3. train
  4. eval
  5. test

BERT问题

  1. 在BERT文件夹下,有一个vocab.txt,这个东西是什么?

    vocab.txt是BERT model的词典。我们知道BERT model的输入是a sequence of ID。既然是ID,那么肯定要事先有一个词汇表,建立词汇表中单词到ID的映射,这样在碰到新的句子时才能给句子中每个词匹配上对应的ID。同时,规定死词汇表,也是为了Word Embedding考虑。时刻记得BERT就是Contextualized Word Representation

  2. 承接上一个问题,vocab.txt里面有很多的[unused***],它们是做什么的?

    简单来说,就是如果你有自己想添加的新词汇,你就替换其中一个[unused***]就好了。

    Just replace the “[unusedX]” tokens with your vocabulary. Since these were not used they are effectively randomly initialized.

  3. 什么是WordPiece?

trigger提取阶段

TriggerFeature里面封装的数据:

控制台输出如下:

01/18/2021 14:01:28 - INFO - src_final.preprocess.processor -   *** train_example-0 ***
01/18/2021 14:01:28 - INFO - src_final.preprocess.processor -   text: 原 标 题 : 2 0 1 9 年 反 腐 败 “ 成 绩 单 ” 亮 眼 ● 从 数 据 上 看 , 2 0 1 9 年 的 反 腐 败 成 绩 单 引 人 注 目 , 反 映 了 当 前 反 腐 败 力 度 仍 然 没 有 放 松 、 反 腐 败 工 作 仍 然 按 照 既 定 目 标 推 进 、 高 压 反 腐 态 势 仍 然 保 持 , 由 此 查 处 的 中 管 干 部 、 省 管 干 部 这 些 “ 关 键 少 数 ” 干 部 数 量 仍 然 保 持 高 位 并 呈 现 增 长 态 势 ● 2 0 1 9 年 反 腐 败 主 要 呈 现 三 个 方 面 的 特 点 : 一 是 精 准 反 腐 ; 二 是 强 化 标 本 兼 治 ; 三 是 深 化 基 层 反 腐 败 ● 中 央 针 对 全 面 从 严 治 党 和 党 风 廉 政 建 设 领 域 , 出 台 了 一 系 列 具 有 代 表 性 的 党 内 法 规 制 度 , 为 整 个 监 察 体 制 改 革 提 供 了 制 度 保 障 , 同 时 着 力 建 立 健 全 一 个 具 有 中 国 特 色 的 监 察 法 律 体 系 , 推 动 制 度 反 腐 、 法 治 防 腐 制 图 / 李 晓 军 2 0 1 9 年 1 2 月 2 6 日 1 4 时 3 0 分 , 中 央 纪 委 国 家 监 委 网 站 发 布 了 年 度 最 新 一 条 执 纪 审 查 消 息 , “ 呼 和 浩 特 职 业 学 院 原 党 委 副 书 记 、 院 长 李 怀 柱 接 受 纪 律 审 查 和 监 察 调 查 ”
01/18/2021 14:01:28 - INFO - src_final.preprocess.processor -   token_ids: [101, 1333, 3403, 7579, 8038, 123, 121, 122, 130, 2399, 1353, 5576, 6571, 100, 2768, 5327, 1296, 100, 778, 4706, 474, 794, 3144, 2945, 677, 4692, 8024, 123, 121, 122, 130, 2399, 4638, 1353, 5576, 6571, 2768, 5327, 1296, 2471, 782, 3800, 4680, 8024, 1353, 3216, 749, 2496, 1184, 1353, 5576, 6571, 1213, 2428, 793, 4197, 3766, 3300, 3123, 3351, 510, 1353, 5576, 6571, 2339, 868, 793, 4197, 2902, 4212, 3188, 2137, 4680, 3403, 2972, 6822, 510, 7770, 1327, 1353, 5576, 2578, 1232, 793, 4197, 924, 2898, 8024, 4507, 3634, 3389, 1905, 4638, 704, 5052, 2397, 6956, 510, 4689, 5052, 2397, 6956, 6821, 763, 100, 1068, 7241, 2208, 3144, 100, 2397, 6956, 3144, 7030, 793, 4197, 924, 2898, 7770, 855, 2400, 1439, 4385, 1872, 7270, 2578, 1232, 474, 123, 121, 122, 130, 2399, 1353, 5576, 6571, 712, 6206, 1439, 4385, 676, 702, 3175, 7481, 4638, 4294, 4157, 8038, 671, 3221, 5125, 1114, 1353, 5576, 8039, 753, 3221, 2487, 1265, 3403, 3315, 1076, 3780, 8039, 676, 3221, 3918, 1265, 1825, 2231, 1353, 5576, 6571, 474, 704, 1925, 7151, 2190, 1059, 7481, 794, 698, 3780, 1054, 1469, 1054, 7599, 2442, 3124, 2456, 6392, 7566, 1818, 8024, 1139, 1378, 749, 671, 5143, 1154, 1072, 3300, 807, 6134, 2595, 4638, 1054, 1079, 3791, 6226, 1169, 2428, 8024, 711, 3146, 702, 4664, 2175, 860, 1169, 3121, 7484, 2990, 897, 749, 1169, 2428, 924, 7397, 8024, 1398, 3198, 4708, 1213, 2456, 4989, 978, 1059, 671, 702, 1072, 3300, 704, 1744, 4294, 5682, 4638, 4664, 2175, 3791, 2526, 860, 5143, 8024, 2972, 1220, 1169, 2428, 1353, 5576, 510, 3791, 3780, 7344, 5576, 1169, 1745, 120, 3330, 3236, 1092, 123, 121, 122, 130, 2399, 122, 123, 3299, 123, 127, 3189, 122, 125, 3198, 124, 121, 1146, 8024, 704, 1925, 5279, 1999, 1744, 2157, 4664, 1999, 5381, 4991, 1355, 2357, 749, 2399, 2428, 3297, 3173, 671, 3340, 2809, 5279, 2144, 3389, 3867, 2622, 8024, 100, 1461, 1469, 3856, 102]
01/18/2021 14:01:28 - INFO - src_final.preprocess.processor -   attention_masks: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
01/18/2021 14:01:28 - INFO - src_final.preprocess.processor -   token_type_ids: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
01/18/2021 14:01:28 - INFO - src_final.preprocess.processor -   distant trigger: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
convert examples:   0%|          | 1/7045 [00:00<13:28,  8.71it/s]01/18/2021 14:01:28 - INFO - src_final.preprocess.processor -   *** train_example-1 ***
01/18/2021 14:01:28 - INFO - src_final.preprocess.processor -   text: 《 法 制 日 报 》 记 者 梳 理 中 央 纪 委 国 家 监 委 网 站 通 报 信 息 发 现 , 2 0 1 9 年 中 央 纪 委 国 家 监 委 网 站 审 查 调 查 栏 目 总 计 通 报 执 纪 审 查 中 管 干 部 2 0 人 、 省 管 干 部 4 0 8 人
01/18/2021 14:01:28 - INFO - src_final.preprocess.processor -   token_ids: [101, 517, 3791, 1169, 3189, 2845, 518, 6381, 5442, 3463, 4415, 704, 1925, 5279, 1999, 1744, 2157, 4664, 1999, 5381, 4991, 6858, 2845, 928, 2622, 1355, 4385, 8024, 123, 121, 122, 130, 2399, 704, 1925, 5279, 1999, 1744, 2157, 4664, 1999, 5381, 4991, 2144, 3389, 6444, 3389, 3408, 4680, 2600, 6369, 6858, 2845, 2809, 5279, 2144, 3389, 704, 5052, 2397, 6956, 123, 121, 782, 510, 4689, 5052, 2397, 6956, 125, 121, 129, 782, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
01/18/2021 14:01:28 - INFO - src_final.preprocess.processor -   attention_masks: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
01/18/2021 14:01:28 - INFO - src_final.preprocess.processor -   token_type_ids: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
01/18/2021 14:01:28 - INFO - src_final.preprocess.processor -   distant trigger: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
01/18/2021 14:01:28 - INFO - src_final.preprocess.processor -   *** train_example-2 ***
01/18/2021 14:01:28 - INFO - src_final.preprocess.processor -   text: 《 法 制 日 报 》 记 者 根 据 中 央 纪 委 国 家 监 委 网 站 审 查 调 查 栏 目 通 报 信 息 统 计 , 2 0 1 9 年 总 计 通 报 执 纪 审 查 中 管 干 部 2 0 人 , 与 此 前 两 年 持 平 ( 2 0 1 7 年 通 报 执 纪 审 查 中 管 干 部 1 8 人 , 2 0 1 8 年 则 是 2 3 人 )
01/18/2021 14:01:28 - INFO - src_final.preprocess.processor -   token_ids: [101, 517, 3791, 1169, 3189, 2845, 518, 6381, 5442, 3418, 2945, 704, 1925, 5279, 1999, 1744, 2157, 4664, 1999, 5381, 4991, 2144, 3389, 6444, 3389, 3408, 4680, 6858, 2845, 928, 2622, 5320, 6369, 8024, 123, 121, 122, 130, 2399, 2600, 6369, 6858, 2845, 2809, 5279, 2144, 3389, 704, 5052, 2397, 6956, 123, 121, 782, 8024, 680, 3634, 1184, 697, 2399, 2898, 2398, 8020, 123, 121, 122, 128, 2399, 6858, 2845, 2809, 5279, 2144, 3389, 704, 5052, 2397, 6956, 122, 129, 782, 8024, 123, 121, 122, 129, 2399, 1156, 3221, 123, 124, 782, 8021, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
01/18/2021 14:01:28 - INFO - src_final.preprocess.processor -   attention_masks: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
01/18/2021 14:01:28 - INFO - src_final.preprocess.processor -   token_type_ids: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
01/18/2021 14:01:28 - INFO - src_final.preprocess.processor -   distant trigger: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
convert examples: 100%|██████████| 7045/7045 [00:39<00:00, 180.27it/s]

role提取阶段

role1阶段,RoleFeature里面封装的数据:

01/21/2021 10:07:09 - INFO - src_final.preprocess.processor -   *** train_example-0 ***
01/21/2021 10:07:10 - INFO - src_final.preprocess.processor -   text: 原 标 题 : 2 0 1 9 年 反 腐 败 “ 成 绩 单 ” 亮 眼 ● 从 数 据 上 看 , 2 0 1 9 年 的 反 腐 败 成 绩 单 引 人 注 目 , 反 映 了 当 前 反 腐 败 力 度 仍 然 没 有 放 松 、 反 腐 败 工 作 仍 然 按 照 既 定 目 标 推 进 、 高 压 反 腐 态 势 仍 然 保 持 , 由 此 查 处 的 中 管 干 部 、 省 管 干 部 这 些 “ 关 键 少 数 ” 干 部 数 量 仍 然 保 持 高 位 并 呈 现 增 长 态 势 ● 2 0 1 9 年 反 腐 败 主 要 呈 现 三 个 方 面 的 特 点 : 一 是 精 准 反 腐 ; 二 是 强 化 标 本 兼 治 ; 三 是 深 化 基 层 反 腐 败 ● 中 央 针 对 全 面 从 严 治 党 和 党 风 廉 政 建 设 领 域 , 出 台 了 一 系 列 具 有 代 表 性 的 党 内 法 规 制 度 , 为 整 个 监 察 体 制 改 革 提 供 了 制 度 保 障 , 同 时 着 力 建 立 健 全 一 个 具 有 中 国 特 色 的 监 察 法 律 体 系 , 推 动 制 度 反 腐 、 法 治 防 腐 制 图 / 李 晓 军 2 0 1 9 年 1 2 月 2 6 日 1 4 时 3 0 分 , 中 央 纪 委 国 家 监 委 网 站 发 布 了 年 度 最 新 一 条 执 纪 审 查 消 息 , “ 呼 和 浩 特 职 业 学 院 原 党 委 副 书 记 、 院 长 李 怀 柱 接 受 纪 律 审 查 和 监 察 调 查 ”
01/21/2021 10:07:10 - INFO - src_final.preprocess.processor -   token_ids: [101, 1333, 3403, 7579, 8038, 123, 121, 122, 130, 2399, 1353, 5576, 6571, 100, 2768, 5327, 1296, 100, 778, 4706, 474, 794, 3144, 2945, 677, 4692, 8024, 123, 121, 122, 130, 2399, 4638, 1353, 5576, 6571, 2768, 5327, 1296, 2471, 782, 3800, 4680, 8024, 1353, 3216, 749, 2496, 1184, 1353, 5576, 6571, 1213, 2428, 793, 4197, 3766, 3300, 3123, 3351, 510, 1353, 5576, 6571, 2339, 868, 793, 4197, 2902, 4212, 3188, 2137, 4680, 3403, 2972, 6822, 510, 7770, 1327, 1353, 5576, 2578, 1232, 793, 4197, 924, 2898, 8024, 4507, 3634, 3389, 1905, 4638, 704, 5052, 2397, 6956, 510, 4689, 5052, 2397, 6956, 6821, 763, 100, 1068, 7241, 2208, 3144, 100, 2397, 6956, 3144, 7030, 793, 4197, 924, 2898, 7770, 855, 2400, 1439, 4385, 1872, 7270, 2578, 1232, 474, 123, 121, 122, 130, 2399, 1353, 5576, 6571, 712, 6206, 1439, 4385, 676, 702, 3175, 7481, 4638, 4294, 4157, 8038, 671, 3221, 5125, 1114, 1353, 5576, 8039, 753, 3221, 2487, 1265, 3403, 3315, 1076, 3780, 8039, 676, 3221, 3918, 1265, 1825, 2231, 1353, 5576, 6571, 474, 704, 1925, 7151, 2190, 1059, 7481, 794, 698, 3780, 1054, 1469, 1054, 7599, 2442, 3124, 2456, 6392, 7566, 1818, 8024, 1139, 1378, 749, 671, 5143, 1154, 1072, 3300, 807, 6134, 2595, 4638, 1054, 1079, 3791, 6226, 1169, 2428, 8024, 711, 3146, 702, 4664, 2175, 860, 1169, 3121, 7484, 2990, 897, 749, 1169, 2428, 924, 7397, 8024, 1398, 3198, 4708, 1213, 2456, 4989, 978, 1059, 671, 702, 1072, 3300, 704, 1744, 4294, 5682, 4638, 4664, 2175, 3791, 2526, 860, 5143, 8024, 2972, 1220, 1169, 2428, 1353, 5576, 510, 3791, 3780, 7344, 5576, 1169, 1745, 120, 3330, 3236, 1092, 123, 121, 122, 130, 2399, 122, 123, 3299, 123, 127, 3189, 122, 125, 3198, 124, 121, 1146, 8024, 704, 1925, 5279, 1999, 1744, 2157, 4664, 1999, 5381, 4991, 1355, 2357, 749, 2399, 2428, 3297, 3173, 671, 3340, 2809, 5279, 2144, 3389, 3867, 2622, 8024, 100, 1461, 1469, 3856, 102]
01/21/2021 10:07:11 - INFO - src_final.preprocess.processor -   attention_masks: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
01/21/2021 10:07:11 - INFO - src_final.preprocess.processor -   token_type_ids: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
01/21/2021 10:07:12 - INFO - src_final.preprocess.processor -   trigger location: [299, 300]

以下是训练过程中的描述:

01/21/2021 10:28:35 - INFO - src_final.utils.functions_utils -   Use single gpu in: ['0']
01/21/2021 10:29:06 - INFO - src_final.utils.trainer -   ***** Running training *****
01/21/2021 10:29:06 - INFO - src_final.utils.trainer -     Num Examples = 7416
01/21/2021 10:29:07 - INFO - src_final.utils.trainer -     Num Epochs = 1
01/21/2021 10:29:07 - INFO - src_final.utils.trainer -     Total training batch size = 2
01/21/2021 10:29:08 - INFO - src_final.utils.trainer -     Total optimization steps = 3708

role的验证如何进行?

跟trigger的验证差不多。


role2阶段,RoleFeature里面封装的数据:

01/21/2021 15:53:09 - INFO - src_final.preprocess.processor -   *** train_example-0 ***
01/21/2021 15:53:09 - INFO - src_final.preprocess.processor -   text: 原 标 题 : 2 0 1 9 年 反 腐 败 “ 成 绩 单 ” 亮 眼 ● 从 数 据 上 看 , 2 0 1 9 年 的 反 腐 败 成 绩 单 引 人 注 目 , 反 映 了 当 前 反 腐 败 力 度 仍 然 没 有 放 松 、 反 腐 败 工 作 仍 然 按 照 既 定 目 标 推 进 、 高 压 反 腐 态 势 仍 然 保 持 , 由 此 查 处 的 中 管 干 部 、 省 管 干 部 这 些 “ 关 键 少 数 ” 干 部 数 量 仍 然 保 持 高 位 并 呈 现 增 长 态 势 ● 2 0 1 9 年 反 腐 败 主 要 呈 现 三 个 方 面 的 特 点 : 一 是 精 准 反 腐 ; 二 是 强 化 标 本 兼 治 ; 三 是 深 化 基 层 反 腐 败 ● 中 央 针 对 全 面 从 严 治 党 和 党 风 廉 政 建 设 领 域 , 出 台 了 一 系 列 具 有 代 表 性 的 党 内 法 规 制 度 , 为 整 个 监 察 体 制 改 革 提 供 了 制 度 保 障 , 同 时 着 力 建 立 健 全 一 个 具 有 中 国 特 色 的 监 察 法 律 体 系 , 推 动 制 度 反 腐 、 法 治 防 腐 制 图 / 李 晓 军 2 0 1 9 年 1 2 月 2 6 日 1 4 时 3 0 分 , 中 央 纪 委 国 家 监 委 网 站 发 布 了 年 度 最 新 一 条 执 纪 审 查 消 息 , “ 呼 和 浩 特 职 业 学 院 原 党 委 副 书 记 、 院 长 李 怀 柱 接 受 纪 律 审 查 和 监 察 调 查 ”
01/21/2021 15:53:10 - INFO - src_final.preprocess.processor -   trigger location: [299, 300]
01/21/2021 15:53:10 - INFO - src_final.preprocess.processor -   labels: [9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9]

训练信息如下:

01/21/2021 19:44:49 - INFO - src_final.utils.functions_utils -   Use single gpu in: ['0']
01/21/2021 19:45:06 - INFO - src_final.utils.trainer -   ***** Running training *****
01/21/2021 19:45:06 - INFO - src_final.utils.trainer -     Num Examples = 5808
01/21/2021 19:45:06 - INFO - src_final.utils.trainer -     Num Epochs = 1
01/21/2021 19:45:07 - INFO - src_final.utils.trainer -     Total training batch size = 2
01/21/2021 19:45:08 - INFO - src_final.utils.trainer -     Total optimization steps = 2904

为什么role1和role2使用的标签是不一样的?

role1采用的是start-end类型的标签,分开训练sub和obj。

而role2采用的是s、i、e、s、x、o类型的标签,而且还是联合训练time和loc,没有分开进行训练。bert_outputs的内容

attribution提取阶段

AttributionFeature里面封装的数据:

01/21/2021 21:01:17 - INFO - src_final.preprocess.processor -   *** train_example-0 ***
01/21/2021 21:01:17 - INFO - src_final.preprocess.processor -   text: 原 标 题 : 2 0 1 9 年 反 腐 败 “ 成 绩 单 ” 亮 眼 ● 从 数 据 上 看 , 2 0 1 9 年 的 反 腐 败 成 绩 单 引 人 注 目 , 反 映 了 当 前 反 腐 败 力 度 仍 然 没 有 放 松 、 反 腐 败 工 作 仍 然 按 照 既 定 目 标 推 进 、 高 压 反 腐 态 势 仍 然 保 持 , 由 此 查 处 的 中 管 干 部 、 省 管 干 部 这 些 “ 关 键 少 数 ” 干 部 数 量 仍 然 保 持 高 位 并 呈 现 增 长 态 势 ● 2 0 1 9 年 反 腐 败 主 要 呈 现 三 个 方 面 的 特 点 : 一 是 精 准 反 腐 ; 二 是 强 化 标 本 兼 治 ; 三 是 深 化 基 层 反 腐 败 ● 中 央 针 对 全 面 从 严 治 党 和 党 风 廉 政 建 设 领 域 , 出 台 了 一 系 列 具 有 代 表 性 的 党 内 法 规 制 度 , 为 整 个 监 察 体 制 改 革 提 供 了 制 度 保 障 , 同 时 着 力 建 立 健 全 一 个 具 有 中 国 特 色 的 监 察 法 律 体 系 , 推 动 制 度 反 腐 、 法 治 防 腐 制 图 / 李 晓 军 2 0 1 9 年 1 2 月 2 6 日 1 4 时 3 0 分 , 中 央 纪 委 国 家 监 委 网 站 发 布 了 年 度 最 新 一 条 执 纪 审 查 消 息 , “ 呼 和 浩 特 职 业 学 院 原 党 委 副 书 记 、 院 长 李 怀 柱 接 受 纪 律 审 查 和 监 察 调 查 ”
01/21/2021 21:01:18 - INFO - src_final.preprocess.processor -   token_ids: [101, 1333, 3403, 7579, 8038, 123, 121, 122, 130, 2399, 1353, 5576, 6571, 100, 2768, 5327, 1296, 100, 778, 4706, 474, 794, 3144, 2945, 677, 4692, 8024, 123, 121, 122, 130, 2399, 4638, 1353, 5576, 6571, 2768, 5327, 1296, 2471, 782, 3800, 4680, 8024, 1353, 3216, 749, 2496, 1184, 1353, 5576, 6571, 1213, 2428, 793, 4197, 3766, 3300, 3123, 3351, 510, 1353, 5576, 6571, 2339, 868, 793, 4197, 2902, 4212, 3188, 2137, 4680, 3403, 2972, 6822, 510, 7770, 1327, 1353, 5576, 2578, 1232, 793, 4197, 924, 2898, 8024, 4507, 3634, 3389, 1905, 4638, 704, 5052, 2397, 6956, 510, 4689, 5052, 2397, 6956, 6821, 763, 100, 1068, 7241, 2208, 3144, 100, 2397, 6956, 3144, 7030, 793, 4197, 924, 2898, 7770, 855, 2400, 1439, 4385, 1872, 7270, 2578, 1232, 474, 123, 121, 122, 130, 2399, 1353, 5576, 6571, 712, 6206, 1439, 4385, 676, 702, 3175, 7481, 4638, 4294, 4157, 8038, 671, 3221, 5125, 1114, 1353, 5576, 8039, 753, 3221, 2487, 1265, 3403, 3315, 1076, 3780, 8039, 676, 3221, 3918, 1265, 1825, 2231, 1353, 5576, 6571, 474, 704, 1925, 7151, 2190, 1059, 7481, 794, 698, 3780, 1054, 1469, 1054, 7599, 2442, 3124, 2456, 6392, 7566, 1818, 8024, 1139, 1378, 749, 671, 5143, 1154, 1072, 3300, 807, 6134, 2595, 4638, 1054, 1079, 3791, 6226, 1169, 2428, 8024, 711, 3146, 702, 4664, 2175, 860, 1169, 3121, 7484, 2990, 897, 749, 1169, 2428, 924, 7397, 8024, 1398, 3198, 4708, 1213, 2456, 4989, 978, 1059, 671, 702, 1072, 3300, 704, 1744, 4294, 5682, 4638, 4664, 2175, 3791, 2526, 860, 5143, 8024, 2972, 1220, 1169, 2428, 1353, 5576, 510, 3791, 3780, 7344, 5576, 1169, 1745, 120, 3330, 3236, 1092, 123, 121, 122, 130, 2399, 122, 123, 3299, 123, 127, 3189, 122, 125, 3198, 124, 121, 1146, 8024, 704, 1925, 5279, 1999, 1744, 2157, 4664, 1999, 5381, 4991, 1355, 2357, 749, 2399, 2428, 3297, 3173, 671, 3340, 2809, 5279, 2144, 3389, 3867, 2622, 8024, 100, 1461, 1469, 3856, 102]
01/21/2021 21:01:18 - INFO - src_final.preprocess.processor -   attention_masks: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
01/21/2021 21:01:21 - INFO - src_final.preprocess.processor -   token_type_ids: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
01/21/2021 21:01:21 - INFO - src_final.preprocess.processor -   trigger loc: (299, 300)
01/21/2021 21:01:22 - INFO - src_final.preprocess.processor -   labels: [0, 0]

process data之后,打印的训练信息:

01/21/2021 21:11:27 - INFO - src_final.utils.functions_utils -   Use single gpu in: ['0']
01/21/2021 21:13:04 - INFO - src_final.utils.trainer -   ***** Running training *****
01/21/2021 21:13:05 - INFO - src_final.utils.trainer -     Num Examples = 2494
01/21/2021 21:13:06 - INFO - src_final.utils.trainer -     Num Epochs = 1
01/21/2021 21:13:06 - INFO - src_final.utils.trainer -     Total training batch size = 2
01/21/2021 21:13:07 - INFO - src_final.utils.trainer -     Total optimization steps = 1247

数据问题

在看了covert_raw_data.py之后,我终于知道项目data/final下面的数据集都是什么意思了。

比如在data/final/raw_data/目录下:

  • raw_stack.json

    是官方提供的复赛train set,未经任何处理。

  • sentences.json

    是官方提供的复赛test set,未经任何处理。


  • stack.json

    处理后的官方提供的复赛train set;使用10折交叉验证的方法,加入了distant trigger,删去了words

  • train.json

    对官方提供的复赛train set采用8/2划分得到的train set(8);

  • dev.json

    对官方提供的复赛train set采用8/2划分得到的dev set(2);


  • test.json

    处理后(加入了distant trigger)的官方提供的复赛test set


  • preliminary_pred_triggers_pred_roles

    【数据增强】阶段,初赛数据通过Base Model预测得到的结果;

    至于preliminary_pred_triggers_pred_rolespreliminary_data_pred_trigger_pred_role的区别,我还没搞太清楚。

  • preliminary_stack(这里有疑问)

    处理后(加入了distant trigger)的初赛预测结果数据;


src_final/preprocess/processor.py

转换数据为 Bert 模型的输入

数据预处理

  1. tqdm是什么?

    就是一个加强版的enumerate(),最大的作用是显示进度条:

    76%|████████████████████████ | 7568/10000 [00:33<00:10, 229.00it/s]

    官方介绍:https://github.com/tqdm/tqdm

程序流程

  1. 转换数据为BERT需要的Token ID
  2. 构造Dataset:将数据集转换成PyTorch中的Dataset类型

main() training() train_base() train()

程序Bug

list index out of range

./out/final/trigger/roberta_wwm_distant_trigger_pgd_enhanced/checkpoint-3523

./out/final/trigger/roberta_wwm_distant_trigger_pgd_enhanced/checkpoint-7045

model_lists = ["./out\\final\\trigger\\roberta_wwm_distant_trigger_pgd_enhanced\\checkpoint-0001\\model.pt","./out\\final\\trigger\\roberta_wwm_distant_trigger_pgd_enhanced\\checkpoint-0003\\model.pt","./out\\final\\trigger\\roberta_wwm_distant_trigger_pgd_enhanced\\checkpoint-0002\\model.pt","./out\\final\\trigger\\roberta_wwm_distant_trigger_pgd_enhanced\\checkpoint-0004\\model.pt"]

model_lists = sorted(model_lists,key=lambda x: (x.split('\\')[-3], int(x.split('\\')[-2].split('-')[-1])))
model_lists = ["./out/final/trigger/roberta_wwm_distant_trigger_pgd_enhanced/checkpoint-0001/model.pt","./out/final/trigger/roberta_wwm_distant_trigger_pgd_enhanced/checkpoint-0002/model.pt","./out/final/trigger/roberta_wwm_distant_trigger_pgd_enhanced/checkpoint-0003/model.pt","./out/final/trigger/roberta_wwm_distant_trigger_pgd_enhanced/checkpoint-0004/model.pt"]

model_lists = sorted(model_lists,key=lambda x: (x.split('/')[-3], int(x.split('/')[-2].split('-')[-1])))
list = ["a/3","a/2","a/1"]
list = sorted(list,key=lambda x:(x.split('/')[-2],int(x.split('/')[-1])),reverse=True)

理解pipeline和joint learning

  • pipeline:每个模块单独训练,各模块之间完全独立,不存在输入和输出的依赖;
  • joint learning:一个模块的输出作为下一个模块的输入,最后一起计算误差,一起进行训练;

文章作者: CarlYoung
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 CarlYoung !
  目录