Введение
За последние несколько лет в области генерации изображений произошел значительный прогресс. Диффузионные модели и модели на основе flow-matching способны создавать изображения высокого разрешения, обеспечивать высокую фотореалистичность и стабильную структуру, отрисовывать плотный текст, кодировать обширные знания о мире и точно следовать пользовательским запросам. Эти улучшения стали возможны благодаря ряду взаимодействующих факторов, включая масштабируемые архитектуры трансформеров, улучшенные методы описания и текстовые энкодеры, более качественные латентные представления и конвейерные методы постобучения. Однако, поскольку отрасль была сосредоточена на надежности этих возможностей, многие системы пришли к узкому набору стандартной эстетики. Несмотря на эффективность в качестве производственных инструментов, это делает их менее пригодными для творческого поиска, где пользователям часто нужно исследовать различные стили, настроения, композиции и визуальные направления, а не получать единственный отполированный результат по умолчанию.
Чтобы устранить эти ограничения, мы представляем Krea 2 — серию базовых моделей, ориентированных на творческий поиск. Модели Krea 2 созданы на основе убеждения, что генерация изображений должна быть инструментом для исследования: достаточно выразительным, чтобы охватить множество эстетических направлений, и достаточно управляемым, чтобы творцы могли ориентироваться в них.
Мы с нуля создали масштабную инфраструктуру данных и распределенную среду обучения, чтобы сформировать комплексный набор данных для предварительного обучения с широким охватом знаний о мире и стилей.
Используя эту инфраструктуру, мы обучаем выразительные модели с помощью многоэтапного конвейера, включающего предварительное обучение, промежуточное обучение, контролируемую донастройку (SFT), оптимизацию предпочтений и обучение с подкреплением (RL), где каждый этап предназначен для постепенного уточнения распределения выходных данных модели. Мы разработали простую, но эффективную архитектуру диффузионного трансформера (DiT) посредством тщательного абляционного анализа. Наша модель включает в себя несколько компонентов, ускоряющих сходимость, в том числе iREPA, улучшенные VAE и Qwen3-VL. Мы также интегрировали ряд архитектурных улучшений, включая групповое внимание (GQA), сигмоидальное внимание с гейтированием, легковесную модуляцию временных шагов и многослойную агрегацию признаков для признаков текстового энкодера, что в совокупности повышает стабильность и эффективность обучения.
Мощная базовая модель полезна лишь в том случае, если пользователи могут надежно достигать тех областей ее распределения, которые им важны. В процессе обучения модель учится на богатых, тщательно составленных описаниях, которые характеризуют изображения с высокой визуальной детализацией. На практике пользовательские запросы часто бывают короче, более двусмысленными и сформированными различными привычками выражения мыслей. Некоторые пользователи описывают сцену на естественном языке; другие указывают на настроение, стиль или референсное изображение. Это создает разрыв между изученным пространством условий модели и тем, как творческий замысел выражается во время вывода.
Чтобы сократить этот разрыв, мы создали две системы, которые делают Krea 2 более гибкой для исследования и управления как с помощью текстовых, так и с помощью визуальных входных данных: расширитель промптов и систему стилевых референсов. Расширитель промптов преобразует простые или недостаточно конкретные запросы пользователей в более богатые визуальные направления, не переписывая при этом замысел пользователя. Он обучен с помощью двухэтапного конвейера SFT и RL на базе LLM с открытым исходным кодом, где цель состоит не только в улучшении качества изображения, но и в поощрении творческого разнообразия и управляемого поиска. Дополняя этот текстовый интерфейс, система стилевых референсов позволяет пользователям выражать визуальный замысел через изображения, когда слов недостаточно. Она позволяет пользователям внедрять стиль или настроение одного или нескольких референсных изображений с минимальной утечкой контента, обеспечивая при этом тонкую настройку силы стиля и взвешенное смешивание стилей.
В совокупности эти компоненты определяют Krea 2 как базовую модель для генеративного поиска. Вместо оптимизации только под один отполированный стандарт, Krea 2 разработана так, чтобы открывать широкое визуальное пространство и предоставлять пользователям практические способы навигации по нему, используя как текстовое, так и визуальное управление. Krea 2 входит в топ-10 моделей в таблице лидеров Artificial Analysis для генерации изображений по тексту и занимает 2-е место среди моделей от независимых лабораторий. Krea 2 служит комплексной базовой моделью и обеспечивает творческий генеративный опыт, сохраняя при этом конкурентоспособную производительность.
Данные
Принципы курирования данных
Прежде чем подробно описывать наш конвейер обработки данных, важно определить, что составляет хороший набор данных для наших целей. Хороший набор не состоит исключительно из «высококачественных» изображений. Разнообразие и широкий охват областей имеют решающее значение, учитывая нашу цель — создание выразительной, стилистически разнообразной модели. Мы утверждаем, что обычная фильтрация на основе моделей, использующая модели оценки эстетики и качества изображения (IQA), вносит скрытые искажения. Например, такие методы могут классифицировать размытое изображение как низкокачественное, хотя размытие в движении или мягкость могут быть осознанным художественным выбором.
Более того, мы утверждаем, что до тех пор, пока описание точно характеризует изображение, даже нежелательное изображение может быть полезным в последующих сценариях использования: поскольку модель точно понимает нежелательное поведение, такие образцы впоследствии могут быть использованы для того, чтобы направлять генерацию в сторону от этого распределения.
По этим причинам мы формируем набор данных для предварительного обучения, отфильтровывая только:
- Дубликаты образцов и чрезмерно представленные концепции.
- Образцы, для которых VLM последовательно не удается уловить важные аспекты изображения.
- Образцы, вызывающие нежелательные искажения и артефакты.
- Образцы с высокой визуальной сложностью, которую слишком трудно надежно моделировать при низком разрешении.
- Сгенерированные ИИ образцы
Эти условия формируют набор данных для предварительного обучения с широким охватом, избегая при этом плохого соответствия текста изображению и появления артефактов.
Важно отметить, что мы не используем сгенерированные ИИ изображения в нашем наборе для предварительного обучения. Синтетические данные и дистилляция могут быть эффективным способом быстрого получения возможностей модели. Однако мы обнаружили, что даже небольшая доля сгенерированных ИИ изображений вносит искажения в распределение выходных данных модели, поскольку синтетические изображения, как правило, легче изучить, что фактически накладывает верхний предел на качество модели. Поэтому мы разработали собственные классификаторы для фильтрации таких изображений.
Описание (Captioning)
Мы используем многоэтапный подход для создания описаний. Сначала мы запускаем модель OCR на каждом целевом изображении, чтобы извлечь любой видимый текст. На втором этапе мы предоставляем как результаты OCR, так и любые доступные метаданные (настройки камеры, известные сущности и так далее) модели описания, которая создает обогащенное описание, включающее знания о мире наряду с извлеченным текстом.
Общий конвейер описания
После получения контекстно-богатого и развернутого описания на естественном языке мы используем более доступную LLM для его переформатирования в различные варианты длины и формата, что позволяет модели ознакомиться с широким спектром стилей промптов. Эмпирически мы обнаружили, что обучение на длинных промптах обеспечивает плотный надзор, что приводит к более быстрой сходимости и меньшим потерям при обучении. Однако для многих прикладных задач производительность на коротких и средних промптах остается важной. Поэтому мы обучаем модель преимущественно на длинных описаниях, гарантируя при этом, что в процессе обучения она сталкивается с короткими и средними промптами.
Наш общий конвейер обучения и этапы обработки данных
Данные для предварительного обучения
Данные для предварительного обучения охватывают этапы с разрешением 256px, 512px и 1024px. Постепенное увеличение разрешения формирует стратегию обучения по учебной программе (curriculum learning): мы выделяем большую часть FLOP на этапы с низким разрешением для эффективного формирования базовых возможностей модели, а затем оснащаем модель возможностями генерации высокой четкости по мере увеличения разрешения обучения.
Предварительное обучение с низким разрешением — это этап, на котором изучается базовое соответствие текста и изображения, а также структура. На этом этапе набор данных исчисляется миллиардами изображений, поэтому мы в значительной степени полагаемся на недорогие фильтры на базе CPU для удаления низкокачественных изображений. Они варьируются от простых фильтров по поврежденным файлам, разрешению и соотношению сторон, которые удаляют неподходящие изображения, до фильтров Лапласа, удаляющих изображения с экстремальными текстурами и шумовыми паттернами.
Например, одной из проблем, с которой мы столкнулись при предварительном обучении K2, была склонность модели генерировать фоны с плоскими цветами и артефакты по краям. Чтобы смягчить это, мы использовали энтропию RGB, соотношение белых/черных пикселей, пользовательские эвристики и внутренние классификаторы для отсеивания образцов, вызывающих такое поведение.
При создании внутреннего классификатора одной из эффективных стратегий было использование большой VLM для разработки системного промпта, специфичного для задачи фильтрации (например, обнаружение определенного паттерна или артефакта), создание псевдомаркированного набора данных, а затем обучение небольшого классификатора на базе DINOv3- или SigLIP-2- для запуска фильтра в масштабе. Любая модель фильтрации, требующая вычислений на GPU на этапе низкого разрешения, сохраняется в размере менее 1 млрд параметров для эффективности.
Для дедупликации на этапах с низким разрешением мы в основном используем недорогие методы на основе хеширования, объединяя md5, phash и colorhash для удаления дубликатов изображений с минимальными вычислительными затратами. Мы обнаружили, что стандартный 8x8 phash не учитывает цвет и имеет высокий уровень ложноположительных срабатываний; поэтому мы объединяем 12x12 phash с colorhash для более надежной дедупликации.
По мере масштабирования разрешения обучения мы внедряем фильтры качества изображения и эстетики. Важно отметить, что эти оценки качества используются только для отсеивания изображений крайне низкого качества, а не для избыточной выборки изображений на основе их оценок. Мы дополнительно используем оценку сложности изображения и плотность текста (на основе результатов OCR), чтобы исключить изображения, текст и содержание которых не могут быть значимо представлены при низком разрешении. Мы корректируем пороги качества, сложности и плотности текста по мере продвижения обучения.
Помимо обычных фильтров качества, мы также обучаем разреженный автокодировщик (SAE) на эмбеддингах SigLIP-2, вычисленных по выборке нашего корпуса предварительного обучения. После обучения SAE мы используем VLM для аннотирования каждого признака SAE на основе его топ-k активирующих образцов. Эти аннотированные признаки формируют систему неконтролируемой тегизации, в которой мы извлекаем преобладающие признаки SAE из каждого изображения. Эта система тегизации оказалась полезной для фильтрации явных визуальных артефактов без обучения отдельного классификатора.
Данные для промежуточного обучения
В отличие от этапов предварительного обучения, промежуточное обучение (midtraining) целенаправленно выбирает конкретные источники изображений, которые, как известно, обеспечивают хороший стилистический охват и высокое качество изображений для определенных визуальных доменов. В то время как предварительное обучение — это процесс «снизу вверх», начинающийся с общего пула, данные для промежуточного обучения курируются «сверху вниз»: сначала выбираются домены и источники. Промежуточное обучение — это важнейший этап, который плавно соединяет общее распределение предварительного обучения и высококачественное распределение SFT. Чтобы улучшить качество распределения, мы внедряем семантическую кластеризацию и используем стратегии на основе поиска для обеспечения охвата мировых знаний.
Опираясь на подход в Автоматическое курирование данных для самообучения, мы используем FAISS для выполнения иерархической кластеризации k-means, которую затем подвергаем выборке, чтобы сохранить визуальные концепции с «длинным хвостом», не тратя вычислительные ресурсы на избыточную выборку основных концепций. После вычисления иерархических кластеров мы просим VLM изучить изображения, ближайшие к каждому центроиду кластера, чтобы дать название и, при необходимости, пометить кластер. После проверки помеченных кластеров человеком мы удалили несколько из них, которые были низкого качества или проблематичными. Мы удаляем дополнительные избыточные данные посредством семантической дедупликации, вычисляя сходство SigLIP между изображениями внутри каждого оставшегося листового кластера.
Важной способностью моделей генерации изображений является точное представление известных сущностей, на которые пользователи могут ссылаться просто по имени. Некоторые сущности, такие как спортсмены или актеры, могут попадать в семантические кластеры, содержащие множество других сущностей, что создает риск их удаления при простой иерархической выборке. Чтобы решить эту проблему, мы запустили PageRank по англоязычной Википедии с использованием Danker и сохранили 90% лучших статей по рангу. Затем мы отфильтровали все статьи, описывающие непредставимые объекты на основе их метаданных Wikidata, и для оставшихся ~5 миллионов концепций мы выполнили полнотекстовый поиск по всем описаниям в нашем наборе данных, чтобы оценить охват. При выборке мы отдавали приоритет изображениям, описания которых содержали редкие концепции. Наконец, мы повторили этот анализ охвата на полученной выборке, чтобы подтвердить, что ни одна концепция, присутствовавшая в исходном наборе данных, не была полностью удалена.
Данные для контролируемой донастройки
Для этапа контролируемой донастройки (SFT) мы используем небольшой, отобранный вручную набор данных, сфокусированный на отдельных визуальных доменах. Мы обнаружили, что после достижения достаточного объема качество набора данных имеет гораздо большее значение, чем его масштаб.
Архитектура
Для наших архитектурных абляций мы сочли полезным классифицировать цель каждой абляции по одной из следующих категорий:
- Стабильность: Делает ли это обучение более стабильным? Снижает ли это потери и градиентные всплески?
- Производительность: Позволяет ли это модели сходиться быстрее? Если да, сохраняется ли эта тенденция в долгосрочной перспективе и при более высоком разрешении?
- Эффективность: Снижает ли это количество параметров, FLOP, требования к памяти или коммуникации без ущерба для качества модели?
- Простота: Можно ли сделать модель проще, не затрагивая другие категории?
Стоит отметить, что многие наши архитектурные решения продиктованы их принятием в сфере LLM. Выбор архитектуры, хорошо зарекомендовавшей себя в экосистеме LLM, позволяет нам использовать существующие ядра и оптимизации даже для диффузионных моделей.
Учитывая эти цели, мы начинаем со следующей базовой линии.
Блок трансформера
Мы начинаем с замены GeLU MLP на слои SwiGLU с коэффициентом расширения 4x, которые стали де-факто стандартом модуля в архитектурах LLM. Внедрение SwiGLU привело к стабильному повышению производительности, поэтому мы использовали его во всех последующих абляционных исследованиях.
Пересмотрев дизайн MLP, мы рассмотрели , MLA и gated sigmoid attention в качестве альтернатив базовой модели multi-head attention. Мы обнаружили, что GQA вносит минимальные искажения, предлагая при этом повышенную вычислительную эффективность. Мы также изучили MLA и отметили небольшие преимущества по сравнению с GQA, но не стали внедрять его, так как он создает дополнительные вычислительные накладные расходы. Мы использовали MLA с проекцией вверх/вниз для сжатия KV и без разделенного RoPE, поскольку диффузия — это чисто процесс префилла (prefill), который не использует KV-кэш при инференсе.
В дополнение к GQA мы добавляем gated sigmoid attention, следуя работе Gated Attention for Large Language Models. Gated sigmoid attention требует очень мало вычислительных ресурсов и параметров. Хотя это не привело к значительному приросту производительности, это обеспечило более стабильную динамику обучения, что отразилось на кривых потерь и нормы градиента на протяжении всего процесса обучения.
Мы также провели абляцию дизайна потока модальностей:
- Однопоточный дизайн (Single-stream): стандартный блок трансформера, в котором веса внимания и MLP являются общими для текстовых и графических токенов.
- Двухпоточный дизайн (Dual-stream): совместное внимание с отдельными весами внимания и MLP для текстовых и графических токенов.
- Гибридный дизайн (Hybrid-stream): сочетание двух предыдущих, использующее двухпоточные блоки для первой трети сети и однопоточные блоки для оставшихся двух третей.
Мы не наблюдали существенных различий в производительности между этими тремя дизайнами, за исключением гибридного дизайна, который немного превзошел остальные. Однако ради простоты мы используем однопоточные блоки в нашей финальной архитектуре.
Кондиционирование по временному шагу (Timestep conditioning)
Многие MMDiT используют MLP для каждого блока для создания коэффициентов масштабирования, сдвига и гейтирования. Эти блоки MLP могут составлять 20–30% от общего количества параметров, что мы считаем чрезмерным для внедрения скалярного условия. Поэтому мы заменяем MLP для каждого блока на настраиваемый член смещения (bias) для каждого блока. Это изменение позволяет нам выделить больше параметров для слоев внимания и MLP без ущерба для производительности модели.
Помимо модуляции AdaLN, мы изучили две альтернативы: (1) полное удаление кондиционирования по временному шагу и (2) контекстное кондиционирование по временному шагу через токены временного шага. В наших прогонах предварительного обучения с низким разрешением полное удаление информации о временном шаге стабильно показывало худшие результаты, чем базовый уровень AdaLN. Для контекстного кондиционирования мы создаем временные эмбеддинги с использованием синусоидальных эмбеддингов, объединяем их в единую последовательность текст + изображение + время и полностью удаляем слои AdaLN. При предварительном обучении на 256px 4–16 токенов временного шага было достаточно для замены AdaLN. Однако при 512px и 1024px контекстное кондиционирование работало плохо по сравнению с базовым уровнем AdaLN. Мы попытались смягчить это, увеличив количество токенов временного шага, но наблюдали снижение отдачи и не смогли достичь конкурентоспособной производительности при более высоких разрешениях.
Позиционное кодирование
Мы реализовали несколько RoPE схем для наших абляций. Мы используем 3D осевой RoPE с размерностями головы, выделенными для кадра, высоты и ширины. Для текстовых токенов мы устанавливаем индексы RoPE на ноль. При низком разрешении мы не наблюдали значительных преимуществ от перехода на Golden Gate RoPE, , normalized RoPE или partial RoPE. Для partial RoPE мы вращаем только первую половину размерности головы, а остальную часть оставляем без вращения. Как и ожидалось, partial RoPE давал лучшие результаты при инференсе zero-shot при масштабировании модели с 256px до 512px и не страдал от распространенных артефактов дублирования. Несмотря на эту начальную генерализацию разрешения, partial RoPE в конечном итоге показал себя хуже, чем базовая настройка RoPE по мере продолжения обучения с высоким разрешением.
Автокодировщик
Недавние работы показывают, что дизайн латентного пространства автокодировщика может значительно ускорить обучение моделей генерации изображений. Мы начинаем с автокодировщика FLUX.1-dev в качестве базового и сравниваем его с Qwen Image VAE, DC-AE, и нашим внутренним автокодировщиком. Мы изначально тестировали серию DC-AE, так как она предлагает пространственное сжатие до 32x, что может существенно повысить эффективность обучения и инференса. Однако мы обнаружили, что DC-AE накладывает жесткий верхний предел на способность диффузионной модели разрешать мелкие детали из-за ошибки реконструкции.
Напротив, Qwen Image VAE и FLUX 2 VAE предлагают латентное пространство с значительно более быстрой сходимостью в наших абляциях предварительного обучения при сохранении отличного качества реконструкции. Поэтому мы изначально использовали автокодировщик Qwen Image для масштабирования наших ранних моделей, а позже перешли на FLUX 2 VAE для наших более крупных моделей. Мы также кратко изучили обучение внутреннего автокодировщика с использованием DINOv3 для семантического выравнивания вместе с легкой диффузионной потерей, следуя подходу, аналогичному REPA-E. Мы подтвердили, что он работает на уровне конкурентов с автокодировщиком Qwen Image, но из-за нехватки времени мы выбрали Qwen Image и FLUX 2 VAE, которые были проверены в масштабе.
Дизайн остаточных связей (Residual design)
Мы используем стандартные остаточные связи по умолчанию. Мы кратко экспериментировали с Laurel, которая улучшает выразительность остаточной связи за счет добавления низкоранговой ветви «бутылочного горлышка», но не заметили заметного улучшения. Для будущих моделей мы намерены изучить альтернативы, такие как NOBLE, delta attention residuals и mHC, чтобы улучшить дизайн остаточных связей диффузионных трансформеров.
Нормализация
RMSNorm стала стандартным компонентом архитектур LLM, но не была полностью интегрирована в недавние архитектуры диффузионных трансформеров. Начиная с базового уровня LayerNorm, мы заменили все слои нормализации на RMSNorm и наблюдали очень незначительное ухудшение качества. Поэтому мы используем RMSNorm в качестве модуля нормализации по умолчанию (например, для prenorm и QKNorm). Мы используем zero-centered RMSNorm и применяем затухание весов (weight decay) к его обучаемым параметрам. Мы также экспериментировали с более эффективными вариантами, такими как Derf, но обнаружили нежелательное ухудшение качества.
Текстовый энкодер
Мы использовали T5-XXL в качестве нашего базового текстового энкодера. С самого начала мы намеренно решили сохранить архитектуру простой и использовать один текстовый энкодер. Примечательно, что мы обнаружили, что T5-XXL остается очень конкурентоспособным текстовым энкодером по сравнению с T5Gemma, umT5, Qwen 2.5 VL и . В конечном итоге мы используем Qwen 3 VL в качестве нашего финального текстового энкодера, поскольку VLM предлагает более богатое пространство входных данных (текст и изображение) и более сильную многоязычную генерализацию.
Более того, вдохновившись Unifusion, вместо использования последнего слоя признаков VLM, мы вводим слой поверхностного внимания, который агрегирует скрытые признаки по всем слоям. Такая конструкция позволяет модели динамически выбирать текстовые представления от общих к частным. Признаки последнего слоя авторегрессионной LLM не являются оптимальными для наших целей, поскольку они оптимизированы для предсказания следующего токена, а не для генерации изображений. Наряду с этой послойной агрегацией признаков, мы добавляем облегченные двунаправленные слои трансформера вдоль оси токенов, чтобы уменьшить авторегрессионное смещение в пространстве представлений.
Оптимизация
Мы используем AdamW в качестве основного оптимизатора на протяжении всего конвейера. Изначально мы получили неоднозначные результаты при применении Muon к архитектуре MMDiT. По умолчанию мы используем реализацию Muon из Dion и настройку RMS-matched из Moonlight для переноса гиперпараметров AdamW.
В ходе нашего исследования Muon сходился быстрее, чем AdamW на начальных этапах, но уступал ему на более длительных горизонтах. Мы также столкнулись с рядом проблем стабильности при использовании Muon, включая частые скачки функции потерь и нормы градиента на протяжении всего обучения. Мы обнаружили, что критически важно исключить первый и последний линейные слои MMDiT из параметров Muon; это согласуется с литературой по LLM, где параметры эмбеддингов и LM-head исключаются из Muon. После исключения этих слоев и добавления импульса Нестерова (Nesterov momentum), Muon стабильно превосходил базовый AdamW как при низком, так и при высоком разрешении. Мы не стали использовать Muon для нашего последнего цикла предварительного обучения из-за ограничений по времени, но, учитывая эти убедительные результаты, мы планируем внедрить его в следующем цикле предварительного обучения.
Обучение
Наш конвейер обучения следует многоэтапной структуре, вдохновленной современными конвейерами обучения LLM.
Предварительное обучение
Предварительное обучение закладывает базовые возможности модели, включая согласование текста и изображения, рендеринг текста, охват стилей и структурную согласованность. Мы постепенно увеличиваем разрешение с 256px до 512px и 1024px. Для нашей финальной модели мы проводим обучение со стандартной функцией потерь rectified-flow при v-параметризации. Чтобы ускорить ранние этапы, мы используем для первой эпохи этапа 256px, а затем удаляем его, что побуждает MMDiT изучать собственные представления, существенно ускоряя начальную сходимость. Мы также исследовали альтернативные стратегии ускорения, такие как TREAD, но не увидели значительной выгоды.
На этапах 256px и 512px мы используем 8-битное обучение и наблюдаем прирост скорости обучения на 15–20% по сравнению с базовым bf16 при минимальном ухудшении функции потерь и метрик оценки. При 256px мы используем 8-битное обучение с тензорным масштабированием, а при 512px — более детализированное построчное масштабирование. Начиная с 1024px и до финального этапа RL, мы используем стандартное обучение bf16.
Еще одним важным аспектом предварительного обучения с высоким разрешением является адаптация графика сдвига времени (timeshift), зависящего от разрешения. Мы используем график сдвинутого логит-нормального сэмплирования как для обучения, так и для вывода, и постепенно увеличиваем сдвиг по мере увеличения разрешения. Следуя , мы подбираем оптимальный сдвиг времени обучения для каждого разрешения. Мы подбираем сдвиг только для обучения и сохраняем график сдвига для вывода постоянным, так как некоторые автокодировщики менее чувствительны к сдвигу времени вывода.
Во время предварительного обучения мы используем график скорости обучения с прогревом, стабилизацией и затуханием (warmup-stable-decay) и применяем PMA, следуя Model Merging in Pre-training of Large Language Models. Мы подтверждаем, что PMA достигает производительности, сопоставимой с EMA, избегая при этом значительных накладных расходов на память. Мы не наблюдаем существенных различий между методами слияния, хотя настройка количества объединенных контрольных точек и интервала слияния может дать небольшие улучшения в последующих метриках.












