Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ: Пакет SDK для Python azure-ai-ml версии 2 (current)
Изучив это руководство, вы:
- Отправка данных в облачное хранилище
- Создание ресурса данных Машинное обучение Azure
- Доступ к данным в записной книжке для интерактивной разработки
- Создание новых версий ресурсов данных
Проект машинного обучения обычно начинается с анализа аналитических данных (EDA), предварительной обработки данных (очистка, проектирование признаков) и создания прототипов модели машинного обучения для проверки гипотез. Этот этап создания прототипов является очень интерактивным и позволяет разрабатывать в интегрированной среде разработки или записной книжке Jupyter с помощью интерактивной консоли Python. В этом руководстве описаны эти понятия.
Необходимые компоненты
-
Чтобы использовать Машинное обучение Azure, вам нужна рабочая область. Если у вас нет ресурсов, выполните инструкции по созданию рабочей области и узнайте больше об использовании.
Внимание
Если в рабочей области Машинное обучение Azure настроена управляемая виртуальная сеть, может потребоваться добавить правила для исходящего трафика, чтобы разрешить доступ к общедоступным репозиториям пакетов Python. Дополнительные сведения см. в статье "Сценарий: доступ к общедоступным пакетам машинного обучения".
-
Войдите в студию и выберите рабочую область, если она еще не открыта.
-
Откройте или создайте записную книжку в рабочей области:
- Если вы хотите скопировать и вставить код в ячейки, создайте новую записную книжку.
- Кроме того, откройте учебники/начало работы с записными книжками/обзор-data.ipynb из раздела "Примеры " студии. Затем выберите "Клонировать", чтобы добавить записную книжку в файлы. Чтобы найти примеры записных книжек, ознакомьтесь с примерами записных книжек.
Установка ядра и открытие в Visual Studio Code (VS Code)
На верхней панели над открытой записной книжкой создайте вычислительный экземпляр, если у вас еще нет.
Если вычислительный экземпляр остановлен, нажмите кнопку "Пуск вычислений " и дождитесь, пока он не будет запущен.
Подождите, пока вычислительный экземпляр не будет запущен. Затем убедитесь, что ядро, найденное в правом верхнем углу, имеется
Python 3.10 - SDK v2
. В противном случае используйте раскрывающийся список для выбора этого ядра.Если вы не видите это ядро, убедитесь, что вычислительный экземпляр запущен. Если это так, нажмите кнопку "Обновить " в правом верхнем углу записной книжки.
Если вы видите баннер, который говорит, что необходимо пройти проверку подлинности, выберите "Проверка подлинности".
Вы можете запустить записную книжку здесь или открыть ее в VS Code для полной интегрированной среды разработки (IDE) с помощью Машинное обучение Azure ресурсов. Выберите "Открыть" в VS Code, а затем выберите вариант веб-приложения или рабочего стола. При запуске таким образом VS Code присоединяется к вычислительному экземпляру, ядру и файловой системе рабочей области.
Внимание
Остальная часть этого руководства содержит ячейки записной книжки учебника. Скопируйте и вставьте их в новую записную книжку или переключитесь на записную книжку, если она клонирована.
Скачивание данных, используемых в этом руководстве
Для приема данных Azure Data Explorer обрабатывает необработанные данные в этих форматах. В этом руководстве используется пример данных клиента кредитной карты в формате CSV. Действия происходят в ресурсе Машинного обучения Azure. В этом ресурсе вы создадите локальную папку с предлагаемым именем данных непосредственно под папкой, в которой находится эта записная книжка.
Примечание.
Это руководство зависит от данных, помещенных в папку ресурсов Машинное обучение Azure. В этом руководстве "локальный" означает расположение папки в этом Машинное обучение Azure ресурсе.
Выберите "Открыть терминал " под тремя точками, как показано на этом рисунке:
Откроется окно терминала на новой вкладке.
Обязательно измените каталог (
cd
) на ту же папку, в которой находится эта записная книжка. Например, если записная книжка находится в папке с именем get-started-notebooks:cd get-started-notebooks # modify this to the path where your notebook is located
Введите эти команды в окне терминала, чтобы скопировать данные в вычислительный экземпляр:
mkdir data cd data # the subfolder where you'll store the data wget https://azuremlexamples.blob.core.windows.net/datasets/credit_card/default_of_credit_card_clients.csv
Теперь можно закрыть окно терминала.
Дополнительные сведения о данных в репозитории UC Irvine Машинное обучение см. в этом ресурсе.
Создание дескриптора в рабочей области
Перед изучением кода вам потребуется способ ссылаться на рабочую область. Вы создаете ml_client
в качестве дескриптора рабочей области. Затем вы используете ml_client
для управления ресурсами и заданиями.
В следующей ячейке введите идентификатор подписки, имя группы ресурсов и имя рабочей области. Вот как найти эти значения:
- На панели инструментов в правом верхнем углу Студии машинного обучения Azure выберите имя рабочей области.
- Скопируйте значение рабочей области, группы ресурсов и идентификатор подписки в код.
- Необходимо скопировать каждое значение по отдельности, по одному за раз. Закройте область, вставьте значение, а затем перейдите к следующему.
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes
# authenticate
credential = DefaultAzureCredential()
# Get a handle to the workspace
ml_client = MLClient(
credential=credential,
subscription_id="<SUBSCRIPTION_ID>",
resource_group_name="<RESOURCE_GROUP>",
workspace_name="<AML_WORKSPACE_NAME>",
)
Примечание.
Создание MLClient не будет подключаться к рабочей области. Инициализация клиента отложена и ожидает первого вызова. Это происходит в следующей ячейке кода.
Отправка данных в облачное хранилище
Машинное обучение Azure использует универсальные идентификаторы ресурсов (URI), которые указывают на расположения хранилища в облаке. Универсальный код ресурса (URI) упрощает доступ к данным в записных книжках и заданиях. Форматы URI данных похожи на URL-адреса, используемые в веб-браузере для доступа к веб-страницам. Например:
- Доступ к данным с общедоступного https-сервера:
https://<account_name>.blob.core.windows.net/<container_name>/<folder>/<file>
- Доступ к данным из Azure Data Lake 2-го поколения:
abfss://<file_system>@<account_name>.dfs.core.windows.net/<folder>/<file>
Ресурс данных Машинное обучение Azure похож на закладки веб-браузера (избранное). Вместо запоминания длинных путей хранения (URI), указывающих на наиболее часто используемые данные, можно создать ресурс данных, а затем получить доступ к нему с понятным именем.
Создание ресурса данных также создает ссылку на расположение источника данных, а также копию ее метаданных. Так как данные остаются в существующем расположении, вы не несете дополнительных затрат на хранение и не рискуете целостностью источника данных. Вы можете создавать ресурсы данных из хранилищ данных Машинного обучения Azure, хранилища Azure, общедоступных URL-адресов и локальных файлов.
Совет
Для небольших отправки данных создание ресурса данных машинного обучения Azure хорошо подходит для отправки данных из локальных ресурсов компьютера в облачное хранилище. Этот подход позволяет избежать необходимости использования дополнительных средств или служебных программ. Однако для отправки больших данных может потребоваться выделенное средство или служебная программа, например azcopy. Средство командной строки azcopy перемещает данные в служба хранилища Azure и из нее. Дополнительные сведения об azcopy см. в статье "Начало работы с AzCopy".
Следующая ячейка записной книжки создает ресурс данных. Пример кода отправляет необработанный файл данных в указанный ресурс облачного хранилища.
Каждый раз, когда вы создаете ресурс данных, для него требуется уникальная версия. Если версия уже существует, вы получите ошибку. В этом коде для первого чтения данных используется "initial". Если эта версия уже существует, код не создает его заново.
Вы также можете опустить параметр версии . В этом случае для вас создается номер версии, начиная с 1 и приращения оттуда.
В этом руководстве имя "initial" используется в качестве первой версии. В руководстве по созданию конвейеров машинного обучения также используется эта версия данных, поэтому вы используете значение, которое вы увидите еще раз в этом руководстве.
from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes
# Update the 'my_path' variable to match the location of where you downloaded the data on your
# local filesystem
my_path = "./data/default_of_credit_card_clients.csv"
# Set the version number of the data asset
v1 = "initial"
my_data = Data(
name="credit-card",
version=v1,
description="Credit card data",
path=my_path,
type=AssetTypes.URI_FILE,
)
## Create data asset if it doesn't already exist:
try:
data_asset = ml_client.data.get(name="credit-card", version=v1)
print(
f"Data asset already exists. Name: {my_data.name}, version: {my_data.version}"
)
except:
ml_client.data.create_or_update(my_data)
print(f"Data asset created. Name: {my_data.name}, version: {my_data.version}")
Чтобы проверить отправленные данные, выберите "Данные " в разделе "Активы " в меню навигации слева. Данные передаются и создается ресурс данных:
Эти данные называются кредитной картой. На вкладке "Ресурсы данных " его можно увидеть в столбце "Имя ".
Хранилище данных Машинное обучение Azure — это ссылка насуществующую учетную запись хранения в Azure. Хранилище данных предлагает следующие преимущества:
Распространенный и простой API для взаимодействия с различными типами хранилища:
- Azure Data Lake Storage
- BLOB-объект
- Файлы
методы проверки подлинности и методы проверки подлинности.
Более простой способ обнаружения полезных хранилищ данных при работе в команде.
В скриптах можно скрыть сведения о подключении для доступа к данным на основе учетных данных (субъект-служба/SAS/ключ).
Доступ к данным в записной книжке
Вы хотите создать ресурсы данных для часто доступных данных. Доступ к данным можно получить с помощью URI, как описано в разделе Access из URI хранилища данных, например файловой системы. Однако, как упоминалось ранее, это может стать трудно вспомнить эти URI.
Альтернативой является использование azureml-fsspec
библиотеки, которая предоставляет интерфейс файловой системы для хранилищ данных Машинного обучения Azure. Это более простой способ доступа к CSV-файлу в Pandas:
Внимание
В ячейке записной книжки выполните этот код, чтобы установить библиотеку azureml-fsspec
Python в ядре Jupyter:
%pip install -U azureml-fsspec
import pandas as pd
# Get a handle of the data asset and print the URI
data_asset = ml_client.data.get(name="credit-card", version=v1)
print(f"Data asset URI: {data_asset.path}")
# Read into pandas - note that you will see 2 headers in your data frame - that is ok, for now
df = pd.read_csv(data_asset.path)
df.head()
Дополнительные сведения о доступе к данным в записной книжке см. в статье "Доступ к данным из облачного хранилища Azure" во время интерактивной разработки.
Создание новой версии ресурса данных
Данные требуют некоторой легкой очистки, чтобы сделать его подходящим для обучения модели машинного обучения. Он имеет:
- Два заголовка
- Столбец идентификатора клиента, который не будет использоваться в качестве функции в машинном обучении
- Пробелы в имени переменной ответа
Кроме того, по сравнению с форматом CSV, формат файла Parquet является лучшим способом хранения этих данных. Parquet предлагает сжатие и поддерживает схему. Чтобы очистить данные и сохранить их в формате Parquet:
# Read in data again, this time using the 2nd row as the header
df = pd.read_csv(data_asset.path, header=1)
# Rename column
df.rename(columns={"default payment next month": "default"}, inplace=True)
# Remove ID column
df.drop("ID", axis=1, inplace=True)
# Write file to filesystem
df.to_parquet("./data/cleaned-credit-card.parquet")
В этой таблице показана структура данных в исходном default_of_credit_card_clients.csv файле, скачанном на предыдущем шаге. Отправленные данные содержат 23 пояснительные переменные и 1 переменные ответа, как показано ниже:
Имена столбцов | Тип переменной | Описание |
---|---|---|
X1 | Объяснительный | Сумма данного кредита (NT доллар): она включает как индивидуальный потребительский кредит, так и их семью (дополнительный) кредит. |
X2 | Объяснительный | Пол (1 = мужчина; 2 = женщина). |
x3 | Объяснительный | Образование (1 = выпускная школа; 2 = университет; 3 = средняя школа; 4 = другие). |
x4 | Объяснительный | Семейное состояние (1 = женат; 2 = сингл; 3 = другие). |
x5 | Объяснительный | Возраст (годы). |
X6-X11 | Объяснительный | История прошлого платежа. Последние ежемесячные платежи отслеживаются с апреля по сентябрь 2005 года. -1 = оплатить должным образом; 1 = задержка платежа в течение одного месяца; 2 = задержка платежа в течение двух месяцев; . .; 8 = задержка платежа в течение восьми месяцев; 9 = задержка платежа в течение девяти месяцев и выше. |
X12-17 | Объяснительный | Сумма заявления о выставлении счетов (NT доллар) с апреля по сентябрь 2005 года. |
X18-23 | Объяснительный | Сумма предыдущей оплаты (NT доллар) с апреля по сентябрь 2005 года. |
У | Ответ | Оплата по умолчанию (Да = 1, Нет = 0) |
Затем создайте новую версию ресурса данных. Данные автоматически передаются в облачное хранилище. Для этой версии добавьте значение времени, чтобы каждый раз при выполнении этого кода был создан другой номер версии.
from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes
import time
# Next, create a new version of the data asset (the data is automatically uploaded to cloud storage):
v2 = "cleaned" + time.strftime("%Y.%m.%d.%H%M%S", time.gmtime())
my_path = "./data/cleaned-credit-card.parquet"
# Define the data asset, and use tags to make it clear the asset can be used in training
my_data = Data(
name="credit-card",
version=v2,
description="Default of credit card clients data.",
tags={"training_data": "true", "format": "parquet"},
path=my_path,
type=AssetTypes.URI_FILE,
)
## Create the data asset
my_data = ml_client.data.create_or_update(my_data)
print(f"Data asset created. Name: {my_data.name}, version: {my_data.version}")
Чистый файл Parquet — это последний источник данных версии. В этом коде сначала показан результирующий набор версий CSV, а затем версия Parquet:
import pandas as pd
# Get a handle of the data asset and print the URI
data_asset_v1 = ml_client.data.get(name="credit-card", version=v1)
data_asset_v2 = ml_client.data.get(name="credit-card", version=v2)
# Print the v1 data
print(f"V1 Data asset URI: {data_asset_v1.path}")
v1df = pd.read_csv(data_asset_v1.path)
print(v1df.head(5))
# Print the v2 data
print(
"_____________________________________________________________________________________________________________\n"
)
print(f"V2 Data asset URI: {data_asset_v2.path}")
v2df = pd.read_parquet(data_asset_v2.path)
print(v2df.head(5))
Очистка ресурсов
Если вы планируете перейти к другим руководствам, перейдите к следующим шагам.
Остановка вычислительного экземпляра
Если вы не планируете использовать его сейчас, остановите вычислительный экземпляр:
- В студии в левой области выберите "Вычисления".
- На верхних вкладках выберите экземпляры вычислений.
- Выберите вычислительный экземпляр из списка.
- В верхней панели инструментов выберите Остановить.
Удаление всех ресурсов
Внимание
Созданные вами ресурсы могут использоваться в качестве необходимых компонентов при работе с другими руководствами по Машинному обучению Azure.
Если вы не планируете использовать созданные вами ресурсы, удалите их, чтобы с вас не взималась плата:
В портал Azure в поле поиска введите группы ресурсов и выберите его из результатов.
Выберите созданную группу ресурсов из списка.
На странице "Обзор" выберите "Удалить группу ресурсов".
Введите имя группы ресурсов. Затем выберите Удалить.
Следующие шаги
Дополнительные сведения о ресурсах данных см. в разделе "Создание ресурсов данных".
Дополнительные сведения о хранилищах данных см. в разделе "Создание хранилищ данных".
Перейдите к следующему руководству, чтобы узнать, как разработать скрипт обучения: