提高机器学习休息服务绩效

时间:2017-09-27 14:05:45

标签: java rest spring-mvc tomcat7 stanford-nlp

我在tomcat 7上运行了一个休息服务,它正在执行以下操作:

  1. 语言检测
  2. Stanford NER
  3. 斯坦福情绪分析
  4. 情感分类
  5. 分类
  6. 摘要
  7. 主题
  8. 正如您可以猜到的,单个请求中发生了很多事情。 我想提高其余服务的性能,斯坦福NER和斯坦福大学的情绪只是占用了太多的CPU而且在tomcat上的6 GB核心机器上有15 GB RAM,我获得了80%的cpu利用率,10个线程,吞吐量为125我用JMeter测试了它。瓶颈是斯坦福,每笔交易需要90%的时间。我无法在现实世界中扩展它。这太慢了。有关如何扩展我的ML服务的任何想法?

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用Shift-Reduce parser?很多时间可能来自选区解析器(由情感模型引入),这是句子长度上的O(n^3)算法。 shift-reduce解析器是一个更大的内存占用,但是O(n)。否则,我们可能需要更细粒度的分析数据来提供帮助。

答案 1 :(得分:0)

真正的罪魁祸首是Deeplearning4j。它占用了大部分CPU。