В последние годы наблюдается постоянная тенденция использования больших данных для решения сложных задач. Это могут быть какие-то бизнес-задачи, рекомендации или какой-нибудь современный ИИ, который учит, кому играть в судоку. Что является общим в этих задачах? Правильно, это данные, которые являются святым Граалем в нашем сегодняшнем мире.
Вы можете собирать тонны данных от своих пользователей или продукта и создавать конвейеры больших данных, чтобы получать ценную информацию. Но что, если природа ваших данных была изменена? Например, что-то сломалось в пайплайне и вдруг вы начинаете получать аномальные значения.
Почему это может быть плохо? Ну, есть пара причин:
- Допустим, вы тренируете свою модель машинного обучения на входных данных строгого формата. Затем внезапно изменился формат данных, и ваша модель машинного обучения может начать предсказывать неправильные значения, и вы будете принимать неправильные решения на ее основе.
- Если вы проигнорируете эти аномалии, возможно, что-то в вашем конвейере не работает должным образом: это может быть задержка загрузки в вашу базу данных, некоторые серверы не работают или по многим другим причинам. Если у вас есть правильная настройка качества данных, это поможет вам предотвратить такие ситуации.
В MLbits мы активно используем контроль качества данных для своих проектов и сегодня хотели бы немного рассказать о нашем любимом инструменте — больших ожиданиях (https://github.com/great-expectations/great_expectations).
Почему это так хорошо? Вот основные причины, по которым это помогает создать надежный мониторинг качества данных:
- Сразу знайте, что данные не являются нормальными.
- Определите, что именно изменилось в данных.
- Определите конкретный шаг, на котором что-то пошло не так
- Предотвратите выполнение последующих шагов, ограничив количество раскрытия неверных данных и будущие усилия по очистке.
Возможно, вы могли найти некоторые проблемы, с которыми вы уже сталкивались или можете столкнуться в будущем. Хорошо, теперь давайте поговорим о ключевых возможностях библиотеки, которая поможет вам в решении вышеуказанных проблем:
- Может создавать правила для проверки данных
- Упрощение отладки конвейеров данных, если (когда) они ломаются
- Ускорение ETL и нормализация данных
- Можно запустить проверку как часть ваших проверок CI
- Автоматизация проверки доставки новых данных от поставщиков и других команд
- Автоматически сгенерированные документы пользовательского интерфейса
- Использование как CLI, так и уровня кода
- Оповещения из коробки
- Подключаемый и расширяемый (поддерживает CSV/pandas, s3, redshift, bigquery и т. д.) и может быть интегрирован в существующие DAG Airflow.
Хорошо, выглядит интересно, с чего мне начать?
Во-первых, у great_expectations действительно крутая документация, и с ней стоит ознакомиться. Но вот краткий обзор.
Во-первых, вам нужно установить его через pip install great_expectations и инициализировать проект с помощью great_expectations и получить следующую структуру проекта
great_expectations.yml хранит все данные конфигурации
В папке ожидания хранится список ваших правил.
checkpoints хранит данные о контрольных точках
плагины для пользовательских материалов
незафиксированные — все конфиденциальные данные, которыми вы не хотите делиться, например ключи доступа.
Ключевые понятия, которые необходимо знать перед началом использования:
Ключевые идеи
- Источник данных — имя вашего источника данных (может быть локальная папка, база данных и т. д.).
- Актив данных — одна единица данных в источнике (может быть CSV-файл, таблица и т. д.).
- Набор ожиданий — набор правил, которые можно использовать несколько раз.
- Контрольная точка — позволяет запускать различные наборы правил.
- Профилирование — автоматический анализ вашего ресурса данных с 1000 случайных строк и создание отчета пользовательского интерфейса и блокнота с правилами (хорошая отправная точка).
Это было просто краткое введение в great_expectations. Если вы заинтересованы в сотрудничестве с нами или хотите настроить управление качеством данных для своей организации, свяжитесь с нами по адресу http://ml-bits.com/.