Сбор рабочих данных из моделей, развернутых для вывода в режиме реального времени
ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)
В этой статье вы узнаете, как использовать сборщик данных Машинное обучение Azure для сбора рабочих данных из модели, развернутой в Машинное обучение Azure управляемой сетевой конечной точке или конечной точке Kubernetes в Сети.
Вы можете включить сбор данных для новых или существующих развертываний сетевых конечных точек. Машинное обучение Azure сборщик данных записывает данные вывода в Хранилище BLOB-объектов Azure. Данные, собранные с помощью пакета SDK для Python, автоматически регистрируется в качестве ресурса данных в рабочей области Машинное обучение Azure. Этот ресурс данных можно использовать для мониторинга моделей.
Если вы хотите собирать данные вывода рабочей среды для модели MLflow, развернутой в конечной точке реального времени, см . сведения о сборе данных для моделей MLflow.
Необходимые компоненты
Перед выполнением действий, описанных в этой статье, убедитесь, что выполнены следующие необходимые условия:
Azure CLI и расширение
ml
для Azure CLI. Дополнительные сведения см. в разделе Установка, настройка и использование CLI (версия 2).Внимание
В примерах CLI в этой статье предполагается, что вы используете оболочку Bash (или совместимый вариант). Например, из системы Linux или подсистемы Windows для Linux.
Рабочая область Машинного обучения Azure. Если у вас ее нет, выполните действия, описанные в разделе Установка, настройка и использование CLI (версия 2), чтобы создать ее.
- Управление доступом на основе ролей Azure (Azure RBAC) используется для предоставления доступа к операциям в Машинном обучении Azure. Чтобы выполнить действия, описанные в этой статье, учетной записи пользователя должна быть назначена роль владельца или участника для рабочей области Машинного обучения Azure либо пользовательская роль с разрешением
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*
. Дополнительные сведения см. в статье Управление доступом к рабочей области Машинного обучения Azure.
У вас есть зарегистрированная модель, которую можно использовать для развертывания. Если у вас нет зарегистрированной модели, см. статью "Регистрация модели в качестве ресурса" в Машинное обучение.
Создайте Машинное обучение Azure конечную точку в сети. Если у вас нет существующей сетевой конечной точки, см. статью "Развертывание и оценка модели машинного обучения с помощью сетевой конечной точки".
Выполнение пользовательского ведения журнала для мониторинга моделей
Сбор данных с пользовательским ведением журнала позволяет регистрировать кадры данных pandas непосредственно из скрипта оценки до, во время и после любых преобразований данных. При использовании пользовательского ведения журнала табличные данные записываются в режиме реального времени в хранилище BLOB-объектов рабочей области или в контейнер пользовательского хранилища BLOB-объектов. Мониторы модели могут использовать данные из хранилища.
Обновление скрипта оценки с помощью пользовательского кода ведения журнала
Чтобы начать, добавьте пользовательский код ведения журнала в скрипт оценки (score.py
). Для пользовательского azureml-ai-monitoring
ведения журнала требуется пакет. Дополнительные сведения об этом пакете см. на комплексной странице PyPI для пакета SDK сборщика данных.
azureml-ai-monitoring
Импортируйте пакет, добавив следующую строку в начало скрипта оценки:from azureml.ai.monitoring import Collector
Объявите переменные сбора данных (до пяти из них) в функции
init()
:Примечание.
Если вы используете имена
model_inputs
иmodel_outputs
объектыCollector
, система мониторинга моделей автоматически распознает автоматически зарегистрированные ресурсы данных, чтобы обеспечить более простое взаимодействие с моделью мониторинга.global inputs_collector, outputs_collector inputs_collector = Collector(name='model_inputs') outputs_collector = Collector(name='model_outputs')
По умолчанию Машинное обучение Azure вызывает исключение, если во время сбора данных произошел сбой. При необходимости можно использовать параметр, чтобы указать функцию для запуска, если происходит сбой
on_error
ведения журнала. Например, используяon_error
параметр в следующем коде, Машинное обучение Azure регистрирует ошибку, а не создает исключение:inputs_collector = Collector(name='model_inputs', on_error=lambda e: logging.info("ex:{}".format(e)))
run()
В функции используйте функциюcollect()
для записи кадров данных до и после оценки. Возвращаетсяcontext
из первого вызоваcollect()
и содержит информацию, чтобы сопоставить входные данные модели и выходные данные модели позже.context = inputs_collector.collect(data) result = model.predict(data) outputs_collector.collect(result, context)
Примечание.
collect()
В настоящее время API регистрирует только pandas DataFrames. Если данные не отображаются в кадре данных при передачеcollect()
, он не будет зарегистрирован в хранилище, и будет сообщена ошибка.
Следующий код является примером полного скрипта оценки (score.py
), использующего пользовательский пакет SDK для ведения журнала Python.
import pandas as pd
import json
from azureml.ai.monitoring import Collector
def init():
global inputs_collector, outputs_collector, inputs_outputs_collector
# instantiate collectors with appropriate names, make sure align with deployment spec
inputs_collector = Collector(name='model_inputs')
outputs_collector = Collector(name='model_outputs')
def run(data):
# json data: { "data" : { "col1": [1,2,3], "col2": [2,3,4] } }
pdf_data = preprocess(json.loads(data))
# tabular data: { "col1": [1,2,3], "col2": [2,3,4] }
input_df = pd.DataFrame(pdf_data)
# collect inputs data, store correlation_context
context = inputs_collector.collect(input_df)
# perform scoring with pandas Dataframe, return value is also pandas Dataframe
output_df = predict(input_df)
# collect outputs data, pass in correlation_context so inputs and outputs data can be correlated later
outputs_collector.collect(output_df, context)
return output_df.to_dict()
def preprocess(json_data):
# preprocess the payload to ensure it can be converted to pandas DataFrame
return json_data["data"]
def predict(input_df):
# process input and return with outputs
...
return output_df
Обновление скрипта оценки для регистрации пользовательских уникальных идентификаторов
Помимо ведения журнала pandas DataFrames непосредственно в скрипте оценки, вы можете регистрировать данные с уникальными идентификаторами вашего выбора. Эти идентификаторы могут поступать из приложения, внешней системы или их создания. Если вы не предоставляете пользовательский идентификатор, как описано в этом разделе, сборщик данных автоматически создаст уникальный correlationid
для сопоставления входных и выходных данных модели позже. Если указать пользовательский идентификатор, correlationid
поле в зарегистрированных данных будет содержать значение предоставленного пользовательского идентификатора.
Сначала выполните действия, описанные в предыдущем разделе, а затем импортируйте
azureml.ai.monitoring.context
пакет, добавив следующую строку в скрипт оценки:from azureml.ai.monitoring.context import BasicCorrelationContext
В скрипте оценки создайте
BasicCorrelationContext
экземпляр объекта и передайте его вid
журнал для этой строки. Мы рекомендуемid
использовать уникальный идентификатор из вашей системы, чтобы можно было однозначно идентифицировать каждую строку журнала из хранилища BLOB-объектов. Передайте этот объект в вызов API вcollect()
качестве параметра:# create a context with a custom unique id artificial_context = BasicCorrelationContext(id='test') # collect inputs data, store correlation_context context = inputs_collector.collect(input_df, artificial_context)
Убедитесь, что вы передаете контекст в контекст
outputs_collector
, чтобы входные и выходные данные модели имели одинаковый уникальный идентификатор, зарегистрированный с ними, и их можно легко сопоставить позже:# collect outputs data, pass in context so inputs and outputs data can be correlated later outputs_collector.collect(output_df, context)
Следующий код является примером полного скрипта оценки (score.py
), который регистрирует пользовательские уникальные идентификаторы.
import pandas as pd
import json
from azureml.ai.monitoring import Collector
from azureml.ai.monitoring.context import BasicCorrelationContext
def init():
global inputs_collector, outputs_collector, inputs_outputs_collector
# instantiate collectors with appropriate names, make sure align with deployment spec
inputs_collector = Collector(name='model_inputs')
outputs_collector = Collector(name='model_outputs')
def run(data):
# json data: { "data" : { "col1": [1,2,3], "col2": [2,3,4] } }
pdf_data = preprocess(json.loads(data))
# tabular data: { "col1": [1,2,3], "col2": [2,3,4] }
input_df = pd.DataFrame(pdf_data)
# create a context with a custom unique id
artificial_context = BasicCorrelationContext(id='test')
# collect inputs data, store correlation_context
context = inputs_collector.collect(input_df, artificial_context)
# perform scoring with pandas Dataframe, return value is also pandas Dataframe
output_df = predict(input_df)
# collect outputs data, pass in context so inputs and outputs data can be correlated later
outputs_collector.collect(output_df, context)
return output_df.to_dict()
def preprocess(json_data):
# preprocess the payload to ensure it can be converted to pandas DataFrame
return json_data["data"]
def predict(input_df):
# process input and return with outputs
...
return output_df
Сбор данных для мониторинга производительности модели
Если вы хотите использовать собранные данные для мониторинга производительности модели, важно, чтобы каждая строка, зарегистрированная в журнале, была уникальной correlationid
, которая может использоваться для сопоставления данных с данными о действительности, когда эти данные становятся доступными. Сборщик данных автоматически создаст уникальное для correlationid
каждой зарегистрированной строки и включает этот автоматически созданный идентификатор в correlationid
поле в объекте JSON. Дополнительные сведения о схеме JSON см. в разделе "Хранение собранных данных в хранилище BLOB-объектов".
Если вы хотите использовать собственный уникальный идентификатор для ведения журнала с рабочими данными, рекомендуется регистрировать этот идентификатор как отдельный столбец в кадре данных pandas, так как сборщик данных пакетирует запросы , которые находятся в близком расположении друг к другу. Ведение журнала correlationid
в виде отдельного столбца будет легко доступно для интеграции с данными о действительности земли.
Обновление зависимостей
Прежде чем создать развертывание с помощью обновленного скрипта оценки, необходимо создать среду с базовым образом mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
и соответствующими зависимостями conda. После этого можно создать среду с помощью спецификации в следующем YAML.
channels:
- conda-forge
dependencies:
- python=3.8
- pip=22.3.1
- pip:
- azureml-defaults==1.38.0
- azureml-ai-monitoring~=0.1.0b1
name: model-env
Обновление YAML развертывания
Затем вы создадите YAML развертывания. Чтобы создать YAML развертывания, включите data_collector
атрибут и включите сбор данных для объектов model_inputs
и model_outputs
создайте экземпляр ранее с помощью пользовательского пакета SDK python для Collector
ведения журнала:
data_collector:
collections:
model_inputs:
enabled: 'True'
model_outputs:
enabled: 'True'
Следующий код является примером комплексного развертывания YAML для развертывания управляемой сетевой конечной точки. Вы должны обновить YAML развертывания в соответствии с вашим сценарием. Дополнительные примеры форматирования YAML развертывания для ведения журнала данных вывода см . в примерах сборщика данных модели Azure.
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my_endpoint
model: azureml:iris_mlflow_model@latest
environment:
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
conda_file: model/conda.yaml
code_configuration:
code: scripts
scoring_script: score.py
instance_type: Standard_F2s_v2
instance_count: 1
data_collector:
collections:
model_inputs:
enabled: 'True'
model_outputs:
enabled: 'True'
При необходимости можно настроить следующие дополнительные параметры для вашего data_collector
:
data_collector.rolling_rate
: скорость секционирования данных в хранилище. Выберите из значений:Minute
, ,Day
Hour
,Month
илиYear
.data_collector.sampling_rate
: процент, представленный как десятичная ставка данных для сбора. Например, значение1.0
представляет сбор 100 % данных.data_collector.collections.<collection_name>.data.name
: имя ресурса данных для регистрации с собранными данными.data_collector.collections.<collection_name>.data.path
: полный Машинное обучение Azure путь к хранилищу данных, в котором собранные данные должны быть зарегистрированы в качестве ресурса данных.data_collector.collections.<collection_name>.data.version
: версия ресурса данных, зарегистрированного с собранными данными в хранилище BLOB-объектов.
Сбор данных в пользовательский контейнер хранилища BLOB-объектов
Сборщик данных можно использовать для сбора рабочих данных в пользовательский контейнер хранилища BLOB-объектов, выполнив следующие действия.
Подключите контейнер хранилища к хранилищу Машинное обучение Azure данных. Дополнительные сведения о подключении контейнера хранилища к хранилищу Машинное обучение Azure см. в статье о создании хранилищ данных.
Убедитесь, что конечная точка Машинное обучение Azure имеет необходимые разрешения для записи в место назначения хранилища данных.
Сборщик данных поддерживает управляемые удостоверения, назначенные системой (SAMIs), и назначенные пользователем управляемые удостоверения (UAMIs). Добавьте удостоверение в конечную точку.
Storage Blob Data Contributor
Назначьте роль этому удостоверению контейнер хранилища BLOB-объектов, который будет использоваться в качестве назначения данных. Сведения об использовании управляемых удостоверений в Azure см. в статье о назначении ролей Azure управляемому удостоверению.Обновите YAML развертывания, чтобы включить свойство в каждую
data
коллекцию.- Обязательный параметр
data.name
указывает имя ресурса данных, зарегистрированного с собранными данными. - Обязательный параметр
data.path
указывает полный Машинное обучение Azure путь к хранилищу данных, подключенный к контейнеру Хранилище BLOB-объектов Azure. - Необязательный параметр указывает
data.version
версию ресурса данных (по умолчанию — 1).
В следующей конфигурации YAML показан пример включения
data
свойства в каждую коллекцию.data_collector: collections: model_inputs: enabled: 'True' data: name: my_model_inputs_data_asset path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_inputs version: 1 model_outputs: enabled: 'True' data: name: my_model_outputs_data_asset path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_outputs version: 1
Примечание.
Вы также можете использовать
data.path
параметр для указания на хранилища данных в разных подписках Azure, предоставив путь, следующий за форматом:azureml://subscriptions/<sub_id>/resourcegroups/<rg_name>/workspaces/<ws_name>/datastores/<datastore_name>/paths/<path>
- Обязательный параметр
Создание развертывания с помощью сбора данных
Разверните модель с включенным пользовательским ведением журнала:
$ az ml online-deployment create -f deployment.YAML
Дополнительные сведения о форматировании YAML развертывания для сбора данных с помощью сетевых конечных точек Kubernetes см. в схеме YAML с поддержкой Azure Arc (CLI версии 2).
Дополнительные сведения о форматировании YAML развертывания для сбора данных с помощью управляемых сетевых конечных точек см. в схеме YAML управляемого развертывания с помощью ИНТЕРФЕЙСА командной строки (2).
Ведение журнала полезных данных
Помимо пользовательского ведения журнала с помощью предоставленного пакета SDK для Python, вы можете собирать данные полезных данных HTTP-запросов и ответов непосредственно без необходимости расширения скрипта оценки (score.py
).
Чтобы включить ведение журнала полезных данных, в развертывании YAML используйте имена
request
иresponse
:$schema: http://azureml/sdk-2-0/OnlineDeployment.json endpoint_name: my_endpoint name: blue model: azureml:my-model-m1:1 environment: azureml:env-m1:1 data_collector: collections: request: enabled: 'True' response: enabled: 'True'
Разверните модель с включенным ведением журнала полезных данных:
$ az ml online-deployment create -f deployment.YAML
При ведении журнала полезных данных собранные данные не гарантируются в табличном формате. Таким образом, если вы хотите использовать собранные полезные данные с мониторингом модели, вам потребуется предоставить компонент предварительной обработки, чтобы сделать табличные данные. Если вы заинтересованы в простом мониторинге моделей, рекомендуется использовать пользовательский пакет SDK для ведения журнала Python.
При использовании развертывания собранные данные передаются в хранилище BLOB-объектов рабочей области. Следующий код JSON является примером собранного HTTP-запроса:
{"specversion":"1.0",
"id":"19790b87-a63c-4295-9a67-febb2d8fbce0",
"source":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/mire2etesting/providers/Microsoft.MachineLearningServices/workspaces/mirmasterenvws/onlineEndpoints/localdev-endpoint/deployments/localdev",
"type":"azureml.inference.request",
"datacontenttype":"application/json",
"time":"2022-05-25T08:59:48Z",
"data":{"data": [ [1,2,3,4,5,6,7,8,9,10], [10,9,8,7,6,5,4,3,2,1]]},
"path":"/score",
"method":"POST",
"contentrange":"bytes 0-59/*",
"correlationid":"aaaa0000-bb11-2222-33cc-444444dddddd","xrequestid":"aaaa0000-bb11-2222-33cc-444444dddddd"}
И следующий код JSON является еще одним примером собранного HTTP-ответа:
{"specversion":"1.0",
"id":"bbd80e51-8855-455f-a719-970023f41e7d",
"source":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/mire2etesting/providers/Microsoft.MachineLearningServices/workspaces/mirmasterenvws/onlineEndpoints/localdev-endpoint/deployments/localdev",
"type":"azureml.inference.response",
"datacontenttype":"application/json",
"time":"2022-05-25T08:59:48Z",
"data":[11055.977245525679, 4503.079536107787],
"contentrange":"bytes 0-38/39",
"correlationid":"aaaa0000-bb11-2222-33cc-444444dddddd","xrequestid":"aaaa0000-bb11-2222-33cc-444444dddddd"}
Хранение собранных данных в хранилище BLOB-объектов
Сбор данных позволяет регистрировать рабочие данные вывода в выбранное место хранилища BLOB-объектов. Параметры назначения данных настраиваются на collection_name
уровне.
Выходные данные и формат хранилища BLOB-объектов:
По умолчанию собранные данные хранятся по следующему пути в хранилище BLOB-объектов рабочей области:
azureml://datastores/workspaceblobstore/paths/modelDataCollector
Окончательный путь в большом двоичном объекте будет добавлен.
{endpoint_name}/{deployment_name}/{collection_name}/{yyyy}/{MM}/{dd}/{HH}/{instance_id}.jsonl
Каждая строка в файле представляет собой объект JSON, представляющий один запрос вывода или ответ, записанный в журнал.
Примечание.
collection_name
ссылается на имя сбора данных (например, model_inputs
или model_outputs
).
instance_id
— уникальный идентификатор, определяющий группирование данных, которые были зарегистрированы.
Собранные данные соответствуют следующей схеме JSON. Собранные данные доступны из data
ключа и предоставляются дополнительные метаданные.
{"specversion":"1.0",
"id":"725aa8af-0834-415c-aaf5-c76d0c08f694",
"source":"/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/mire2etesting/providers/Microsoft.MachineLearningServices/workspaces/mirmasterws/onlineEndpoints/localdev-endpoint/deployments/localdev",
"type":"azureml.inference.inputs",
"datacontenttype":"application/json",
"time":"2022-12-01T08:51:30Z",
"data":[{"label":"DRUG","pattern":"aspirin"},{"label":"DRUG","pattern":"trazodone"},{"label":"DRUG","pattern":"citalopram"}],
"correlationid":"bbbb1111-cc22-3333-44dd-555555eeeeee","xrequestid":"bbbb1111-cc22-3333-44dd-555555eeeeee",
"modelversion":"default",
"collectdatatype":"pandas.core.frame.DataFrame",
"agent":"monitoring-sdk/0.1.2",
"contentrange":"bytes 0-116/117"}
Совет
Разрывы строк отображаются только для удобочитаемости. В собранных jsonl-файлах нет разрывов строк.
Хранение больших полезных данных
Если полезные данные больше 4 МБ, в файле будет событие, содержащееся в {instance_id}.jsonl
{endpoint_name}/{deployment_name}/request/.../{instance_id}.jsonl
пути, который указывает на необработанный путь к файлу, который должен иметь следующий путь: blob_url/{blob_container}/{blob_path}/{endpoint_name}/{deployment_name}/{rolled_time}/{instance_id}.jsonl
Собранные данные будут существовать по этому пути.
Хранение двоичных данных
С собранными двоичными данными мы показываем необработанный файл напрямую с instance_id
именем файла. Двоичные данные помещаются в ту же папку, что и путь к исходной группе запросов, на основе rolling_rate
. В следующем примере показан путь к полю данных. Формат — json, а разрывы строк отображаются только для удобства чтения:
{
"specversion":"1.0",
"id":"ba993308-f630-4fe2-833f-481b2e4d169a",
"source":"/subscriptions//resourceGroups//providers/Microsoft.MachineLearningServices/workspaces/ws/onlineEndpoints/ep/deployments/dp",
"type":"azureml.inference.request",
"datacontenttype":"text/plain",
"time":"2022-02-28T08:41:07Z",
"data":"https://masterws0373607518.blob.core.windows.net/modeldata/mdc/%5Byear%5D%5Bmonth%5D%5Bday%5D-%5Bhour%5D_%5Bminute%5D/ba993308-f630-4fe2-833f-481b2e4d169a",
"path":"/score?size=1",
"method":"POST",
"contentrange":"bytes 0-80770/80771",
"datainblob":"true"
}
Пакетная обработка сборщика данных
Если запросы отправляются в течение коротких интервалов времени друг от друга, сборщик данных пакетирует их вместе в один и тот же объект JSON. Например, если вы запускаете скрипт для отправки примеров данных в конечную точку, а в развертывании включена сбор данных, некоторые запросы могут быть пакетированы вместе в зависимости от интервала времени между ними. Если вы используете сбор данных с мониторингом Машинное обучение Azure модели, служба мониторинга моделей обрабатывает каждый запрос независимо. Однако если вы ожидаете, что каждая строка данных, зарегистрированная в журнале, имеет свою уникальную уникальность correlationid
, можно включить correlationid
в качестве столбца в кадр данных pandas, который вы регистрируете с помощью сборщика данных. Дополнительные сведения о том, как можно включить уникальный correlationid
в качестве столбца в кадр данных Pandas, см. в разделе "Сбор данных" для мониторинга производительности модели.
Ниже приведен пример двух зарегистрированных запросов, которые пакетируются вместе:
{"specversion":"1.0",
"id":"720b8867-54a2-4876-80eb-1fd6a8975770",
"source":"/subscriptions/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/resourceGroups/rg-bozhlinmomoignite/providers/Microsoft.MachineLearningServices/workspaces/momo-demo-ws/onlineEndpoints/credit-default-mdc-testing-4/deployments/main2",
"type":"azureml.inference.model_inputs",
"datacontenttype":"application/json",
"time":"2024-03-05T18:16:25Z",
"data":[{"LIMIT_BAL":502970,"AGE":54,"BILL_AMT1":308068,"BILL_AMT2":381402,"BILL_AMT3":442625,"BILL_AMT4":320399,"BILL_AMT5":322616,"BILL_AMT6":397534,"PAY_AMT1":17987,"PAY_AMT2":78764,"PAY_AMT3":26067,"PAY_AMT4":24102,"PAY_AMT5":-1155,"PAY_AMT6":2154,"SEX":2,"EDUCATION":2,"MARRIAGE":2,"PAY_0":0,"PAY_2":0,"PAY_3":0,"PAY_4":0,"PAY_5":0,"PAY_6":0},{"LIMIT_BAL":293458,"AGE":35,"BILL_AMT1":74131,"BILL_AMT2":-71014,"BILL_AMT3":59284,"BILL_AMT4":98926,"BILL_AMT5":110,"BILL_AMT6":1033,"PAY_AMT1":-3926,"PAY_AMT2":-12729,"PAY_AMT3":17405,"PAY_AMT4":25110,"PAY_AMT5":7051,"PAY_AMT6":1623,"SEX":1,"EDUCATION":3,"MARRIAGE":2,"PAY_0":-2,"PAY_2":-2,"PAY_3":-2,"PAY_4":-2,"PAY_5":-1,"PAY_6":-1}],
"contentrange":"bytes 0-6794/6795",
"correlationid":"test",
"xrequestid":"test",
"modelversion":"default",
"collectdatatype":"pandas.core.frame.DataFrame",
"agent":"azureml-ai-monitoring/0.1.0b4"}
Просмотр данных в пользовательском интерфейсе студии
Чтобы просмотреть собранные данные в хранилище BLOB-объектов из пользовательского интерфейса студии:
Перейдите на вкладку "Данные" в рабочей области Машинное обучение Azure:
Перейдите к хранилищам данных и выберите хранилище workspaceblobstore (по умолчанию):
Используйте меню "Обзор", чтобы просмотреть собранные рабочие данные:
Сбор данных для моделей MLflow
Если вы развертываете модель MLflow в Машинное обучение Azure онлайн-конечную точку, можно включить сбор данных вывода рабочей среды с одним переключателем в пользовательском интерфейсе студии. Если сбор данных включен, Машинное обучение Azure автоматически инструментировать скрипт оценки с помощью пользовательского кода ведения журнала, чтобы убедиться, что рабочие данные записываются в хранилище BLOB-объектов рабочей области. Затем мониторы модели могут использовать данные для мониторинга производительности модели MLflow в рабочей среде.
При настройке развертывания модели можно включить сбор рабочих данных. На вкладке "Развертывание" выберите "Включено " для сбора данных.
После включения сбора данных рабочие данные вывода будут записаны в хранилище BLOB-объектов рабочей области Машинное обучение Azure, а два ресурса данных будут созданы с именами <endpoint_name>-<deployment_name>-model_inputs
и<endpoint_name>-<deployment_name>-model_outputs
. Эти ресурсы данных обновляются в режиме реального времени при использовании развертывания в рабочей среде. Затем мониторы модели могут использовать ресурсы данных для мониторинга производительности модели в рабочей среде.