Что такое хранилище признаков?

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

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

В машинном обучении для создания модели прогнозирования будущих результатов используются существующие данные. Почти во всех случаях необработанные данные нужно предварительно обработать и преобразовать, прежде чем их можно будет использовать для создания модели. Этот процесс называется проектированием признаков, а выходные данные этого процесса называются функциями — стандартными блоками модели.

Разработка признаков является сложной и трудоемкой задачей. Дополнительное осложнение заключается в том, что для машинного обучения необходимо выполнить вычисления признаков для обучения модели, а затем снова, когда модель используется для прогнозирования. Эти реализации могут выполняться другой командой или в другой среде кода, что может привести к задержкам и ошибкам. Кроме того, разные команды в организации часто будут иметь аналогичные потребности в признаках, но могут не знать об операциях, выполненных другими командами. Хранилище признаков создано для решения этих проблем.

Преимущества использования хранилища признаков Databricks

Хранилище признаков Databricks полностью интегрировано с другими компонентами Azure Databricks.

  • Возможность обнаружения. Пользовательский интерфейс хранилища признаков, доступный из рабочей области Databricks, позволяет просматривать и находить имеющиеся признаки.
  • Происхождение данных. При создании таблицы функций в Azure Databricks источники данных, используемые для создания таблицы компонентов, сохраняются и доступны. Для каждого признака в этой таблице можно также получить доступ к моделям, записным книжкам, заданиям и конечным точкам, которые используют этой признак.
  • Интеграция со средствами оценки и обслуживания моделей. При использовании признаков из хранилища признаков для обучения модели модель упаковывается с метаданными признаков. При использовании модели для пакетной оценки или вывода через Интернет модель автоматически извлекает признаки из хранилища признаков. Вызывающему объекту не нужно знать о признаках или включать логику для их поиска или объединения, чтобы оценить новые данные. Это значительно упрощает развертывание и обновление модели.
  • Операции поиска по точке во времени Хранилище признаков поддерживает временные ряды и сценарии использования на основе событий, требующие правильности на момент времени.

Проектирование компонентов в каталоге Unity

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

Как работает Хранилище компонентов Databricks?

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

  1. Напишите код для преобразования необработанных данных в признаки и создания объекта DataFrame Spark, содержащего нужные признаки.
  2. Для рабочих областей, которые включены для каталога Unity, напишите кадр данных в качестве таблицы компонентов в каталоге Unity. Если рабочая область не включена для каталога Unity, напишите кадр данных в качестве таблицы компонентов в хранилище компонентов рабочей области.
  3. Обучите модель с помощью признаков из хранилища признаков. При этом модель сохраняет спецификации признаков, используемых для обучения. Если модель используется для вывода, она автоматически объединяет признаки из соответствующих таблиц признаков.
  4. Зарегистрируйте модель в реестре моделей.

Эту модель теперь можно использовать для создания прогнозов по новым данным.

В вариантах использования с пакетной обработакой модель автоматически извлекает необходимые признаки из Хранилища признаков.

Рабочий процесс Хранилища признаков для вариантов использования с пакетным машинным обучением.

Для вариантов использования в режиме реального времени опубликуйте функции в интернет-магазине или используйте онлайн-таблицу.

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

Поток Хранилища признаков для обслуживаемых моделей машинного обучения.

Начало работы с хранилищем признаков

Чтобы приступить к работе с хранилищем признаков, ознакомьтесь со следующими статьями:

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

Поддерживаемые типы данных

Инженерия функций в каталоге Unity и хранилище функций рабочей области поддерживают следующие типы данных PySpark:

  • IntegerType
  • FloatType
  • BooleanType
  • StringType
  • DoubleType
  • LongType
  • TimestampType
  • DateType
  • ShortType
  • ArrayType
  • BinaryType [1]
  • DecimalType [1]
  • MapType [1]

[1] BinaryTypeи DecimalTypeMapType поддерживается во всех версиях конструктора компонентов в каталоге Unity и в магазине компонентов рабочей области версии 0.3.5 или более поздней версии.

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

  • Вы можете хранить сжатые векторы, тензоры и внедрения как ArrayType.
  • Вы можете хранить разреженные векторы, тензоры и внедрения как MapType.
  • Вы можете хранить текст как StringType.

При публикации в онлайн-хранилищах признаки ArrayType и MapType сохраняются в формате JSON.

В пользовательском интерфейсе хранилища признаков отображаются метаданные для типов данных признаков:

Пример сложных типов данных

Дополнительные сведения

Чтобы получить дополнительные сведения о рекомендациях по использованию хранилища признаков, скачайте книгу Comprehensive Guide to Feature Stores (Полное руководство по хранилищам признаков).