Как организовать хранилище данных для обучения моделей
Набор данных читается целиком десятки раз подряд всеми узлами сразу — профиль нагрузки, под который обычное корпоративное хранилище не рассчитано. Разбираем расчёт требуемой полосы, многоуровневую схему хранения и требования к сети.
Хранилище для обучения моделей отличается от обычного корпоративного хранилища характером нагрузки. Здесь нет мелких случайных записей и редких чтений: один и тот же набор данных читается целиком десятки раз подряд, параллельно всеми узлами кластера, с высокой скоростью и большим числом одновременных потоков. Хранилище, спроектированное под базы данных или файловый обмен, на такой нагрузке становится узким местом, и ускорители простаивают.
Разберём, как считается требуемая скорость, из чего строится многоуровневая схема хранения и какие данные нужны для расчёта. Конфигурации вычислительных узлов — на страницах направлений ускорителей NVIDIA и ускорителей MetaX.
Какие данные хранит кластер
- Исходный набор данных. Изображения, видео, тексты, записи телеметрии в исходном виде. Объём от единиц терабайт до сотен, растёт со временем и почти никогда не уменьшается.
- Подготовленный набор. Тот же материал после очистки, преобразования и упаковки в крупные файлы. Именно он читается при обучении, и требования по скорости относятся к нему.
- Контрольные точки обучения. Состояние модели и оптимизатора, записываемое с заданной периодичностью. Для крупных моделей одна точка занимает сотни гигабайт, и запись должна укладываться в минуты, иначе она съедает время обучения.
- Веса готовых моделей. Небольшие по объёму, но требуют версионирования и надёжного хранения.
- Журналы и метрики. Небольшой поток мелких записей, который лучше держать отдельно, чтобы он не мешал основной нагрузке.
Как считается требуемая скорость чтения
- Объём одного прохода по данным. Размер подготовленного набора в гигабайтах.
- Целевое время прохода. Определяется тем, за сколько ускорители успевают обработать набор. Если проход по вычислениям занимает 20 минут, хранилище должно отдать набор за это же время или быстрее.
- Требуемая полоса. Объём, делённый на время. Набор в 20 ТБ за 20 минут — это около 17 ГБ/с устойчивого чтения.
- Умножение на число одновременных задач. Если на кластере идут три обучения параллельно, полоса складывается.
- Запас. К расчётному значению добавляется 30–50 % — на неравномерность, на запись контрольных точек и на фоновые операции.
Отдельно проверяется число операций чтения в секунду. Если набор состоит из миллионов мелких файлов, ограничением становится не полоса, а частота операций и накладные расходы файловой системы. Поэтому подготовленные данные упаковывают в крупные файлы-контейнеры.
Многоуровневая схема
| Уровень | Носитель | Что хранит | Характерная скорость |
|---|---|---|---|
| Локальный буфер узла | NVMe внутри сервера | Текущий набор данных | Десятки ГБ/с на узел |
| Быстрый общий слой | Параллельная файловая система на NVMe | Активные наборы, контрольные точки | Сотни ГБ/с на кластер |
| Ёмкостный слой | Диски большой ёмкости | Исходные данные, прошлые версии | Единицы ГБ/с |
| Архив | Объектное хранилище или лента | Долгое хранение, резервные копии | Сотни МБ/с |
Смысл разделения в том, что быстрый слой дорог за терабайт, а ёмкостный дёшев. Держать весь массив исходных данных на быстрых накопителях экономически бессмысленно, а обучать модель с ёмкостного слоя — технически. Между уровнями организуется перемещение: набор выкладывается на быстрый слой перед запуском обучения и уходит обратно после.
Локальный буфер против общего хранилища
- Локальный буфер. Набор накопителей внутри вычислительного узла. Самая высокая скорость, нулевая нагрузка на сеть, простая схема. Ограничение — объём узла и необходимость копировать данные на каждый узел отдельно.
- Общее хранилище. Данные лежат в одном месте, доступны всем узлам, не дублируются. Требует быстрой сети и файловой системы, рассчитанной на параллельный доступ.
- Комбинированная схема. Данные хранятся в общем слое, а перед обучением копируются в локальный буфер узла. Так работает большинство кластеров: копирование выполняется один раз, а десятки проходов по данным идут с локальных накопителей.
Сеть хранения
- Полоса сети должна покрывать расчётную скорость чтения с запасом. При 100 ГБ/с суммарного чтения на восемь узлов требуется не менее 100 Гбит/с на узел, а практически закладывают больше.
- Сеть хранения отделяется от сети обмена между узлами при обучении. Иначе копирование данных конкурирует с синхронизацией градиентов, и страдает и то и другое.
- Применяются механизмы прямого доступа к памяти по сети — они снимают нагрузку с центральных процессоров и снижают задержку.
- Проверяются настройки размера кадра и управления потоком: при их несогласованности пропускная способность падает многократно без явных ошибок.
Контрольные точки обучения
Запись контрольной точки — короткий всплеск записи большого объёма со всех узлов одновременно. Если хранилище не рассчитано на такой профиль, обучение останавливается на время записи. Практические меры: асинхронная запись, чтобы вычисления продолжались во время сохранения; запись сначала на локальный накопитель с последующей выгрузкой в общий слой; выбор периодичности из расчёта допустимой потери при сбое, а не по привычке.
Частые вопросы
Сколько места закладывать под хранилище? Ориентир — от трёх до пяти объёмов исходного набора данных: исходные данные, подготовленная версия, контрольные точки и резерв на рост. Точная цифра считается по конкретному проекту.
Подойдёт ли обычная система хранения предприятия? Для хранения исходных данных и архива — да. Для подачи данных в обучение обычно нет: не хватает параллельной полосы при большом числе потоков.
Можно ли обойтись только локальными накопителями? Можно на одном узле и на небольших наборах данных. При нескольких узлах появляется задача синхронизации копий, и общий слой оказывается проще в эксплуатации.
Что делать, если ускорители простаивают, а сеть не загружена? Проверять число потоков подготовки данных и производительность центральных процессоров. Часто ограничение лежит не в хранилище, а в распаковке и преобразовании данных.
Нужно ли резервное копирование обучающих данных? Исходные данные — да, они невосстановимы. Подготовленный набор воспроизводится из исходных, его можно не копировать. Контрольные точки хранятся ограниченное время, обычно несколько последних.
Что мы делаем
Считаем требуемую полосу и объём по параметрам задачи, подбираем состав уровней хранения, накопители и сетевые адаптеры, проектируем сеть хранения отдельно от сети обмена между узлами, комплектуем вычислительные узлы локальными буферами. Поставляем оборудование напрямую из Китая. Конфигурации вычислительной части — на страницах направлений NVIDIA и MetaX.
Пришлите объём набора данных, число узлов и целевое время прохода на sale@tkasiatorg.ru — посчитаем требуемую скорость и объём, подберём состав хранилища и дадим спецификацию с ценами и сроками поставки.

