Flow Matching
노이즈를 데이터로 변환하는 생성 모델링 프레임워크인 플로 매칭을 살펴보세요. 더 빠르고 고품질의 추론으로 디퓨전 모델보다 뛰어난 성능을 내는 방법을 알아보세요.
Flow matching은 시간에 따른 데이터 포인트의 연속적인 흐름을 직접 모델링하여 단순한 노이즈 분포를 복잡한 데이터 분포로 변환하는 방법을 학습하는 생성 모델링 프레임워크입니다. 복잡한 다단계 디노이징 프로세스에 의존하는 기존 방법과 달리, flow matching은 소스 분포(노이즈)와 대상 분포(데이터) 사이에 더 단순하고 직접적인 경로(대개 직선)를 정의합니다. 이 접근 방식은 생성형 AI 모델의 학습을 크게 간소화하여 더 빠른 수렴, 향상된 안정성, 더 높은 품질의 출력을 제공합니다. 사전 상태에서 원하는 데이터 상태로 확률 밀도를 이동시키는 벡터 필드를 학습함으로써, 표준 diffusion models에 대한 강력한 대안을 제공합니다.
핵심 개념 및 메커니즘#
Flow matching은 생성 과정의 핵심에서 주변 확률만이 아니라 데이터 변환의 속도에 초점을 맞춰 생성 과정을 단순화합니다. 이 방법은 연속 정규화 흐름에서 영감을 얻었지만, 정확한 우도 계산에 필요한 높은 계산 비용을 피합니다.
- 벡터 필드: Flow matching의 핵심 구성 요소는 공간과 시간의 특정 지점에 대한 속도 벡터를 예측하는 신경망입니다. 이 벡터는 데이터 포인트가 실제와 같은 샘플이 되기 위해 어느 방향으로 이동해야 하는지 알려줍니다.
- 최적 수송: Flow matching은 한 분포에서 다른 분포로 질량을 수송하는 가장 효율적인 경로를 찾는 것을 목표로 하는 경우가 많습니다. 이동 거리를 최소화하면 모델이 더 빠른 추론 시간을 달성할 수 있습니다. 최적 수송과 같은 기법은 이러한 직선 경로를 정의하여 노이즈가 기하학적으로 일관된 방식으로 데이터에 매핑되도록 합니다.
- 조건부 생성: Ultralytics YOLO26이 입력 이미지에 따라 탐지를 조건화하는 것과 유사하게, flow matching은 클래스 레이블이나 텍스트 프롬프트에 따라 생성을 조건화할 수 있습니다. 이를 통해 생성되는 콘텐츠를 정밀하게 제어할 수 있으며, 이는 최신 텍스트-이미지 및 텍스트-비디오 파이프라인의 핵심 기능입니다.
Flow Matching과 Diffusion Models 비교#
Flow matching과 diffusion models은 모두 생성 모델링을 목적으로 하지만, 수학적 공식화와 학습 효율성에서 차이가 있습니다.
- Diffusion Models: 이러한 모델은 일반적으로 데이터에 점진적으로 노이즈를 추가한 다음 이 과정을 반대로 수행하는 방법을 학습하는 확률 미분 방정식(SDE)에 의존합니다. 역방향 경로는 대개 곡선 형태이며 추론 중에 많은 이산 단계를 필요로 하므로 생성을 느리게 할 수 있습니다.
- Flow Matching: 이 접근 방식은 본질적으로 노이즈와 데이터 사이의 궤적을 "직선화"합니다. 더 직선적인 경로를 갖는 결정론적 상미분 방정식(ODE)을 학습함으로써 flow matching은 샘플링 중에 더 큰 스텝 크기를 사용할 수 있도록 합니다. 이는 품질 저하 없이 더 빠른 생성 속도로 직접 이어져, 실시간 추론 시나리오의 주요 병목을 해결합니다.
실제 적용 사례#
Flow matching의 효율성과 높은 충실도 덕분에 다양한 최첨단 AI 분야에서 빠르게 도입되고 있습니다.
- 고해상도 이미지 합성: Flow matching은 최첨단 이미지 생성기를 구동하는 데 점점 더 많이 사용되고 있습니다. 더 직선적인 궤적을 가능하게 함으로써 이러한 모델은 Stable Diffusion과 같은 이전 아키텍처에 비해 더 적은 샘플링 단계로 사실적인 이미지를 생성할 수 있습니다. 이러한 효율성은 소비자용 하드웨어 또는 데이터 증강을 위한 Ultralytics Platform 내에 생성 도구를 배포하는 데 매우 중요합니다.
- 생성 음성 및 오디오: 음성 합성 분야에서 flow matching은 매우 자연스러운 사람의 음성을 생성할 수 있도록 합니다. 자기회귀 모델보다 피치와 음색의 연속적인 변화를 효과적으로 모델링할 수 있어 더 매끄럽고 표현력이 풍부한 텍스트 음성 변환 시스템을 구현할 수 있습니다.
- 3D 포인트 클라우드 생성: 3D 에셋을 생성하려면 복잡한 공간적 관계를 모델링해야 합니다. Flow matching은 더 높은 차원으로 효과적으로 확장되므로, 세부적인 3D 객체 탐지 데이터 세트나 가상 환경용 에셋을 생성하는 데 적합합니다.
Flow Matching 개념 구현#
Flow matching에는 복잡한 학습 루프가 포함되지만, 기본적인 텐서 연산을 사용하면 노이즈를 변환하는 개념을 시각화할 수 있습니다. 다음 예제는 flow matching 벡터 필드가 데이터를 유도하는 방식과 유사하게 방향 벡터를 사용하여 노이즈 분포의 포인트를 대상 방향으로 이동하는 단순화된 개념을 보여줍니다.
import torch
# Simulate 'noise' data (source distribution)
noise = torch.randn(5, 2)
# Simulate 'target' data means (destination distribution)
target_means = torch.tensor([[2.0, 2.0], [-2.0, -2.0], [2.0, -2.0], [-2.0, 2.0], [0.0, 0.0]])
# Calculate a simple linear path (velocity) from noise to target
# In a real Flow Matching model, a neural network predicts this velocity
time_step = 0.5 # Move halfway
velocity = target_means - noise
next_state = noise + velocity * time_step
print(f"Start:\n{noise}\nNext State (t={time_step}):\n{next_state}")향후 방향 및 연구#
2025년 현재 flow matching은 계속 발전하고 있으며, 연구는 이러한 모델을 더 큰 데이터 세트와 더 복잡한 모달리티로 확장하는 데 초점을 맞추고 있습니다. 연구자들은 생성 작업의 의미 이해를 개선하기 위해 flow matching을 대규모 언어 모델과 결합하는 방법을 연구하고 있습니다. 또한 flow matching을 비디오 생성 파이프라인에 통합하면서 AI 생성 비디오에서 자주 나타나는 "플리커" 현상을 해결하고 시간적 일관성을 높일 수 있는 길이 열리고 있습니다. 이는 멀티모달 작업을 원활하게 처리할 수 있는 통합 파운데이션 모델을 향한 광범위한 업계 동향과 맥을 같이합니다.









