huggingface/datatrove

Freeing data processing from scripting madness by providing a set of platform-agnostic customizable pipeline processing blocks.

Данные⭐ 3 342Pythonпоследний релиз: v0.10.0
Открыть на GitHub ↗

Что это за инструмент

DataTrove — это библиотека для обработки, фильтрации и дедупликации текстовых данных в больших масштабах, предоставляющая набор модулей для построения конвейеров обработки.

Зачем нужен

Инструмент решает проблему сложного скриптинга при подготовке данных для обучения LLM, позволяя создавать гибкие и масштабируемые пайплайны. Он полезен благодаря платформенной независимости (запуск локально или на кластерах Slurm/Ray), низкому потреблению памяти и возможности легко добавлять кастомную логику обработки.

Что можно реализовать

  • Полная репродукция пайплайнов создания датасетов уровня FineWeb или Common Crawl
  • Дедупликация текстовых данных с использованием MinHash, точных подстрок или предложений
  • Извлечение текста из сырых форматов (WARC, ARC, WET) и конвертация в Parquet/Arrow
  • Оценка количества токенов в больших датасетах для настройки сэмплирования
  • Генерация синтетических данных (rollouts) с использованием LLM-инференса

Ключевые возможности

  • Платформенная независимость: пайплайны работают как локально, так и на Slurm или Ray без изменений кода
  • Поддержка распределенных файловых систем через fsspec (включая S3)
  • Гибкая система блоков: готовые решения для фильтрации, токенизации и кастомные функции
  • Управление задачами (tasks) и воркерами для эффективного параллелизма и отслеживания прогресса
  • Модульная установка зависимостей (io, processing, ray, inference и др.) через uv

👤 Кому подойдёт: инженеры данных и ML-инженеры, работающие с подготовкой данных для LLM

Релизы

v0.10.0major
🕐 1 мес назад · релиз на GitHub ↗

Добавлен экспериментальный JobsPipelineExecutor для запуска пайплайнов на Hugging Face Jobs и поддержка HF storage buckets.

  • Added: Добавлен JobsPipelineExecutor для запуска пайплайнов DataTrove на Hugging Face Jobs (экспериментально).
  • Added: Реализована поддержка Hugging Face storage buckets в качестве DataFolder.
  • Added: Добавлена поддержка Python 3.13.
  • Fixed: Зафиксирована зависимость xxhash<4, так как версия 4.0.0 ломала пайплайны дедупликации.
  • Added: Проект мигрировал на менеджер пакетов uv.
v0.9.0major
🕐 6 мес назад · релиз на GitHub ↗

Релиз v0.9.0: масштабное улучшение инфраструктуры бенчмарков, исправление ошибок vLLM и Ray, а также стабилизация работы с HF Hub.

  • Added: Значительно расширен и улучшен фреймворк для бенчмарков: добавлен режим бенчмаркинга, метрики vLLM, скрипты оценки токенов и примеры для больших датасетов.
  • Fixed: Исправлена критическая ошибка с повреждением кэша vLLM на общих файловых системах и устранены ошибки привязки CPU в задачах SLURM.
  • Fixed: Улучшена надежность загрузки в Hugging Face Hub: добавлены повторные попытки при конфликтах коммитов и ошибки LFS, а также стабилизирована работа с Ray.
  • Added: Добавлена опция skip_bad_requests для InferenceRunner и возможность настройки политики запуска сервера инференса.
  • Fixed: Исправлено зависание CI-тестов, устранено несоответствие единиц памяти в распределенных помощниках Ray и очищены зависимости.