You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FairSeq训练翻译模型时基于BLEU早停的参数报错及M2M100微调问题

解决FairSeq 0.10.2中BLEU早停及M2M100微调的报错问题

问题1:fairseq-train: error: unrecognized arguments: --eval-bleu ...

原因

FairSeq 0.10.2版本过旧,--eval-bleu、--eval-bleu-args等系列参数是在0.11.0及后续版本才正式引入的,当前版本不支持这些参数。

解决方案

  • 方案1:升级FairSeq版本(推荐)
    执行命令升级到兼容torch 1.10.1的版本:

    pip install fairseq>=0.11.0
    

    升级后即可正常使用--eval-bleu系列参数开启BLEU评估与早停。

  • 方案2:不升级版本,手动实现BLEU早停

    1. 训练时开启定期验证与 checkpoint 保存:
      fairseq-train data_bin \
          --your-existing-args \
          --validate-after-updates 1000 \
          --save-interval-updates 1000 \
          --keep-best-checkpoints 5
      
    2. 每次验证后,使用FairSeq自带的BLEU计算脚本评估验证集结果:
      fairseq-generate data_bin \
          --path checkpoints/checkpoint_last.pt \
          --batch-size 32 --beam 5 > valid_output.txt
      grep ^H valid_output.txt | cut -f3- > valid_preds.txt
      grep ^T valid_output.txt | cut -f2- > valid_target.txt
      fairseq-score --sys valid_preds.txt --ref valid_target.txt
      
    3. 编写简单Shell/Python脚本监控BLEU得分,当连续3-5次验证无提升时,终止训练进程。

问题2:微调M2M100时出现KeyError: 'bleu'

原因

  1. 若未升级FairSeq版本,M2M100的多语言任务默认未注册BLEU指标;
  2. 若已升级,可能是训练命令中未正确开启BLEU评估参数,或数据bin生成不规范导致验证集缺失。

解决方案

  1. 先确保FairSeq版本已升级到0.11.0+;
  2. 使用完整的M2M100微调命令(以中英翻译为例),确保包含所有BLEU评估参数:
    fairseq-train data_bin \
        --arch m2m_100_418M \
        --encoder-langtok "src" --decoder-langtok \
        --langs "en,zh" \
        --task translation_multi_simple_epoch \
        --eval-bleu \
        --eval-bleu-detok moses \
        --eval-bleu-remove-bpe "sentencepiece" \
        --eval-bleu-args '{"beam":5,"max_len_a":1.2,"max_len_b":10}' \
        --criterion label_smoothed_cross_entropy \
        --label-smoothing 0.1 \
        --optimizer adam --adam-betas '(0.9,0.98)' \
        --lr 5e-4 --lr-scheduler inverse_sqrt \
        --warmup-updates 4000 \
        --max-update 20000 \
        --patience 5 \
        --save-dir checkpoints/m2m100_zh_en \
        --fp16
    
  3. 检查数据bin目录是否包含valid.en、valid.zh等验证集文件,若缺失需重新运行fairseq-preprocess生成正确的数据bin;
  4. 若仍报错,可手动在训练代码中注册BLEU指标:在任务类的build_model方法中添加BLEU评估器的初始化逻辑。

内容的提问来源于stack exchange,提问作者Nikhil Jaiswal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 21:15:31