- 인쇄
- PDF
AI Forest CLI 사용
- 인쇄
- PDF
VPC 환경에서 이용 가능합니다.
AI Forest는 CLI(Command Line Interface, 명령줄 인터페이스)를 제공합니다. 사용자는 AI Forest CLI(이하 AI CLI) 이용 시 GPU를 동적으로 할당받아 원하는 딥러닝 솔루션과 프로그램을 실행시킬 수 있습니다. 이 가이드에서는 이용 시나리오에 기반한 AI CLI 사용 방법을 설명합니다. AI CLI는 현재 Linux 환경만 사용이 가능합니다.
CentOS 7.X인 경우를 기준으로 설명합니다.
사전 작업
Data Forest의 계정 및 워크스페이스 생성 및 클러스터 환경 구성 작업이 필요합니다.
- 네이버 클라우드 플랫폼의 콘솔에 접속해 주십시오.
- Services > Big Data & Analytics > Data Forest > Accounts 메뉴에서 [계정 생성] 버튼을 클릭해 주십시오.
- AI 앱을 제출할 계정을 생성해 주십시오.
- Services > Big Data & Analytics > Data Forest > AI Forest > Workspaces 메뉴에서 [워크스페이스 생성] 버튼을 클릭하고 워크스페이스를 생성해 주십시오.
- Data Forest 클러스터에 접속할 수 있도록 환경 구성 작업을 진행해 주십시오.
- 환경 구성 방법은 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_USER
인 root
, 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에 접속하는 방법은 다음과 같습니다.
- Quick links 접속 설정을 완료해 주십시오.
- Data Forest Quick links와 동일합니다. SSL VPN 생성하고 SSH 터널링을 통해 VPC 서버에 접속한 후, Jupyter Notebook의 Web UI에 접속이 가능합니다. 자세한 설정 방법은 아래의 가이드를 참고해 주십시오.
- AI CLI에서 Web UI URL 및 토큰 정보를 확인해 주십시오.
- Web URL : df-aicli
app status
명령어에서 Notebook Quick link URL - token : 해당 컨테이너의 stderr.txt 파일
- Web URL : df-aicli
<예시>
$ ./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
- 브라우저에서 URL 접속해서 토큰 정보를 입력해 주십시오.
- 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로 이전하기
- 콘솔에서 생성한 워크스페이스에
data_out
이름으로 폴더를 생성 or 코드에서 해당 폴더를 생성해 주십시오. - AI 앱 작업 결과 파일들이
data_out
에 생성되도록 코드를 작성해 주십시오. - 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 앱 IDstatus
: 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']