首页 > 解决方案 > 加载经过训练的 Rasa NLU 模型需要更多时间

问题描述

我已经使用以下配置训练了一个 RASA NLU 模型

language: en
pipeline:
- name: "pretrained_embeddings_convert"

此配置默认为组件列表,

language: "en"

pipeline:
- name: "SpacyNLP"
- name: "SpacyTokenizer"
- name: "SpacyFeaturizer"
- name: "RegexFeaturizer"
- name: "CRFEntityExtractor"
- name: "EntitySynonymMapper"
- name: "SklearnIntentClassifier"

此外,我还尝试了所有其他现成的配置supervised_embeddings and pretrained_embeddings_spacy,例如自定义配置。实例化 Trainer 对象需要 6~9 秒的加载时间。同样,当我尝试加载持久模型进行推理时,

interpreter = Interpreter.load('../path_to_trained_model')

再次加载它需要几乎相同的 6~9 秒。无论如何,这可以减轻吗?还是我做错了什么?因为我想按需提供这些模型,这需要更快的加载时间。

标签: rasa-nlurasa-corerasa

解决方案


supervised_embeddings(见这里)是加载时间最短的管道,因为它不加载任何预训练的词嵌入。

pretained_embeddings_convert并且pretrained_embeddings_spacy两者都在启动时加载单词嵌入(分别是 theConveRTspacy嵌入),它们的大小非常大,因此需要一些时间来加载。

因此,如果快速加载时间很重要,我建议使用supervised_embeddings. 但是,一旦加载了模型,推理时间相对较快,因此您只需要等待那几秒钟一次。

PS:如果你还没有加入我们的社区论坛,这些问题经常得到解答


推荐阅读