Hanno Labs представила hfdask для генерации синтетических данных на Hugging Face Jobs
Hanno Labs выпустила hfdask — инструмент, который закрывает простой GPU-видеокарт во время обработки текста на процессоре. Это снижает стоимость генерации синтетических данных для ИИ-моделей.
Компания Hanno Labs разработала open-source библиотеку hfdask, которая позволяет запускать распределенные вычислительные задачи на платформе Hugging Face Jobs. Инструмент автоматизирует создание временного кластера из CPU- и GPU-машин для генерации синтетических данных. Это решает проблему неэффективного использования дорогого GPU-оборудования, которое часто простаивает во время выполнения ресурсоемких для процессора операций, таких как фильтрация или валидация текста.
Архитектура и принцип работы
Библиотека преобразует конфигурацию из YAML-файла в рабочий кластер Dask. Процесс состоит из трех этапов:
- CPU-этап: Рабочие узлы читают исходные документы, нормализуют их и формируют промпты для модели.
- GPU-этап: Специализированные рабочие процессы с видеокартами генерируют примеры (например, пары «вопрос-ответ») с помощью локального движка vLLM.
- CPU-этап: Узлы валидируют полученные данные, удаляют дубликаты и записывают результат в хранилище Hugging Face Bucket.
Коммуникация между машинами происходит через шифрованный Iroh mesh. Dask-сервисы привязаны к loopback-интерфейсу, что исключает публичное открытие планировщика. Каждое ядро CPU получает отдельный однопоточный воркер, а каждая NVIDIA GPU назначается эксклюзивно одному процессу.
Преимущества перед стандартными подходами
Использование hfdask позволяет избежать двух основных проблем при создании синтетических датасетов:
- Экономия ресурсов: Разделение пайплайна на отдельные скрипты требует дополнительной оркестрации и хранения промежуточных данных. Единый граф Dask сохраняет зависимости между этапами явными, а CPU-задачи выполняются параллельно, не блокируя GPU.
- Гибкость инфраструктуры: Hugging Face Jobs предоставляет доступ к гетерогенным машинам (CPU и GPU) рядом с данными. hfdask управляет жизненным циклом этого кластера: от загрузки зависимостей и запуска задач до очистки ресурсов после завершения работы.
Синтетическая генерация часто сводится к простому циклу вызовов API, но в продакшене пайплайн становится сложной системой. hfdask сохраняет всю вычислительную логику в одном графе Dask, что упрощает масштабирование без необходимости внедрять внешние оркестраторы.
Настройка и масштабируемание
Для запуска пайплайна требуется указать конфигурацию кластера и скрипт задачи. Библиотека сама обрабатывает установку зависимостей (через uv), отправку исходного кода в приватное хранилище артефактов и верификацию статуса задач после завершения.
При масштабировании генерации рекомендуется:
- Увеличивать количество рабочих узлов: Добавление новых GPU-машин с независимыми репликами модели ускоряет процесс быстрее, чем разделение одной модели на несколько видеокарт (tensor parallelism).
- Оптимизировать батчи: Размер партиций должен позволять vLLM эффективно формировать батчи, чтобы ускорители не простаивали в ожидании данных.
- Контролировать качество: Метрикой эффективности является количество принятых примеров на доллар затрат, а не сырая пропускная способность, так как более быстрая конфигурация может генерировать больше ошибочных записей.
Практическое применение
Инструмент применим не только для создания вопросов и ответов, но и для других задач:
- Генерация инструкций (instruction generation).
- Аугментация документов.
- Дистилляция моделей.
- Создание пар предпочтений (preference pairs) для RLHF.
Библиотека hfdask доступна на PyPI и GitHub. Она берет на себя инфраструктурные вопросы (деплой, сеть, очистку), оставляя разработчику ответственность за качество данных и логику валидации.
Подтверждение: huggingface.co