- 2025년 2월 27일 오후 1:34
- 조회수: 3097
REFERENCES
INFORMATION
- 2025년 2월 28일
- 오후 12시 ~
온라인 비디오 시청 (YouTube)
조한샘
TOPIC
On-Line Video
OVERVIEW
청취자 후기
김재훈
Diffusion model은 고품질의 데이터를 생성할 수 있지만 생성 속도가 느리다는 단점이 있다. 이번 세미나에서 소개하는 Flow matching 모델은 데이터의 품질은 유지하되 생성 속도를 보다 빠르게 가져갈 수 있는 알고리즘을 제안한다. Flow matching 역시 처음 source 데이터에서 target 데이터까지 변환해가는 과정이 있기 때문에 중간에 생성되는 데이터의 분포가 존재하고 그것을 '(probability) path'라고 한다. 이때 source 데이터에서 t번째 데이터로 매핑하는 함수가 Flow 함수인데 이를 학습하기 위해서는 모든 path를 유지할 필요가 있어서 매우 비효율적이다. 따라서 Flow 함수 대신 그의 미분으로 정의되는 Velocity field 함수를 학습한다. 이는 변화량을 나타내기 때문에 ODE solver를 통해서 flow matching을 수행할 수 있게 된다.
사실 이번 세미나는 최근에 로보틱스 쪽으로 많을 관심을 갖고 있어서 더욱 흥미롭게 들었다. 로보틱스에서 주요하게 다루는 분야 중 하나는 planning이다. Planning은 목적 달성을 위해 최적의 행동 계획을 수행하는 것으로 보면 된다. 최근에는 데이터의 분포를 효과적으로 표현하는 diffusion 모델을 차용하여 성능적으로 큰 발전을 이루었지만 속도가 느리다는 치명적인 단점이 있었다. 이전 세미나에서 언급한 것처럼 로보틱스는 빠른 행동 역시 중요하기 때문이다. 따라서 이번 세미나에서 소개한 flow matching처럼 속도를 개선한 모델이 나오기 시작하면 이런 AI 로보틱스 분야도 보다 현실에 가까워지는 것이 아닌가하는 생각이 들었다. 매우 최신이고 어려운 주제이지만 친절하게 세미나를 준비해준 한샘이에게 감사한 마음을 전한다.
안시후
생성모델은 인공지능에 조금이라도 관심이 있다면 모르는 사람이 없을 정도로 발전을 이루고 있다. 상용화를 위해 필요한 요소인 속도, 퀄리티, 다양성 등을 위해 다양한 모델들이 제안되고 있다. 생성 속도는 빠르지만 퀄리티는 아쉬운 VAE, GAN 계열 모델도 있고 퀄리티는 좋지만 속도가 느린 Diffusion 모델도 많이 활용되고 있다.
오늘은 Diffusion 모델의 생성 퀄리티는 유지하면서 생성 속도는 발전 시킨 Flow 모델을 소개해주었다. Flow 모델은 diffusion 모델보다 확장된 개념으로 미분인 velocity field를 ODE를 통해 간접적으로 계산하여 Diffusion과 동일한 목표를 갖지만 probability path와 velocity field를 다르게 정의하여 문제를 해결한다. 이를 통해 계산 자체도 빨라지지만 sampling step이 작더라도 좋은 퀄리티의 이미지를 얻을 수 있어 생성 속도 측면에서 많이 발전을 이루었다.
물론 생성 속도를 diffusion과 비교하는게 맞지만, 속도가 중요한 분야에서 활용 할 수 있을지에 대한 지표 혹은 VAE, GAN 중에서 생성 퀄리티가 괜찮은 모델들과 어느정도 생성 속도 차이가 나는지 알 수 있었으면 좋을 것 같았다. Flow 모델을 기술적인 부분부터 풀어서 설명하고 디테일하게 짚어주어 흥미롭게 들었고 이해하기 수월했다. 좋은 세미나를 준비해준 한샘이에게 고마움을 전한다.
이정민
그동안 연구실 세미나에서 다양한 diffusion 모델들과 접근 방식들에 대해 소개해주었었다. 이번 세미나에서는 꾸준히 diffusion 모델의 단점으로 지적되었던 생성 속도를 flow matching 방식으로 접근하는 방법에 대해 소개해주었다. Source 분포를 target 분포로 변환시켜주는 flow를 찾기 위해서는 velocity field를 사용할 수 있는데, 이 또한 직접적으로 계산하기 어렵다. 이를 해결하기 위해 conditional flow matching을 사용할 수 있고, flow matching loss의 gradient와 conditional flow matching loss의 gradient가 같다는 것을 증명하여 이로써 학습을 수행할 수 있게 된다.
간단한 pseudo code를 통해서도 어떻게 학습되는지 설명해주어 이해하기가 훨씬 용이했다. 이번 세미나를 들으면서 diffusion 모델의 무궁무진함을 다시 한 번 느낄 수 있었다. 생성 속도 측면을 개선한다면 정말 다양한 문제 상황에 직접적으로 적용할 수 있을 것이고, 그 만큼 diffusion 모델이 산업에 끼치는 중요도도 올라갈 것이다. 좋은 세미나를 준비하느라 고생한 한샘이형에게 고맙다는 말을 전하며, 본 세미나 후기를 마친다.
김성수
이번 세미나에서는 Diffusion 모델에서 Flow Matching이라는 개념에 대해 진행되었다. Flow Matching은 근본적으로 Diffusion 모델의 느린 생성속도 문제를 해결하고자 한다. 결론적으로 이는 빠르게 생성할 수 있는 Flow 모델을 찾고자 한다. Flow 모델이란, 주어진 분포를 타겟 분포로 변환해주는 모델을 의미한다. 그러나, 이를 직접적으로 학습하는 것은 어렵기에, Velocity Field라는 것을 정의하여 문제를 해결한다. 이는 Source에서 Target으로 변환할 때 어떤 방향으로 변환해야 하는지 알려주는 역할을 한다. 그러나, target 값을 모르기에, 이를 단순하게 학습하긴 어려움으로 Condition을 주어 이를 해결한다고 한다. 궁극적으로, 이렇게 Flow 모델을 활용하면 적은 Step만으로 우수한 이미지를 생성할 수 있다는 장점을 가지며, 이미지 생성에 대한 자유도가 높아질 수 있다는 장점을 갖는다.
몇 개월 전 세미나에서는 Consistency 모델이 이러한 Diffusion 생성 속도를 향상 시킬 수 있는 참신한 구조로 제안되었던 것 같은데, 벌써 또 다른 방향이 제시되었다는 것이 놀라웠다. 개인적으로는 Consistency 모델과 Flow Matching 간 비교를 한 결과도 궁금했다. 유익한 세미나를 준비해준 조한샘 연구원님께 고맙다는 말을 전하며 세미나 후기를 마친다.
허종국
조한샘 연구원이 금일 세미나로 이미지 생성 모델의 또 다른 흐름인 flow matching이라는 주제로 발표를 진행하였다. Flow matching이란 한 마디로 source data(x0)에서 target data(x1) 분포 사이의 continuous transition들에 대해 어떤 velocity field를 통해 흘러가는지(flow)를 학습하는 모델이다. 유체역학 또는 자기장에서 현재 상태에 작용하는 힘의 벡터를 고려하여 상태가 움직이는 것을 묘사하는 느낌이라고 생각하면 편하다. 변위(state)의 미분은 속도(velocity)이므로 각각의 연속적인 point transition에 대한 velocity field를 구해서 노이즈, 혹은 초기 입력값에 대해 점미분값에 대한 이동을 천천히 더해지는 과정으로써, diffusion 모델은 개별 time step에 대한 noise를 구해서 denoising하는 간접적인 과정이라면 flow matching 모델은 개별 time step에 대한 이미지 자체를 개선하는 직접적인 방식이다.
Flow matching은 diffusion에서 target image x1에 대해 시점 별 노이즈를 주입하는 것과 동일한 느낌으로 x_t를 생성, 즉 개별 t에 대한 conditional probability path를 구한다. 그리고 이 conditional probability path에 대한 미분, 즉 velocity field를 ODE solver로 구해서 learnable model인 u로 학습한다. 신기한점은 개별 시점에 대한 노이즈를 생성하여 시간에 따라 다른 노이즈를 예측하는 diffusion model과 달리, flow model에서는 모든 continuous transition t에 대해서 velocity field의 값이 같다. 즉 x0과 x1에 대한 average velocity field와 그 사이 모든 t에 대한 velocity field와 같다고 간주한다. 이는 diffusion과 달리 x0과 x1사이의 optimal transport를 우회하지 않고 직접적으로 계산하는 것과 같다. 따라서 생성할때도 모든 time step에 대해 recursive하게 예측 및 denoising하는 diffusion model과 달리 생성 속도가 높다 (diffusion은 x_t-1에서 x_t의 개별 노이즈(path)를 예측하는 반면, flow matching은 x_0에서 x_1의 노이즈(path)를 예측한다는 느낌). 하지만 실질적으로 조한샘 연구원한테 물어보니, 학습할 때는 optimal transport path(x0->x1)에 대해서 학습하지만, 생성 시에는 practical 하게 x_t+h = x_t + h * u_t(x_t)에서 h를 아주 낮은 값으로 줘서 recursive하게 생성하긴 한다고 하더라.
다만 학습 측면에서 direct path를 직접 학습하기 때문에 local path에 빠지지 않는다는 장점이 있고, 이에 따라 생성 스텝 개수도 적어서 diffusion model보다 FID도 낮고 생성 속도도 빠르긴한 것 같다.
한 가지 궁금한 점은, diffusion 모델에서는 text prompt기반 conditional generation을 위해 unconditional generation과 conditional generation 사이를 조절하는 CFG 등의 트릭이 자주 소개가 되었는데, Flow matching에서도 CFG 등의 trick을 통해서 conditional generation이 가능하냐는 것이다. Flow matching에 대한 소개 세미나라 다루지 않은것 같긴 한데, 다음 세미나에서는 conditional flow matching에 대한 내용을 다루어 기존 conditional diffusion과 어떠한 차이가 있는지 알아보는 세미나가 되었으면 좋겠다.
금일 세미나를 준비하느라 고생한 한샘이형에게 감사의 말을 전한다.