Elyra 및 Kubeflow 파이핑을 사용하여 머신러닝 워크플로우 작업 자동화

데이터 과학자로서 Jupyter 노트북은 아마도 작업을 완성하는 데 가장 자주 사용하는 도구 중의 하나일 것이다.노트북은 데이터 로드, 처리, 데이터 분석, 데이터 트레이닝 모델 사용, 데이터 과학 작업 흐름의 다른 작업 수행에 있어 중요한 역할을 합니다.
정기적으로 제공되는 시간 시퀀스 데이터를 로드, 정리, 분석할 수 있는 노트북 세트를 생성했다고 가정하십시오.각 노트북을 수동으로 실행하지 않고 재사용 가능한 머신러닝 파이프를 생성하고 실행할 수 있습니다(또는 작업 특정 코드의 재사용성을 제한하는 단일 노트북에서 모든 작업을 수행할 수 있습니다).

Elyra가 있으면 JupyterLab에서 이 작업을 완성할 수 있고 Kubeflow Pipelines을 이용할 수 있습니다. 이것은 유행하는 플랫폼으로 Docker 용기를 바탕으로 이식 가능하고 확장 가능한 기계 학습 작업 흐름을 구축하고 배치하는 데 사용됩니다.

In Elyra 2.1 (and later releases) you can run pipelines also on Apache Airflow, as .


그 전에, 나는 파이프를 어떻게 만들고 운행하는지, 그리고 배경 정보를 개괄할 것이다.
JupyterLab은 extensions을 사용하여 확장할 수 있으며, 누구나 새로운 기능(예를 들어 CSV 파일 편집기나 시각화), 통합 서비스(예를 들어 공유와 버전 제어에 사용되는git) 또는 테마를 제공하여 사용자 체험을 맞춤형으로 설정할 수 있다.
Elyra은 Jupyter Lab의 인공지능 중심의 확장으로 일상적인 활동을 간소화하고 간소화하기 위한 것이다.파이썬 노트북이나 스크립트에서 워크플로우를 만들고 JupyterLab, Kubeflow 파이프, Apache Airflow에서 로컬로 실행할 수 있도록 시각화된 파이핑 편집기가 주요 기능입니다.

파이프를 조립하다


Elyra에서 시각 형상 파이프 편집기를 사용하여 파이프를 조립합니다.파이프 조립 과정은 일반적으로
  • 새 파이프 생성,
  • Python 노트북 또는 Python 스크립트를 추가하고 실행 시 속성을 정의하며
  • 은 실행 종속성을 정의하기 위해 노트북과 스크립트를 연결합니다.

  • 파이프 생성


    이니시에이터에서 Elyra 파이프 편집기를 열어 파이프를 생성합니다.

    파이핑에 Python 노트북 및 스크립트 추가


    파이썬 노트북과 스크립트를 JupyterLab 파일 브라우저에서 캔버스에 드래그하여 파이프에 추가할 수 있습니다.

    각 노트북이나 파일은 입력 포트와 출력 포트를 포함하는 노드로 표시됩니다.

    실행 시 속성은 관련 메뉴를 통해 접근할 수 있으며, 원격 실행 중 노트북이나 스크립트를 실행하는 실행 환경(Docker 이미지), 입력(파일 의존 항목 및 환경 변수), 출력 파일을 정의할 수 있습니다.

    노드는 선택적으로 주석과 연결되어 그 용도를 설명할 수 있다.

    노트북과 스크립트 간의 의존 관계 정의


    노트나 스크립트 간의 의존 관계는 출력 포트(노드 오른쪽)를 입력 포트(노드 왼쪽)에 연결하여 정의됩니다.

    의존 항목은 파이프가 실행되는 동안 노드의 실행 순서를 결정하는 데 사용됩니다.
    다음 규칙이 적용됩니다.
  • 순환 의존 불가
  • 두 노드가 연결되지 않은 경우 (직접 또는 간접)
  • 을 병행하여 실행할 수 있습니다
  • 두 노드가 연결되면 먼저 다른 노드를 위해 입력한 노드
  • 을 생성합니다
    JupyterLab에서 파이프를 실행하는 방식은 제3자 작업 흐름 편성 프레임워크(예를 들어 Kubeflow 파이프)에서 파이프를 실행하는 방식과 현저히 다르다.

    JupyterLab의 파이프 경로설정


    환경에 파이프 선행 조건에 대한 액세스만 제공하면 JupyterLab에서 파이프를 실행할 수 있습니다.예를 들어, 노트북과 연관된 커널이 필요한 패키지처럼 설치되어 있어야 합니다(노트북에 설치되어 있지 않은 경우).

    JupyterLab 환경에서 파이프를 실행하는 것은 실행 가능한 방법일 것입니다. 만약에
  • 새 파이프를 조립하고 비교적 작은 데이터량
  • 을 사용하여 테스트하고 있습니다
  • 파이프 작업은 사용 가능한 자원
  • 의 하드웨어 자원을 초과할 필요가 없습니다
    기존의 자원 제한을 감안하여
  • 개의 파이프 임무를 받아들일 수 있는 시간 내에 완성한다.
  • 노드는 JupyterLab 환경에서 하위 프로세스로 실행되며 항상 순서대로 처리됩니다.
    출력 파일(예를 들어 처리된 데이터 파일이나 훈련 부품)은 로컬 파일 시스템에 저장되며, JupyterLab 파일 브라우저를 사용하여 접근할 수 있습니다.
    처리된 노트북은 출력 칸이 실행 결과를 반영한다는 뜻으로 업데이트됩니다.
    Python 스크립트 출력 (예: stdOUT 또는 stdERR로 보내는 메시지) 은 JupyterLab 콘솔에 표시됩니다.

    Elyra는 현재 JupyterLab UI에서 파이프 모니터링 기능을 제공하지 않고 처리가 완료된 메시지만 제공합니다.그러나 관련 정보는 JupyterLab 콘솔 출력에 포함되어 있습니다.
    파이프를 만들고 JupyterLab에서 실행하는 방법에 대한 자세한 내용은 Running notebook pipelines in JupyterLab 강좌를 참조하십시오.

    Kubeflow 파이프에서 파이프 실행하기


    경우에 따라 로컬에서 파이핑을 실행하는 것은 가능하지만 대량의 데이터를 처리해야 하거나, 컴퓨팅 작업에 GPU나 TPU 등 전용 하드웨어가 필요한 경우 리소스 집약적 컴퓨팅을 수행하는 것은 비현실적입니다.
    런타임 구성을 정의하여 Elyra를 Kubeflow 파이핑 인스턴스(보안 및 비보안)에 액세스하도록 구성할 수 있습니다.구성 후 선택한 구성은 파이프를 실행하는 데 사용됩니다.

    로컬 파이프 실행과 Kubeflow 파이프 실행의 주요 차이점은 각 노드가 하나의 독립된 Docker 용기에서 처리되어 더욱 좋은 이식성, 확장성, 관리성을 실현했다는 것이다.
    다음 그림은 두 관련 노트 노드의 상황을 보여 줍니다.

    S3 호환 클라우드를 사용하여 노드 간에 데이터를 교환합니다.노트북이나 Python 스크립트를 실행하기 전에 입력 파일 의존 항목이 클라우드 저장소에서 용기로 자동으로 다운로드됩니다.처리가 완료되면 선언된 출력 파일은 자동으로 용기에서 클라우드 저장소로 업로드됩니다.
    Elyra는 아직 성숙한 프로젝트가 아니기 때문에, 현재 Kubeflow Pipelines UI에 의존하여 파이프 실행 모니터링을 하고 있습니다.

    Running notebook pipelines on Kubeflow Pipelines 강좌에서 기타 상세한 정보와 단계별 설명을 찾을 수 있습니다.

    Elyra 및 파이핑에 대한 시도 방법


    참고 강좌는 파이프를 배우기 시작하는 좋은 방법이다.만약 당신이 더 복잡한 예를 찾고 싶다면, 이 COVID-19 pipeline은 아마도 매우 적합할 것이다.
    Elyra를 시험적으로 사용하고 파이프라인을 구축하려면 다음과 같은 세 가지 선택이 있습니다.
  • Use a sandbox environment hosted on the cloud

  • Use Elyra Docker images
  • Install JupyterLab and Elyra on your local machine
  • Kubeflow Pipelines is not included in any of the Elyra installation options.


    구름 위의 샌드박스 환경에서 Elyra 실행


    mybinder.org에서 Elyra를 시운전할 수 있습니다. 설치할 필요가 없습니다.this link에 따라 모래상자 환경에서 최신 안정 버전이나 최신 개발 버전을 시험적으로 사용하세요.

    샌드박스 환경에는 Elyra의 기능을 간략하게 설명하는 getting_started 가격 인하 문서가 포함되어 있습니다.

    주의해야 할 몇 가지 사항:
    이것은 공유 환경이기 때문에
  • 의 성능은 때때로 매우 낮을 수 있다.
  • 샌드박스 환경은 오래 지속되지 않으며, 닫을 때 변경된 모든 것을 잃어버릴 것입니다.
  • 시스템에 Docker가 설치되어 있으면 Docker 이미지 중 하나를 변경하는 것을 고려하십시오.

    Elyra 컨테이너 이미지 실행


    Elyra 커뮤니티는 ready-to-use container images on Docker Hub을 발표했는데 그 중에서 JupyterLab과 Elyra 확장이 미리 설치되어 있다.Docker 이미지 크기는 다음과 같이 약 1GB입니다.
  • elyra/elyra:latest은 최신 안정 버전
  • 입니다.
  • elyra/elyra:x.y.z 설치 x.y.z 버전
  • elyra/elyra:dev은 변경 사항을 제출할 때마다 자동으로 생성됩니다.
  • 어떤 이미지를 사용할지 결정하면 (elyra/elyra:latest은 항상 좋은 선택입니다. 최신 기능을 놓치지 않기 때문입니다!),다음과 같이 샌드박스 컨테이너를 시작할 수 있습니다.
    docker run -it -p 8888:8888\
     -v ${HOME}/jupyter-notebooks/:/home/jovyan/work\
     -w /home/jovyan/work\
     elyra/elyra:latest jupyter lab
    
    웹 브라우저를 열고 표시된 URL을 찾으면 시작할 수 있습니다.
    To access the notebook, open this file in a browser:
            file:///home/jovyan/.local/share/jupyter/runtime/nbserver-6-open.html
        Or copy and paste one of these URLs:
            http://4d17829ecd4c:8888/?token=d690bde267ec75d6f88c64a39825f8b05b919dd084451f82
         or http://127.0.0.1:8888/?token=d690bde267ec75d6f88c64a39825f8b05b919dd084451f82
    

    샌드박스 모드에서는 로컬 컴퓨터의 기존 파일 (예: 노트북) 에 액세스할 수 없으며, 컨테이너를 닫으면 모든 변경 사항이 버려집니다.
    따라서 Docker 컨테이너를 시작하여 ${HOME}/jupyter-notebooks/${HOME}/jupyter-data-dir을 기존 로컬 디렉토리의 이름으로 대체하는 것이 가장 좋습니다.
    docker run -it -p 8888:8888\
     -v ${HOME}/jupyter-notebooks/:/home/jovyan/work\
     -w /home/jovyan/work\
     -v ${HOME}/jupyter-data-dir:/home/jovyan/.local/share/jupyter\
     elyra/elyra:latest jupyter lab 
    
    이렇게 하면 용기를 닫을 때 모든 변경 사항이 보류되고, 용기를 다시 열 때 처음부터 시작할 필요가 없습니다.

    로컬 설치 Elyra


    로컬 환경이 선결 조건을 충족하면 pip, conda 또는 installation guide의 지침에 따라 소스 코드에서 JupyterLab 및 Elyra를 설치할 수 있습니다.

    생각을 끝내다


    Elyra는 지역 사회가 추진하는 사업이다.버그 보고서, 기능 요청, 물론pull 요청도 있습니다.https://github.com/elyra-ai/elyra으로 갑시다.
    최초로 IBM Developer년에 출판되었다.

    좋은 웹페이지 즐겨찾기