Создание модульного конвейера анализа данных с Lilac: функциональное программирование для чистых и масштабируемых инсайтов
Подробное руководство по созданию функционального конвейера анализа данных с использованием Lilac и Python, с акцентом на модульность и переиспользуемость кода для трансформации и фильтрации данных.
Настройка окружения
В этом руководстве сначала устанавливаются необходимые библиотеки Lilac, Pandas и NumPy для эффективной работы с данными и их анализа. Выполнение команды установки обеспечивает доступ к полному набору инструментов Lilac и средств обработки данных.
!pip install lilac[all] pandas numpyИмпорт библиотек
В проект импортируются основные библиотеки Python, такие как json, uuid, pandas и pathlib, а также утилиты для функционального программирования из functools и библиотека Lilac для управления наборами данных.
Функциональные утилиты для преобразования данных
Определены ключевые функции в стиле функционального программирования для упрощения обработки данных:
pipeпозволяет последовательно объединять несколько функций.map_overиfilter_byобеспечивают функциональные обертки для операций отображения и фильтрации.
Создается реалистичный пример данных с полями id, text, category, score и tokens, имитирующий реальные данные для анализа.
Инициализация проекта Lilac и набора данных
Предоставлены функции для настройки каталога проекта Lilac с уникальным именем и создания набора данных из образца, записывая данные в JSONL-файл. Конфигурация набора данных связывает источник данных с фреймворком Lilac.
Извлечение и фильтрация данных
Данные извлекаются из набора Lilac в DataFrame Pandas для гибкой манипуляции. Применяются несколько фильтров функциональным способом для создания подмножеств на основе порогов оценки, категорий, количества токенов, удаления дубликатов и комбинированных критериев качества.
Анализ качества данных
Проводится оценка качества набора данных с измерением таких метрик, как общее количество записей, уникальные тексты, уровень дублирования, средние оценки, распределение по категориям и статистика по токенам.
Преобразования данных
Определены различные преобразования для обогащения данных:
- Нормализация оценок относительно максимума.
- Категоризация длины токенов.
- Присвоение уровней качества на основе оценок.
- Ранжирование категорий по оценкам.
Эти преобразования можно избирательно применять для улучшения анализа.
Экспорт отфильтрованных данных
Отфильтрованные наборы данных экспортируются в формате JSONL в отдельный каталог, что позволяет организованно хранить подмножества данных для дальнейшего использования.
Основной конвейер анализа
Полный рабочий процесс собран в функции основного конвейера, которая:
- Настраивает проект.
- Создает и загружает образец данных.
- Извлекает и анализирует качество данных.
- Применяет преобразования и фильтры.
- Экспортирует отфильтрованные наборы.
- Выводит сводки по результатам фильтрации и топовым записям качества.
Это демонстрирует, как Lilac в сочетании с функциональным программированием позволяет строить модульные, масштабируемые и переиспользуемые конвейеры анализа данных.
Итог
Руководство предлагает практический подход к созданию воспроизводимого рабочего процесса анализа данных, используя абстракции наборов данных Lilac и функциональные инструменты Python. Рассматриваются все ключевые этапы от создания данных до экспорта, подчеркивая преимущества чистой, тестируемой и расширяемой архитектуры конвейера.
Switch Language
Read this article in English