본문 바로가기

ML/데이터 분석

ipynb 파일에는 metadata가 있습니다!

 

 

어제 재미있는 에러를 발견해서 (정확히는 나의 실수!) 기록으로 남긴다.

먼저 회사에서의 NES를 통해 파이프라인을 실행하는 도중 notebook 소스를 jupyter에서 수정하고 해당 파일을 airflow에 실행시킨 결과 notebook이 실행과 함께 종료되는 현상이 발견되었다.

 

아래와 같이 papermill로 파라미터주입은 되었지만, 실행되지 않은체 종료된다.

 

notebook이 에러도 없이 종료가 되어서 서버문제인가 싶어서 서버담당자와 몇시간을 봐도 서로 이해가 가지 않은체 하루가 지나버렸다.

서버담당자가 이상한 로그가 있다면서 notebook 실행할때 커널이 "llm"이라고 뜬다고 한다.

 

"그건 제가 개인 jupyter에서 실행하는 커널인데, airflow 실행시에는 dag에 커널 정보를 않넣었는데요?"

라고 말하면서...무엇인가 쎄함을 느꼈었다.....

 

llm으로  jupyter 커널에서 해당 notebook을 실행하고 수정을 한것이다.....

airflow dag에 커널 정보를 않적었는데, 이게 왜 실행되지..혹시나 싶어서 ipynb파일을 열자... 아....

 

메타데이터로 나의 실행정보가 파일안에서 관리되고 있었다.

실행시 디폴트로 notebook의 metadata의 커널정보를 바탕으로 실행되고, 커널이 없자, 실행없이 에러를 뱉고 멈추는것이었다..(역시나 내가 문제였다..)

"metadata": {
  "kernelspec": {
   "display_name": "llm",
   "language": "python",
   "name": "llm"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.12"
  }
}

 

 

metadata의 커널정보를 기존 정보로 바꾸자. 정상적으로 실행이 되었다.

혹시나 NES를 운영 하시는 분들은 참고하시길...

 

 

 

 

 

참조링크

https://ipython.org/ipython-doc/3/notebook/nbformat.html

https://frhyme.github.io/other/import_ipynb/