TorchNWP를 활용한 신경망 탄젠트 선형·역모델 구현과 수치예보 연계
TorchNWP는 LibTorch 기반의 컴파일러 라이브러리로, Fortran으로 작성된 전통적인 수치예보 모델과 Python 기반 PyTorch 딥러닝 모델을 손쉽게 결합한다. 모델을 정적 바이너리(.pt) 형태로 변환하고 C/C++ 인터페이스를 제공함으로써 최소한의 코드 수정만으로 연동이 가능하며, C++ 레벨에서 탄젠트 선형 및 역모델을 자동 생성한다. 이 도구는 이기종 플랫폼 지원, 다양한 네트워크 구조 호환, 데이터 레이아웃 변환 최적…
저자: Sa Xiao, Hao Jing, Honglu Sun
본 논문은 전통적인 수치예보 모델과 최신 딥러닝 모델을 효율적으로 결합하기 위한 컴파일러 라이브러리 툴인 TorchNWP를 소개한다. 현재 기상예보 시스템은 Fortran 기반의 대규모 수치 모델과 Python 기반의 PyTorch 딥러닝 모델이 각각 독립적으로 개발·운용되고 있어, 언어 호환성, 데이터 전송 효율성, 그리고 모델 연동 유연성에 큰 제약이 있다. 기존의 접근법은 파라미터를 텍스트 파일로 내보내어 Fortran에서 직접 읽어들이는 방식이나, 프로세스 간 통신(IPC)으로 데이터를 교환하는 방식이 있었지만, 전자는 구조 변경 시 코드 재작성 부담이 크고, 후자는 복잡한 동기화와 데이터 복제 비용이 발생한다.
TorchNWP는 이러한 문제점을 해결하기 위해 다음과 같은 핵심 설계를 제시한다. 첫째, LibTorch를 기반으로 PyTorch 모델을 정적 바이너리(.pt) 형태로 변환하고, C/C++ 인터페이스를 제공한다. 이를 통해 Fortran 코드가 C++ 함수 호출만으로 모델을 초기화(`model_new`), 추론(`model_forward`), 해제(`model_delete`)할 수 있다. ISO_C_BINDING 모듈을 이용한 Fortran‑C++ 바인딩은 데이터 타입(REAL(8)↔double 등)과 배열 레이아웃(열‑우선↔행‑우선) 차이를 자동 매핑한다. 특히 permute 함수를 활용해 메모리 복사 없이 차원 순서를 전환함으로써 대용량 3‑D 물리량 전송 시 발생할 수 있는 성능 저하를 최소화한다.
둘째, 모델 로딩 단계에서는 `torch::jit::load`를 사용해 .pt 파일에 저장된 네트워크 구조와 파라미터를 그대로 복원한다. 이는 CNN, Transformer, ResNet, Diffusion 등 다양한 최신 아키텍처를 지원한다는 의미이며, 모델 파일 하나만 교체하면 수치 모델에 새로운 물리 파라미터화 스킴을 즉시 적용할 수 있다. 추론 단계에서는 `module.forward`를 호출해 입력 데이터를 처리하고, 배치 처리와 멀티‑디바이스(GPU/CPU) 자동 전환을 지원한다. GPU가 사용 가능한 경우 자동으로 CUDA 실행을 활성화해 연산 속도를 크게 향상시키며, 메모리 누수를 방지하기 위해 즉시 메모리 해제 메커니즘을 도입한다.
셋째, 가장 큰 혁신은 C++ 레이어에서 탄젠트 선형 및 역모델을 표준화된 인터페이스로 제공한다는 점이다. 기존 4D‑Var 시스템에서 신경망 기반 물리 스킴을 선형화하려면 자동 미분 그래프를 직접 다루어야 했지만, TorchNWP는 LibTorch의 autograd와 JIT 기능을 활용해 미분 코드를 자동으로 생성한다. 이를 통해 물리량 입력에 대한 선형 응답(탄젠트 선형)과 관측 오차에 대한 역전파(역모델)를 손쉽게 얻을 수 있다. 결과적으로 데이터 동화 단계에서 신경망 파라미터를 직접 미분할 필요 없이, 기존 변분 프레임워크와 동일한 형태로 통합할 수 있다.
넷째, 성능 최적화를 위해 데이터 블록 처리, 압축된 파라미터 저장, 멀티‑디바이스 스케줄링 등을 적용하였다. 대규모 기상 데이터는 블록 단위로 나누어 순차적으로 로드·추론함으로써 메모리 사용량을 제어하고, 파라미터 압축은 저장 공간과 I/O 비용을 절감한다. 또한, GPU가 없는 환경에서도 CPU 모드로 원활히 동작하도록 설계되어, 다양한 운영 환경에 유연하게 대응한다.
실제 적용 사례로는 CMA‑GFS와 MCV와 같은 운영 중인 수치예보 모델에 TorchNWP를 통합한 결과, 복사 방사, 비오르토그래픽 중력파 항력 등 물리 파라미터화 스킴을 딥러닝 기반으로 교체하고, 해당 스킴의 탄젠트 선형·역모델을 자동 생성함으로써 예보 정확도가 향상되고 연산 효율이 크게 개선되었다는 점을 보고한다.
결론적으로, TorchNWP는 Fortran 기반 수치 모델과 PyTorch 딥러닝 모델 사이의 언어·데이터 장벽을 해소하고, 탄젠트 선형·역모델 자동 생성까지 제공함으로써 AI‑NWP 통합을 위한 실용적인 플랫폼을 제시한다. 최소한의 코드 수정과 높은 이식성, 그리고 이기종 하드웨어 최적화를 통해 향후 기상예보·기후 모델링 분야에서 AI 기술의 빠른 도입과 운영 효율성 증대를 기대할 수 있다.
원본 논문
고화질 논문을 불러오는 중입니다...
댓글 및 학술 토론
Loading comments...
의견 남기기