Closed sunbo1999 closed 1 year ago
已经fix了,麻烦重新pull下train脚本
请问前半部分Train Baseline还需要重新训练吗
不需要的
您好,我在用generate_syngec_bart.sh推理的时候,发现一个小问题:
ID_FILE=$TEST_DIR/src.id
cp $ID_FILE $OUTPUT_DIR/mucgec.id
这里面的ID_FILE不存在,在数据预处理的过程中也没有体现,请问这是什么文件呢?
这个是当时训练时的max_length设为64(显存限制),导致预测时一些长句子无法处理,因此做了先切句再预测的操作。
可以参考这个文件根据原始输入文件生成id_file和新的输入文件,预测完成后使用post_process_chinese.py
恢复成和原始输入文件一一对应的输出结果。
当然你也可以不用这一步,不进行后处理就用不到这个id文件。
您好,如果我想针对自己训练的bart-baseline进行推理的话,以下参数需要做哪些更新呢
CUDA_VISIBLE_DEVICES=$CUDA_DEVICE python -u ${FAIRSEQ_DIR}/interactive.py $PROCESSED_DIR/bin \
--user-dir ../../src/src_syngec/syngec_model \
--task syntax-enhanced-translation \
--path ${MODEL_DIR}/checkpoint_best.pt \
--beam ${BEAM} \
--nbest ${N_BEST} \
-s src \
-t tgt \
--buffer-size 10000 \
--batch-size 32 \
--num-workers 12 \
--log-format tqdm \
--remove-bpe \
--fp16 \
--conll_file $MuCGEC_TEST_BIN_DIR/test.conll.src-tgt.src \
--dpd_file $MuCGEC_TEST_BIN_DIR/test.dpd.src-tgt.src \
--probs_file $MuCGEC_TEST_BIN_DIR/test.probs.src-tgt.src \
--output_file $OUTPUT_DIR/mucgec.out.nbest \
< $OUTPUT_DIR/mucgec.src.char
是删掉conll_file dpd_file probs_file即可吗
对的
好的,感谢
您好,在训练bart-baseline之前的预处理参考preprocess_baseline.sh
python $FAIRSEQ_DIR/preprocess.py --source-lang src --target-lang tgt \
--user-dir ../../src/src_syngec/syngec_model \
--task syntax-enhanced-translation \
--trainpref $PROCESSED_DIR/train.char \
--validpref $PROCESSED_DIR/valid.char \
--destdir $PROCESSED_DIR/bin \
--workers $WORKER_NUM \
--labeldict ../../data/dicts/syntax_label_gec.dict \
--srcdict ../../data/dicts/chinese_vocab.count.txt \
--tgtdict ../../data/dicts/chinese_vocab.count.txt
我理解的bart-baseline是没有加入句法知识的模型,只是用Bart做语法纠错的任务,但是预处理的时候用到了labeldict(syntax_label_gec.dict) ?请问是我理解的有什么问题吗?
这里只是传进去但是没有用到,后续考虑fix掉这个
OK明白,所以我理解的bart-baseline是没有加入句法知识的模型,只是用Bart做语法纠错的任务,是对的是吗?
对的
另外task还是syntax-enhanced-translation,这个也没问题是吗
没问题的,原有translation task不能用在baseline的原因是我们做了一些额外的优化,比如中文BART的词表以及source-token dropout等。
okok明白,感谢
您好,按照您的步骤用自己的数据训练SynGEC出现一点问题 首先按照pipeline_gopar.sh和preprocesssyngec.sh处理好数据之后; 在trainsyngec.sh的过程中,在训练SynGEC时候报错
我的数据预处理过程按照您的脚本来的,请问问题出在哪呢