Что такое хранилище признаков?
На этой странице объясняется, что представляет собой хранилище признаков и какие преимущества оно предоставляет, а также описываются отдельные преимущества хранилища признаков Databricks.
Хранилище признаков — это централизованный репозиторий, который позволяет специалистам по обработке и анализу данных находить и совместно использовать признаки, а также гарантирует использование одного и того же когда для вычисления значений признаков и для обучения и вывода модели.
В машинном обучении для создания модели прогнозирования будущих результатов используются существующие данные. Почти во всех случаях необработанные данные нужно предварительно обработать и преобразовать, прежде чем их можно будет использовать для создания модели. Этот процесс называется проектированием признаков, а выходные данные этого процесса называются функциями — стандартными блоками модели.
Разработка признаков является сложной и трудоемкой задачей. Дополнительное осложнение заключается в том, что для машинного обучения необходимо выполнить вычисления признаков для обучения модели, а затем снова, когда модель используется для прогнозирования. Эти реализации могут выполняться другой командой или в другой среде кода, что может привести к задержкам и ошибкам. Кроме того, разные команды в организации часто будут иметь аналогичные потребности в признаках, но могут не знать об операциях, выполненных другими командами. Хранилище признаков создано для решения этих проблем.
Преимущества использования хранилища признаков Databricks
Хранилище признаков Databricks полностью интегрировано с другими компонентами Azure Databricks.
- Возможность обнаружения. Пользовательский интерфейс хранилища признаков, доступный из рабочей области Databricks, позволяет просматривать и находить имеющиеся признаки.
- Происхождение данных. При создании таблицы функций в Azure Databricks источники данных, используемые для создания таблицы компонентов, сохраняются и доступны. Для каждого признака в этой таблице можно также получить доступ к моделям, записным книжкам, заданиям и конечным точкам, которые используют этой признак.
- Интеграция со средствами оценки и обслуживания моделей. При использовании признаков из хранилища признаков для обучения модели модель упаковывается с метаданными признаков. При использовании модели для пакетной оценки или вывода через Интернет модель автоматически извлекает признаки из хранилища признаков. Вызывающему объекту не нужно знать о признаках или включать логику для их поиска или объединения, чтобы оценить новые данные. Это значительно упрощает развертывание и обновление модели.
- Операции поиска по точке во времени Хранилище признаков поддерживает временные ряды и сценарии использования на основе событий, требующие правильности на момент времени.
Проектирование компонентов в каталоге Unity
При использовании Databricks Runtime 13.3 LTS и более поздних версий, если рабочая область включена для каталога Unity, каталог Unity становится вашим хранилищем функций. В каталоге Unity можно использовать любую таблицу Delta или Delta Live Table с первичным ключом в качестве таблицы функций для обучения модели или вывода. Каталог Unity предоставляет доступ к функциям обнаружения, управления, происхождения и доступа между рабочими областями.
Как работает Хранилище компонентов Databricks?
Типичный рабочий процесс машинного обучения, использующий хранилище признаков, выглядит примерно так:
- Напишите код для преобразования необработанных данных в признаки и создания объекта DataFrame Spark, содержащего нужные признаки.
- Для рабочих областей, которые включены для каталога Unity, напишите кадр данных в качестве таблицы компонентов в каталоге Unity. Если рабочая область не включена для каталога Unity, напишите кадр данных в качестве таблицы компонентов в хранилище компонентов рабочей области.
- Обучите модель с помощью признаков из хранилища признаков. При этом модель сохраняет спецификации признаков, используемых для обучения. Если модель используется для вывода, она автоматически объединяет признаки из соответствующих таблиц признаков.
- Зарегистрируйте модель в реестре моделей.
Эту модель теперь можно использовать для создания прогнозов по новым данным.
В вариантах использования с пакетной обработакой модель автоматически извлекает необходимые признаки из Хранилища признаков.
Для вариантов использования в режиме реального времени опубликуйте функции в интернет-магазине или используйте онлайн-таблицу.
Во время вывода модель считывает предварительно вычисляемые функции из интернет-магазина и присоединяет их к данным, предоставленным в клиентском запросе к конечной точке обслуживания модели.
Начало работы с хранилищем признаков
Чтобы приступить к работе с хранилищем признаков, ознакомьтесь со следующими статьями:
- Попробуйте один из примеров записных книжек, иллюстрирующих возможности хранилища функций.
- См. справочные материалы по API Python для хранилища признаков.
- Узнайте о моделях обучения, использующих хранилище признаков.
- Узнайте о проектировании компонентов в каталоге Unity.
- Сведения о хранилище компонентов рабочей области.
- Чтобы получить актуальные значения признаков по состоянию на определенный момент времени для обучения или оценки модели, используйте таблицы признаков временного ряда и поиск по точке во времени.
- Узнайте о публикации функций в интернет-магазинах или онлайн-таблицах для обслуживания в режиме реального времени и автоматического поиска функций.
- Узнайте о службе компонентов, что делает функции на платформе Databricks доступными с низкой задержкой для моделей или приложений, развернутых за пределами Databricks.
При использовании инженерии компонентов в каталоге Unity каталог Unity заботится о совместном использовании таблиц компонентов в рабочих областях, а для управления доступом к таблицам компонентов используется привилегии каталога Unity. Следующие ссылки предназначены только для хранилища компонентов рабочей области:
- Совместное использование таблиц признаков в рабочих областях.
- Управление доступом к таблицам признаков.
Поддерживаемые типы данных
Инженерия функций в каталоге Unity и хранилище функций рабочей области поддерживают следующие типы данных PySpark:
IntegerType
FloatType
BooleanType
StringType
DoubleType
LongType
TimestampType
DateType
ShortType
ArrayType
BinaryType
[1]DecimalType
[1]MapType
[1]
[1] BinaryType
и DecimalType
MapType
поддерживается во всех версиях конструктора компонентов в каталоге Unity и в магазине компонентов рабочей области версии 0.3.5 или более поздней версии.
Перечисленные выше типы данных поддерживают типы функций, которые распространены в приложениях машинного обучения. Например:
- Вы можете хранить сжатые векторы, тензоры и внедрения как
ArrayType
. - Вы можете хранить разреженные векторы, тензоры и внедрения как
MapType
. - Вы можете хранить текст как
StringType
.
При публикации в онлайн-хранилищах признаки ArrayType
и MapType
сохраняются в формате JSON.
В пользовательском интерфейсе хранилища признаков отображаются метаданные для типов данных признаков:
Дополнительные сведения
Чтобы получить дополнительные сведения о рекомендациях по использованию хранилища признаков, скачайте книгу Comprehensive Guide to Feature Stores (Полное руководство по хранилищам признаков).