AI Forest CLI 사용
    • PDF

    AI Forest CLI 사용

    • PDF

    Article Summary

    VPC 환경에서 이용 가능합니다.

    AI Forest는 CLI(Command Line Interface, 명령줄 인터페이스)를 제공합니다. 사용자는 AI Forest CLI(이하 AI CLI) 이용 시 GPU를 동적으로 할당받아 원하는 딥러닝 솔루션과 프로그램을 실행시킬 수 있습니다. 이 가이드에서는 이용 시나리오에 기반한 AI CLI 사용 방법을 설명합니다.

    참고

    AI CLI는 현재 Linux 환경만 사용이 가능합니다.
    CentOS 7.X인 경우를 기준으로 설명합니다.

    사전 작업

    Data Forest의 계정 및 워크스페이스 생성 및 클러스터 환경 구성 작업이 필요합니다.

    1. 네이버 클라우드 플랫폼의 콘솔에 접속해 주십시오.
    2. Services > Big Data & Analytics > Data Forest > Accounts 메뉴에서 [계정 생성] 버튼을 클릭해 주십시오.
    3. AI 앱을 제출할 계정을 생성해 주십시오.
    4. Services > Big Data & Analytics > Data Forest > AI Forest > Workspaces 메뉴에서 [워크스페이스 생성] 버튼을 클릭하고 워크스페이스를 생성해 주십시오.
    5. Data Forest 클러스터에 접속할 수 있도록 환경 구성 작업을 진행해 주십시오.

    AI CLI 사용

    AI CLI를 이용하려면 반드시 VPC 환경의 VM 서버에 접속해야 합니다. 그리고 사전 작업을 통해 VPC 환경의 VM 서버에 Data Forest 클러스터가 접속할 수 있도록 환경 구성 작업이 완료되어야 합니다. AI CLI를 사용하여 AI 앱을 제출하고 확인하는 방법을 설명합니다.

    Step1. AI CLI 다운로드

    AI CLI 실행 파일을 다운로드해 주십시오.

    $ wget http://dist.kr.df.naverncp.com/repos/release/df-env/dist/df-aicli
    $ chmod +x ./df-aicli
    

    모든 파일의 권한은 기본적으로 DF_USERroot, DF_USER_HOME/root 로 설정되어 있습니다.

    AI CLI에서 사용할 수 있는 명령어는 다음과 같습니다.

    AI CLI

    • Usage
    $ ./df-aicli COMMAND [ARGS]...
    
    • Options

      • N/A
    • Commands

      • app: AI 앱 관리 및 작업 제출을 위한 명령어
      • docker-images: 사용 가능한 도커 이미지 정보

    AI CLI 앱

    • Usage
    $ ./df-aicli app COMMAND [ARGS]...
    
    • Options

      • N/A
    • Commands

      • kill: 실행 중인 작업을 중지한다.
      • list: 실행중인 작업의 리스트를 조회한다.
      • status: 특정 작업의 상세 정보를 조회한다.
      • submit: AI 앱을 실행한다.

    Step2. Jupyter Notebook 구동

    Jupyter Notebook은 오픈소스 기반의 웹 플랫폼 및 애플리케이션입니다. Python을 비롯한 다양한 프로그래밍 언어로 코드를 작성하고 실행할 수 있는 개발 환경을 제공합니다. 기본적으로 Python IDLE와 같은 인터렉티브 셸의 형태로 제공되며, 여러 개의 코드와 실행 결과를 하나의 문서처럼 관리할 수 있습니다. 사용자는 기존에 가지고 있던 머신러닝, 딥러닝과 관련된 코드를 작성하고 수정하기 위해 Jupyter Notebook을 사용할 수 있습니다.
    자세한 내용은 Jupyter Notebook 공식문서를 참조해 주십시오.

    AI Forest에서는 도커 컨테이너 기반으로 Jupyter Notebook 인스턴스를 구동할 수 있습니다.

    AI CLI Jupyter 앱 실행

    Jupyter Notebook AI 앱을 실행한다.

    • Usage
    $ ./df-aicli app submit jupyter [OPTIONS]
    
    • Options
      • --workspace TEXT: 작업 소스를 저장하는 공간 [required]
      • --account TEXT: Data Forest 계정 [required]
      • --docker-image TEXT: 사용할 도커 이미지 [required]
      • --input-path TEXT: 입력 데이터 HDFS Path
      • --output-path TEXT: 출력 데이터 HDFS Path
    참고

    Jupyter Notebook 실행 시 사용 가능한 도커 이미지는 다음과 같습니다.

    • notebook_tensorflow_2.3.1:20220414
    • notebook_pytorch_1.7:20220414
    • Output: Jupyter Notebook AI 앱 실행 정보
      • app-name: AI 앱 이름
      • app-id: AI 앱 ID

    <예시>

    $ ./df-aicli app submit jupyter --account df-user --workspace ws --docker-image notebook_tensorflow_2.3.1:20220414 --input-path data_in --output-path data_out
    
    dlapp jupyter is submitted
    <app-name>    <app-id>
    --------  ------------------------------
    jupyter-ojxh   application_1
    

    Jupyter Notebook 작업 제출한 후에 AI 앱의 상태가 Running이 되면 정상적으로 노트북의 사용이 가능합니다.
    Jupyter Notebook AI 앱은 기본 1day(24시간)동안 구동됩니다.
    실행중인 AI 앱은 df-aicli app kill 명령어로 종료할 수 있습니다.

    Jupyter Notebook Web UI 접속

    Jupyter Notebook의 Web UI에 접속하는 방법은 다음과 같습니다.

    1. Quick links 접속 설정을 완료해 주십시오.
      • Data Forest Quick links와 동일합니다. SSL VPN 생성하고 SSH 터널링을 통해 VPC 서버에 접속한 후, Jupyter Notebook의 Web UI에 접속이 가능합니다. 자세한 설정 방법은 아래의 가이드를 참조해 주십시오.
    2. AI CLI에서 Web UI URL 및 토큰 정보를 확인해 주십시오.
      • Web URL : df-aicli app status 명령어에서 Notebook Quick link URL
      • token : 해당 컨테이너의 stderr.txt 파일

    <예시>

    $ ./df-aicli app status --account df-user --app-id application_1643186470613_0577
    <account>    <app-id>                            <app-name>        <status>
    -----------  ------------------------------  ------------  ----------
    df-user     application_1643186470613_0577  jupyter-irpw  RUNNING
    
    <quicklink>    <url>
    -------------  --------------------------------------------------------------------------------
    Shell          http://df-user.jupyter-irpw.worker-0.9000.proxy.kr.df.naverncp.com
    Notebook       http://df-user.jupyter-irpw.worker-0.8888.proxy.kr.df.naverncp.com/?token=
    
    @see https://gnode001.kr.df.naverncp.com:9044/node/containerlogs/container_e814_1643186470613_0577_01_000002/df-user/stderr.txt/?start=0 <- check jupyter notebook token
    
    1. 브라우저에서 URL 접속해서 토큰 정보를 입력해 주십시오.
      df-af-dlcli_01_vpc
    2. Jupyter Notebook Web UI를 통해 머신러닝 관련 코드를 생성하고 및 수정할 수 있습니다.

    Step3. AI 앱 실행

    GPU 자원을 할당 받아 Jupyter Notebook으로 작성된 코드를 실행할 수 있습니다. 현재는 Singlebatch 형식으로만 AI 앱을 제출할 수 있습니다. 먼저 사용 가능한 도커 이미지 버전을 확인한 다음 AI CLI Singlebatch 앱 실행 명령어를 통해 AI 앱을 제출할 수 있습니다.

    AI CLI 도커 이미지 리스트 조회

    실행할 작업의 도커 이미지 버전 리스트를 조회합니다.

    • Usage
    $ ./df-aicli docker-images list [OPTIONS]
    
    • Output: 도커 이미지 이름 리스트
      • docker image: 실행 가능 한 도커 이미지 이름

    <예시>

    $ ./df-aicli docker-images list
    <docker image>
    ----------------------
    jupyter:1.1
    pytorch:2.2
    tensorflow:3.3
    
    참고

    현재 Singlebatch 실행 시 사용 가능한 도커 이미지는 다음과 같습니다.

    pytorch:v0.2.0
    pytorch:v0.3.0
    pytorch:v0.3.0-cuda9.0
    pytorch:v0.4.0
    pytorch:v0.4.1
    pytorch:v1.0.0
    pytorch:v1.1.0
    pytorch:v1.1.0-cuda10
    pytorch:v1.2.0-cuda10
    pytorch:v1.4
    pytorch:v1.7
    tensorflow:r1.10
    tensorflow:r1.10-py3
    tensorflow:r1.11
    tensorflow:r1.12
    tensorflow:r1.12-py3
    tensorflow:r1.14
    tensorflow:r1.14-py3
    tensorflow:r1.15
    tensorflow:r1.15-py3
    tensorflow:r1.3
    tensorflow:r1.4
    tensorflow:r1.4-py3
    tensorflow:r1.5-py3
    tensorflow:r1.6
    tensorflow:r1.6-py3
    tensorflow:r1.7
    tensorflow:r1.7-py3
    tensorflow:r1.8
    tensorflow:r2.1
    tensorflow:r2.1-py3
    tensorflow:r2.3.1-py3

    AI CLI Singlebatch 앱 실행

    Singlebatch AI 앱을 실행한다.

    • Usage
    $ ./df-aicli app submit single [OPTIONS]
    
    • Options

      • --name-prefix TEXT: 실행 작업 이름 [required]
      • --workspace TEXT: 작업 소스를 저장하는 공간 [required]
      • --command TEXT: 실행할 스크립트나 명령어 [required]
      • --account TEXT: Data Forest 계정 [required]
      • --docker-image TEXT: 사용할 도커 이미지 [required]
      • --input-path TEXT: 입력 데이터 HDFS Path (hdfs://{namespace}/user/{account}/{input-path} 경로의 데이터가 도커 컨테이너의 data_in 폴더로 마운트됩니다.)
      • --output-path TEXT: 출력 데이터 HDFS Path (hdfs://{namespace}/user/{account}/{output-path} 경로에 결과 파일이 저장됩니다.)
    • Output: 실행 AI 앱 정보

      • app-name: 실행된 AI 앱 이름
      • app-id: 실행된 AI 앱 ID

    <예시>

    $ ./df-aicli app submit single --name-prefix job --account df-user --workspace ws --command "sh run.sh" --docker-image tensorflow:r2.1 --input-path data_in --output-path data_out 
    
    dlapp sb is submitted
    <app-name>    <app-id>
    --------  ------------------------------
    sb-dwjw   application_1643186470613_0581
    
    참고

    AI 앱 작업 결과 파일 HDFS 이전

    1. 콘솔에서 생성한 워크스페이스에 data_out 이름으로 폴더를 생성 or 코드에서 해당 폴더를 생성해 주십시오.
    2. AI 앱 작업 결과 파일들이 data_out에 생성되도록 코드를 작성해 주십시오.
    3. df-aicli app submit single 수행 시 --output-path 옵션에 원하는 hdfs 경로 지정해 주십시오.

    Step4. AI 앱 목록 및 상세 정보 확인

    AI 앱의 목록 및 각 AI 앱의 상세 정보를 조회할 수 있습니다. AI 앱의 상태가 Running 중인 경우에만 목록에서 확인 가능합니다.

    AI CLI 앱 리스트 조회

    실행 중인 AI 앱의 리스트를 조회합니다.

    • Usage
    $ ./df-aicli app list [OPTIONS]
    
    • Options

      • --account TEXT: Data Forest 계정 [required]
    • Output: 실행 중인 AI 앱 리스트

      • app-name: AI 앱 이름
      • app-id: AI 앱 ID

    <예시>

    $ ./df-aicli app list --account df-user
    <app-name>        <app-id>
    ------------  ------------------------------
    ss-qt2u-siww  application_1643186470613_0561
    jupyter-sbn6  application_1643186470613_0573
    

    AI CLI 앱 상세 정보 조회

    실행 중인 AI 앱의 상세 정보를 조회합니다.

    • Usage
    $ ./df-aicli app status [OPTIONS]
    
    • Options

      • --account TEXT: Data Forest 계정[required]
      • --app-id TEXT: 제출한 AI 앱 ID[required]
    • Output: 실행 중인 AI 앱 상세 정보

      • account: AI 앱을 실행한 Data Forest 계정
      • app-name: AI 앱 이름
      • app-id: AI 앱 ID
      • status: AI 앱 상태
      • quicklink: AI 앱 접속 Quick link 이름
      • url: AI 앱 접속 Quick link URL

    <예시>

    $ ./df-aicli app status --account df-user --app-id application_1643186470613_0575
    <account>    <app-id>                            <app-name>    <status>
    -----------  ------------------------------  --------  ----------
    df-user     application_1643186470613_0575  sb-ojxh   RUNNING
    
    <quicklink>    <url>
    -------------  -------------------------------------------------------------------
    Shell          http://df-user.sb-ojxh.worker-0.9000.proxy.kr.df.naverncp.com
    

    Step5. AI 앱 종료

    AI 앱을 종료 합니다. Running 상태인 AI 앱만 종료할 수 있습니다.

    AI CLI 앱 종료

    • Usage
    $ ./df-aicli app kill [OPTIONS]
    
    • Options

      • --account TEXT: Data Forest 계정[required]
      • --app-id TEXT: 제출한 AI 앱 ID[required]
    • Output

      • 종료된 AI 앱 ID

    <예시>

    $ ./df-aicli app kill --account df-user --app-id  application_1643186470613_0530
    request kill app-id: ['application_1643186470613_0530']
    

    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.