Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве показано, как функции легко интегрируют все этапы жизненного цикла машинного обучения: прототип, обучение и эксплуатацию.
Вы можете использовать управляемое хранилище функций в Azure Machine Learning для обнаружения, создания и операционализации функций. Жизненный цикл машинного обучения включает этап прототипа, где вы экспериментируйте с различными функциями. Она также включает этап операционизации, в котором модели развертываются и выполняются этапы извлечения данных признаков. Функции служат соединительной тканью в жизненном цикле машинного обучения. Дополнительные сведения о базовых понятиях хранилище управляемых функций см. в статье "Что такое хранилище управляемых функций?" и общие сведения о сущностях верхнего уровня в хранилище управляемых функций ресурсах.
В этом руководстве описывается создание спецификации набора компонентов с пользовательскими преобразованиями. Затем он использует этот набор функций для генерации обучающих данных, активации материализации и выполнения обратной закачки данных. Материализация вычисляет значения признаков для окна компонента, а затем сохраняет эти значения в хранилище материализации. Затем все запросы функций могут использовать эти значения из хранилища материализации.
Без материализации запрос набора функций применяет преобразования к источнику на лету, чтобы вычислить компоненты, прежде чем он возвращает значения. Этот процесс хорошо подходит для этапа прототипа. Однако для операций обучения и вывода в рабочей среде рекомендуется материализовать функции для повышения надежности и доступности.
Это руководство является первой частью серии учебников хранилище управляемых функций. Здесь вы узнаете, как:
- Создайте новый, минимальный ресурс хранилища компонентов.
- Разработка и локальное тестирование набора компонентов с помощью возможностей преобразования компонентов.
- Зарегистрируйте объект хранилища компонентов в хранилище компонентов.
- Зарегистрируйте набор компонентов, разработанный в хранилище компонентов.
- Создайте пример обучающего кадра данных с помощью созданных функций.
- Включите автономную материализацию в наборах признаков и заполните данные признаков.
В этой серии учебников есть два трека:
- Трек, состоящий только из SDK, использует только Python SDK. Выберите этот трек для чистой разработки и развертывания на основе Python.
- Пакет SDK и инструмент CLI используют SDK для Python исключительно для разработки и тестирования наборов функций, а интерфейс командной строки применяется для операций CRUD (создание, чтение, обновление и удаление). Эта дорожка полезна в сценариях непрерывной интеграции и непрерывной доставки (CI/CD) или GitOps, где предпочтителен интерфейс командной строки или YAML.
Предварительные требования
Прежде чем продолжить работу с этим руководством, убедитесь, что выполнили следующие предварительные требования:
Рабочая область Машинного обучения Azure. Для получения дополнительной информации о создании рабочей области посетите Краткое руководство: создание ресурсов рабочей области.
В учетной записи пользователя требуется роль владельца для группы ресурсов, в которой создается хранилище компонентов.
Если вы решили использовать новую группу ресурсов для этого руководства, вы можете легко удалить все ресурсы, удалив группу ресурсов.
Подготовка окружения для записной книжки
В этом руководстве используется записная книжка Spark Машинное обучение Azure для разработки.
В среде Студия машинного обучения Azure выберите записные книжки на левой панели и перейдите на вкладку "Примеры".
Перейдите к каталогу featurestore_sample (выберите примеры>>>), а затем нажмите кнопку >
Откроется панель выбора целевого каталога . Выберите каталог "Пользователи", а затем выберите имя пользователя и нажмите кнопку "Клонировать".
Чтобы настроить среду записной книжки, необходимо загрузить файл conda.yml.
- Выберите записные книжки на левой панели и перейдите на вкладку "Файлы ".
- Перейдите в каталог env (выберите Users>your_user_name>featurestore_sample>project>env), а затем выберите файл conda.yml.
- Выберите Скачать.
- Выберите Бессерверную вычислительную платформу Spark в выпадающем меню Compute, находящемся в верхнем меню навигации. Эта операция может занять от одного до двух минут. Дождитесь, пока в верхней части строки состояния отобразится Настройка сеанса.
- Выберите " Настройка сеанса " в верхней строке состояния.
- Выберите пакеты Python.
- Выберите Загрузить файлы conda
- Выберите файл, скачанный
conda.ymlна локальном устройстве. - (Необязательно) Увеличьте время ожидания сеанса (время простоя в минутах), чтобы сократить время запуска бессерверного кластера Spark.
В среде Машинное обучение Azure откройте записную книжку и выберите пункт "Настройка сеанса".
На панели "Настройка сеанса" выберите пакеты Python.
Отправьте файл Conda:
- На вкладке "Пакеты Python" выберите "Отправить файл Conda".
- Перейдите к каталогу, на котором размещен файл Conda.
- Выберите conda.yml и нажмите кнопку "Открыть".
Выберите Применить.
Запуск сеанса Spark
# Run this cell to start the spark session (any code block will start the session ). This can take around 10 mins.
print("start spark session")Настройка корневого каталога для примеров
import os
# Please update <your_user_alias> below (or any custom directory you uploaded the samples to).
# You can find the name from the directory structure in the left navigation panel.
root_dir = "./Users/<your_user_alias>/featurestore_sample"
if os.path.isdir(root_dir):
print("The folder exists.")
else:
print("The folder does not exist. Please create or fix the path")Настройка CLI
Примечание.
Вы используете хранилище функций для повторного использования функций в проектах. Вы используете рабочую область Машинного обучения Azure для обучения инференс-моделей, используя преимущества функций из хранилищ признаков. Многие рабочие области проекта могут совместно использовать и повторно использовать одно и то же хранилище функций.
В этом руководстве используются два пакета SDK:
Пакет SDK CRUD для хранилища компонентов
Вы используете тот же
MLClientпакет SDK (имяazure-ai-mlпакета), который используется в рабочей области Машинное обучение Azure. Хранилище функций реализуется как тип рабочей области. В результате этот пакет SDK используется для операций CRUD для хранилищ компонентов, наборов компонентов и сущностей хранилища компонентов.Основной пакет SDK для хранилища компонентов
Этот пакет SDK (
azureml-featurestore) предназначен для разработки и использования набора компонентов. Далее в этом руководстве описаны следующие операции:- Разработка спецификации набора компонентов.
- Извлечение данных о характеристиках.
- Перечислить или получить зарегистрированный набор функций.
- Создание и разрешение спецификаций извлечения компонентов.
- Создайте данные для обучения и предсказания с помощью соединений по срезам времени.
В этом руководстве не требуется явная установка этих пакетов SDK, так как предыдущие conda.yml инструкции охватывают этот шаг.
Создание минимального хранилища функций
Задайте параметры хранилища компонентов, включая имя, расположение и другие значения.
# We use the subscription, resource group, region of this active project workspace. # You can optionally replace them to create the resources in a different subsciprtion/resource group, or use existing resources. import os featurestore_name = "<FEATURESTORE_NAME>" featurestore_location = "eastus" featurestore_subscription_id = os.environ["AZUREML_ARM_SUBSCRIPTION"] featurestore_resource_group_name = os.environ["AZUREML_ARM_RESOURCEGROUP"]Создайте хранилище компонентов.
from azure.ai.ml import MLClient from azure.ai.ml.entities import ( FeatureStore, FeatureStoreEntity, FeatureSet, ) from azure.ai.ml.identity import AzureMLOnBehalfOfCredential ml_client = MLClient( AzureMLOnBehalfOfCredential(), subscription_id=featurestore_subscription_id, resource_group_name=featurestore_resource_group_name, ) fs = FeatureStore(name=featurestore_name, location=featurestore_location) # wait for feature store creation fs_poller = ml_client.feature_stores.begin_create(fs) print(fs_poller.result())Инициализация основного клиента SDK для хранилища признаков в Microsoft Azure Machine Learning.
Как описано ранее в этом руководстве, основной клиент sdk для хранилища компонентов используется для разработки и использования функций.
# feature store client from azureml.featurestore import FeatureStoreClient from azure.ai.ml.identity import AzureMLOnBehalfOfCredential featurestore = FeatureStoreClient( credential=AzureMLOnBehalfOfCredential(), subscription_id=featurestore_subscription_id, resource_group_name=featurestore_resource_group_name, name=featurestore_name, )Предоставьте роль "Машинное обучение Azure Специалист по обработке и анализу данных" в хранилище компонентов идентификатору пользователя. Получите значение идентификатора объекта Microsoft Entra из портала Azure, как описано в Найти идентификатор объекта пользователя.
Назначьте роль AzureML Специалист по обработке и анализу данных удостоверениям пользователя, чтобы она могли создавать ресурсы в рабочей области хранилища компонентов. Для распространения разрешений может потребоваться некоторое время.
Дополнительные сведения об управлении доступом см. в разделе «Управление доступом для управляемого хранилища функций» ресурса.
your_aad_objectid = "<USER_AAD_OBJECTID>" !az role assignment create --role "AzureML Data Scientist" --assignee-object-id $your_aad_objectid --assignee-principal-type User --scope $feature_store_arm_id
Прототип и разработка набора компонентов
В следующих шагах вы создадите набор признаков с именем transactions, имеющий агрегированные признаки на основе скользящего окна.
Изучите исходные
transactionsданные.Эта записная книжка использует образцы данных, размещенных в общедоступном контейнере для хранения BLOB. Его можно считывать в Spark только через
wasbsдрайвер. При создании наборов компонентов с помощью собственных исходных данных размещайте их в учетной записи Azure Data Lake Storage 2-го поколения и используйтеabfssдрайвер в пути к данным.# remove the "." in the roor directory path as we need to generate absolute path to read from spark transactions_source_data_path = "wasbs://[email protected]/feature-store-prp/datasources/transactions-source/*.parquet" transactions_src_df = spark.read.parquet(transactions_source_data_path) display(transactions_src_df.head(5)) # Note: display(training_df.head(5)) displays the timestamp column in a different format. You can can call transactions_src_df.show() to see correctly formatted valueЛокально разработайте набор функций.
Спецификация набора компонентов — это автономное определение набора компонентов, которое можно локально разрабатывать и тестировать. Здесь вы создадите следующие статистические функции скользящего окна:
transactions three-day counttransactions amount three-day avgtransactions amount three-day sumtransactions seven-day counttransactions amount seven-day avgtransactions amount seven-day sum
Просмотрите файл кода преобразования признаков: featurestore/featuresets/transactions/transformation_code/transaction_transform.py. Обратите внимание на последовательное агрегирование, определенное для функций. Это преобразователь Spark.
Дополнительные сведения о наборе функций и преобразованиях см. в ресурсе "Что такое хранилище управляемых функций?".
from azureml.featurestore import create_feature_set_spec from azureml.featurestore.contracts import ( DateTimeOffset, TransformationCode, Column, ColumnType, SourceType, TimestampColumn, ) from azureml.featurestore.feature_source import ParquetFeatureSource transactions_featureset_code_path = ( root_dir + "/featurestore/featuresets/transactions/transformation_code" ) transactions_featureset_spec = create_feature_set_spec( source=ParquetFeatureSource( path="wasbs://[email protected]/feature-store-prp/datasources/transactions-source/*.parquet", timestamp_column=TimestampColumn(name="timestamp"), source_delay=DateTimeOffset(days=0, hours=0, minutes=20), ), feature_transformation=TransformationCode( path=transactions_featureset_code_path, transformer_class="transaction_transform.TransactionFeatureTransformer", ), index_columns=[Column(name="accountID", type=ColumnType.string)], source_lookback=DateTimeOffset(days=7, hours=0, minutes=0), temporal_join_lookback=DateTimeOffset(days=1, hours=0, minutes=0), infer_schema=True, )Экспорт в виде спецификации набора компонентов.
Чтобы зарегистрировать спецификацию набора компонентов в хранилище компонентов, необходимо сохранить эту спецификацию в определенном формате.
Просмотрите спецификацию сгенерированного
transactionsнабора функций. Откройте этот файл из дерева папок, чтобы просмотреть спецификацию featurestore/featuresets/accounts/spec/FeaturesetSpec.yaml.Спецификация содержит следующие элементы:
-
source: ссылка на ресурс хранилища. В данном случае это паркетный файл в ресурсе хранилища BLOB. -
features: список функций и их типов данных. Если вы предоставляете код преобразования, код должен вернуть DataFrame, который отображает функции и типы данных. -
index_columns: ключи соединения, необходимые для доступа к значениям из набора компонентов.
Дополнительные сведения о спецификации см. в статье "Основные сведения о сущностях верхнего уровня" в хранилище управляемых функций и cli (версии 2) с набором ресурсов схемы YAML.
Сохранение спецификации набора функций дает еще одно преимущество: спецификация набора функций поддерживает контроль версий.
import os # Create a new folder to dump the feature set specification. transactions_featureset_spec_folder = ( root_dir + "/featurestore/featuresets/transactions/spec" ) # Check if the folder exists, create one if it does not exist. if not os.path.exists(transactions_featureset_spec_folder): os.makedirs(transactions_featureset_spec_folder) transactions_featureset_spec.dump(transactions_featureset_spec_folder, overwrite=True)-
Регистрация сущности хранилища компонентов
Как лучшая практика, сущности помогают гарантировать использование одного и того же определения ключа соединения между наборами признаков, которые используют одни и те же логические сущности. Примерами сущностей являются учетные записи и клиенты. Сущности обычно создаются один раз, а затем повторно используются в наборах компонентов. Дополнительные сведения см. в статье "Основные сведения о сущностях верхнего уровня" в хранилище управляемых функций.
Инициализировать клиент CRUD хранилища компонентов.
Как описано ранее в этом руководстве,
MLClientиспользуется для создания, чтения, обновления и удаления ресурса хранилища компонентов. Пример ячейки кода записной книжки, показанный здесь, ищет хранилище компонентов, созданное на предыдущем шаге. Здесь нельзя повторно использовать то жеml_clientзначение, которое использовалось ранее в этом руководстве, так как это значение распространяется на уровне группы ресурсов. Правильная определение области является необходимым условием для создания хранилища компонентов.В этом примере кода клиент ограничен на уровне фича-стора.
# MLClient for feature store. fs_client = MLClient( AzureMLOnBehalfOfCredential(), featurestore_subscription_id, featurestore_resource_group_name, featurestore_name, )accountЗарегистрируйте сущность в хранилище компонентов.Создайте сущность
accountс ключом соединенияaccountIDтипаstring.from azure.ai.ml.entities import DataColumn, DataColumnType account_entity_config = FeatureStoreEntity( name="account", version="1", index_columns=[DataColumn(name="accountID", type=DataColumnType.STRING)], stage="Development", description="This entity represents user account index key accountID.", tags={"data_typ": "nonPII"}, ) poller = fs_client.feature_store_entities.begin_create_or_update(account_entity_config) print(poller.result())
Регистрация набора функций транзакции в хранилище компонентов
Используйте этот код для регистрации ресурса набора компонентов в хранилище компонентов. Затем вы можете повторно использовать этот ресурс и легко поделиться им. Регистрация актива набора функций предоставляет управляемые возможности, включая управление версиями и материализацию. Далее в этой серии учебников рассматриваются управляемые возможности.
from azure.ai.ml.entities import FeatureSetSpecification
transaction_fset_config = FeatureSet(
name="transactions",
version="1",
description="7-day and 3-day rolling aggregation of transactions featureset",
entities=[f"azureml:account:1"],
stage="Development",
specification=FeatureSetSpecification(path=transactions_featureset_spec_folder),
tags={"data_type": "nonPII"},
)
poller = fs_client.feature_sets.begin_create_or_update(transaction_fset_config)
print(poller.result())Изучение пользовательского интерфейса хранилища компонентов
Создание и обновление ресурсов хранилища компонентов может выполняться только через пакет SDK и CLI. Пользовательский интерфейс можно использовать для поиска или просмотра хранилища компонентов:
- Откройте глобальную целевую страницу Машинного обучения Azure.
- Выберите хранилища компонентов на левой панели.
- В списке доступных хранилищ функций выберите хранилище функций, созданное ранее в этом руководстве.
Предоставьте вашему пользовательскому аккаунту роль чтения данных BLOB-объектов в автономном хранилище.
Роль чтения данных BLOB-объектов хранилища должна быть зачислена на вашу учетную запись пользователя в автономном хранилище. Это гарантирует, что учетная запись пользователя может считывать материализованные данные функций из автономного хранилища материализации.
Получите значение идентификатора объекта Microsoft Entra из портала Azure, как описано в Найти идентификатор объекта пользователя.
Получение сведений об автономном хранилище материализации на странице Обзор в пользовательском интерфейсе Хранилища признаков. Значения для идентификатора подписки учетной записи хранения, имени группы ресурсов хранения и имени учетной записи хранения для автономного хранилища материализации можно найти в карточке автономного хранилища материализации.
Дополнительные сведения об управлении доступом см. в ресурсе Управление доступом для хранилища управляемых функций.
Выполните эту ячейку кода для назначения ролей. Для распространения разрешений может потребоваться некоторое время.
# This utility function is created for ease of use in the docs tutorials. It uses standard azure API's. # You can optionally inspect it `featurestore/setup/setup_storage_uai.py`. import sys sys.path.insert(0, root_dir + "/featurestore/setup") from setup_storage_uai import grant_user_aad_storage_data_reader_role your_aad_objectid = "<USER_AAD_OBJECTID>" storage_subscription_id = "<SUBSCRIPTION_ID>" storage_resource_group_name = "<RESOURCE_GROUP>" storage_account_name = "<STORAGE_ACCOUNT_NAME>" grant_user_aad_storage_data_reader_role( AzureMLOnBehalfOfCredential(), your_aad_objectid, storage_subscription_id, storage_resource_group_name, storage_account_name, )
Создание кадра данных для обучения с помощью зарегистрированного набора компонентов
Загрузка данных наблюдения.
Данные наблюдения обычно включают основные данные, используемые для обучения и вывода. Эти данные присоединяются к данным компонента для создания полного ресурса данных обучения.
Данные наблюдения — это данные, захваченные во время самого события. Здесь имеются основные данные транзакций, включая идентификатор транзакции, идентификатор учетной записи и значения суммы транзакций. Так как он используется для обучения, он также имеет добавленную целевую переменную (is_fraud).
observation_data_path = "wasbs://[email protected]/feature-store-prp/observation_data/train/*.parquet" observation_data_df = spark.read.parquet(observation_data_path) obs_data_timestamp_column = "timestamp" display(observation_data_df) # Note: the timestamp column is displayed in a different format. Optionally, you can can call training_df.show() to see correctly formatted valueПолучите зарегистрированный набор компонентов и перечислите его функции.
# Look up the featureset by providing a name and a version. transactions_featureset = featurestore.feature_sets.get("transactions", "1") # List its features. transactions_featureset.features# Print sample values. display(transactions_featureset.to_spark_dataframe().head(5))Выберите компоненты, которые становятся частью обучающих данных. Затем используйте пакет SDK для хранилища компонентов для создания обучающих данных.
from azureml.featurestore import get_offline_features # You can select features in pythonic way. features = [ transactions_featureset.get_feature("transaction_amount_7d_sum"), transactions_featureset.get_feature("transaction_amount_7d_avg"), ] # You can also specify features in string form: featureset:version:feature. more_features = [ f"transactions:1:transaction_3d_count", f"transactions:1:transaction_amount_3d_avg", ] more_features = featurestore.resolve_feature_uri(more_features) features.extend(more_features) # Generate training dataframe by using feature data and observation data. training_df = get_offline_features( features=features, observation_data=observation_data_df, timestamp_column=obs_data_timestamp_column, ) # Ignore the message that says feature set is not materialized (materialization is optional). We will enable materialization in the subsequent part of the tutorial. display(training_df) # Note: the timestamp column is displayed in a different format. Optionally, you can can call training_df.show() to see correctly formatted valueСоединение на определенный момент времени добавляет функции в обучающие данные.
Включение автономной материализации в наборе функций transactions
После включения материализации набора функций можно выполнить обратное заполнение. Можно также запланировать повторяющиеся процессы материализации. Для получения дополнительной информации посетите третье руководство из этой серии.
Задайте spark.sql.shuffle.partitions в yaml-файле в соответствии с размером данных компонента
Конфигурация spark.sql.shuffle.partitions Spark — это необязательный параметр, который может повлиять на количество создаваемых файлов parquet (в день), когда набор функций материализуется в офлайн-хранилище. Значение по умолчанию этого параметра — 200. Рекомендуется избегать создания множества небольших файлов паркет. Если извлечение функций в режиме офлайн становится медленным после материализации набора фич, откройте соответствующую папку в автономном хранилище, чтобы проверить, связана ли проблема с слишком большим количеством небольших файлов parquet в течение дня и соответствующим образом измените значение этого параметра.
Примечание.
Образец данных, используемых в этой записной книжке, небольшой. Поэтому этот параметр имеет значение 1 в файле featureset_asset_offline_enabled.yaml.
from azure.ai.ml.entities import (
MaterializationSettings,
MaterializationComputeResource,
)
transactions_fset_config = fs_client._featuresets.get(name="transactions", version="1")
transactions_fset_config.materialization_settings = MaterializationSettings(
offline_enabled=True,
resource=MaterializationComputeResource(instance_type="standard_e8s_v3"),
spark_configuration={
"spark.driver.cores": 4,
"spark.driver.memory": "36g",
"spark.executor.cores": 4,
"spark.executor.memory": "36g",
"spark.executor.instances": 2,
"spark.sql.shuffle.partitions": 1,
},
schedule=None,
)
fs_poller = fs_client.feature_sets.begin_create_or_update(transactions_fset_config)
print(fs_poller.result())Вы также можете сохранить ресурс набора функций в качестве ресурса YAML.
## uncomment to run
transactions_fset_config.dump(
root_dir
+ "/featurestore/featuresets/transactions/featureset_asset_offline_enabled.yaml"
)Заполнение данных для transactions набора компонентов
Как описано ранее, материализация вычисляет значения признаков для окна признаков и сохраняет эти вычисленные значения в хранилище материализации. Материализация признаков повышает надежность и доступность вычисляемых значений. Все запросы функций теперь используют значения из репозитория материализации. На этом шаге выполняется однократное обратное заполнение для окна признака сроком на 18 месяцев.
Примечание.
Возможно, потребуется определить значение окна данных обратного заполнения. Окно должно соответствовать окну ваших обучающих данных. Например, чтобы использовать 18 месяцев данных для обучения, необходимо получить характеристики за 18 месяцев. Это означает, что вы должны восполнить пробелы за 18-месячный период.
Эта ячейка кода материализует данные по текущему состоянию None или Неполный для определенного окна компонентов.
from datetime import datetime
from azure.ai.ml.entities import DataAvailabilityStatus
st = datetime(2022, 1, 1, 0, 0, 0, 0)
et = datetime(2023, 6, 30, 0, 0, 0, 0)
poller = fs_client.feature_sets.begin_backfill(
name="transactions",
version="1",
feature_window_start_time=st,
feature_window_end_time=et,
data_status=[DataAvailabilityStatus.NONE],
)
print(poller.result().job_ids)# Get the job URL, and stream the job logs.
fs_client.jobs.stream(poller.result().job_ids[0])Совет
- Столбец
timestampдолжен соответствовать форматуyyyy-MM-ddTHH:mm:ss.fffZ. - Гранулярность
feature_window_start_timeиfeature_window_end_timeограничена секундами. Все миллисекунда, предоставленные в объектеdatetime, будут игнорироваться. - Задание материализации будет отправлено только в том случае, если данные в оконце функции совпадают с
data_status, заданным при отправке задания на обратную закачку.
Печать примеров данных из набора компонентов. Выходные данные показывают, что данные были получены из хранилища материализации. Метод get_offline_features() извлек данные обучения и вывода. Он также использует хранилище материализации по умолчанию.
# Look up the feature set by providing a name and a version and display few records.
transactions_featureset = featurestore.feature_sets.get("transactions", "1")
display(transactions_featureset.to_spark_dataframe().head(5))Дальнейшее изучение автономной материализации возможностей
Вы можете изучить статус материализации признаков для набора признаков в интерфейсе заданий Материализации.
Откройте глобальную целевую страницу Машинного обучения Azure.
Выберите хранилища компонентов на левой панели.
В списке доступных хранилищ компонентов выберите хранилище компонентов, для которого вы выполнили обратную заполнение.
Выберите вкладку Задания по материализации.
Состояние материализации данных может быть
- Завершено (зеленый)
- Неполный (красный)
- В ожидании (синий)
- Нет (серый)
Интервал данных представляет собой непрерывную часть данных с одинаковым состоянием материализации данных. Например, предыдущий моментальный снимок имеет 16 интервалов данных в автономном хранилище материализации.
Данные могут содержать не более 2000 интервалов данных. Если данные содержат более 2000 интервалов данных, создайте новую версию набора компонентов.
Вы можете указать список из более чем одного состояния данных (например,
["None", "Incomplete"]) в одном задании на заполнение пропусков.Во время резервной заполнения задание материализации отправляется для каждого интервала данных, который находится в определенном окне компонента.
Если задание материализации ожидается или задание выполняется для интервала данных, который еще не заполнен, новое задание не подается для этого интервала данных.
Вы можете повторить неудачное задание материализации.
Примечание.
Чтобы получить идентификатор задания материализации, завершённого с ошибкой:
- Перейдите к пользовательскому интерфейсу заданий Материализации набора компонентов.
- Выберите отображаемое имя определенного задания с состояниемсбоя.
- Найдите идентификатор задания в свойстве Name, найденном на странице обзора задания. Он начинается с
Featurestore-Materialization-.
poller = fs_client.feature_sets.begin_backfill(
name="transactions",
version=version,
job_id="<JOB_ID_OF_FAILED_MATERIALIZATION_JOB>",
)
print(poller.result().job_ids)
Обновление автономного хранилища материализации
- Если автономное хранилище материализации должно быть обновлено на уровне хранилища компонентов, все наборы компонентов в хранилище компонентов должны иметь отключенную автономную материализацию.
- Если автономная материализация отключена в наборе компонентов, состояние материализации данных, уже материализованных в автономном хранилище материализации сбрасывается. Сброс отрисовывает данные, которые уже материализованы неиспользуемы. После включения автономной материализации необходимо повторно отправить задания материализации.
В этом руководстве созданы обучающие данные с признаками из хранилища признаков, включена материализация в автономное хранилище признаков и выполнено обратное заполнение. Затем вы запустите обучение модели с помощью этих функций.
Очистка
В пятом руководстве серии описывается удаление ресурсов.
Следующие шаги
- См. следующее руководство в серии: экспериментирование и обучение моделей с помощью функций.
- Узнайте о концепциях хранилища функций и сущностях верхнего уровня в хранилище управляемых функций.
- Узнайте о удостоверении и управлении доступом для хранилище управляемых функций.
- Просмотрите инструкцию по устранению неполадок для управляемого хранилища функций.
- Просмотрите справочник YAML.