[8주차] 서버에 Voila Extension 하기

Soonyoung Hwang·2022년 11월 10일
0

네이버 부스트캠프

목록 보기
3/14

Voila란?

Voila란 notebook 기반 코드의 프로토타입을 쉽게 만들어주는 라이브러리 이다.

모델 개발/분석 과정에서 Jupyter Notebook을 통해서 빠르게 테스트 및 피드백을 할 수 있다. Jupyter Notebook은 혼자 개발 활동을 하기에는 매우 좋은 툴 이지만, 동료와 함께 보면서 이야기 해야 할 경우에는 어떻게 해야 할까?
각자 노트북 환경에서 실행하려고 하면 dependency 문제 해결 및 기타 문제를 해결하기 위해 추가 환경설정이 필요하다. 노트북환경 베이스의 프로토타입을 쉽게 공유할 수 있는 툴이 필요하다.

대시보드를 통해 프로토타입 + 협업을 가능하게 하는 도구 = Voila

Voila의 장점

  1. Jupyter Notebook 결과를 쉽게 웹 형태로 띄울 수 있음
  2. Ipywidget, Ipyleaflet 등 사용 가능
  3. Jupyter Notebook의 Extension 있음 → 노트북에서 대시보드로 바로 변환 가능
  4. Python, Julia, C++ 코드 지원
  5. 고유한 템플릿 생성 가능
  6. 쉽다

한계점

  1. 비슷한 prototype을 제공할 수 있는 Dashboard 프로그램들에 비해 ux,ui가 약하다. 레이아웃을 마음대로 하기 쉽지 않다.

ㅤ→ 매우 간단한 단계의 수준prototype으로 쓰기 적합하다

AI stage 서버에 voila extension 설치하기

  • 버전충돌 등 여러 시행착오를 겪으면서 서버에 설치하기 위해서는 가상환경위에 깔지 않는 것이 좋다는 결론을 얻었다. AI stage에서 기본적으로 제공하는 서버는 Jupyter Lab 기반의 docker container이다. 가상환경 위에 voila extension 까지 설치한다는 말은 Jupyter Lab도 가상환경 위에서 실행되어야 한다는 것인데 가상환경위에 서버인 docker container가 동작하게 하는 방법을 알지 못했다. 또한 Jupyter Lab을 requirements 버전 으로 설정하고 그 jupyer lab 위에서 docker가 실행되게 해야하는 trick이 숨어있다.
  • 또한 다른 결론은 jupyter-voila/jupyterlab-preview 는 이제 버려진 버전으로, 새로운 이름의 preview extension이 생겼다.
  • 마지막으로 새로운 버전의 preview extension은 ipywidget과 아직까진 호환이 맞지 않는 듯 하다. widget이 안 생기는 것을 확인했다.

해결 방법은 의외로 간단했다.
ㅤ1. 가상환경을 만들지 않는다 → 서버 도커 자체가 jupyter lab 위에서 실행 되므로 서버 자체 jupyter lab을 업데이트하고 새롭게 열어줘야 한다.
ㅤ2. pip3 install --upgrade pip
ㅤ3. pip3 install -r requirements.txt
ㅤ4. 이제 로컬의 jupyterlab의 버전이 바뀌었다.
ㅤ5. 서버를 잠시중지 하고 다시 키면 동작한다.
ㅤ6. (강의에서 말한) extension을 설치한다.

jupyter labextension install @jupyter-voila/jupyterlab-preview
  

ㅤ7. 최신버전의 nodejs를 설치한다.

 conda install nodejs -c conda-forge --repodata-fn=repodata.json 

ㅤ8. 이제 굳이 안 깔아도 노트북에 버튼이 생기고 누르면 dashboard에 extension이 실행될 것 이다.
ㅤ9. 안 된다면 왼쪽 extension에 @voila-dashboards/jupyterlab-preview 를 다운받으면 된다.

profile
https://github.com/soonyoung-hwang

0개의 댓글