<НА ГЛАВНУЮ

Создание модульного конвейера анализа данных с 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

Switch to English