NIMS-KISTI Open Hackathon

Yelim Kim·2023년 7월 29일
0

Hackathon

목록 보기
2/2
post-thumbnail

2023년 7월 24일~2023년 7월 28일동안 NIMS-KISTI Open Hackathon에 참여했다.

1일째(2023-07-24)

Orientation

  1. 자기소개
  2. FCN 소개
  3. axis server 접속 방법 안내
  4. NVIDIA의 FCN모델 소개

Memo

  1. 이 프로젝트의 최종 목적이 무엇인지?
  • JMA best track을 GT로 보고 모델을 개선
  • 태풍이 미치는 영향을 분석하고 예보
  1. 데이터를 며칠 단위로 끊을 것인가?
  • 10일정도 강도 3,4,5 노트만 뽑아서 TS에서 끊기
  • 시작날짜를 '태풍으로 바뀌는 시점(풍속 17m/s)'으로
  1. Missing Pieces in Code
  • 모든 시점의 GT파일을 input으로 사용하여 구조 개선
  1. 태풍의 시작 지점에 대한 3D 시각화
  2. 태풍이 동시에 여러개 올라오는 경우에 대한 정교한 처리
  3. 태풍이 미치는 영향에 대한 보도(UI)
  • 사람들은 태풍의 풍속 혹은 강수량의 수치보다 어떤 피해를 입을 수 있고, 어떻게 예방할 수 있을지를 더 궁금해한다.
  1. 심사 기준은 무엇인지?

2일째(2023-07-25)

Sync-up Meeting

📌Mission
Following NVIDIA Fourcastnet Tutorial, Solving the problem of predicting the path of a typhoon.
📌Current Progress
Problem Understanding (Complete)
📌What the team need to do for today
Familiarize with fourcastnet and discuss with mentors on what you need for solving the challenge.
📌Tips & tricks

  • Ask hard, get most. Mentors are all ready to assist the team!
  • The challenge is to understand the details of the problem (do the pre-processing steps by yourselves)
  • Data pre-processing is 90% of the work we will do as AI researcher, so we expect you can get the most out of this hackathon
  • Once you get familiar with ERA data, you can inference and expand it to training as well.
  • Onsite event is a chance to network with peer researchers.
    It's okay to collaborate with team 1 and team 2 together.

What we completed

  1. ERA5, JMA dataset 다운로드
  2. 류현곤 부장님의 FCN레포에서 코드 실습
  3. 태풍이 동시에 여러개 올라오는 경우에 대한 정교한 처리
  • 태풍의 눈의 위치를 지정하고 식별하여 하나의 태풍의 눈만 추적할 수 있게 처리하였다.

기존 데이터 : 중간 태풍을 추적하다 오른쪽에 태풍이 생기니 오른쪽 태풍으로 값이 튄다.

처리 후 : 가운데에 있는 태풍만 트래킹하게 되었다.

Problems

  1. 모든 시점의 GT파일을 input으로 사용하여 구조 개선하기 위해선 inference.py코드를 직접적으로 변경해야했다.
  2. 현재 기상청이 예보하는 방식과 동일하게 예보를 전달하기 위해서 앙상블 기법을 적용해보기로 했다.

    위 사진에서 빨간색으로 표시된 영역처럼 현재 예측 시작 지점에서 앞으로 태풍이 이동할 경로에 대한 확률반경을 나타내기로 했다.
  3. 더 깊은 인사이트를 위한 3D 시각화
  4. 태풍 예보를 위한 UI 개발
  5. FCN을 학습할 시 사용했던 variables에 대한 문제
    FCN은 전지구적인 예측을 위해 만들어진 날씨 예측 모델이라서 학습할 시 태풍에 사용되지 않는 변수들과 태풍에 꼭 필요한 변수들이 빠져있었다.

    우린 여기서 100hPa와 50hPa에서의 변수값들은 태풍에 필요하지 않고, 최소 250hPa에서의 변수값이 필요하다고 판단했다. 하지만 이 변수들을 바꿔 다시 모델을 학습하기에는 2주이상의 시간이 걸려서 #further_research 로 남겨두기로 했다.

Memo

  1. 강풍 피해 반경에 대한 기준을 어떻게 정할까?
  • 구체적으로 태풍이 어떤 강도일때 어떤 현상이 일어나는지에 대한 내용은 기상청 날씨누리에서 참고하였다.
  1. 피해 현상과 예방법을 같이 적으면 어떨까?

3일째(2023-07-26)

Sync-up Meeting

3일째 계획했던 일 :

  • Ensemble: We will use ensemble predictions to achieve a better representation of spread. Additionally, we aim to visualize the results similarly to how the Korean Meteorological Administration does it.
  • Continuous Predictions: After confirming that the ensemble code is functioning correctly, we will modify it to enable continuous predictions based on Ground Truth (GT) data. The FCN code we received only allowed us to input t_0 values and then predict t_n+1 values. To improve this, we plan to incorporate GT data from JMA as input starting from t=1.
  • Finding the Eye of Typhoons: Unlike the current code, which visualizes multiple typhoons simultaneously, we want to implement a feature that focuses on finding and tracking the eye of a single typhoon.
  • 3D Visualization: We intend to project the starting points of typhoons onto a sphere for 3D visualization, and we are hopeful that this will yield meaningful results.
  • User-Friendly Interface: We are going to design a user-friendly interface using GradIO. Our intuitive interface is tailored for users with limited knowledge of typhoons, making our analysis and visualization more accessible and valuable. Additionally, we plan to implement a feature that sets danger zones for typhoons, providing warnings to people about potential damages in each region on specific dates.
  • If the above task is completed early, we would like to take on the challenge of adding a detection program to determine if it will indeed become a tropical storm or severe during its low-pressure phase.

What we completed

  1. 태풍의 반경 범위를 시각화하여 나타내었다. 아래 사진에서 사용된 데이터는 ERA5의 원본 데이터를 사용하였다.
  2. FCN모델로 예측한 결과를 GT데이터와 비교해보았다.
  3. UI를 구성하고 필요한 기능이 구현될 수 있는지 확인해보았다.
  • 홈페이지 아이디어 구상
  • 1차적으로 날짜와 위치 선택 후, 경고 메세지를 띄우는 기능 구현
  1. 앙상블은 구현중이었으나, 작업을 마무리하지 못했다.

Memo

  1. 태풍의 위험 강도를 색깔을 다르게 표시하면 어떨까?
  2. 새로운 모델 구조에서 결과값을 여러개로 뽑는 코드 만들고, 시각화하기. 여기에 앙상블을 추가하기.
  3. UI의 첫 페이지, 네번째 페이지에 들어갈 설명 추가하기.

4일째(2023-07-27)

Sync-up Meeting

오늘 할 일 :

  • Integrating the information from the first three bullet points to visualize the results. We aim to generate images for each date and time that will be incorporated into the UI.
  • Improving the warning message section of the UI and updating information about typhoons and the FCN model to enhance user understanding.
  • Attempting autoregressive predictions by giving GT data as input for each time step and combining this with the ensemble approach to present the results.

What we completed

  1. 3일째에 만들었던 태풍 반경 시각화 + 태풍 눈 추적 이미지 두개를 합쳤다.
    이 이미지는 UI의 태풍의 현재 위치와 위험 반경을 표현하는데 사용될 것이다.
  2. UI에 대한 개선
  • 태풍이 영향을 끼치는 날짜에 대한 경고 메세지 정보 수집 및 UI에 삽입

  • 간략한 프로젝트 설명의 첫 페이지&자세한 모델 정보를 제공하는 디테일 페이지 완성

  1. 모델 개선 : Auto-regressive prediction을 모든 시간대의 GT데이터와 연결하여 출력
  • 우리가 해커톤 처음에 받은 모델의 구조는 이런 모양이었다.

    여기서 우리는 매번 다른 시간대(6시간 간격)의 GT데이터를 input으로 사용하여 예측한 결과를 하나의 이미지에 표현하고자 하였다.
  • 더 나아가 위 구조에서 input데이터에 앙상블 기법을 적용하여 기상청과 같은 모습으로 확률 반경을 나타내고자 하였다. 코드는 완성하였으나 아직 시각화를 끝내지 못하였다. 마지막 날 발표 전까지 완성하기로 하였다.

Memo

  1. 전체적인 UI 정리 (배포 준비)
  2. 발표 준비

5일째(2023-07-28)

Presentation

발표 내용은 NIMS-KISTI Open Hackathon Presentation 게시글을 참고해주세요.

회고

우리 팀은 해커톤에서 최종 1등을 하게 되었다.
다들 내가 열심히 해 준 덕분이라고 하셨지만 전혀 그렇게 생각하지 않는다. 기상 분야에는 전혀 지식이 없는 인턴이 와서 뜬금없는 '태풍이 안오게는 못하나요?' 라는 질문부터 시작해 모든 질문에 성의있게 답해주시고, 또 내가 이해할 수 있게 설명해주셨다.
내가 이 분야를 공부한다고 해서 비전문가에게 설명하는 일은 정말 어려운 일인데, 우리 팀의 모든 멤버들이 나에게 해주었다.
예를 들어, 처음에 목표를 정할 때 내가 이런 아이디어를 냈다.
"그럼 사람들이 이용할 수 있게 UI를 만들어 예보를 하는 건 어떨까요?"
이 질문으로 시작하여 모든 멤버들이 각자의 지식을 활용하여 어떤 부분을 채워넣어야 하는지 의견을 제안해주셨다.

  • 예보에는 각 날짜에 맞는 경보 메세지가 들어가면 좋겠다.
  • 예보를 하기 위해서는 ERA5데이터셋에서 U, V component wind과 강수량에 대한 정보가 필요해.
  • UI에 현재 날씨에 맞는 태풍 위치를 표시해줄 수 있어?
  • 태풍 위험 반경을 표시할 수 있을 것 같아.
  • 태풍이 오기 전부터 예보를 하면 어때?

다른 예시로는 ppt를 구상하는데에 있었다.
우선 전체 흐름을 알고 있는 사람이 나였고, UI를 담당했기에 어떤 일이 필요로 하는지 알았고, 발표를 맡았기 때문에 각각의 task들이 현재 어디까지 진행되고 있는지, 또 모든 task들에 대해 왜 이런 결과가 나왔는지 모든 과정들을 이해해야 했었다.
먼저 PPT 구성에 대해 아래와 같은 draft를 만들었다.

그리고 회의를 통해 의견을 듣기 시작했고, 아래와 같은 의견이 추가되었다.

  • 모델 개선 부분에 ERA5데이터가 미흡했던 내용을 넣자.
  • 우리가 사용하는 태풍 데이터의 근본적인 문제점을 지적하자.
  • 태풍백서에서 정보를 가져오면 좋을 것 같아.
  • 여기서 사용한 이미지는 적절하지 않아. 적절한 이미지를 다시 찾아보자.
  • 어 좋다.

마지막까지 모든 멤버가 "어 좋다"라는 의견이 나올 때 까지 끝없이 수정하고 또 수정했다.

내가 이번 해커톤을 진행하면서 느꼈던 건,
이렇게 각자의 연구 분야가 있는 석사님, 박사님들과 바로바로 의견을 주고받고 조언을 듣고 하나의 프로젝트를 완성했다는 게 아직까지도 믿기지 않고 나에게 너무 과분하고 좋은 경험이었던 것 같다. 너무 영광이었다.

또한 우리 팀 멤버 한명도 빠짐 없이 주어진 모든 일에 적극적으로 참여하고, 내가 모든 멤버들에게 의지하며 여기까지 온 것 같다.

역시 어떤 분야에 대해 전문적이면서, 좋아하면서, 즐거워하는 사람들을 보면 나도 같이 행복해지는 것 같다.
그래서 이번 해커톤 기간동안 나도 많이 행복했던 것 같다.

(위 사진에서 멤버 한명이 빠져있다)

결론적으로 우리팀은 1등을 했다.
해커톤 첫 날 나는 팀원들에게 "저희 1등해요." 라고 말한 약속을 지키기 위해 최선을 다했고, 팀원들에게 내가 말한 것을 책임질 수 있어서 너무 뿌듯했다.
"1등, NVIDIA팀" 이라고 발표가 된 직후에, 모든 팀원이 다 나를 쳐다보셔서 '내가 왜... 저분들에게 이런 눈치를 주고 부담을 드렸을까.....' 하는 후회를... 했다....ㅋㅋㅋㅋㅋㅋㅋ 그래도 다들 즐겨주신 것 같아 다시 행복모드로 돌아왔다.

가장 처음으로 이렇게 유익한 프로그램을 소개해주시고 기회를 주신 랩실 지도교수님에게 감사드립니다.
모델을 돌리는 데 쾌적한 개발서버를 제공해주신 NVIDIA측, 이 해커톤을 주최해주신 ABLEARN측에 감사하다는 말씀을 전하고 싶습니다. 또한 온라인과 오프라인 양쪽에서 도움을 주신 모든 멘토분들, 부장님, 모두 감사드립니다.

더 나아가 개인적으로 너무 멋진 멤버들을 만날 수 있어 영광이었고, 모두 다 더 멋진 모습으로 뵙길 기대하겠습니다.

마지막으로 발표 슬라이드 마지막 부분에 재미를 위해 "One Sentence" 섹션을 넣었는데, 발표 설명 포스트에서 넣지 못해서 여기에 삽입합니다. 재미로만 봐주세요😂

읽어주셔서 감사합니다.
위에서도 언급했다시피, 발표 내용은 NIMS-KISTI Open Hackathon Presentation 게시글을 참고해주세요.

profile
뜬금없지만 세계여행이 꿈입니다.

0개의 댓글