在Google Colab中导入ESMForMaskedLM报错的技术求助
解决transformers库无法导入ESMForMaskedLM的问题
问题描述
在Google Colab中使用FASTA序列微调Facebook的ESM Transformer模型时,运行代码出现以下错误:ImportError: cannot import name 'ESMForMaskedLM' from 'transformers'
已参考Hugging Face官方文档,但问题仍未解决。
原代码如下:
!pip install transformers from transformers import ESMForMaskedLM, ESMTokenizer, pipeline tokenizer = ESMTokenizer.from_pretrained("facebook/esm-1b", do_lower_case=False) model = ESMForMaskedLM.from_pretrained("facebook/esm-1b") unmasker = pipeline('fill-mask', model=model, tokenizer=tokenizer) unmasker('QERLKSIVRILE<mask>SLGYNIVAT')
解决方案
- 升级transformers到最新版本:Colab默认预装的transformers版本可能较旧,ESM相关类是在较新版本中才被加入主导入路径的,执行以下命令替换原安装命令:
!pip install --upgrade transformers - 指定子模块导入:如果升级后仍无法导入,可直接从ESM子模块导入类,规避版本兼容问题:
from transformers.models.esm import ESMForMaskedLM, ESMTokenizer - 检查核心依赖:确保torch等核心依赖为最新版本,可一并升级:
!pip install --upgrade torch transformers
修正后的代码示例
!pip install --upgrade transformers from transformers import ESMForMaskedLM, ESMTokenizer, pipeline tokenizer = ESMTokenizer.from_pretrained("facebook/esm-1b", do_lower_case=False) model = ESMForMaskedLM.from_pretrained("facebook/esm-1b") unmasker = pipeline('fill-mask', model=model, tokenizer=tokenizer) unmasker('QERLKSIVRILE<mask>SLGYNIVAT')
内容的提问来源于stack exchange,提问作者eneko valero
相关产品推荐
相关产品推荐

