发布于 2020-09-07 12:24:48
你试过finetune.sh脚本显示给这里了吗?除了列出的CLI标志的简短列表之外,您还可以尝试添加:
--src_lang "en" \
--tgt_lang "de" \
--num_train_epochs 400 \
--warmup_steps 20 \
--train_batch_size 32 \
--eval_batch_size 32 \
--data_dir "/data/dir" \
--output_dir "/path/to/store/model/etc" \
--cache_dir "/path/for/misc/files" \
--max_source_length 128 \
--max_target_length 128 \
--val_max_target_length 128 \
--test_max_target_length 128 \
--model_name_or_path "</path/to/pretrained>"其中“/ path /to/预培训”可以是机器上的本地路径,也可以是MarianMT模型(Opus-en-de或等效的)。对于源语言和目标语言,"data/dir“有一个"train.source”和"train.target“,因此目标的行号x是源中x行的翻译(与"val.source”和“val.target”相同)。我已将finetune.py脚本这里更改为
parser = TranslationModule.add_model_specific_args(parser, os.getcwd())然后运行finetune.sh脚本。
注意:当我使用"fp16“标志时,渐变变大了,所以我删除了它。另外,您可能希望检查"val_check_interval“、"check_val_every_n_epoch",并可能检查本期如何保存多个检查点。
发布于 2021-04-16 11:33:17
我完成了如下所述的细化:https://github.com/huggingface/transformers/tree/master/examples/seq2seq#translation
对模型进行培训(fr to de)并在末尾进行评估: python实例/seq2seq/run_validation- do _translate do_eval- model _name_or_path赫尔辛基-NLP/opus-mt- de - fr -source_lang de --target_lang -源_lang-将德语翻译为法语:/翻译-val-de-fr1.json--输出_dir./tst-转换-模型-per_device_train_batch_size=4-per_device_val_batch_size=4-改写_output_dir True -with_with_generate True -FP16 True
经过训练的模型存储在文件夹中:tst-转换-模型。
仅使用finetuned模型进行计算:文件夹使用“copy_mode.sh”,它必须适合每种语言):python示例/seq2seq/run_validation-do_train False --do_val True --model_name_or_path ./tst-模型--source_lang de --目标_lang fr --源_lang_前缀--将德语翻译为法语:--验证_file./data/defr1.json- per _device_val_batch_size=4-使用_generate-FP16真
你好,费利克斯
PS:请注意,培训和评估数据必须采用以下形式(每行一项):{“转换”:{ " de ":"Freilegung der Leitung (durch VN installiert)","fr":"Dégagement de la导管(installée par )“}
https://stackoverflow.com/questions/63774619
复制相似问题