在AWS Glue的PySpark中使用fastcoref遇参数错误求助
解决fastcoref在AWS Glue PySpark中出现的
FCorefModel.forward() got an unexpected keyword argument 'attention_mask'错误 版本兼容性问题:这个报错大概率是fastcoref和依赖的transformers版本不匹配导致的。不同版本的transformers对模型forward方法的参数要求不同,部分新版本transformers会自动传递
attention_mask参数,但旧版fastcoref的模型并未适配这个参数。建议锁定兼容的版本组合,比如安装fastcoref==1.0.0和transformers==4.28.0(可根据实际测试调整版本号)。检查模型加载与调用逻辑:
- 确保模型加载时没有额外传递不兼容的参数,可替换为显式指定预训练模型的加载方式:
from fastcoref import FCoref model = FCoref.from_pretrained("biu-nlp/f-coref", device="cuda" if torch.cuda.is_available() else "cpu") - 检查pandas udf中调用
predict的代码,确认是否无意中传入了attention_mask参数。如果是PySpark环境序列化问题导致参数被额外注入,可尝试在udf内部重新初始化模型(注意:多次初始化可能影响性能,需权衡),或者手动过滤掉多余参数。
- 确保模型加载时没有额外传递不兼容的参数,可替换为显式指定预训练模型的加载方式:
AWS Glue环境特殊处理:Glue的PySpark环境可能自带特定版本的transformers,和你安装的fastcoref冲突。可以通过在作业中指定自定义依赖包,确保使用的transformers版本和fastcoref兼容,避免环境自带版本干扰。
内容的提问来源于stack exchange,提问作者Budding_Data_Analyst
相关产品推荐
相关产品推荐

