Learn AI with Python · Урок

Хранилища признаков: Feast и Tecton

Онлайн- и офлайн-хранилища признаков, управление версиями признаков, соединения с учётом момента времени, задержка предоставления

Урок 3 из 413 шагов

«Хранилища признаков: Feast и Tecton» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.

Проблема хранилища признаков

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

Feast и Tecton

Два ведущих хранилища признаков:

  • Feast: с открытым исходным кодом, лёгкое, использует Вашу собственную инфраструктуру
  • Tecton: коммерческое управляемое решение, добавляющее конвейеры потоковой обработки признаков и управление

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

Сущности и представления признаков

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

# A user entity with features:
#   avg_purchase, days_since_signup, total_orders

feast apply

feast apply регистрирует определения сущностей и представлений признаков в реестре хранилища признаков. Так хранилище узнаёт, какие признаки существуют и откуда берутся их данные.

feast apply
# Registered entity user
# Registered feature view user_stats

Материализация

Признаки необходимо загрузить в онлайн-хранилище до начала обслуживания запросов. Материализация вычисляет значения признаков до определённого момента времени и записывает их в онлайн-хранилище (например, Redis), чтобы они были готовы для чтения с малой задержкой.

feast materialize

feast materialize принимает начальную и конечную даты и загружает значения признаков за этот период в онлайн-хранилище. Запускайте эту команду по расписанию, чтобы онлайн-признаки оставались актуальными.

feast materialize 2024-01-01T00:00:00 2024-01-31T00:00:00

Онлайн-обслуживание

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

from feast import FeatureStore

store = FeatureStore(repo_path=".")
features = store.get_online_features(
    features=["user_stats:avg_purchase", "user_stats:total_orders"],
    entity_rows=[{"user_id": 123}],
).to_dict()

Создание данных для обучения

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

training_df = store.get_historical_features(
    entity_df=labels_df,        # has user_id and event_timestamp
    features=["user_stats:avg_purchase"],
).to_df()

Соединения по моменту времени

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

Предотвращение утечки данных

Без корректности по моменту времени возникает риск утечки данных: обучения на значениях признаков, вычисленных после события, соответствующего метке. Это завышает офлайн-метрики, но приводит к провалу в производственной среде. Хранилище признаков автоматически обеспечивает временную корректность.

Полный жизненный цикл

Жизненный цикл хранилища признаков объединяет всё в единую систему:

  • feast apply регистрирует определения
  • feast materialize загружает данные в онлайн-хранилище
  • обучение использует соединения по моменту времени из офлайн-хранилища
  • обслуживание запросов считывает актуальные значения с помощью get_online_features

Быстрая проверка

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

Повторение

Вы изучили хранилища признаков Feast и Tecton:

  • feast apply регистрирует сущности и представления признаков
  • feast materialize загружает данные в онлайн-хранилище за заданные даты
  • get_online_features предоставляет актуальные значения для строк сущностей
  • Соединения по моменту времени создают данные для обучения без утечек
Можно начать бесплатно

Изучай Python с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
53
Уроки
225

Часто задаваемые вопросы

Урок «Хранилища признаков: Feast и Tecton» бесплатный?

Да — полный текст урока «Хранилища признаков: Feast и Tecton» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.

Чему я научусь в уроке «Хранилища признаков: Feast и Tecton»?

Онлайн- и офлайн-хранилища признаков, управление версиями признаков, соединения с учётом момента времени, задержка предоставления Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Learn AI with Python?

Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Хранилища признаков: Feast и Tecton»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Learn AI with Python?

Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Шаблоны архитектуры систем искусственного интеллекта
  2. Масштабируемые конвейеры машинного обучения с Airflow
  3. Хранилища признаков: Feast и Tecton
  4. Наблюдаемость и мониторинг систем искусственного интеллекта
← Назад к Learn AI with Python