2017-09-27 112 views
1

我休息服務在Tomcat 7這是做以下的事情正在運行:提高機器學習REST服務性能

  1. 語言檢測
  2. 斯坦福NER
  3. 斯坦福情感分析
  4. 的情感類別
  5. 分類
  6. 摘要
  7. 主題

正如您猜測的那樣,單個請求中會發生很多事情。 我想提高其餘服務的性能,斯坦福大學NER和斯坦福大學的情緒只是佔用了太多的CPU,而在一臺配備15 GB RAM的6核心機器上,我使用10個線程獲得了80%的CPU利用率,吞吐量我已經用JMeter測試了它。瓶頸在於斯坦福每次交易都需要90%的時間。我無法在現實世界中擴展它。這太慢了。任何想法如何擴展我的ML服務?

回答

0

您是否嘗試過使用Shift-Reduce parser?很多時間可能來自選區解析器(由情感模型引入),這是在句子長度上的O(n^3)算法。 shift-reduce語法分析器是一個更大的內存佔用量,但改爲O(n)。否則,我們可能需要更多細粒度的分析數據來提供幫助。

+0

在相同的負載下,吞吐量增加了10%到135%,CPU利用率達到70%。但不是那麼多。 https://pastebin.com/A2QrSFNy – akay

+0

也許用JVisualVM調試熱點?另外,什麼是吞吐量?每個線程每秒12句話並不是完全不合理的,這麼多的註釋。 –

+0

完全同意你的看法。但是CPU是Intel Xeon,它佔用的CPU太多。我們計劃很快將其投入生產,並希望減少CPU使用量。任何想法都會有幫助。 – akay

0

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