Azure MachineLearning WebService не использует пройденную модель .ilearner - PullRequest
0 голосов
/ 24 августа 2018

В настоящее время мы работаем над тем, чтобы запустить эксперимент Azure MachineLearning Studio.

В нашей последней итерации есть веб-задание, которое принимает сообщение об очереди, получает некоторые данные для обучения модели и использует веб-сервис ML Experiment для помещения обученной модели в местоположение BLOB-объекта.

Второй веб-задание принимает сообщение очереди, извлекает данные, которые будут использоваться в прогнозном эксперименте, получает путь к местоположению обученной модели .ilearner, а затем использует веб-службу THAT ML Experiment.

Данные, используемые для составления прогнозов, передаются в качестве входного параметра, а имя учетной записи хранения, ключ и путь .ilearner передаются как глобальные параметры - объекты словаря, определенные в соответствии с тем, что предоставил ученый.

Все отображается для правильной работы - за исключением некоторых случаев, прогностический эксперимент не удался, и сообщение об ошибке показывает, что используется неправильный файл .ilearner.

Когда в веб-службу эксперимента передается несуществующий путь большого двоичного объекта, сообщение об ошибке показывает, что такого большого двоичного объекта не существует, поэтому ясно, что веб-служба, по крайней мере, проверяет существование .ilearner.

Специалист по данным может запустить его локально, но должен изменить имя файла .ilearner, когда он экспортирует его локально через PowerShell. Обеспечение уникального имени файла для каждой обученной модели не решило эту проблему.

Все файлы, когда я их просматриваю в обозревателе хранилищ Azure, по-видимому, обновляются, как и ожидалось, в зависимости от даты последнего изменения. Как будто где-то есть кэшированная версия .ilearner, которая не переопределяется должным образом.

1 Ответ

0 голосов
/ 24 августа 2018

Исключив возможность передачи неверного файла, наш специалист по данным внимательно изучил сам эксперимент. Он обнаружил, что по умолчанию используется один жестко закодированный путь .ilearner, который он использовал при разработке.

В какой-то момент он создал параметры веб-службы, чтобы переопределить это значение (поэтому я и определил их в своем вызове веб-службы), но они были удалены во время одной из перепроектов эксперимента, когда кто-то заметил, потому что webservice, очевидно, примет лишние аргументы.

Веб-сервис принимал мои глобальные параметры и, по-видимому, даже проверял их. Но поскольку они не были подключены ни к чему внутри эксперимента, передаваемая информация файла .ilearner никогда не применялась ни к чему - жестко закодированный .ilearner применялся несмотря ни на что.

Мы все были очень удивлены, что не было исключений при передаче параметров в веб-службу, которые фактически не были определены. Если бы произошло , мы бы поняли это гораздо быстрее.

tl / dr: эксперимент не был должным образом настроен на прием пути файла .ilearner (или имени учетной записи, или ключа учетной записи) в качестве параметра, и веб-служба с радостью принимала и игнорировала аргументы параметра, не вызывая тревоги у него было запрограммированное значение.

...