Поделиться через


Основные понятия

В этом разделе описываются основные понятия, которые будут полезны при использовании Хранилища признаков Databricks и таблиц признаков.

Таблицы компонентов

Признаки организованы в виде таблиц признаков. Каждая таблица должна иметь первичный ключ и поддерживается таблицей Delta и дополнительными метаданными. Метаданные таблицы признаков позволяют отслеживать источники данных, на основе которых была создана таблица, а также записные книжки и задания, которые использовались для создания таблицы или записи в таблицу.

При использовании Databricks Runtime 13.3 LTS и более поздних версий, если рабочая область включена для каталога Unity, можно использовать любую таблицу Delta в каталоге Unity с первичным ключом в качестве таблицы компонентов. См. статью "Проектирование компонентов" в каталоге Unity. Таблицы компонентов, хранящиеся в локальном хранилище компонентов рабочей области, называются таблицами компонентов рабочей области. См. статью " Работа с функциями" в магазине компонентов рабочей области.

Признаки в такой таблице обычно вычисляются и обновляются с помощью распространенной вычислительной функции.

Таблицу признаков можно опубликовать в веб-хранилище для вывода модели в реальном времени.

FeatureLookup

Многие различные модели могут использовать функции из определенной таблицы признаков, и не все модели потребуются для каждой функции. Чтобы обучить модель с помощью функций, создайте для каждой FeatureLookup таблицы признаков. Указывает FeatureLookup , какие функции следует использовать из таблицы, а также определяет ключи, используемые для объединения таблицы признаков с данными метки, переданными create_training_setв .

На схеме показано, как FeatureLookup работает. В этом примере необходимо обучить модель с помощью функций из двух таблиц customer_features компонентов и product_features. Вы создаете FeatureLookup для каждой таблицы признаков, указав имя таблицы, компоненты (столбцы), которые нужно выбрать из таблицы, и ключ подстановки, используемый при присоединении функций для создания обучающего набора данных.

Затем вы вызываете create_training_set, как показано на схеме. Этот вызов API задает кадр данных, содержащий необработанные данные обучения (label_df), FeatureLookups используемый и labelстолбец, содержащий истину земли. Данные обучения должны содержать столбцы, соответствующие каждому из первичных ключей таблиц компонентов. Данные в таблицах компонентов объединяются с входным кадром данных в соответствии с этими ключами. Результат показан на схеме в виде набора данных обучения.

Схема FeatureLookup

Обучающий набор

Обучающий набор состоит из списка признаков и кадров данных, содержащих необработанные обучающие данные, метки и первичные ключи для поиска функций. Вы можете создать обучающий набор, указав признаки для извлечения из хранилища признаков, и предоставить обучающий набор в качестве входных данных при обучении модели.

Пример создания и использования набора данных см. в разделе Создание обучающего набора данных.

При обучении модели с помощью конструктора компонентов в каталоге Unity можно просмотреть происхождение модели в Обозреватель каталога. Таблицы и функции, используемые для создания модели, автоматически отслеживаются и отображаются. Просмотр происхождения хранилища функций.

Таблицы функций временных рядов

Данные, используемые для обучения модели, часто имеют зависимости времени, встроенные в него. При сборке модели необходимо учитывать только значения признаков до времени наблюдаемого целевого значения. Если вы обучаете функции на основе данных, измеряемых после метки времени целевого значения, производительность модели может пострадать.

Таблицы функций временных рядов включают столбец метки времени, который гарантирует, что каждая строка в обучаемом наборе данных представляет последние известные значения признаков в виде метки времени строки. Таблицы функций временных рядов следует использовать всякий раз, когда значения признаков изменяются со временем, например с данными временных рядов, данными на основе событий или агрегированными данными времени.

При создании таблицы функций временных рядов необходимо указать столбцы, связанные с временем, в первичных ключах, чтобы быть временными столбцами с помощью timeseries_columns аргумента (для конструктора компонентов в каталоге Unity) или timestamp_keys аргумента (для хранилища компонентов рабочей области). Это позволяет выполнять поиск на определенный момент времени при использовании create_training_set или score_batch. Система выполняет соединение метки времени с помощью указанного timestamp_lookup_key значения.

Если аргумент или аргумент timestamp_keys не используетсяtimeseries_columns, а только указываете столбец таймерий в качестве первичного ключевого столбца, хранилище компонентов не применяет логику времени к столбцу таймерий во время соединения. Вместо этого он соответствует только строкам с точным совпадением времени вместо сопоставления всех строк до метки времени.

Автономное хранилище

Автономное хранилище признаков используется для обнаружения признаков, обучения модели и пакетного вывода. Хранилище содержит таблицы признаков, материализованные как таблицы Delta.

Веб-хранилище

Интернет-магазин — это база данных с низкой задержкой, используемая для вывода модели в режиме реального времени. Список интернет-магазинов, поддерживаемых Azure Databricks, см. в сторонних интернет-магазинах.

Потоковая передача

В дополнение к пакетным операциям записи, Хранилище признаков Databricks поддерживает потоковую передачу. Значения признаков можно записывать в таблицу признаков из источника потоковой передачи, а код вычисления признаков может использовать структурированную потоковую передачу для преобразования потоков необработанных данных в признаки.

Кроме того, можно выполнять потоковую передачу таблиц признаков из автономного хранилища в веб-хранилище.

Упаковка модели

Модель машинного обучения, обученная с использованием признаков из Хранилища признаков Databricks, сохраняет ссылки на эти признаки. Во время вывода модель может дополнительно получить значения признаков из хранилища признаков. При этом вызывающему необходимо предоставить только первичный ключ признаков, используемых в модели (например, user_id), и модель извлечет все необходимые значения признаков из хранилища.

В ходе пакетного вывода значения признаков извлекаются из автономного хранилища и присоединяются к новым данным до выполнения оценки. При выводе в реальном времени значения признаков извлекаются из веб-хранилища.

Чтобы упаковать модель с метаданными компонентов, используйте FeatureEngineeringClient.log_model (для проектирования компонентов в каталоге Unity) или FeatureStoreClient.log_model (для хранилища компонентов рабочей области).