Материал подготовлен автоматически по первоисточникам: ссылки на них — в конце статьи.
Последовательность данных для обучения базовых моделей удалось сохранить при перезапуске задания на другом числе GPU, даже когда данные токенизируют, перемешивают и упаковывают на лету. В препринте Zephon, который не проходил рецензирование и содержит замеры самих авторов, расхождение кривых потерь VLM оказалось в 5,84 раза меньше. Для команд это убирает топологию кластера из причин, по которым одинаковые эксперименты дают разные результаты.
Почему индекс образца больше не определяет прогресс
При разработке модели команды проводят абляции — контролируемые эксперименты, где меняют один параметр и сравнивают результат. Такая проверка теряет смысл, если загрузчик одновременно поменял порядок обучающих данных. В статье приведён ориентир стоимости: уменьшенная абляция для крупной модели Mixture-of-Experts может потребовать облачных ресурсов примерно на 250 тысяч долларов.
У обычного загрузчика каждый входной образец соответствует одному выходному, поэтому прогресс можно записать как позицию в наборе данных. После сбоя загрузчик переходит к сохранённой позиции и продолжает работу. Число обработчиков или GPU при этом можно связать с заранее известными индексами.
В современных конвейерах эта схема ломается. Токенизация делит длинный документ на несколько последовательностей, фильтр удаляет часть записей, а упаковщик объединяет короткие последовательности. Перемешивание держит буфер, упаковщик хранит недозаполненные блоки, а смешивание наборов данных отслеживает их доли.
Следующий результат зависит уже не только от текущей записи, но и от всей предыдущей обработки. Если после перезапуска изменить число работников или способ параллельного исполнения, внутреннее состояние накопится иначе. На вход модели попадут другие глобальные батчи — полные наборы образцов для одного шага обучения.
Обычный обходной путь — заранее обработать весь корпус и записать готовые батчи. Тогда данные снова получают стабильные индексы, но каждое изменение фильтра или смеси требует пересборки. Для петабайтных корпусов это расходует вычисления и хранилище, а для видео промежуточные тензоры могут оказаться слишком объёмными.
Как Zephon отделяет порядок данных от исполнения
Zephon делит общий поток на логические полосы. Каждая полоса получает собственную последовательность указателей на исходные записи и хранит отдельное состояние операторов. Число и порядок полос не зависят от того, на скольких GPU выполняется обучение.
Операции, от которых зависит порядок, Zephon проводит последовательно через накопители. Они решают, какие записи отфильтровать, разделить, переставить или объединить. Независимые преобразования, например чтение данных и токенизацию, система параллельно отправляет исполнителям.
Так выбор между процессами, потоками и разной степенью параллелизма влияет на скорость, но не должен менять результат. Это отличается от загрузчиков, где каждый работник выполняет весь конвейер и фактически участвует в определении порядка.
Для восстановления Zephon сохраняет состояние операторов и записи, которые ещё находятся в обработке. Система также отслеживает, какие исходные позиции внесли вклад в каждый промежуточный результат. Это нужно для операций, которые создают несколько выходов, объединяют входы или меняют их порядок.
Объём контрольной точки поэтому связан с незавершённой работой, а не со всем пройденным корпусом. В замерах поздние контрольные точки восстанавливались примерно за то же время, что и более ранние. Однако увеличение числа логических полос на один вычислительный процесс заметно повышало объём состояния и задержку до первого батча.
Смена GPU перестаёт быть изменением эксперимента
Основную проверку провели на текстовой модели с 1 млрд параметров, которую обучали на 20 млрд токенов. Запуски продолжали на конфигурациях от 8 до 64 GPU, сохраняя одинаковый размер глобального батча. Дополнительно Zephon проверили на конвейере VLM с декодированием изображений, токенизацией, перемешиванием и упаковкой; этот короткий запуск не предназначался для оценки итогового качества модели.
Без эластичного детерминизма максимальный разброс Core v1 между конфигурациями достиг 0,922 пункта. С Zephon он снизился до 0,061 пункта и оказался ниже принятого в работе порога значимого различия. Хеши батчей также совпали: модель получала одну последовательность данных независимо от топологии.
Работа меняет планы команд, которые обучают собственные базовые модели, регулярно теряют или добавляют GPU и обрабатывают данные на лету. Для них загрузчик становится частью воспроизводимости эксперимента наряду с начальным состоянием модели и настройками вычислений. Это особенно заметно там, где один неудачно интерпретированный прогон стоит дороже разработки инфраструктуры.
Если набор заранее токенизирован, упакован и доступен по стабильным индексам, архитектура Zephon даёт меньше нового: эластичный порядок для таких данных уже поддерживают другие загрузчики. Работа также не доказывает преимущество на любых конвейерах — проверки охватывают текст и VLM, а восстановление дорожает, когда на один процесс приходится больше логических полос.
Zephon поэтому стоит рассматривать не как ускоритель по умолчанию, а как способ зафиксировать семантику данных. Он позволяет менять ресурсы и исполнение отдельно от исследовательского вопроса, не превращая каждый перезапуск в новый эксперимент.
Источники
Похоже на вашу задачу?
Расскажите, что собираете. За полчаса разложим на этапы и назовём сроки — это бесплатно и ни к чему не обязывает.



