Azure 机器学习请求响应延迟

Azure Machine Learning Request Response latency

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

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

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

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

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

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

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

如果您在一个实例中发送数十个请求,端点可能会受到限制。您可以通过转到 manage.windowsazure.com/

来调整端点可以接受的呼叫数量
  1. manage.windowsazure.com/
  2. 左侧栏的 Azure ML 部分
  3. select 你的工作空间
  4. 转到网络服务选项卡
  5. Select 列表中的网络服务
  6. 使用滑块调整调用次数

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

总体而言,使用执行 python 模块时会产生开销,但我希望此请求能在 3 秒内完成。