Оптимальный транспорт
Flow matching и continuous OT
2022 год: Flow Matching (Lipman et al., Meta AI) генерирует изображения за 10 шагов вместо 1000 у диффузионных моделей. Ключ - прямолинейные траектории через оптимальный транспорт вместо случайных зигзагов.
- **Stable Diffusion 3, Flux:** используют OT-FM как основу; SD3 генерирует за 28 шагов то, для чего SDXL нужно 50+ шагов при лучшем качестве
- **Молекулярная генерация:** FoldFlow, FrameFlow, AlphaFlow используют flow matching для генерации 3D структур белков - прямолинейные пути в пространстве конформаций (RFDiffusion и AlphaFold 3 строятся на чистой диффузии, FM - следующее поколение)
- **Голосовые модели:** Voicebox (Meta), E2 TTS - flow matching для генерации речи за единицы итераций вместо сотен у диффузионных
Предварительные знания
Непрерывные потоки и уравнение непрерывности
Генеративная модель - это отображение из простого распределения (гауссовский шум) в сложное (изображения, речь, молекулы). Вместо одного шага можно сделать непрерывное семейство отображений, параметризованное временем t ∈ [0, 1]: **поток** (flow).
**Поток** задаётся ОДУ: dx/dt = v_t(x), x(0) ~ p_0 (шум), x(1) ~ p_1 (данные). Решение ОДУ определяет карту потока φ_t: φ_t(x_0) = x_t. **Уравнение непрерывности** описывает эволюцию плотности: ∂ρ_t/∂t + div(ρ_t · v_t) = 0 Если задать v_t, плотность ρ_t определена однозначно. Если задать начало ρ_0 и конец ρ_1 - нужно найти подходящее v_t.
Уравнение непрерывности - это закон сохранения: масса не создаётся и не уничтожается, только перемещается. Если знать поле скоростей v_t, эволюция плотности определена однозначно через это уравнение. Задача обучения генеративной модели - найти v_t, который переводит p_0 в p_1.
Уравнение непрерывности ∂ρ_t/∂t + div(ρ_t · v_t) = 0 утверждает:
Flow Matching: обучение скоростного поля
Как обучить нейросеть v_θ(t, x) так, чтобы поток переводил шум в данные? Прямая минимизация расстояния между ρ_1 и p_1 требует симуляции ОДУ на каждом шаге - дорого. Lipman et al. (2022) предложили более умный подход.
**Conditional Flow Matching (CFM):** для каждой пары (x_0, x_1) строим условный путь x_t = (1-t)x_0 + t*x_1 с условной скоростью u_t(x|x_1) = x_1 - x_0. Целевой функционал: L_CFM(θ) = E_{t,x_0,x_1} ||v_θ(t, x_t) - u_t(x_t|x_1)||² Где x_t = (1-t)x_0 + t*x_1. Без симуляции ОДУ! Lipman et al. доказали: маргинальное поле скоростей, минимизирующее L_CFM, совпадает с оптимальным полем Flow Matching.
Ключевая идея CFM: вместо маргинальной скорости (трудно вычислить) учим условную скорость для конкретных пар (x_0, x_1). Математически доказано, что оба лосса имеют одинаковый оптимум. Это делает обучение Flow Matching таким же простым, как диффузионные модели - без сложных формул score matching.
В чём главное вычислительное преимущество Conditional Flow Matching перед прямой минимизацией расстояния между ρ_1 и p_1?
OT Flow Matching: прямолинейные пути
2022 год: Flow Matching (Lipman et al., Meta AI) генерирует изображения за 10 шагов вместо 1000 у диффузионных моделей. Ключ - прямолинейные траектории через оптимальный транспорт вместо случайных зигзагов.
**OT-FM:** вместо независимого coupling (x_0 ⊥ x_1) используем OT-coupling π* из теоремы Брение (минимальная стоимость транспорта). Это даёт пары (x_0, x_1) с минимальным расстоянием. Линейные пути x_t = (1-t)x_0 + t*x_1 становятся почти прямыми - минимальная кривизна. **Почему это важно:** нейросеть учит почти постоянное поле скоростей → численное интегрирование ОДУ требует мало шагов → генерация за 10 шагов (vs 1000 у DDPM).
OT-FM используется в Stable Diffusion 3 (SD3), Flux, и других production-моделях. Превосходство над DDPM не только в скорости: прямолинейные пути означают более интерпретируемую интерполяцию в latent space, что полезно для редактирования изображений и управляемой генерации.
Почему OT coupling в OT-FM даёт меньше шагов при генерации по сравнению с независимым coupling?
Итог
- **Поток** dx/dt = v_t(x) задаёт непрерывное отображение p_0 → p_1; уравнение непрерывности ∂ρ/∂t + div(ρv) = 0 связывает поле скоростей и эволюцию плотности
- **Conditional Flow Matching:** учим v_θ на условных скоростях u_t(x|x_1) = x_1 - x_0 без симуляции ОДУ - математически эквивалентно прямой минимизации, но на порядки быстрее
- **OT-FM:** OT coupling сопоставляет близкие пары → прямолинейные пути → почти постоянное поле скоростей → генерация за 10-30 шагов вместо 1000 у DDPM; основа SD3, Flux, Voicebox
Связанные темы
Flow Matching соединяет OT с современными генеративными моделями:
- Теорема Брение и OT — OT-FM использует OT coupling из теоремы Брение для получения оптимальных пар (x_0, x_1) с минимальной суммарной стоимостью
- Диффузионные модели (DDPM) — FM - эволюция идей диффузии: тот же принцип noise→data, но через детерминированное ODE вместо SDE, что даёт прямолинейные пути и меньше шагов
Вопросы для размышления
- Линейные пути x_t = (1-t)x_0 + t*x_1 - самые простые, но не единственные. Какие другие семейства путей можно использовать и зачем?
- OT-FM с W_2 OT coupling даёт прямолинейные пути в исходном пространстве. Что происходит если применить OT в latent space вместо pixel space?
- Flow Matching - детерминированное ODE. DDPM - стохастическое SDE. Есть ли задачи, где стохастичность принципиально важна и FM проиграет?