Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ:
Пакет SDK для Python azure-ai-ml версии 2 (current)
В этом руководстве вы используете записную книжку Машинное обучение Azure для отправки примера набора данных, регистрации его в качестве ресурса данных с версией и доступа к нему с помощью Python для интерактивного изучения. В частности, вы:
- Отправка данных в облачное хранилище
- Создайте ресурс данных в Машинное обучение Azure
- Доступ к данным в записной книжке для интерактивной разработки
- Создание новых версий ресурсов данных
Проект машинного обучения обычно начинается с анализа аналитических данных (EDA), предварительной обработки данных (очистка, проектирование признаков) и создания прототипов модели машинного обучения для проверки гипотез. Этот этап создания прототипов является очень интерактивным и позволяет разрабатывать в интегрированной среде разработки или записной книжке Jupyter с помощью интерактивной консоли Python. В этом руководстве описаны эти понятия.
Предварительные требования
-
Чтобы использовать Машинное обучение Azure, вам нужна рабочая область. Если у вас её нет, выполните шаг Создайте ресурсы, необходимые для начала работы, чтобы создать рабочую область и узнать больше о её использовании.
Внимание
Если в рабочей области Машинное обучение Azure настроена управляемая виртуальная сеть, может потребоваться добавить правила для исходящего трафика, чтобы разрешить доступ к общедоступным репозиториям пакетов Python. Дополнительные сведения см. в статье "Сценарий: доступ к общедоступным пакетам машинного обучения".
-
Войдите в Studio и выберите рабочую область, если она ещё не открыта.
-
Откройте или создайте записную книжку в рабочей области:
- Если вы хотите скопировать и вставить код в ячейки, создайте новую записную книжку.
- Или откройте tutorials/get-started-notebooks/explore-data.ipynb в разделе Samples в Studio. Затем выберите Клонировать, чтобы добавить блокнот в Файлы. Чтобы найти примеры записных книжек, см. Работа с примерами записных книжек.
Выберите ядро и откройте в Visual Studio Code (VS Code)
На верхней панели над открытой записной книжкой создайте вычислительный экземпляр, если у вас его еще нет.
Если вычислительный экземпляр остановлен, нажмите кнопку "Пуск вычислений " и дождитесь, пока он не будет запущен.
Подождите, пока вычислительный экземпляр запустится. Затем убедитесь, что ядро в правом верхнем углу —
Python 3.10 - SDK v2. В противном случае используйте раскрывающийся список для выбора этого ядра.Если вы не видите это ядро, убедитесь, что вычислительный экземпляр запущен. Если это так, нажмите кнопку "Обновить " в правом верхнем углу записной книжки.
Если вы видите баннер, который говорит, что необходимо пройти проверку подлинности, выберите "Проверка подлинности".
Вы можете запустить блокнот здесь или открыть его в VS Code в полной интегрированной среде разработки (IDE) с использованием ресурсов Машинное обучение Azure. Выберите "Открыть" в VS Code, а затем выберите вариант веб-приложения или рабочего стола. При запуске таким образом VS Code присоединяется к вычислительному экземпляру, ядру и файловой системе рабочей области.
Внимание
В остальной части этого руководства содержатся ячейки блокнота с руководством. Скопируйте и вставьте их в свой новый блокнот или перейдите к блокноту сейчас, если вы его клонировали.
Скачивание данных, используемых в этом руководстве
В этом руководстве используется пример данных клиента кредитной карты в формате 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Теперь можно закрыть окно терминала.
Дополнительную информацию о данных в репозитории машинного обучения Калифорнийского университета в Ирвайне можно найти в этом ресурсе.
Создайте дескриптор для рабочей области
Прежде чем приступить к изучению кода, вам понадобится способ обращаться к своей рабочей области. Вы создаёте ml_client как дескриптор рабочей области. Затем вы используете ml_client для управления ресурсами и заданиями.
В следующей ячейке введите идентификатор подписки, имя группы ресурсов и имя рабочей области. Вот как найти эти значения:
- На панели инструментов в правом верхнем углу Студии машинного обучения Azure выберите имя рабочей области.
- Скопируйте значение рабочей области, группы ресурсов и идентификатор подписки в код.
- Необходимо скопировать каждое значение по отдельности, по одному за раз. Закройте область, вставьте значение, а затем перейдите к следующему.
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential, InteractiveBrowserCredential
from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes
# authenticate
try:
credential = DefaultAzureCredential()
credential.get_token("https://management.azure.com/.default")
except Exception:
credential = InteractiveBrowserCredential()
# 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, хранилища 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, как описано в разделе Доступ к данным из 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 | Объяснительный | Сумма указанного кредита (в долларах НТ): включает как индивидуальный потребительский кредит, так и семейный (дополнительный) кредит. |
| X2 | Объяснительный | Пол (1 = мужчина; 2 = женщина). |
| X3 | Объяснительный | Образование (1 = выпускная школа; 2 = университет; 3 = средняя школа; 4 = другие). |
| X4 | Объяснительный | Семейное состояние (1 = женат; 2 = сингл; 3 = другие). |
| X5 | Объяснительный | Возраст (годы). |
| X6-X11 | Объяснительный | История прошлого платежа. Последние ежемесячные платежи отслеживаются с апреля по сентябрь 2005 года. -1 = оплатить должным образом; 1 = задержка платежа в течение одного месяца; 2 = задержка платежа в течение двух месяцев; . .; 8 = задержка платежа в течение восьми месяцев; 9 = задержка платежа в течение девяти месяцев и выше. |
| X12-17 | Объяснительный | Сумма по выписке по счёту (в тайваньских долларах) с апреля по сентябрь 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 в поле поиска введите группы ресурсов и выберите его из результатов.
Выберите созданную группу ресурсов из списка.
На странице "Обзор" выберите "Удалить группу ресурсов".
Введите имя группы ресурсов. Затем выберите Удалить.
Следующие шаги
Дополнительные сведения о ресурсах данных см. в разделе "Создание ресурсов данных".
Дополнительные сведения о хранилищах данных см. в разделе "Создание хранилищ данных".
Перейдите к следующему руководству, чтобы узнать, как разработать скрипт обучения: