Hugging Face ускорил стриминг датасетов: нагрузка на серверы снижена в 100 раз

Hugging Face ускорил стриминг датасетов: нагрузка на серверы снижена в 100 раз

Hugging Face переработал стриминг датасетов: число запросов к серверу на старте упало в 100 раз, скорость загрузки выросла вдвое. Трёхчасовые задержки перед обучением моделей исключены. Разбираем, как это работает и как применить в ваших проектах.

Hugging Face представил крупное обновление механизма стриминга датасетов. Два ключевых улучшения: на этапе запуска число запросов к серверу сократилось до 100 раз, а в процессе стриминга производительность выросла вдвое. Раньше задержки перед тренировкой модели могли достигать трёх часов, теперь они полностью исключены. Тестирование проводилось при обучении моделей серии nanoVLM на 64 ускорителях H100.

Что произошло: главное об обновлении за 30 секунд

Разработчики Hugging Face переработали механизм потоковой загрузки данных. Результат - стократное сокращение запросов к серверу на старте и двукратный прирост скорости во время стриминга. Это не косметический патч, а архитектурное изменение. Оно напрямую влияет на время запуска экспериментов и стоимость использования облачных ресурсов. Трёхчасовые задержки, привычные для команд, работающих с многогигабайтными наборами данных, ушли в прошлое. Проверка проводилась на связке из 64 ускорителей H100 и моделей nanoVLM - результаты подтвердили, что новый подход быстрее чтения с некоторых серверных SSD.

Почему это важно: проблема медленной загрузки данных

Обучение современных моделей упирается не только в вычислительную мощность. Узким местом часто становится подсистема ввода-вывода. Представьте: у вас есть датасет размером в сотни гигабайт. Чтобы начать обучение, нужно сначала загрузить его на локальный диск каждого узла кластера. Это часы простоя дорогого оборудования. H100 простаивает, счета за облако растут, команда ждёт. Стриминг решает эту проблему - данные передаются потоком по мере необходимости. Но предыдущая реализация создавала лавину запросов к серверу при инициализации. Каждый рабочий процесс DataLoader независимо запрашивал список файлов. На кластере из 64 машин это превращалось в шквал обращений, который сервер обрабатывал с задержками. Новый механизм устраняет это бутылочное горлышко. Запуск становится плавным, а сам стриминг - достаточно быстрым, чтобы не тормозить обучение.

Как удалось снизить нагрузку в 100 раз на этапе запуска

Раньше каждый воркер DataLoader самостоятельно обращался к серверу за списком файлов датасета. На кластере с десятками ускорителей это порождало сотни одновременных запросов. Сервер Hugging Face Hub не справлялся с пиковой нагрузкой, возникали задержки. Решение оказалось элегантным: список файлов кэшируется и используется всеми воркерами совместно. Один запрос вместо сотни. Дополнительно команда оптимизировала сами API-вызовы - сократила объём передаваемых метаданных и убрала избыточные обращения. Суммарный эффект - стократное падение числа запросов на этапе запуска.

Кэширование списка файлов: как это работает

DataLoader - это компонент, который отвечает за подачу данных в модель. Он создаёт несколько параллельных рабочих процессов (воркеров), чтобы загрузка не тормозила вычисления. В старой схеме каждый воркер при старте шёл на сервер и запрашивал полный перечень файлов датасета. Это похоже на ситуацию, когда десять официантов одновременно бегут на кухню за одним и тем же меню. Новый подход: первый воркер получает список, помещает его в общий кэш, остальные читают оттуда. Один поход на кухню на весь зал. Простое изменение, которое убирает пиковую нагрузку на сервер и сокращает время инициализации.

Ускорение стриминга вдвое: prefetching и буферизация

Второе улучшение касается самого процесса передачи данных. Для датасетов в формате Parquet внедрён механизм prefetching - предварительной подгрузки. Пока модель обрабатывает текущий пакет данных, следующий уже загружается в память. Процессор не ждёт диск или сеть. Добавлена настраиваемая буферизация: разработчик может задать размер буфера под конкретный сценарий использования. Маленький буфер экономит память, большой - увеличивает пропускную способность. В тестах Hugging Face эти два изменения дали двукратный прирост производительности стриминга. Важно: удвоение скорости относится к Parquet-формату, для других форматов результаты могут отличаться.

Почему Parquet и что это за формат

Parquet - это столбцовый формат хранения данных. В отличие от строковых форматов вроде CSV, где информация записывается строка за строкой, Parquet группирует значения по столбцам. Для задач машинного обучения это даёт два преимущества. Первое: когда модель запрашивает конкретный признак из датасета, не нужно читать всю строку целиком - только нужный столбец. Второе: столбцовое хранение лучше сжимается, экономя место и сетевой трафик. Hugging Face оптимизировал стриминг именно под Parquet, потому что этот формат стал стандартом де-факто для хранения датасетов на Hugging Face Hub. Большинство популярных наборов данных уже конвертированы в него.

Результаты тестирования: быстрее, чем SSD, и без задержек

Тестирование проводилось при обучении моделей серии nanoVLM на кластере из 64 ускорителей H100. Результаты: задержки перед стартом тренировки, которые раньше достигали трёх часов, исчезли. Более того, по заявлениям разработчиков, новый стриминг оказался быстрее чтения данных с некоторых серверных SSD. Это важный момент: данные поступают по сети быстрее, чем с локального твердотельного накопителя. Сеть перестала быть узким местом. Стоит оговориться: сравнение с SSD основано на внутренних тестах Hugging Face, независимого подтверждения пока нет. Однако сам факт исключения многочасовых задержек - это измеримый и воспроизводимый результат, который напрямую влияет на скорость экспериментов.

Что это значит для вас: практические выводы

Обновление снижает три барьера: время ожидания, нагрузку на инфраструктуру и стоимость экспериментов. Если вы работаете с большими датасетами на Hugging Face Hub, обновлённый стриминг доступен в последних версиях библиотек datasets и transformers. Практические шаги: обновите пакеты до актуальных версий, проверьте документацию Hugging Face по настройке стриминга, протестируйте на своём типичном сценарии загрузки данных. Для команд, обучающих модели на кластерах, эффект будет максимальным - именно там стократное сокращение запросов на старте даёт наибольшую экономию времени. Если вы только начинаете работать с платформой, рекомендуем прочитать наш разбор летних обновлений Hugging Face 2026, где мы подробно разобрали рост платформы и новые инструменты для разработчиков. Для тех, кто хочет глубже понять, как Hugging Face решает проблемы производительности, будет полезна статья о 100-кратном ускорении вывода нейросетей - там разбираются оптимизации на уровне библиотек и компиляции под железо. А если ваша задача - не только быстро загружать данные, но и проверять их качество, обратите внимание на Data Measurements Tool: он автоматически находит пропуски, дубликаты и скрытые стереотипы в датасетах прямо в браузере.

Отправить тому, кому пригодится

Ссылка сохранит весь материал без сокращений.

По почте

Заметили неточность? Сообщить редакции