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

BERT生成元描述报错__call__()意外接收max_length关键字参数

错误产生原因
  • 分词器类型不匹配警告是依赖版本不兼容导致:当前Colab环境默认安装的transformers、summarizer库版本和教程编写时的版本存在差异,默认加载的BART模型对应的分词器类没有被正确识别,该警告不会直接造成程序崩溃。
  • 触发运行终止的核心原因是参数传递错误:你使用的Summarizers封装类的调用方法不接受max_length关键字参数,该参数不属于实例调用时的合法入参,因此抛出TypeError。另外你参考的教程使用的是抽取式BERT摘要器,本身就不支持通过max_length直接控制输出文本长度,这个参数是生成式Transformer模型pipeline的参数,和你当前调用的封装类接口不匹配。
修复步骤
  1. 首先在Colab笔记本最开头添加依赖安装命令,固定兼容的库版本,解决分词器警告,执行完后重启Colab运行时:
pip install bert-extractive-summarizer==0.10.1 transformers==4.26.0 sentencepiece --quiet
  1. 修改原有业务代码,调整参数传递逻辑,修正后的可运行代码如下:
from summarizer import Summarizer
# 初始化摘要模型
model = Summarizer()
# 抽取式摘要通过num_sentences控制输出句子数量,调整数值让最终输出长度在160字符左右即可
result = model(body, num_sentences=3)
full = ''.join(result)
print(full)

# 将结果存入列表
metadesc.append(full)
# 把结果写入DataFrame列
df['Meta Desc'] = metadesc
# 导出csv时加上index=False避免生成多余的索引列
output = df.to_csv('output.csv', index=False)
  • 补充说明:如果你要使用生成式BART模型做摘要、需要用max_length严格控制输出长度,初始化模型时要把生成参数放在generation_kwargs配置里,示例如下:
from summarizer import Summarizer
model = Summarizer(
    model="facebook/bart-large-cnn",
    tokenizer="facebook/bart-large-cnn",
    generation_kwargs={"max_length": 160, "min_length": 60, "no_repeat_ngram_size": 2}
)
result = model(body)
full = ''.join(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 00:01:04