Я провел эксперимент по изучению лазурной машины, который берет небольшой набор данных (массив 12x3) и некоторые параметры и выполняет некоторые вычисления с использованием нескольких модулей Python (линейный регрессионный расчет и некоторые другие). Все это прекрасно работает.Azure Machine Learning Request Response latency
Я развернул эксперимент и теперь хочу вывести данные из него из интерфейса моего приложения. API-вызов идет и возвращается с правильными результатами, но для вычисления простой линейной регрессии требуется до 30 секунд. Иногда это 20 секунд, иногда только 1 секунда. Я даже получил его до 100 мс один раз (это то, что мне бы хотелось), но в 90% случаев запрос занимает более 20 секунд, что недопустимо.
Я думаю, что это связано с тем, что он еще эксперимент, или он все еще находится в слоте разработки, но я не могу найти настройки, чтобы заставить его работать на более быстрой машине.
Есть ли способ ускорить выполнение?
Редактировать: уточнить: изменяющиеся тайминги получаются с одинаковыми тестовыми данными, просто отправив один и тот же запрос несколько раз. Это заставило меня прийти к выводу, что это должно быть связано с тем, что мой запрос помещается в очередь, есть какая-то задержка запуска, или я задушен каким-то другим способом.
Ваш ответ вместе с [этой статьей] (http://jiffie.blogspot.be/2015/10/trying-to-figure-out-azure-ml.html) заставил меня понять проблему: по умолчанию там с 20 контейнерами, для которых все холодно. Я не делал одновременных звонков и обновлялся довольно часто, поэтому чаще всего я не звонил в один из этих холодных контейнеров, который занимал около 30 секунд. Только после удара всех контейнеров, как только вы получите быстрый ответ. Для тестирования я понизил до 4 контейнеров, что означает, что я начинаю с 4 медленных вызовов, после которых все контейнеры теплые. – JrtPec
Спасибо, я просмотрю статью и добавлю все, что я пропустил, чтобы ответить. –
Эти «прохладные» контейнеры являются неудобством. Предположим, что я обновляю веб-службу, первые 20 запросов, которые клиент делает, будут очень медленными (в зависимости от количества одновременных вызовов в настройках, это будет еще хуже). Есть ли способ сказать всем контейнерам «разогреться» после развертывания? – JrtPec