Как применить пакет dprep к входящим данным в Score.py Azure Workbench
Мне было интересно, можно ли применить файлы "подготовки данных" (.dprep) к входящим данным в Score.py, подобно тому, как можно применять объекты конвейера. Это было бы очень полезно для развертывания модели. Чтобы выяснить это, я задал этот вопрос на форумах MSDN и получил ответ, подтверждающий, что это возможно, но мало объяснений о том, как на самом деле это сделать. Ответ был:
в вашем файле Score.py вы можете вызвать пакет dprep из Python SDK, чтобы применить то же преобразование к входящим данным скоринга. убедитесь, что вы связываете ваш файл.dprep с изображением, которое вы создаете.
Итак, мои вопросы:
Какую функцию я применяю, чтобы вызвать этот пакет dprep?
- Это:
run_on_data(user_config, package_path, dataflow_idx=0, secrets=None, spark=None)
?
- Это:
Как связать его в образ при создании веб-сервиса из CLI?
- Есть ли переключатель в
-f
для файлов оценки?
- Есть ли переключатель в
Я просмотрел всю документацию и репозиторий Workbench, но, похоже, не могу найти никаких примеров.
Любые предложения будут высоко ценится!
Спасибо!
РЕДАКТИРОВАТЬ:
Сценарий:
Я импортирую свои данные из действующей базы данных, и скажем, этот набор данных имеет 10 столбцов.
Затем я использую этот набор данных (.dsource) с помощью Workbench, в результате чего получается файл.dprep, который может иметь 13 столбцов.
Этот набор данных.dprep затем импортируется как pandas DataFrame и используется для обучения и тестирования моей модели.
Теперь у меня есть модель, готовая к развертыванию.
Эта модель развернута через управление моделями в службе контейнеров и будет получать данные из действующей базы данных, которая снова будет иметь исходный формат (10 столбцов).
Очевидно, что эта модель была обучена на преобразованных данных (13 столбцов) и не сможет сделать прогноз для набора данных из 10 столбцов.
Какую функцию я могу использовать в файле Score.py, чтобы применить то же преобразование, которое я создал в верстаке?
2 ответа
Мне кажется, это может быть достигнуто с помощью run_on_data(user_config, package_path, dataflow_idx=0, secrets=None, spark=None)
метод из azureml.dataprep.package
модуль.
Из документации:
run_on_data(user_config, package_path, dataflow_idx=0, secrets=None, spark=None)
запускает указанный поток данных на основе источника данных в памяти и возвращает результаты в виде кадра данных.user_config
Аргумент - это словарь, который отображает абсолютный путь источника данных (файл.dsource) в источник данных в памяти, представленный в виде списка списков.
Я полагаю, я мог найти то, что вам нужно.
Из этой документации вы бы импортировали из azureml.dataprep
пакет.
Там нет никаких примеров, но, выполняя поиск на GitHub, я нашел этот файл, который содержит следующее для запуска подготовки данных.
from azureml.dataprep import package
df = package.run('Data analysis.dprep', dataflow_idx=0)
Надеюсь, это поможет!