使用RASA使用MITIE加速模型培训



我正在训练一个模型,以使用RASA中的Mitie后端识别短期,一到三个句子字符串。模型使用Spacy训练和工作,但并不像我想要的那样准确。对Spacy进行培训的时间不超过五分钟,但是Mitie的培训用16GB的RAM在我的计算机上不停地跑了几天。因此,我开始在带有255GB RAM和32个线程的Amazon EC2 R4.8xlarge实例上训练它,但似乎并没有使用所有可用的资源。

在RASA配置文件中,我有num_threads: 32并设置max_training_processes: 1,我认为这将有助于使用所有可用的内存和计算能力。但是,现在它已经运行了几个小时,CPU使用率为3%(100%使用,但仅在一个线程上),并且内存使用率约为25GB,占该线程的十分之一。

你们中的任何人是否有尝试加速Mitie培训的经验?我的模型有175个意图,总共有6000个意图示例。在RASA配置文件中有什么可以调整的内容吗?

,所以我将尝试从几个角度解决这个问题。首先是从rasa nlu角度专门说明的。

培训Mitie在数据集上具有多种意图的速度很慢。

并提供两个替代方案:

  • 使用使用Sklearn训练的mite_sklearn管道。
  • 使用MITIE叉,RASA的Tom B在大多数情况下修改了代码以更快地运行。

鉴于您只使用了一个核心,我怀疑这会产生影响,但是Rasa的Alan建议Num_threads应该设置为2-3X您的内核数。

如果您尚未评估这两种可能性,那么您可能应该。


并非MITIE的所有方面都是多线程。查看其他人在Mitie Github页面上使用RASA打开的问题,并在此处引用:

Mitie的某些部分没有螺纹。您从线程中受益多少,随着任务到任务以及数据集而异。有时只有100%的CPU利用率发生,这是正常的。


特别了解与培训数据相关的我建议您查看最近引入RASA存储库的评估工具。它包括一个混乱矩阵,可能有助于识别麻烦区域。

这可能使您可以切换到Spacy并使用6000个示例中的一部分作为评估集,并将示例添加到表现不佳的意图中。


我对6000个示例的来自何处(如果它们保持平衡)以及每个意图有多不同,您是否有疑问,您是否验证了培训示例中的单词是否在您使用的语料库中等等,但我认为以上足以入门。

对于Rasa团队来说,Mitie将永远进行训练并不奇怪,这让您无法从另一只管道中获得良好的准确性更令人惊讶。

作为最后的手段,我鼓励您在Rasa Nlu Github页面上打开一个问题,并让团队在那里寻求进一步的支持。或加入吉特对话。

最新更新