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

Rasa模型加载推理时实体识别失效的问题排查求助

问题排查:Rasa NLU训练后即时推理正常,单独加载模型无实体识别结果

先揪出你推理代码里的核心错误:你在推理环节多余地初始化了Trainer并调用了persist()方法,这不仅完全没必要,甚至直接破坏了你之前训练好的有效模型!

关键错误分析

你的推理代码里这两行是问题根源:

trainer = Trainer(config.load("config_spacy.yaml"))
model_directory = trainer.persist('/home/vz/goutham_Openseq/ner/rasa/projects/default/model_20190706-004103/')

这个新初始化的Trainer没有加载任何训练数据,调用persist()会在你指定的模型目录下生成一个空的、未训练的模型,直接覆盖了你之前辛苦训练好的实体识别模型。这就是为什么后续加载模型后识别不出实体——你加载的已经不是原来的有效模型了。

修正后的推理代码

删掉多余的Trainer相关代码,直接加载已训练好的模型即可:

from rasa_nlu.model import Interpreter

# 直接指定训练完成的模型路径,无需Trainer和persist操作
model_directory = '/home/vz/goutham_Openseq/ner/rasa/projects/default/model_20190706-004103/'
interpreter = Interpreter.load(model_directory)
print(interpreter.parse(u"ji bilkul han ji bilkul isliye payment nahi kara tha humne kitne mein likha aapko this rupay discount de dia to phir aap jama kar dena"))

额外排查方向(若修正后仍有问题)

  • 验证模型路径有效性:确认model_directory指向的文件夹里包含metadata.json、nlu子文件夹等训练生成的完整文件,没有被误删或损坏。
  • 检查环境版本一致性:训练和推理环境的Rasa NLU、spaCy版本必须完全匹配,版本差异可能导致模型加载异常。可以用pip freeze导出两个环境的依赖列表对比验证。
  • 确认配置文件匹配:确保推理时使用的config_spacy.yaml和训练时完全一致(比如实体提取器的配置、语言模型选型等),不过Interpreter.load会自动读取模型内置的元数据,这一步通常无需额外操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:41:59