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

RASA 2升级至3.6.20后NLU模型训练异常返回null求助

Rasa 2升级到3后训练异常问题排查

问题现象

  • 执行rasa train时,终端提示训练成功,但无epoch进度条,训练瞬间完成
  • 用rasa shell加载模型后,任何输入都返回null意图,置信度为0
  • 生成的模型体积极小(仅2KB左右),远小于正常训练的模型

运行环境

  • Rasa 3.6.20
  • spaCy 3.7.6
  • Python 3.9 虚拟环境

配置文件(config.yml)

version: "3.1" 
recipe: "default.v1" 
language: en 
pipeline:
- name: SpacyNLP 
  model: en_core_web_sm
- name: SpacyTokenizer
- name: SpacyFeaturizer
- name: SpacyEntityExtractor
- name: RegexFeaturizer 
  analyzer: char_wb 
  min_ngram: 1 
  max_ngram: 4
- name: DIETClassifier 
  epochs: 100 
  constrain_similarities: true
- name: EntitySynonymMapper 
policies:
- name: MemoizationPolicy 
  assistant_id: 20240813-193423-felt-modal

注:原配置中pipeline组件缺少-前缀,属于格式错误,会导致组件无法被正确加载

训练日志片段

2024-08-29 17:45:41 INFO rasa.nlu.utils.spacy_utils - Trying to load SpaCy model with name ‘en_core_web_sm’. 
2024-08-29 17:45:42 INFO rasa.nlu.utils.spacy_utils - Trying to load SpaCy model with name ‘en_core_web_sm’. 
2024-08-29 17:45:43 INFO rasa.engine.training.hooks - Starting to train component ‘RegexFeaturizer’. 
2024-08-29 17:45:43 INFO rasa.engine.training.hooks - Finished training component ‘RegexFeaturizer’. 
2024-08-29 17:45:43 INFO rasa.engine.training.hooks - Starting to train component ‘DIETClassifier’. 
2024-08-29 17:45:43 INFO rasa.engine.training.hooks - Finished training component ‘DIETClassifier’. 
2024-08-29 17:45:43 INFO rasa.engine.training.hooks - Starting to train component ‘EntitySynonymMapper’. 
2024-08-29 17:45:43 INFO rasa.engine.training.hooks - Finished training component ‘EntitySynonymMapper’. 
Your Rasa model is trained and saved at ‘models/nlu-20240829-174541-heartless-bayou.tar.gz’. 
Rasa model training completed successfully.

测试日志片段(rasa shell)

2024-08-29 18:05:26 INFO rasa.core.processor - Loading model models/nlu-20240829-174541-heartless-bayou.tar.gz… 
2024-08-29 18:05:26 INFO rasa.nlu.utils.spacy_utils - Trying to load SpaCy model with name ‘en_core_web_sm’. 
2024-08-29 18:05:28 INFO rasa.nlu.utils.spacy_utils - Trying to load SpaCy model with name ‘en_core_web_sm’. 
NLU model loaded. Type a message and press enter to parse it. 
Next message: Hello, this is a test message. 
{ "text": "Hello, this is a test message.", 
"intent": { "name": null, "confidence": 0.0 }, 
"entities": [], 
"text_tokens": [ [ 0, 5 ], [ 5, 6 ], [ 7, 11 ], [ 12, 14 ], [ 15, 16 ], [ 17, 21 ], [ 22, 29 ], [ 29, 30 ] ], 
"intent_ranking": [] } 
Next message:

模型体积对比

RASA 3, 返回null的异常模型: 2456 Aug 30 14:20 nlu-20240830-142056-poky-turret.tar.gz
RASA 3, 正常训练模型:19923109 Aug 13 16:08 nlu-20240730-180020-hot-event.tar.gz
RASA 2, 正常模型: 37456829 Sep 3 18:24 nlu-20240903-182449.tar.gz

排查思路

  • 修复配置文件格式:确保pipeline和policies下的每个组件前都有-前缀,这是Rasa 3对配置文件的强制要求,缺少会导致组件无法被加载,训练流程异常。
  • 检查训练数据有效性:确认nlu.yml中是否有标注完整的意图、样本数据,若训练集无有效样本,DIETClassifier会跳过训练直接生成空模型。同时检查数据格式是否符合Rasa 3的规范,比如意图名称是否合法、样本是否未被意外注释。
  • 查看详细训练日志:执行rasa train --debug获取完整日志,重点关注数据加载、组件初始化阶段的报错信息,比如Spacy模型是否加载成功、训练数据是否被正确读取。
  • 校验依赖兼容性:执行pip check检查虚拟环境中是否有依赖冲突,尝试重新安装Rasa和Spacy:pip install --upgrade rasa spacy,并重新下载Spacy模型:python -m spacy download en_core_web_sm。
  • 测试最小化项目:创建一个包含简单nlu数据(比如2-3个意图样本)和标准配置的测试项目,执行rasa train验证是否能生成有效模型,逐步排查是否是原项目数据或配置的问题。
  • 检查模型完整性:解压异常模型文件,确认是否包含训练后的权重文件,若仅存在空配置文件,说明训练过程未正常生成模型权重。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 19:57:33