Azure机器学习请求响应延迟

时间:2016-01-25 10:40:40

标签: python azure azure-machine-learning-studio

我做了一个Azure机器学习实验,它采用一个小数据集(12x3数组)和一些参数,并使用一些Python模块进行一些计算(线性回归计算等等)。一切正常。

我已经部署了实验,现在想从我的应用程序的前端向它投掷数据。 API调用会进入并返回正确的结果,但计算简单的线性回归最多需要30秒。有时它是20秒,有时只有1秒。我甚至一次将它降低到100毫秒(这是我想要的),但90%的时间请求完成时间超过20秒,这是不可接受的。

我想这与它仍然是一个实验有关,或者它仍然在开发槽中,但我找不到设置让它在更快的机器上运行。

有没有办法加快执行速度?

编辑:澄清:使用相同的测试数据获得不同的时序,只需多次发送相同的请求即可。这让我得出结论,它必须与我的请求被放入队列有关,有一些启动延迟或者我以某种其他方式受到限制。

1 个答案:

答案 0 :(得分:8)

首先,我假设您正在对已发布的AML端点进行时序测试。

当呼叫AML时,第一次呼叫必须预热容器。默认情况下,Web服务有20个容器。每个容器都是冷的,冷容器会导致很长(30秒)的延迟。在AML端点返回的字符串中,仅计算isWarm标志设置为true的请求。通过使用MANY请求粉碎服务(相对于您运行的容器数量),可以使所有容器变暖。

如果您发送了几十个实例请求,端点可能会受到限制。您可以通过访问manage.windowsazure.com /

来调整您的终端可以接受的呼叫数量
  1. manage.windowsazure.com /
  2. 来自左栏的Azure ML部分
  3. 选择您的工作区
  4. 转到网络服务标签
  5. 从列表中选择您的网络服务
  6. 使用滑块
  7. 调整通话次数

    通过在端点上启用调试,您可以获取有关每个模块的执行时间的日志。您可以使用它来确定模块是否未按预期运行,这可能会增加时间。

    总的来说,使用Execute python模块时会产生开销,但我希望这个请求能在3秒内完成。