Журнал · Rit.work

ScaleSplit-NO разделяет масштабы турбулентности, чтобы экономить память

ScaleSplit-NO предсказывает крупную динамику на грубой сетке, а детали — по локальным фрагментам, снижая ошибку и расход памяти при обучении.

Rit.work
Студия разработки
1 октября 2026 г.3 мин чтения

Материал подготовлен автоматически по первоисточникам: ссылки на них — в конце статьи.

Трёхмерную турбулентность предсказали нейросетью, которой при обучении не нужно целиком обрабатывать поле высокого разрешения. Хотя препринт не рецензирован и числа получили сами авторы, на сетке 256³ модель снизила ошибку на 53%, а пиковый расход памяти — на 79%. Для команд, которые строят нейросетевые заменители физических симуляторов, это предлагает другой способ распределить модели, данные и GPU.

Крупное течение и локальные вихри предсказывают разные модели

Обычный нейросетевой заменитель получает всё трёхмерное поле и сразу предсказывает его следующее состояние. При росте разрешения ему приходится хранить промежуточные результаты для каждого узла сетки, поэтому обучение быстро упирается в память GPU. Разрезать поле на фрагменты недостаточно: маленькому фрагменту не хватает сведений о крупном течении вокруг него.

ScaleSplit-NO использует то, что структуры разных размеров ведут себя по-разному. Крупные вихри связаны на больших расстояниях, но меняются в пространстве плавно, поэтому их можно представить на грубой сетке. Мелкие структуры требуют полного разрешения, зато сильнее зависят от ближайшего окружения, чем от деталей в другой части области.

Архитектура состоит из двух нейронных операторов Фурье. Компонент Parent получает всё поле на грубой сетке и предсказывает его следующее состояние. Компонент Child берёт локальный фрагмент исходного поля в полном разрешении, добавляет предсказание Parent для того же участка и восстанавливает следующий локальный фрагмент целиком.

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

Модели обучают раздельно. Сначала Child учится только на локальных фрагментах, затем к нему через нулевые начальные веса подключают прогноз Parent. На втором этапе Child получает не идеальное грубое поле из обучающих данных, а реальные предсказания замороженного Parent, поэтому условия обучения совпадают с последующим применением.

Экономия памяти не потребовала жертвовать точностью

На JHTDB256 нормированная среднеквадратичная ошибка оказалась на 53% ниже, чем у сильнейшей базовой модели. Пиковый расход памяти при обучении был на 79% ниже, чем у самого экономного конкурента. Эти два результата получены относительно разных соперников, поэтому их нельзя складывать в единое преимущество.

Метрика измеряет средний квадрат отклонения прогноза от правильного поля с поправкой на масштаб данных: меньшее значение означает более точный прогноз. ScaleSplit-NO сравнивали с U-Net, FNO, MG-TFNO, EddyFormer, P3D и ReViT как при ограниченном, так и при полном наборе обучающих данных.

На задаче прогноза городского ветра для реального района Монреаля ошибка одного шага снизилась на 65,8% относительно базовой модели. Отдельный эксперимент показал важную деталь обучения: если давать Child идеальное грубое поле вместо ошибочного прогноза Parent, итоговая ошибка вырастает на 75,2%. Более чистые обучающие данные здесь вредят, потому что при применении модель встречает другой вход.

Экономия появляется не только из-за меньших тензоров. Одно поле даёт Child множество локальных обучающих примеров, тогда как Parent получает один пример крупной динамики. Авторы могут отдельно подобрать размер моделей и длительность обучения под разный объём доступных данных.

Когда ScaleSplit-NO меняет план разработки

Подход стоит учитывать, если проект работает с турбулентностью на структурированной сетке, а обучение полноразмерной модели ограничивает память GPU или число дорогих симуляций. Вместо одной сквозной модели потребуется конвейер для двух разрешений, нарезки фрагментов и их обратной сборки. Усложнение оправдано тем, что ни один компонент не хранит промежуточные результаты для всего поля в полном разрешении.

Раздельное обучение также меняет план хранения данных. Грубые поля занимали 5,3% объёма исходных полей на MHD64 и 1,6% на JHTDB256. Parent можно дообучить на дополнительных грубых полях, затем заменить его без повторного обучения Child — это позволяет улучшать глобальную динамику, не сохраняя столько же новых данных в полном разрешении.

Утверждение о независимости памяти от разрешения действует при фиксированных размерах фрагмента, грубой сетки и пакета. Оно относится к пиковой памяти отдельного этапа обучения, а не к полной стоимости применения: чем больше фрагментов и их перекрытие, тем дольше собирается поле.

Метод проверяли на двух наборах трёхмерной турбулентности и на городском ветре, включая прогноз следующего состояния и последовательный прогноз на несколько шагов. Все задачи использовали структурированные сетки. Для неструктурированных сеток выбранный оператор Фурье напрямую не подходит, поэтому перенос потребует другого основания модели, а не только новой схемы разбиения.

Источники

Иллюстрация: рисунок из статьи «Scale-Split Neural Operator for Memory- and Data-Efficient 3D Turbulence Prediction», Shaoxiang Qin, Yucheng Zhao, Zongyi Li и др., CC BY 4.0

Пауза в чтении

Похоже на вашу задачу?

Расскажите, что собираете. За полчаса разложим на этапы и назовём сроки — это бесплатно и ни к чему не обязывает.

Rit.work

Студия разработки

Собираем мобильные приложения и помогаем командам получать от AI реальную пользу. Основатель и команда, работаем удалённо — с клиентами в России и за рубежом.

← Ко всем материалам
Понравилось? Обсудим вашу задачу