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

Fairseq自定义Simple LSTM训练报错:tutorial_simple_lstm架构未被识别

解决Fairseq自定义架构'tutorial_simple_lstm'未识别的问题

核心原因

你先通过pip install fairseq安装了官方预编译包,之后克隆的Fairseq源码目录与pip安装的版本相互独立,训练时调用的是pip安装的Fairseq,而非你添加了自定义模型的本地源码版本,导致自定义架构无法被识别。另外需确认自定义模型是否完成Fairseq要求的注册流程。

具体解决步骤

  1. 替换为本地源码安装Fairseq
    卸载pip安装的版本,安装本地克隆的源码包(关联本地文件,后续修改代码无需重装):

    !pip uninstall -y fairseq
    %cd /content/fairseq
    !pip install --editable .
    
  2. 检查自定义模型的注册装饰器
    打开/content/fairseq/fairseq/models/tutorial_simple_lstm.py,确保添加了Fairseq识别架构必须的装饰器:

    from fairseq.models import register_model, register_model_architecture
    
    @register_model("tutorial_simple_lstm")
    class TutorialSimpleLSTM(FairseqEncoderDecoderModel):
        # 你的模型实现代码
        pass
    
    @register_model_architecture("tutorial_simple_lstm", "tutorial_simple_lstm")
    def tutorial_simple_lstm_architecture(args):
        # 架构参数配置代码
        pass
    

    注意第一个装饰器的名称必须与训练命令--arch参数完全一致。

  3. 重新执行训练命令
    此时调用的是本地安装的Fairseq,可识别自定义架构:

    !fairseq-train /content/fairseq/examples/translation/iwslt14.tokenized.de-en \
      --arch=tutorial_simple_lstm \
      --encoder-dropout=0.2 \
      --decoder-dropout=0.2 \
      --optimizer=adam \
      --lr=0.005 \
      --lr-shrink=0.5 \
      --max-tokens=12000
    
  4. 备选方案:临时设置Python路径
    若不想重装,可在训练前临时将本地Fairseq目录加入Python路径:

    %env PYTHONPATH=/content/fairseq:$PYTHONPATH
    !fairseq-train /content/fairseq/examples/translation/iwslt14.tokenized.de-en \
      --arch=tutorial_simple_lstm \
      --encoder-dropout=0.2 \
      --decoder-dropout=0.2 \
      --optimizer=adam \
      --lr=0.005 \
      --lr-shrink=0.5 \
      --max-tokens=12000
    

内容的提问来源于stack exchange,提问作者Rubén

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 03:25:11