加载经过训练的Rasa NLU模型需要更多时间

时间:2019-12-23 07:00:49

标签: rasa-nlu rasa-core rasa

我已经使用以下配置训练了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和自定义配置。所有这些都需要6到9秒钟的加载时间来实例化Trainer对象。同样,当我尝试加载持久化模型进行推断时,

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

花费几乎相同的6〜9秒时间来加载它。无论如何,这可以缓解吗?还是我做错了什么?因为我想按需提供这些模型,所以需要更快的加载时间。

1 个答案:

答案 0 :(得分:0)

supervised_embeddings(请参阅here)是加载时间最短的管道,因为它不会加载任何经过预训练的词嵌入。

pretained_embeddings_convertpretrained_embeddings_spacy都在启动时加载单词嵌入(分别为ConveRTspacy嵌入),它们的大小很大,因此需要一些时间加载。

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

PS:如果您还没有,请加入我们的社区forum,在那里经常会回答此类问题