hac*_*man 4 nlp amazon-ec2 amazon-web-services rasa-nlu
我正在训练一个模型,用于使用 Rasa 中的 MITIE 后端识别短的、一到三个句子的文本字符串。该模型使用 spaCy 进行训练和工作,但它并不像我想要的那么准确。spaCy 的训练时间不超过 5 分钟,但 MITIE 的训练在我的 16GB RAM 的计算机上不间断地运行了几天。因此,我开始在具有 255GB RAM 和 32 个线程的 Amazon EC2 r4.8xlarge 实例上对其进行训练,但它似乎并未使用所有可用资源。
在 Rasa 配置文件中,我有num_threads: 32和 set max_training_processes: 1,我认为这将有助于使用所有可用的内存和计算能力。但是现在它已经运行了几个小时,CPU 使用率为 3%(使用率为 100%,但仅在一个线程上),内存使用率保持在 25GB 左右,是可能的十分之一。
你们中有人有尝试加速 MITIE 培训的经验吗?我的模型有 175 个意图和总共 6000 个意图示例。在 Rasa 配置文件中有什么需要调整的吗?
所以我将尝试从几个角度来解决这个问题。首先特别是从 Rasa NLU 角度,文档特别指出:
在具有多个意图的数据集上训练 MITIE 可能会很慢。
并提供两种选择:
mite_sklearn 管道。鉴于您只使用了一个内核,我怀疑这会产生影响,但 Rasa 的 Alan 建议将 num_threads 设置为内核数的 2-3 倍。
如果您尚未评估这两种可能性,那么您可能应该这样做。
并非 MITIE 的所有方面都是多线程的。见这个问题由其他人的MITIE GitHub的页面上使用莎打开,在这里引用:
MITIE 的某些部分没有线程化。您从线程中受益的程度因任务和数据集而异。有时只有 100% 的 CPU 利用率发生,这是正常的。
特别是在与训练数据相关的方面,我建议您查看最近引入 Rasa 存储库的评估工具。它包括一个可能有助于识别问题区域的混淆矩阵。
这可能允许您切换到 spaCy 并使用 6000 个示例中的一部分作为评估集,并将示例添加回表现不佳的意图。
我对 6000 个示例的来源有更多问题,如果它们是平衡的,以及每个意图有多大不同,您是否验证过训练示例中的单词是否在您使用的语料库中,等等,但我认为以上就足够了开始。
对于 Rasa 团队来说,MITIE 花费很长时间来训练并不奇怪,更令人惊讶的是你无法从另一个管道中获得良好的准确性。
作为最后的手段,我鼓励您在 Rasa NLU GitHub 页面上打开一个问题,并与那里的团队联系以获得进一步的支持。或者加入 Gitter 对话。
| 归档时间: |
|
| 查看次数: |
1269 次 |
| 最近记录: |