Spico197 / DocEE

🕹️ A toolkit for document-level event extraction, containing some SOTA model implementations.
https://doc-ee.readthedocs.io/
MIT License
232 stars 36 forks source link

PTPCG 分布式训练的效率 #47

Closed xxllp closed 2 years ago

xxllp commented 2 years ago

Idea sharing While sharing what you want to do, make sure to protect your ideas.

Problems 参考了其他运行的命令 执行如下命令

TASK_NAME='PTPCG_R1_reproduction'
CUDA='0,1,2,3'
NUM_GPU=4
MODEL_NAME='TriggerAwarePrunedCompleteGraph'

CUDA_VISIBLE_DEVICES=${CUDA} ./scripts/train_multi.sh ${NUM_GPU} --task_name ${TASK_NAME}\
    --use_bert=False \
    --bert_model='/data/xxl/roberta-base-chinese/' \
    --model_type=${MODEL_NAME} \
    --cpt_file_name=${MODEL_NAME} \
    --resume_latest_cpt=False \
    --save_cpt_flag=False \
    --save_best_cpt=True \
    --remove_last_cpt=True \
    --resume_latest_cpt=False \
    --optimizer='adam' \
    --learning_rate=0.0005 \
    --dropout=0.1 \
    --gradient_accumulation_steps=8 \
    --train_batch_size=64 \
    --eval_batch_size=16 \
    --max_clique_decode=True \
    --num_triggers=1 \
    --eval_num_triggers=1 \
    --with_left_trigger=True \
    --directed_trigger_graph=True \
    --use_scheduled_sampling=True \
    --schedule_epoch_start=10 \
    --schedule_epoch_length=10 \
    --num_train_epochs=100 \
    --run_mode='full' \
    --skip_train=False \
    --filtered_data_types='o2o,o2m,m2m' \
    --re_eval_flag=False \
    --add_greedy_dec=False \
    --num_lstm_layers=2 \
    --hidden_size=768 \
    --biaffine_hidden_size=512 \
    --biaffine_hard_threshold=0.5 \
    --at_least_one_comb=True \
    --include_complementary_ents=True \
    --event_type_template='zheng2019_trigger_graph' \
    --use_span_lstm=True \
    --span_lstm_num_layer=2 \
    --role_by_encoding=True \
    --use_token_role=True \
    --ment_feature_type='concat' \
    --ment_type_hidden_size=32 \
    --parallel_decorate

运行的几个卡我看都是有使用起来的

但是最终的运行速度还是没有提高(20min) ,比较单卡的时间还要长一些。这块我也不是很懂 是不是缺少啥

Spico197 commented 2 years ago

不清楚,可能瓶颈在数据IO。虽然用到了所有的卡,但是每张卡的利用率是不是不高?

xxllp commented 2 years ago

每张卡的利用率不低

Spico197 commented 2 years ago

嗯,不太好说。也可能是通信带宽问题

xxllp commented 2 years ago

还有个问题:如果trigger的重要性达到1, 而论元的重要系数都不高于1 。是不是就可能 后者伪触法词的效果无法超过触法词

这个是我本地数据遇到的情况。

xxllp commented 2 years ago

还有个问题:如果trigger的重要性达到1, 而论元的重要系数都不高于1 。是不是就可能 后者伪触法词的效果无法超过触法词

这个是我本地数据遇到的情况。

Spico197 commented 2 years ago

从我们的实验结果来看,可以把触发词个数设置为2,即 触发词+1个伪触发词 的组合。这种方案应该比只有一个触发词的效果好一点。

xxllp commented 2 years ago

我开始也这么想的 但是效果对比下来也没有单个的好 ~~

Spico197 commented 2 years ago

hh,那可能不同数据集下的表现不太一样