如何为HuggingFace TokenClassificationPipeline的tokenizer传递参数
解决TokenClassificationPipeline传递Tokenizer参数的报错问题
问题原因
直接将padding这类tokenizer配置参数传入pipeline调用会触发报错,核心原因是TokenClassificationPipeline的参数校验逻辑不允许直接传入tokenizer的配置项,必须通过专门的tokenizer_kwargs参数来传递这类配置。
解决方案
修改推理代码,将tokenizer的配置打包进tokenizer_kwargs字典中,作为专属参数传入pipeline即可:
from transformers import pipeline ner_pipeline = pipeline('token-classification', model=model_folder, tokenizer=model_folder) # 把tokenizer参数封装到tokenizer_kwargs里 tokenizer_kwargs = {'padding': 'longest', 'truncation': False} out = ner_pipeline(text, aggregation_strategy='simple', tokenizer_kwargs=tokenizer_kwargs)
额外优化建议
为了和训练阶段的逻辑保持一致,避免长文本被静默截断,建议显式设置truncation=False。这样当输入token长度超过512时,会触发和训练时相同的警告,方便你及时对长文本进行切分处理。
内容的提问来源于stack exchange,提问作者ClaudiaR
相关产品推荐
相关产品推荐

