DU-NO, 파도를 위상까지 읽는 가벼운 연산자

FUNWAVE-TVD급 정확도를 노리면서 파라미터를 10분의 1로 줄인 이중 U형 신경 연산자 DU-NO의 구조와 실험을 읽어봅니다.

원문 논문 보기
'DU-NO, 파도를 위상까지 읽는 가벼운 연산자' 기사 커버 이미지

DU-NO: A Parameter-Efficient Double U-Shaped Neural Operator for Phase-Resolving Wave Modeling는 연안 파동 모델링 연구진이 arXiv에 공개한 논문으로, 식별자는 2609.12115입니다. 원문 논문 링크는 제목 아래에 걸어 두었습니다. 이 논문은 multiscale U형 스펙트럴 연산자의 가장 얕은 인코더와 디코더 두 레벨에만 가벼운 합성곱 U-Net 가지를 붙여 3.64M 파라미터로 U-FNO보다 14.9% 낮은 롤아웃 오차를 냈다는 주장을 펼칩니다. 이 글에서는 왜 정확하면서도 무거운 기존 모델이 현장에서 막히는지, DU-NO가 어디에 손을 댔고 어디에는 손을 대지 않았는지, 그리고 그 숫자를 어디까지 믿어야 하는지를 차례로 따라가 보겠습니다.

예보관의 아침은 왜 항상 시간이 모자랄까

안녕하세요, 패트릭입니다.

태풍이 올라온다는 예보가 뜬 아침의 항만 예보실을 상상해 보시면 됩니다. 방파제 앞 수심이 얕아지는 지점에서 파고가 얼마나 올라올지, 월파가 생길지, 여객선 접안을 멈춰야 할지를 한 시간 안에 판단해야 하는데요. 그렇다면 이때 가장 정확한 모델 하나를 돌리면 끝이 아닐까요?

제가 이 논문에서 가장 흥미롭게 본 부분은 바로 그 질문이 현장에서는 성립하지 않는다는 데서 출발한다는 점입니다. 위상을 직접 푸는 phase-resolving 모델의 대표 주자인 FUNWAVE-TVD는 근해 파동의 정확도 기준이 맞지만, 한 번 돌리는 데 드는 비용이 워낙 커서 앙상블이나 불확실성 정량화, 실시간 경보에는 그대로 올리기 어렵기 때문입니다. 정확도가 문제가 아니라, 정확한 답을 제시간에 여러 번 내놓지 못한다는 점이 문제였던 것이죠.

저희가 새로운 AI 아키텍처를 볼 때도 benchmark 숫자만 보지는 않습니다. 실제로 무엇이 바뀌었고, 그 변화가 시스템에서 어떤 비용 구조를 만드는지를 함께 봅니다. 그래서 저는 이 논문을 정확도 경쟁 이야기로 읽기보다는, 무거운 물리 솔버를 현장의 시간표에 맞추려는 시도로 읽었습니다. 그리고 그 시도가 하필 파라미터를 줄이는 방향으로 갔다는 점이 눈에 밟혔습니다.

정확해서 못 쓰는 모델이라는 모순

연안에서는 파도가 수심을 만나면서 갑자기 가팔라지고, 깨지고, 반사되고, 다시 겹칩니다. 이런 과정을 위상까지 따라가려면 Boussinesq 형태의 방정식을 잘게 쪼개어 풀어야 하는데, 격자가 촘촘해질수록 계산량은 순식간에 불어납니다. 그래서 FUNWAVE-TVD는 믿을 만하지만, 태풍 경로가 조금씩 다른 수십 가지 시나리오를 한꺼번에 돌려야 하는 예보실에서는 그림의 떡에 가까웠습니다.

그런데 신경망 서로게이트가 등장하면서 상황이 조금 달라졌습니다. 물리 솔버를 매번 처음부터 푸는 대신, 파동장의 진화를 학습한 연산자가 다음 상태를 바로 예측하는 것이죠. 특히 Fourier neural operator 계열은 전역적인 주파수 패턴을 잘 잡아서 파도처럼 멀리 퍼지는 현상에 어울렸습니다. 하지만 좋은 성적을 내려면 U-FNO처럼 스펙트럴 경로에 합성곱 경로를 여러 층에 걸쳐 붙여야 했고, 그 대가로 파라미터가 수천만 개까지 불어났습니다.

여기서 재미있는 질문이 생깁니다. 정확도를 올리려고 파라미터를 늘렸는데, 그 무게 때문에 다시 현장에 못 올린다면 그 정확도는 누구를 위한 것일까요? 연구진이 본 것도 바로 그 모순이었습니다. 무겁게 만들어 놓고 가볍게 못 쓰는 구조라면, 처음부터 어디에 무게를 써야 하는지를 다시 물어야 한다는 것이죠.

얕은 격자에서 쇄파를 그리는 근해 파도 단면의 편집 일러스트
얕은 격자에서 쇄파를 그리는 근해 파도 단면의 편집 일러스트

넓게 보는 눈과 가까이 보는 손이 따로 필요하다면

DU-NO의 출발점은 생각보다 직관적이라서, 저는 처음 읽고 잠시 멈칫했습니다. 파도에는 멀리 퍼지는 너울과 눈앞에서 깨지는 쇄파가 함께 있는데, 하나의 연산 방식만으로 둘을 다 잡으려니 손이 모자랐다는 것입니다. 그래서 멀리 보는 일은 스펙트럴 연산자에게 맡기고, 가까이서 깨지는 일은 합성곱에게 맡기자고 나눈 것이죠.

스펙트럴 연산자는 파동장을 주파수 공간으로 옮겨서 전역적인 상호작용을 한 번에 처리합니다. 너울이 해안선 방향으로 길게 들어오거나, 반사파가 넓게 겹치는 패턴은 이런 방식이 잘 잡습니다. 반면 합성곱은 작은 커널로 이웃 픽셀을 훑으면서 국소적인 기울기나 경계를 읽는 데 강합니다. 눈앞에서 부서지는 파봉처럼 좁은 영역에서 급격히 바뀌는 형상은 오히려 이쪽이 잘 맞습니다.

생각해보면 사람도 비슷하게 봅니다. 항구 방파제에 서 있으면 먼 수평선 쪽 너울은 윤곽으로 보고, 발밑에서 깨지는 파도는 결로 느끼잖아요. DU-NO는 그 두 가지 보기를 하나의 연산자 안에 겹쳐 넣은 셈인데, 문제는 그다음입니다. 좋은 건 알겠는데, 합성곱 가지를 어디마다 붙여야 할까요?

굳이 가장 섬세한 두 층에만 작은 날개를 단 이유

DU-NO라는 이름의 이중 U는 여기서 나옵니다. 큰 U 하나가 multiscale 스펙트럴 연산자의 인코더와 디코더라면, 그 위에 얹힌 작은 U 두 개가 얕은 레벨에만 붙은 합성곱 U-Net 가지입니다. 연구진은 가장 해상도가 높은 바깥쪽 두 레벨에만 이 작은 날개를 달았고, 더 깊고 성긴 안쪽 레벨은 순수 스펙트럴로 남겨 두었습니다.

이 선택에는 표본화 논리가 깔려 있습니다. 높은 파수, 즉 짧고 뾰족한 파동 성분은 촘촘한 격자에서만 살아남고, 격자를 성기게 바꾸는 순간 그 정보는 애초에 들어 있지 않기 때문입니다. 그래서 성긴 격자까지 합성곱 가지를 따라 붙여봤자 볼 것이 별로 없다는 것이죠. 볼 것이 있는 곳에만 국소 경로를 두겠다는 판단이라서, 저는 이 대목을 읽고 꽤 설득됐습니다.

여기서는 조금 조심해서 읽을 필요가 있습니다. 합성곱을 뺐다고 해서 성긴 레벨이 부실해지는 것은 아니기 때문입니다. 성긴 레벨은 이미 대역이 제한된 부드러운 성분만 다루고 있어서 스펙트럴 연산만으로 충분하다는 것이 연구진의 설명입니다. 다시 말해 빼는 것이 아니라 안 붙이는 것이고, 그 안 붙이기가 파라미터 절감으로 직결됩니다. 구조를 덜어낸 것이 아니라 둘 곳에만 둔 것이죠.

스펙트럴 경로와 합성곱 가지가 만나는 이중 U 구조의 개념도
스펙트럴 경로와 합성곱 가지가 만나는 이중 U 구조의 개념도

3.64M이라는 숫자를 예산표처럼 읽는 법

숫자는 이렇게 나옵니다. DU-NO의 전체 파라미터는 3.64M이고, 이는 U-FNO보다 10.8배 적은 수준입니다. 그런데 롤아웃 오차는 오히려 14.9% 낮아졌습니다. 일반 파일에만 남겼을 때와 SOUL.md에 옮겨 적었을 때처럼, 같은 숫자라도 어디에 적히느냐가 다르듯이, 파라미터도 총량보다 배치가 결과를 갈랐다는 이야기입니다.

여기에 하나 더 얹힌 장치가 깊이에 따라 모드 수를 줄이는 depth-decaying 스케줄입니다. 스펙트럴 층마다 같은 수의 Fourier 모드를 유지하는 대신, 깊어질수록 유지할 모드를 줄여서 전체 예산을 눌러 담은 것이죠. 성긴 레벨에는 높은 주파수가 없다는 앞선 논리와 같은 방향이라서, 두 선택이 서로를 뒷받침합니다. 저는 이 숫자보다 그 뒤의 구조가 더 중요하다고 봅니다. 무작정 줄인 것이 아니라, 없어도 되는 곳을 먼저 비웠기 때문입니다.

그렇다면 3.64M은 얼마나 작은 것일까요? 현장 감각으로 바꿔보면, 단일 GPU 메모리에 여유 있게 들어가고, 배치 크기를 키워 앙상블 멤버를 여러 개 동시에 굴릴 여지가 생기는 무게입니다. (참고로 논문이 공개한 벤치마크는 FUNWAVE-TVD로 만든 공개 데이터셋이라서, 다른 팀도 같은 출발선에서 비교할 수 있게 되어 있습니다.) 무게가 줄었다는 것은 단순히 저장이 편하다는 뜻이 아니라, 예보실의 시간표 안에 들어갈 가능성이 생겼다는 뜻이죠.

미세 격자와 성긴 격자에서 주파수 성분이 달라지는 모습을 보인 다이어그램
미세 격자와 성긴 격자에서 주파수 성분이 달라지는 모습을 보인 다이어그램

롤아웃 숫자가 좋아졌다는 말을 곧이곧대로 믿어도 될까

이제 실험 이야기로 넘어가 보겠습니다. 연구진은 여섯 가지 아키텍처를 같은 조건에서 학습시킨 뒤, 다음 한 걸음만 맞히는 것이 아니라 여러 걸음을 스스로 굴리는 autoregressive rollout 오차로 비교했습니다. 한 걸음 오차는 좋아 보여도 막상 굴리면 어긋나는 경우가 파동 예측에서는 흔하기 때문에, 이렇게 굴려서 보는 쪽이 현장에 더 가깝습니다.

결과적으로 DU-NO는 여섯 구조 가운데 가장 낮은 롤아웃 오차를 기록했고, 주파수 대역별로 쪼개서 봐도 높은 파수까지 포함한 모든 대역에서 개선이 나타났습니다. 이 대목은 저도 눈여겨봤습니다. 보통 가벼운 모델은 부드러운 큰 파도는 맞히는데 뾰족한 잔물결에서 무너지기 쉬운데, 이번에는 뾰족한 쪽까지 함께 좋아졌기 때문입니다. 얕은 레벨에 둔 합성곱 가지가 약속한 일을 실제로 했다는 방증처럼 보입니다.

다만 여기서 한 걸음 물러서서 볼 일입니다. 롤아웃이 길어질수록 오차는 어쩔 수 없이 쌓이는데, 논문이 보여주는 우위가 모든 리드타임과 모든 해안 조건에서 같은 폭으로 유지된다고 단정하기는 어렵습니다. 제가 앞으로 보고 싶은 것은 극단적인 쇄파나 구조물 반사가 섞인 케이스에서도 이 우위가 같은 모양으로 남는지입니다. 평균이 좋아진 것과 어디서든 좋아진 것은 다른 이야기니까요.

같은 몸무게로 맞춰도 여전히 남는 28.6%의 차이

이 논문에서 제가 가장 오래 머문 그림은 따로 있습니다. 가장 강한 베이스라인을 일부러 3.6M 수준으로 줄여서 같은 예산표에 올렸는데도 DU-NO가 여전히 28.6% 앞섰다는 대목입니다. 다이어트를 하면 대개 가벼워진 만큼 성능도 같이 내려가는데, 여기는 가벼워진 쪽이 무거웠던 시절의 상대보다 여전히 낫다는 것이죠.

이 차이가 중요한 이유는 비교의 함정을 걷어내기 때문입니다. 파라미터가 10분의 1인데 성적이 좋다고 하면, 일각에서는 그저 작은 모델끼리 붙으면 이야기가 달라질 것이라고 반박할 수 있습니다. 그런데 체급을 맞췄는데도 간격이 남는다면, 그 간격은 크기 때문이 아니라 배치 때문이라고 읽을 수밖에 없습니다. 어디에 합성곱을 두는지라는 설계 판단이 점수에 직접 남았다는 뜻이죠.

실제 시스템 관점에서 보면 다음 질문이 바로 생깁니다. 파라미터가 같아도 연산량이나 메모리 접근 패턴은 다를 수 있는데, wall-clock 시간까지 같은 모양일까요? 논문이 전면에 내세운 것은 파라미터와 오차라서, 추론 지연이나 처리량까지 같은 비율로 따라오는지는 별도로 재봐야 합니다. 그럼에도 예산을 맞춘 비교가 있다는 것은 해석을 훨씬 편하게 만듭니다. 적어도 이번 개선이 몸무게 착시는 아니라는 점은 분명해졌으니까요.

롤아웃 오차가 시간에 따라 쌓이는 과정을 비교한 개념 그림
롤아웃 오차가 시간에 따라 쌓이는 과정을 비교한 개념 그림

파도 말고 다른 물에서도 헤엄칠 수 있을까

파도에서만 잘 되면 이야기가 반쪽으로 남습니다. 구조가 특정 방정식에 과적합된 것인지, 연산자로서 일반성이 있는지를 봐야 하기 때문입니다. 연구진은 그래서 2D Navier-Stokes와 PDEBench의 천수방정식 롤아웃에도 같은 구조를 가져가 봤습니다.

결과는 꽤 담백합니다. 2D Navier-Stokes에서는 가장 강한 베이스라인과 대등했고, PDEBench 천수방정식 롤아웃에서는 분명히 앞섰습니다. 천수방정식은 연안 파동과 물리적으로 이어지는 지점이 있어서 DU-NO의 합성곱 가지가 할 일이 남아 있었을 가능성이 큽니다. 반면 Navier-Stokes처럼 난류 구조가 넓게 얽힌 문제에서는 스펙트럴 쪽이 이미 할 일을 많이 가져가서 차이가 좁아졌다고 읽을 수 있습니다.

이 대목은 마음에 들지만, 여기까지 일반화하기에는 데이터가 부족합니다. 두 가지 방정식에서 통했다고 해서 모든 유체 문제에 통한다고 말할 수는 없기 때문입니다. 다만 적어도 근해 파도용으로만 깎은 전용 공구가 아니라, 얕은 물과 관련된 문제군에서는 쓸 만한 연산자라는 인상은 남습니다. 다음에는 경계 조건이 복잡한 항만이나 하구 지형에서도 같은지 보고 싶습니다.

같은 파라미터 예산에서 구조 차이가 만드는 간격을 보인 저울 그림
같은 파라미터 예산에서 구조 차이가 만드는 간격을 보인 저울 그림

실시간 예보 라인에 올린다고 상상해 보면

좋은데, 이걸 어디에 올릴까요? 논문을 덮고 운영 관점으로 돌아오면 이 질문이 남습니다. FUNWAVE-TVD가 무거워서 못하던 앙상블과 불확실성 정량화, 실시간 경보가 DU-NO급 서로게이트에서는 가능해질 수 있다는 것이 논문의 큰 그림입니다. 파라미터가 10분의 1 수준이면 메모리와 서빙 비용이 내려가고, 같은 GPU에서 더 많은 시나리오를 동시에 돌릴 여지가 생기기 때문입니다.

하지만 운영의 아침을 지켜주는 장치는 정확도 하나만으로 완성되지 않습니다. 밤사이 조위 관측이 늦게 들어오거나 아침에 특정 부이 데이터가 비어 있어도 예측 라인은 멈추면 안 되기 때문입니다. 결측에 강한 입력 처리, 관측이 늦을 때의 폴백, 모델이 흔들릴 때 물리 솔버로 되돌아가는 스위치 같은 것들이 함께 있어야 합니다. DU-NO는 그 가운데 계산 비용이라는 병목 하나를 정면으로 줄인 것이고, 그 병목이 워낙 컸기 때문에 의미가 있습니다.

또 하나 짚을 것은 학습 데이터의 출처입니다. DU-NO는 FUNWAVE-TVD가 만든 궤적 위에서 학습했기 때문에, 스승을 넘는다고 해도 스승의 오차 바깥으로 완전히 나갈 수는 없습니다. 스승보다 싸게 스승만큼 맞히는 것이 목표라면 훌륭하지만, 스승이 틀리는 지형에서는 함께 틀릴 수 있다는 뜻이기도 합니다. 그래서 저는 이 모델을 물리 솔버의 대체품이라기보다는, 물리 솔버를 더 자주 쓰게 해주는 증폭기로 봅니다.

실시간 예보실에서 가벼운 서로게이트 모델이 돌아가는 장면의 일러스트
실시간 예보실에서 가벼운 서로게이트 모델이 돌아가는 장면의 일러스트

다음 논문에서 제가 먼저 찾아볼 대목

마지막으로 시선을 앞으로 돌려보겠습니다. 그렇다면 이 흐름은 어디에서 더 단단해질 수 있을까요? 제가 먼저 찾아볼 것은 긴 리드타임에서의 안정성입니다. 몇십 스텝 뒤에도 위상이 어긋나지 않는지, 에너지 스펙트럼이 실제처럼 유지되는지를 보고 싶습니다. 파도 예보는 한 걸음 정확도 게임이 아니라 시간을 버티는 게임에 가깝기 때문입니다.

다음으로 궁금한 것은 극한 케이스입니다. 태풍급 파랑이나 구조물 주변의 강한 반사, 지형이 급변하는 만 입구 같은 곳에서 합성곱 가지가 여전히 유효한지가 남습니다. 학습 분포의 끝단에서 연산자가 어떻게 무너지는지를 보면, 그 구조가 무엇을 배웠는지가 더 잘 드러납니다. 평균 오차표에서는 보이지 않던 얼굴이 거기서 나오곤 하죠.

그리고 운영 쪽 질문 하나를 덧붙이고 싶습니다. 같은 파라미터라도 실제 지연은 메모리 대역폭과 커널 구성에 따라 달라지는데, DU-NO의 이중 가지가 특정 GPU에서 어떤 비용으로 바뀌는지를 재보면 좋겠습니다. 숫자가 아니라 구조를 봐야 하는 이유가 바로 여기에 있습니다. 파라미터표에서는 가벼워 보이는데 막상 올려보니 메모리 접근이 쪼개져서 느려지는 구조도 있기 때문입니다. 이 논문은 그 질문에 답하기 좋은 출발선을 만들었습니다. 무게를 어디에 둘 것인가라는 물음에, 볼 것이 있는 곳에만 두라는 답을 내놓았으니까요. 다음 연구가 그 답을 더 거친 바다에서 증명해주길 기대합니다.

참고 자료

  1. DU-NO: A Parameter-Efficient Double U-Shaped Neural Operator for Phase-Resolving Wave Modeling · arxiv.org

    리뷰 원문