대시보드에서 전체 AI EasyMaker 리소스의 이용 현황을 확인할 수 있습니다.
리소스별로 이용 중인 리소스 수를 표시합니다.
머신 러닝 개발을 위한 필수 패키지가 설치되어 있는 주피터(Jupyter) 노트북을 생성하고 관리합니다.
주피터 노트북을 생성합니다.
이미지: 노트북 인스턴스에 설치될 OS 이미지를 선택합니다.
노트북 정보
스토리지
/root/easymaker
디렉터리 경로에 마운트 되는 블록 스토리지입니다. 이 스토리지의 데이터는 노트북을 재시작해도 유지됩니다.nas://{NAS ID}:/{path}
형식의 디렉터리 경로를 입력합니다.추가 설정
[주의] NHN Cloud NAS를 사용하는 경우: AI EasyMaker와 동일한 프로젝트에서 생성된 NHN Cloud NAS만 사용 가능합니다.
[참고] 노트북 생성 소요 시간: 노트북 생성은 몇 분의 시간이 소요될 수 있습니다. 최초 리소스(노트북, 학습, 실험, 엔드포인트) 생성 시 서비스 환경 구성을 위해 추가로 몇 분의 시간이 더 소요됩니다.
노트북 목록이 표시됩니다. 목록의 노트북을 선택하면 상세 정보를 확인하고 정보를 변경할 수 있습니다.
상태: 노트북의 상태가 표시됩니다. 주요 상태는 아래 표를 참고하세요.
상태 | 설명 |
---|---|
CREATE REQUESTED | 노트북 생성이 요청된 상태입니다. |
CREATE IN PROGRESS | 노트북 인스턴스를 생성 중인 상태입니다. |
ACTIVE (HEALTHY) | 노트북 애플리케이션이 정상적으로 구동 중인 상태입니다. |
ACTIVE (UNHEALTHY) | 노트북 애플리케이션이 정상적으로 구동되지 않은 상태입니다. 노트북을 재시작한 후에도 이 상태가 지속되면 고객 센터로 문의하세요. |
STOP IN PROGRESS | 노트북을 중지 중인 상태입니다. |
STOPPED | 노트북을 중지한 상태입니다. |
START IN PROGRESS | 노트북을 시작 중인 상태입니다. |
REBOOT IN PROGRESS | 노트북을 재부팅 중인 상태입니다. |
DELETE IN PROGRESS | 노트북을 삭제 중인 상태입니다. |
CREATE FAILED | 노트북 생성 중 실패한 상태입니다. 생성이 지속적으로 실패하면 고객 센터로 문의하세요. |
STOP FAILED | 노트북 중지를 실패한 상태입니다. 다시 시도하세요. |
START FAILED | 노트북 시작을 실패한 상태입니다. 다시 시도하세요. |
REBOOT FAILED | 노트북 재부팅을 실패한 상태입니다. 다시 시도하세요. |
DELETE FAILED | 노트북 삭제를 실패한 상태입니다. 다시 시도하세요. |
작업 > 주피터 노트북 열기: 주피터 노트북 열기 버튼을 클릭하면 브라우저의 새 창으로 노트북을 엽니다. 노트북은 콘솔에 로그인한 사용자만 접근이 가능합니다.
태그: 노트북의 태그가 표시됩니다. 태그는 변경을 클릭하여 변경할 수 있습니다.
모니터링: 노트북을 선택하면 표시되는 상세 화면의 모니터링 탭에서 모니터링 대상 인스턴스 목록과 기본 지표 차트를 확인할 수 있습니다.
AI EasyMaker 노트북 인스턴스는 머신 러닝에 필요한 다양한 라이브러리 및 커널이 설치된 기본 Conda 가상 환경을 제공합니다.
기본 Conda 가상 환경은 노트북을 중지하고 시작할 때 초기화되어 구동되지만, 사용자가 임의의 경로에 설치한 가상 환경 및 외부 라이브러리는 자동으로 초기화되지 않기 때문에 노트북을 중지하고 시작했을 때 유지되지 않습니다.
이 문제를 해결하려면, /root/easymaker/custom-conda-envs
디렉터리 경로에 가상 환경을 생성하고, 생성된 가상 환경에서 외부 라이브러리를 설치해야 합니다.
AI EasyMaker 노트북 인스턴스는 /root/easymaker/custom-conda-envs
디렉터리 경로에 생성된 가상 환경에 대해 노트북을 중지하고 시작할 때 초기화되어 구동되도록 지원합니다.
다음의 가이드를 참고하여 사용자 가상 환경을 구성하세요.
/root/easymaker/custom-conda-envs
경로로 이동합니다.
cd /root/easymaker/custom-conda-envs
파이썬 3.8 버전의 easymaker_env
라는 가상 환경을 생성하려면 다음과 같이 conda create
명령어를 수행합니다.
conda create --prefix ./easymaker_env python=3.8
생성된 가상 환경은 conda env list
명령어로 확인할 수 있습니다.
(base) root@nb-xxxxxx-0:~# conda env list
# conda environments:
#
/opt/intel/oneapi/intelpython/latest
/opt/intel/oneapi/intelpython/latest/envs/2022.2.1
base * /opt/miniconda3
easymaker_env /root/easymaker/custom-conda-envs/easymaker_env
노트북을 중지하고 시작할 때 자동으로 실행되어야 하는 스크립트를 /root/easymaker/cont-init.d
경로에 등록할 수 있습니다.
알파벳 숫자(alphanumeric) 순서에 따라 오름차순으로 실행됩니다.
/root/easymaker/cont-init.d
경로에 위치한 파일만 실행됩니다.#!
으로 시작해야 합니다./root/easymaker/cont-init.d/{SCRIPT}.exitcode
/root/easymaker/cont-init.d/{SCRIPT}.output
/root/easymaker/cont-init.output
구동 중인 노트북을 중지하거나 중지된 노트북을 시작합니다.
[주의] 노트북 중지 후 시작 시 가상 환경 및 외부 라이브러리 유지 방법: 노트북을 중지하고 시작할 때 사용자가 생성한 가상 환경 및 외부 라이브러리가 초기화될 수 있습니다. 유지하려면 사용자 가상 실행 환경 구성을 참고하여 사용자 가상 환경을 구성하세요.
[참고] 노트북 시작과 중지 소요 시간: 노트북 시작과 중지는 몇 분의 시간이 소요될 수 있습니다.
생성된 노트북의 인스턴스 타입을 변경합니다. 변경하려는 인스턴스 타입은 기존 인스턴스와 동일한 코어 타입의 인스턴스 타입으로만 변경이 가능합니다.
[참고] 인스턴스 타입 변경 소요 시간: 인스턴스 타입 변경은 몇 분의 시간이 소요될 수 있습니다.
노트북 이용 중 문제가 발생하거나, 상태는 정상(ACTIVE)이지만 노트북에 접근이 되지 않는 경우 노트북을 재부팅할 수 있습니다.
[주의] 노트북 재부팅 시 가상 환경 및 외부 라이브러리 유지 방법: 노트북을 재부팅 할 때 사용자가 생성한 가상 환경 및 외부 라이브러리가 초기화될 수 있습니다. 유지하려면 사용자 가상 실행 환경 구성을 참고하여 사용자 가상 환경을 구성하세요.
생성된 노트북을 삭제합니다.
[참고] 스토리지: 노트북을 삭제할 경우 부트 스토리지와 데이터 스토리지가 삭제됩니다. 연결한 NHN Cloud NAS는 삭제되지 않으며 NHN Cloud NAS에서 개별 삭제해야 합니다.
실험은 연관된 학습을 실험으로 그룹화하여 관리합니다.
[참고] 실험 생성 소요 시간: 실험 생성은 몇 분의 시간이 소요될 수 있습니다. 최초 리소스(노트북, 학습, 실험, 엔드포인트) 생성 시 서비스 환경 구성을 위해 추가로 몇 분의 시간이 더 소요됩니다.
실험 목록이 표시됩니다. 목록의 실험을 선택하면 상세 정보를 확인하고 정보를 변경할 수 있습니다.
상태: 실험의 상태가 표시됩니다. 주요 상태는 아래 표를 참고하세요.
상태 | 설명 |
---|---|
CREATE REQUESTED | 실험 생성이 요청된 상태입니다. |
CREATE IN PROGRESS | 실험이 생성 중인 상태입니다. |
CREATE FAILED | 실험 생성을 실패한 상태입니다. 다시 시도하세요. |
ACTIVE | 실험이 정상적으로 생성된 상태입니다. |
작업
실험을 삭제합니다.
[참고] 연관된 학습이 존재할 경우 실험 삭제 불가: 실험과 연관된 학습이 존재하는 경우 실험을 삭제할 수 없습니다. 먼저 연관된 학습을 삭제한 후 실험을 삭제하세요. 연관된 학습은 삭제하려는 실험을 클릭하면 표시되는 하단의 상세화면에서 [학습] 탭을 클릭하여 목록을 확인할 수 있습니다.
머신 러닝 알고리즘을 학습하고 학습 결과를 통계로 확인할 수 있는 환경을 제공합니다.
학습이 수행될 인스턴스와 OS 이미지를 선택하여 학습이 수행될 환경을 설정하고, 학습하려는 알고리즘 정보와 입력/출력 데이터 경로를 입력하여 학습을 진행합니다.
알고리즘 정보: 학습하려는 알고리즘에 대한 정보를 입력합니다.
자체 알고리즘: 사용자가 작성한 알고리즘을 사용합니다.
알고리즘 경로
엔트리 포인트
이미지: 학습을 실행해야 하는 환경에 맞게 인스턴스의 이미지를 선택합니다.
학습 리소스 정보
[주의] NHN Cloud NAS를 사용하는 경우: AI EasyMaker와 동일한 프로젝트에서 생성된 NHN Cloud NAS만 사용 가능합니다.
[주의] 학습 입력 데이터 삭제 시 학습 실패: 학습이 완료되기 전 입력 데이터를 삭제하면 학습에 실패할 수 있습니다.
학습 목록이 표시됩니다. 목록의 학습을 선택하면 상세 정보를 확인하고 정보를 변경할 수 있습니다.
상태: 학습의 상태가 표시됩니다. 주요 상태는 아래 표를 참고하세요.
상태 | 설명 |
---|---|
CREATE REQUESTED | 학습 생성을 요청한 상태입니다. |
CREATE IN PROGRESS | 학습에 필요한 자원을 생성 중인 상태입니다. |
RUNNING | 학습이 진행 중인 상태입니다. |
STOPPED | 학습이 사용자의 요청으로 중지된 상태입니다. |
COMPLETE | 학습이 정상적으로 완료된 상태입니다. |
STOP IN PROGRESS | 학습이 중지 중인 상태입니다. |
FAIL TRAIN | 학습 진행 중 실패한 상태입니다. 자세한 실패 정보는 로그 관리가 활성화된 경우, Log & Crash Search 로그를 통해 확인할 수 있습니다. |
CREATE FAILED | 학습 생성을 실패한 상태입니다. 생성이 지속적으로 실패하면 고객 센터로 문의하세요. |
FAIL TRAIN IN PROGRESS, COMPLETE IN PROGRESS | 학습에 사용된 리소스를 정리 중인 상태입니다. |
작업
하이퍼파라미터: 학습을 선택하면 표시되는 상세 화면의 하이퍼파라미터 탭에서 학습에 설정한 하이퍼파라미터 값을 확인할 수 있습니다.
모니터링: 학습을 선택하면 표시되는 상세 화면의 모니터링 탭에서 모니터링 대상 인스턴스 목록과 기본 지표 차트를 확인할 수 있습니다.
기존 학습과 동일한 설정으로 새로운 학습을 생성합니다.
완료된 상태의 학습으로 모델을 생성합니다.
학습을 삭제합니다.
[참고] 연관된 모델이 존재할 경우 학습 삭제 불가: 삭제하려는 학습으로 생성된 모델이 존재하는 경우 학습을 삭제할 수 없습니다. 모델을 먼저 삭제한 후 학습을 삭제하세요.
하이퍼파라미터 튜닝은 모델의 예측 정확도를 최대화하기 위해 하이퍼파라미터 값을 최적화하는 과정입니다. 만약 이 기능을 사용하지 않으면, 많은 학습 작업을 직접 실행하면서 하이퍼파라미터를 수동으로 조정하여 최적의 값들을 찾아야 합니다.
하이퍼파라미터 튜닝 작업을 구성하는 방법입니다.
[주의] NHN Cloud NAS를 사용하는 경우: AI EasyMaker와 동일한 프로젝트에서 생성된 NHN Cloud NAS만 사용 가능합니다.
[주의] 학습 입력 데이터 삭제 시 학습 실패: 학습이 완료되기 전 입력 데이터를 삭제하면 학습에 실패할 수 있습니다.
하이퍼파라미터 튜닝 목록이 표시됩니다. 목록의 하이퍼파라미터 튜닝을 선택하면 상세 정보를 확인하고 정보를 변경할 수 있습니다.
상태: 하이퍼파라미터 튜닝의 상태가 표시됩니다. 주요 상태는 아래 표를 참고하세요.
상태 | 설명 |
---|---|
CREATE REQUESTED | 하이퍼파라미터 튜닝 생성을 요청한 상태입니다. |
CREATE IN PROGRESS | 하이퍼파라미터 튜닝에 필요한 자원을 생성 중인 상태입니다. |
RUNNING | 하이퍼파라미터 튜닝이 진행 중인 상태입니다. |
STOPPED | 하이퍼파라미터 튜닝이 사용자의 요청으로 중지된 상태입니다. |
COMPLETE | 하이퍼파라미터 튜닝이 정상적으로 완료된 상태입니다. |
STOP IN PROGRESS | 하이퍼파라미터 튜닝이 중지 중인 상태입니다. |
FAIL HYPERPARAMETER TUNING | 하이퍼파라미터 튜닝 진행 중에 실패한 상태입니다. 자세한 실패 정보는 로그 관리가 활성화된 경우, Log & Crash Search 로그를 통해 확인할 수 있습니다. |
CREATE FAILED | 하이퍼파라미터 튜닝 생성을 실패한 상태입니다. 생성이 지속적으로 실패하면 고객 센터로 문의하세요. |
FAIL HYPERPARAMETER TUNING IN PROGRESS, COMPLETE IN PROGRESS, STOP IN PROGRESS | 하이퍼파라미터 튜닝에 사용된 리소스를 정리 중인 상태입니다. |
상태 상세 정보: COMPLETE
상태의 괄호 안 내용은 상태의 상세 정보입니다. 주요 상세 정보는 아래 표를 참고하세요.
상세 정보 | 설명 |
---|---|
GoalReached | 하이퍼파라미터 튜닝의 학습이 목표 값에 도달하여 완료되었을 때의 상세 정보입니다. |
MaxTrialsReached | 하이퍼파라미터 튜닝이 최대 학습 수에 도달하여 완료되었을 때의 상세 정보입니다. |
SuggestionEndReached | 하이퍼파라미터 튜닝의 탐색 알고리즘이 모든 하이퍼파라미터를 탐색하였을 때의 상세 정보입니다. |
작업
모니터링: 하이퍼파라미터 튜닝을 선택하면 표시되는 상세 화면의 모니터링 탭에서 모니터링 대상 인스턴스 목록과 기본 지표 차트를 확인할 수 있습니다.
하이퍼파라미터 튜닝에 의해 자동 생성된 학습 목록이 표시됩니다. 목록의 학습을 선택하면 상세 정보를 확인할 수 있습니다.
상태: 하이퍼파라미터 튜닝에 의해 자동 생성된 학습의 상태가 표시됩니다. 주요 상태는 아래 표를 참고하세요.
상태 | 설명 |
---|---|
CREATED | 학습이 생성된 상태입니다. |
RUNNING | 학습이 진행 중인 상태입니다. |
SUCCEEDED | 학습이 정상적으로 완료된 상태입니다. |
KILLED | 학습이 시스템에 의해 중지된 상태입니다. |
FAILED | 학습 진행 중에 실패한 상태입니다. 자세한 실패 정보는 로그 관리가 활성화된 경우, Log & Crash Search 로그를 통해 확인할 수 있습니다. |
METRICS_UNAVAILABLE | 목표 지표를 수집할 수 없는 상태입니다. |
EARLY_STOPPED | 학습 진행 중 성능(목표 지표)이 더 좋아지지 않아 조기 중지된 상태입니다. |
기존 하이퍼파라미터 튜닝과 동일한 설정으로 새로운 하이퍼파라미터 튜닝을 생성합니다.
완료된 상태의 하이퍼파라미터 튜닝의 최고 학습으로 모델을 생성합니다.
하이퍼파라미터 튜닝을 삭제합니다.
[참고] 연관된 모델이 존재할 경우 하이퍼파라미터 튜닝 삭제 불가: 삭제하려는 하이퍼파라미터 튜닝으로 생성된 모델이 존재하는 경우 하이퍼파라미터 튜닝을 삭제할 수 없습니다. 모델을 먼저 삭제한 후 하이퍼파라미터 튜닝을 삭제하세요.
학습 템플릿을 미리 만들어 두면 학습이나 하이퍼파라미터 튜닝을 생성할 때 템플릿에 입력해 둔 값을 가져올 수 있습니다.
학습 템플릿에 설정할 수 있는 정보는 학습 생성을 참고하세요.
학습 템플릿 목록이 표시됩니다. 목록의 학습 템플릿을 선택하면 상세 정보를 확인하고 정보를 변경할 수 있습니다.
기존 학습 템플릿과 동일한 설정으로 새로운 학습 템플릿을 생성합니다.
학습 템플릿을 삭제합니다.
AI EasyMaker의 학습 결과의 모델 또는 외부의 모델을 아티팩트로 관리할 수 있습니다.
obs://{Object Storage API 엔드포인트}/{containerName}/{path}
형식으로 디렉터리 경로를 입력합니다.nas://{NAS ID}:/{path}
형식으로 디렉터리 경로를 입력합니다.[주의] NHN Cloud NAS를 사용하는 경우: AI EasyMaker와 동일한 프로젝트에서 생성된 NHN Cloud NAS만 사용 가능합니다.
[주의] 저장소의 모델 아티팩트 유지: 저장소에 저장된 모델 아티팩트를 유지하지 않으면, 해당 모델의 엔드포인트 생성이 실패합니다.
모델 목록이 표시됩니다. 목록의 모델을 선택하면 상세 정보를 확인하고 정보를 변경할 수 있습니다.
선택한 모델을 서빙할 수 있는 엔드포인트를 생성합니다.
모델을 삭제합니다.
[참고] 연관된 엔드포인트가 존재할 경우 모델 삭제 불가: 삭제하려는 모델로 생성된 엔드포인트가 존재하는 경우, 모델을 삭제할 수 없습니다. 삭제하려면 먼저 해당 모델로 생성된 엔드포인트를 삭제한 후 모델을 삭제하세요.
모델을 서빙할 수 있는 엔드포인트를 생성하고 관리합니다.
/inference
로 설정한 경우 POST https://{enpdoint-domain}/inference
로 추론 API를 요청할 수 있습니다.[참고] 엔드포인트 생성 소요 시간: 엔드포인트 생성은 몇 분의 시간이 소요될 수 있습니다. 최초 리소스(노트북, 학습, 실험, 엔드포인트) 생성 시 서비스 환경 구성을 위해 추가로 몇 분의 시간이 더 소요됩니다.
[참고] 엔드포인트 생성 시 API Gateway 서비스 리소스 제공 제약: 신규 엔드포인트 생성을 하면 API Gateway 서비스를 신규 생성합니다. 기존 엔드포인트에서 신규 스테이지 추가를 하면 API Gateway 서비스에 신규 스테이지를 생성합니다. API Gateway 서비스 리소스 제공 정책의 리소스 제공 정책을 초과한 경우, AI EasyMaker에서의 엔드포인트 생성이 불가할 수 있습니다. 이 경우 API Gateway 서비스 리소스 쿼터를 조정하시기 바랍니다.
엔드포인트 목록이 표시됩니다. 목록의 엔드포인트를 선택하면 상세 정보를 확인하고 정보를 변경할 수 있습니다.
상태: 엔드포인트의 상태입니다. 주요 상태는 아래 표를 참고하세요.
상태 | 설명 |
---|---|
CREATE REQUESTED | 엔드포인트 생성이 요청된 상태입니다. |
CREATE IN PROGRESS | 엔드포인트를 생성 중인 상태입니다. |
UPDATE IN PROGRESS | 엔드포인트의 스테이지 일부가 처리 중인 작업이 있는 상태입니다. 엔드포인트 스테이지 목록에서 스테이지별 작업 상태를 확인할 수 있습니다. |
DELETE IN PROGRESS | 엔드포인트를 삭제 중인 상태입니다. |
ACTIVE | 엔드포인트가 정상적으로 구동 중인 상태입니다. |
CREATE FAILED | 엔드포인트 생성에 실패한 상태입니다. 엔드포인트를 삭제 후 다시 생성해야 합니다. 생성 실패 상태가 반복되면 고객 센터로 문의하세요. |
UPDATE FAILED | 엔드포인트의 스테이지 일부가 정상적으로 서비스되지 않는 상태입니다. 문제가 되는 스테이지를 삭제 후 다시 생성해야 합니다. |
API Gateway 상태: 엔드포인트 기본 스테이지의 API Gateway 상태 정보가 표시됩니다. 주요 상태는 아래 표를 참고하세요.
상태 | 설명 |
---|---|
CREATE IN PROGRESS | API Gateway 리소스를 생성 중인 상태입니다. |
STAGE DEPLOYING | API Gateway 기본 스테이지가 배포 중인 상태입니다. |
ACTIVE | API Gateway 기본 스테이지가 정상적으로 배포되어 활성화된 상태입니다. |
NOT FOUND: STAGE | 엔드포인트의 기본 스테이지를 찾을 수 없는 상태입니다. API Gateway 콘솔에서 스테이지가 존재하는지 확인하세요. 스테이지가 삭제된 경우 삭제된 API Gateway 스테이지는 복구할 수 없으며, 엔드포인트를 삭제한 후 다시 생성해야 합니다. |
NOT FOUND: STAGE DEPLOY RESULT | 엔드포인트 기본 스테이지의 배포 상태를 찾을 수 없는 상태입니다. . API Gateway 콘솔에서 기본 스테이지가 배포된 상태인지 확인하세요. |
STAGE DEPLOY FAIL | API Gateway 기본 스테이지가 배포 실패한 상태입니다. [참고] 스테이지의 API Gateway '배포 실패' 상태인 경우 복구 방법을 참고하여 배포 실패 상태를 복구할 수 있습니다. |
기존 엔드포인트에 신규 스테이지를 추가합니다. 신규 스테이지를 생성하여 기본 스테이지의 영향 없이 신규 스테이지를 테스트할 수 있습니다.
엔드포인트 하위에 생성된 스테이지 목록이 표시됩니다. 목록의 스테이지를 선택하면 상세 정보를 확인할 수 있습니다.
상태: 엔드포인트 스테이지의 상태가 표시됩니다. 주요 상태는 아래 표를 참고하세요.
상태 | 설명 |
---|---|
CREATE REQUESTED | 엔드포인트 스테이지 생성이 요청된 상태입니다. |
CREATE IN PROGRESS | 엔드포인트 스테이지를 생성 중인 상태입니다. |
DEPLOY IN PROGRESS | 엔드포인트 스테이지에 모델을 배포 중인 상태입니다. |
DELETE IN PROGRESS | 엔드포인트 스테이지를 삭제 중인 상태입니다. |
ACTIVE | 엔드포인트 스테이지가 정상적으로 구동 중인 상태입니다. |
CREATE FAILED | 엔드포인트 스테이지 생성에 실패한 상태입니다. 다시 시도하세요. |
DEPLOY FAILED | 엔드포인트 스테이지 배포에 실패한 상태입니다. 다시 생성을 시도하세요. |
API Gateway 상태: 엔드포인트 스테이지가 배포된 API Gateway의 스테이지 상태가 표시됩니다.
[주의] AI EasyMaker가 생성한 API Gateway의 설정 변경 시 주의할 점: AI EasyMaker는 엔드포인트 생성 또는 엔드포인트 스테이지 생성을 하면 엔드포인트에 대한 API Gateway의 서비스와 스테이지를 생성합니다. AI EasyMaker에 의해 생성된 API Gateway 서비스와 스테이지를 API Gateway 서비스 콘솔에서 직접 변경 작업을 할 경우 다음의 주의 사항을 반드시 참고하세요.
- AI EasyMaker가 생성한 API Gateway 서비스와 스테이지를 삭제하지 않도록 합니다. 삭제하면 엔드포인트에 API Gateway 정보가 정상적으로 표시되지 않고, 엔드포인트의 변경 사항이 API Gateway에 적용되지 않을 수 있습니다.
- 엔드포인트 생성 시 입력한 API Gateway 리소스 경로의 리소스를 변경하거나 삭제하지 않도록 합니다. 삭제하면 엔드포인트의 추론 API 호출에 실패할 수 있습니다.
- 엔드포인트 생성 시 입력한 API Gateway 리소스 경로 하위에 리소스를 추가하지 않도록 합니다. 추가한 리소스는 엔드포인트 스테이지 추가/변경 작업 시 삭제될 수 있습니다.
- API Gateway의 스테이지 설정에서 API Gateway 리소스 경로에 설정된 백엔드 엔드포인트 URL 재정의를 비활성화하거나 URL을 변경하지 않도록 합니다. 변경하면 엔드포인트의 추론 API 호출에 실패할 수 있습니다. 위의 주의 사항 외 다른 설정은 필요에 따라 API Gateway에서 제공하는 기능을 이용할 수 있습니다. 자세한 API Gateway 사용에 대한 내용은 API Gateway 콘솔 가이드를 참고하세요.
[참고] 스테이지의 API Gateway '배포 실패' 상태인 경우 복구 방법: 일시적인 문제로 AI EasyMaker 엔드포인트의 스테이지 설정이 API Gateway 스테이지에 배포되지 않은 경우, 배포 실패 상태로 표시됩니다. 이 경우, 스테이지 목록에서 스테이지 선택 > 하단 상세 화면의 API Gateway 설정 보기 > '스테이지 배포'를 클릭하여 API Gateway 스테이지를 수동으로 배포할 수 있습니다. 위 가이드로도 배포 상태가 복구되지 않는 경우 고객 센터로 문의하세요.
기존 엔드포인트 스테이지에 신규 리소스를 추가합니다.
/inference
로 설정한 경우 POST https://{enpdoint-domain}/inference
로 추론 API를 요청할 수 있습니다.엔드포인트 스테이지 하위에 생성된 리소스 목록이 표시됩니다.
상태: 스테이지 리소스의 상태가 표시됩니다. 주요 상태는 아래 표를 참고하세요.
상태 | 설명 |
---|---|
CREATE REQUESTED | 스테이지 리소스 생성이 요청된 상태입니다. |
CREATE IN PROGRESS | 스테이지 리소스를 생성 중인 상태입니다. |
DELETE IN PROGRESS | 스테이지 리소스를 삭제 중인 상태입니다. |
ACTIVE | 스테이지 리소스가 정상적으로 배포된 상태입니다. |
CREATE FAILED | 스테이지 리소스 생성에 실패한 상태입니다. 다시 시도하세요. |
모델 이름: 스테이지에 배포된 모델의 이름입니다.
// 추론 API 예시: 요청
curl --location --request POST '{API Gateway 리소스 경로}' \
--header 'Content-Type: application/json' \
--data-raw '{
"instances": [
[6.8, 2.8, 4.8, 1.4],
[6.0, 3.4, 4.5, 1.6]
]
}'
// 추론 API 예시: 응답
{
"predictions" : [
[
0.337502569,
0.332836747,
0.329660654
],
[
0.337530434,
0.332806051,
0.329663515
]
]
}
엔드포인트의 기본 스테이지를 다른 스테이지로 변경합니다. 서비스의 순단 없이 엔드포인트의 모델을 변경하려면 AI EasyMaker는 스테이지 기능을 활용하여 모델을 배포하는 것을 권장합니다.
[주의] 엔드포인트 스테이지 삭제 시 API Gateway 서비스의 스테이지 삭제: AI EasyMaker의 엔드포인트 스테이지를 삭제하면, 엔드포인트의 스테이지가 배포된 API Gateway 서비스의 스테이지도 삭제됩니다. 삭제되는 API Gateway 스테이지에 운영 중인 API가 존재하는 경우, API 호출이 불가하므로 주의하세요.
엔드포인트를 삭제합니다.
[주의] 엔드포인트 삭제 시 API Gateway 서비스 삭제: AI EasyMaker의 엔드포인트를 삭제하면, 엔드포인트가 배포된 API Gateway 서비스도 삭제됩니다. 삭제되는 API Gateway 서비스에 운영 중인 API가 존재하는 경우, API 호출이 불가하므로 주의하세요.
AI EasyMaker의 모델로 배치 추론하고 추론 결과를 통계로 확인할 수 있는 환경을 제공합니다.
인스턴스와 OS 이미지를 선택하여 배치 추론이 수행될 환경을 설정하고, 추론할 입력/출력 데이터의 경로를 입력하여 배치 추론을 진행합니다.
[주의] NHN Cloud NAS를 사용하는 경우: AI EasyMaker와 동일한 프로젝트에서 생성된 NHN Cloud NAS만 사용 가능합니다.
[주의] 배치 추론 입력 데이터 삭제 시 배치 추론 실패: 배치 추론이 완료되기 전 입력 데이터를 삭제하면 배치 추론에 실패할 수 있습니다.
[주의] 입력 데이터 상세 옵션을 설정하는 경우: Glob 패턴을 적절하게 입력하지 않았을 경우, 입력 데이터를 찾을 수 없어 배치 추론이 정상적으로 동작하지 않을 수 있습니다. 포함 Glob 패턴과 같이 사용할 경우 제외 Glob 패턴이 우선하여 적용됩니다
[주의] 배치 옵션을 설정하는 경우: 배치 추론하는 모델의 성능에 따라 배치 크기와 추론 제한 시간을 적절히 설정해야 합니다. 입력한 설정값이 올바르지 않은 경우 배치 추론이 충분한 성능을 내지 못할 수 있습니다.
배치 추론 목록이 표시됩니다. 목록의 배치 추론을 선택하면 상세 정보를 확인하고 정보를 변경할 수 있습니다.
상태: 배치 추론의 상태가 표시됩니다. 주요 상태는 아래 표를 참고하세요.
상태 | 설명 |
---|---|
CREATE REQUESTED | 배치 추론 생성을 요청한 상태입니다. |
CREATE IN PROGRESS | 배치 추론에 필요한 자원을 생성 중인 상태입니다. |
RUNNING | 배치 추론이 진행 중인 상태입니다. |
STOPPED | 배치 추론이 사용자의 요청으로 중지된 상태입니다. |
COMPLETE | 배치 추론이 정상적으로 완료된 상태입니다. |
STOP IN PROGRESS | 배치 추론이 중지 중인 상태입니다. |
FAIL BATCH INFERENCE | 배치 추론 진행 중 실패한 상태입니다. 자세한 실패 정보는 로그 관리가 활성화된 경우, Log \& Crash Search 로그를 통해 확인할 수 있습니다. |
CREATE FAILED | 배치 추론 생성을 실패한 상태입니다. 생성이 지속적으로 실패하면 고객 센터로 문의하세요. |
FAIL BATCH INFERENCE IN PROGRESS, COMPLETE IN PROGRESS | 배치 추론에 사용된 리소스를 정리 중인 상태입니다. |
작업
기존 배치 추론과 동일한 설정으로 새로운 배치 추론을 생성합니다.
배치 추론을 삭제합니다.
사용자가 개인화한 컨테이너 이미지를 이용하여 노트북, 학습, 하이퍼파라미터 튜닝을 구동할 수 있습니다. AI EasyMaker에서 제공하는 노트북/딥 러닝 이미지를 기반으로 파생된 개인 이미지만 AI EasyMaker에서 리소스 생성 시 이용할 수 있습니다. AI EasyMaker의 기반 이미지는 아래 표를 확인하세요.
이미지 이름 | 코어타입 | 프레임워크 | 프레임워크 버전 | 파이썬 버전 | 이미지 주소 |
---|---|---|---|---|---|
Ubuntu 22.04 CPU Python Notebook | CPU | Python | 3.10.12 | 3.10 | fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/python-notebook:3.10.12-cpu-py310-ubuntu2204 |
Ubuntu 22.04 GPU Python Notebook | GPU | Python | 3.10.12 | 3.10 | fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/python-notebook:3.10.12-gpu-py310-ubuntu2204 |
Ubuntu 22.04 CPU PyTorch Notebook | CPU | PyTorch | 2.0.1 | 3.10 | fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/pytorch-notebook:2.0.1-cpu-py310-ubuntu2204 |
Ubuntu 22.04 GPU PyTorch Notebook | GPU | PyTorch | 2.0.1 | 3.10 | fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/pytorch-notebook:2.0.1-gpu-py310-ubuntu2204 |
Ubuntu 22.04 CPU TensorFlow Notebook | CPU | TensorFlow | 2.12.0 | 3.10 | fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/tensorflow-notebook:2.12.0-cpu-py310-ubuntu2204 |
Ubuntu 22.04 GPU TensorFlow Notebook | GPU | TensorFlow | 2.12.0 | 3.10 | fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/tensorflow-notebook:2.12.0-gpu-py310-ubuntu2204 |
이미지 이름 | 코어타입 | 프레임워크 | 프레임워크 버전 | 파이썬 버전 | 이미지 주소 |
---|---|---|---|---|---|
Ubuntu 22.04 CPU PyTorch Training | CPU | PyTorch | 2.0.1 | 3.10 | fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/pytorch-train:2.0.1-cpu-py310-ubuntu2204 |
Ubuntu 22.04 GPU PyTorch Training | GPU | PyTorch | 2.0.1 | 3.10 | fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/pytorch-train:2.0.1-gpu-py310-ubuntu2204 |
Ubuntu 22.04 CPU TensorFlow Training | CPU | TensorFlow | 2.12.0 | 3.10 | fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/tensorflow-train:2.12.0-cpu-py310-ubuntu2204 |
Ubuntu 22.04 GPU TensorFlow Training | GPU | TensorFlow | 2.12.0 | 3.10 | fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/tensorflow-train:2.12.0-gpu-py310-ubuntu2204 |
[참고] 개인 이미지 사용 제약 사항:
다음 문서는 도커(Docker)를 활용하여 AI EasyMaker 기반 이미지로 컨테이너 이미지를 생성하고, AI EasyMaker에서 노트북용 개인 이미지를 사용하는 방법을 안내합니다.
개인 이미지의 DockerFile을 작성합니다.
FROM fb34a0a4-kr1-registry.container.nhncloud.com/easymaker/python-notebook:3.10.12-cpu-py310-ubuntu2204 as easymaker-notebook
RUN conda create -n example python=3.10
RUN conda activate example
RUN pip install torch torchvision
개인 이미지 빌드와 컨테이너 레지스트리 Push Dockerfile로 이미지를 빌드하고 NCR 레지스트리에 이미지를 저장(Push)합니다.
docker build -t {이미지 이름}:{태그} .
docker tag {이미지 이름}:{태그} {NCR 레지스트리 주소}/{이미지 이름}:{태그}
docker push {NCR 레지스트리 주소}/{이미지 이름}:{태그}
(예시)
docker build -t custom-training:v1 .
docker tag custom-training:v1 example-kr1-registry.container.nhncloud.com/registry/custom-training:v1
docker push example-kr1-registry.container.nhncloud.com/registry/custom-training:v1
NCR에 저장(Push)한 이미지를 AI EasyMaker의 개인 이미지로 생성합니다.
생성한 개인 이미지로 노트북을 생성합니다.
[참고] 노트북 이외 학습, 하이퍼파라미터 튜닝도 동일하게 개인 이미지를 사용하여 리소스를 생성할 수 있습니다.
[참고] 컨테이너 레지스트리 서비스: NHN Container Registry(NCR) 컨테이너 레지스트 서비스로 NCR 서비스만 연동 가능합니다. (2023년 12월 기준)
NCR 서비스의 계정 아이디와 비밀번호는 다음의 값을 입력합니다.
아이디: NHN Cloud 사용자 계정의 User Access Key
비밀번호: NHN Cloud 사용자 계정의 User Secret Key
AI EasyMaker가 개인 이미지가 저장된 사용자의 레지스트리에서 이미지를 가져와서(Pull) 컨테이너를 구동하려면 사용자의 레지스트리에 로그인해야 합니다. 레지스트리 계정으로 로그인 정보를 저장해 두면 해당 레지스트리 계정으로 연동된 이미지에서 재사용할 수 있습니다. 레지스트리 계정을 관리하려면 AI EasyMaker 콘솔의 이미지 메뉴로 이동한 후, 레지스트리 계정 탭을 선택합니다.
신규 레지스트리 계정을 생성합니다.
[참고] 레지스트리 계정을 변경하면 해당 계정과 연동된 이미지를 사용할 때 변경된 아이디와 비밀번호로 레지스트리 서비스에 로그인합니다. 잘못된 레지스트리 아이디, 비밀번호를 입력하면 개인 이미지 Pull 진행 중 로그인에 실패하여 리소스 생성을 실패합니다. 레지스트리 계정이 연동된 개인 이미지로 생성 중인 리소스가 있거나 수행 중인 학습 및 하이퍼파라미터가 있을 경우에는 수정할 수 없습니다.
삭제할 레지스트리 계정을 목록에서 선택하고, 레지스트리 계정 삭제 버튼을 클릭합니다.
[참고] 이미지와 연동된 레지스트리 계정은 삭제할 수 없습니다. 삭제하려면 연동된 이미지를 먼저 삭제한 뒤 레지스트리 계정을 삭제해야 합니다.
ML 파이프라인은 이식 가능하고 확장 가능한 기계 학습 워크플로우를 관리하고 실행하기 위한 기능입니다. Kubeflow Pipelines(KFP) Python SDK를 사용하여 컴포넌트 및 파이프라인을 작성하고, 파이프라인을 중간 표현 YAML로 컴파일하고, 이를 AI EasyMaker에서 실행할 수 있습니다.
[참고] 파이프라인이란? 파이프라인은 하나 이상의 컴포넌트를 조합하여 방향 비순환 그래프(directed acyclic graph, DAG)를 형성하는 작업 흐름의 정의입니다. 각 컴포넌트는 실행 중에 단일 컨테이너를 실행하며, 이는 ML 아티팩트를 생성할 수 있습니다.
[참고] ML 아티팩트란? 컴포넌트는 입력을 받고 출력을 생성할 수 있습니다. 두 가지 유형의 I/O 타입이 있습니다. 매개변수(parameters)와 아티팩트(artifacts)입니다: 1. 매개변수는 컴포넌트 간에 작은 양의 데이터를 전달하는 데 유용합니다. 2. 아티팩트 유형은 데이터셋, 모델, 메트릭 등과 같은 ML 아티팩트 출력을 위한 것입니다. 오브젝트 스토리지에 저장하기 위한 편리한 메커니즘을 제공합니다.
대부분의 파이프라인은 데이터셋, 모델, 평가 메트릭 등과 같은 하나 이상의 ML 아티팩트를 생성하는 것을 목표로 합니다.
[참고] Kubeflow Pipelines(KFP) 공식 문서 - KFP 사용자 가이드 - KFP SDK 레퍼런스
파이프라인을 업로드합니다.
[참고] 파이프라인 업로드 소요 시간: 파이프라인 업로드는 몇 분의 시간이 소요될 수 있습니다. 최초 리소스 생성 시 서비스 환경 구성을 위해 추가로 몇 분의 시간이 더 소요됩니다.
파이프라인 목록이 표시됩니다. 목록의 파이프라인을 선택하면 상세 정보를 확인하고 정보를 변경할 수 있습니다.
상태: 파이프라인의 상태가 표시됩니다. 주요 상태는 아래 표를 참고하세요.
상태 | 설명 |
---|---|
CREATE REQUESTED | 파이프라인 생성이 요청된 상태입니다. |
CREATE IN PROGRESS | 파이프라인 생성이 진행 중인 상태입니다. |
CREATE FAILED | 파이프라인 생성에 실패한 상태입니다. 다시 시도하세요. |
ACTIVE | 파이프라인이 정상적으로 생성된 상태입니다. |
파이프라인 그래프가 표시됩니다. 그래프의 노드를 선택하면 상세 정보를 확인할 수 있습니다.
그래프는 파이프라인을 그림으로 나타낸 것입니다. 그래프 내의 각 노드는 파이프라인의 단계를 나타내며 각 단계로 표시된 파이프라인 구성 요소 간의 부모/자식 관계를 화살표로 나타냅니다.
파이프라인을 삭제합니다.
업로드한 파이프라인을 AI EasyMaker에서 실행하고 관리할 수 있습니다.
파이프라인을 실행합니다.
nas://{NAS ID}:/{path}
형식의 경로를 입력합니다.[주의] NHN Cloud NAS를 사용하는 경우: AI EasyMaker와 동일한 프로젝트에서 생성된 NHN Cloud NAS만 사용 가능합니다.
[참고] 파이프라인 실행 생성 소요 시간: 파이프라인 실행 생성은 몇 분의 시간이 소요될 수 있습니다. 최초 리소스 생성 시 서비스 환경 구성을 위해 추가로 몇 분의 시간이 더 소요됩니다.
파이프라인 실행 목록이 표시됩니다. 목록의 파이프라인 실행을 선택하면 상세 정보를 확인하고 정보를 변경할 수 있습니다.
상태: 파이프라인 실행의 상태가 표시됩니다. 주요 상태는 아래 표를 참고하세요.
상태 | 설명 |
---|---|
CREATE REQUESTED | 파이프라인 실행 생성이 요청된 상태입니다. |
CREATE IN PROGRESS | 파이프라인 실행 생성이 진행 중인 상태입니다. |
CREATE FAILED | 파이프라인 실행 생성에 실패한 상태입니다. 다시 시도하세요. |
RUNNING | 파이프라인 실행이 진행 중인 상태입니다. |
COMPLETE IN PROGRESS | 파이프라인 실행에 사용된 리소스를 정리 중인 상태입니다. |
COMPLETE | 파이프라인 실행이 정상적으로 완료된 상태입니다. |
STOP IN PROGRESS | 파이프라인 실행이 중지 중인 상태입니다. |
STOPPED | 파이프라인 실행이 사용자의 요청으로 중지된 상태입니다. |
FAIL PIPELINE RUN IN PROGRESS | 파이프라인 실행에 사용된 리소스를 정리 중인 상태입니다. |
FAIL PIPELINE RUN | 파이프라인 실행이 실패한 상태입니다. 자세한 실패 정보는 로그 관리가 활성화된 경우, Log & Crash Search 로그를 통해 확인할 수 있습니다. |
작업
파이프라인 실행 그래프가 표시됩니다. 그래프의 노드를 선택하면 상세 정보를 확인할 수 있습니다.
그래프는 파이프라인 실행을 그림으로 나타낸 것입니다. 이 그래프는 파이프라인 실행 중 이미 실행된 단계와 현재 실행 중인 단계를 보여주며, 각 단계로 표시된 파이프라인 구성 요소 간의 부모/자식 관계를 화살표로 나타냅니다. 그래프 내의 각 노드는 파이프라인의 단계를 나타냅니다.
진행 중인 파이프라인 실행을 중지합니다.
[참고] 파이프라인 실행 중지 소요 시간: 파이프라인 실행 중지는 몇 분의 시간이 소요될 수 있습니다.
기존 파이프라인 실행과 동일한 설정으로 새로운 파이프라인 실행을 생성합니다.
파이프라인 실행을 삭제합니다.
업로드한 파이프라인을 AI EasyMaker에서 주기적으로 반복 실행하는 일정을 생성하고 관리할 수 있습니다.
파이프라인을 주기적으로 반복 실행하기 위한 일정을 생성합니다.
파이프라인 일정 생성에 설정할 수 있는 정보 중 아래 항목 외 정보는 파이프라인 실행 생성을 참고하세요.
[참고] 파이프라인 일정 생성 소요 시간: 파이프라인 일정 생성은 몇 분의 시간이 소요될 수 있습니다. 최초 리소스 생성 시 서비스 환경 구성을 위해 추가로 몇 분의 시간이 더 소요됩니다.
[참고] Cron 표현식 형식: Cron 표현식은 6개의 공백으로 구분된 필드를 사용하여 시간을 나타냅니다. 자세한 내용은 Cron 표현식 형식 문서를 참고하세요.
파이프라인 일정 목록이 표시됩니다. 목록의 파이프라인 일정을 선택하면 상세 정보를 확인하고 정보를 변경할 수 있습니다.
상태: 파이프라인 일정의 상태가 표시됩니다. 주요 상태는 아래 표를 참고하세요.
상태 | 설명 |
---|---|
CREATE REQUESTED | 파이프라인 일정 생성이 요청된 상태입니다. |
CREATE FAILED | 파이프라인 일정 생성에 실패한 상태입니다. 다시 시도하세요. |
ENABLED | 파이프라인 일정이 정상적으로 시작된 상태입니다. |
ENABLED(EXPIRED) | 파이프라인 일정이 정상적으로 시작됐지만 설정한 종료 시간을 경과한 상태입니다. |
DISABLED | 파이프라인 일정이 사용자의 요청으로 중지된 상태입니다. |
실행 관리: 목록의 파이프라인 일정을 선택하면 표시되는 상세 화면의 실행 관리 탭에서 파이프라인 일정에 의해 생성된 실행 목록을 확인할 수 있습니다.
시작된 파이프라인 일정을 중지하거나 중지된 파이프라인 일정을 시작합니다.
기존 파이프라인 일정과 동일한 설정으로 새로운 파이프라인 일정을 생성합니다.
파이프라인 일정을 삭제합니다.
AI EasyMaker의 일부 기능에서 입출력 스토리지로 사용자의 NHN Cloud Object Storage를 사용하는 경우, 사용자의 NHN Cloud Object Stroage 컨테이너에 AI EasyMaker 시스템 계정에 대한 읽기 또는 쓰기 권한을 허용해야 정상적인 기능 동작이 됩니다.
사용자의 NHN Cloud Object Stroage 컨테이너에 AI EasyMaker 시스템 계정의 읽기/쓰기 권한을 허용하는 것은 AI EasyMaker 시스템 계정이 사용자의 NHN Cloud Object Stroage 컨테이너의 모든 파일에 대해 부여된 권한에 따라 파일을 읽거나 쓸수 있음을 의미합니다.
이 내용을 반드시 확인하여 필요한 계정과 권한만 사용자 Object Storage에 접근 정책을 설정해야 합니다.
접근 정책 설정 과정 중 AI EasyMaker 시스템 계정이 아닌 다른 계정에 대해 사용자의 Object Storage 접근을 허용하여 발생한 모든 결과에 대한 책임은 '사용자'에게 있으며 AI EasyMaker는 그에 대해 책임을 지지 않습니다.
[참고] 기능에 따라 AI EasyMaker가 Object Stroage에 접근하여 읽거나 쓰는 파일은 다음과 같습니다.
기능 | 권한 | 접근 대상 |
---|---|---|
학습 | 읽기 | 사용자가 입력한 알고리즘 경로, 학습 입력 데이터 경로 |
학습 | 쓰기 | 사용자가 입력한 학습 출력 데이터, 체크 포인트 경로 |
모델 | 읽기 | 사용자가 입력한 모델 아티팩트 경로 |
엔드포인트 | 읽기 | 사용자가 입력한 모델 아티팩트 경로 |
NHN Cloud Object Storage에 AI EasyMaker 시스템 계정의 읽기/쓰기 권한을 추가하려면 다음 내용을 참고하세요.
AI EasyMaker 서비스에서 발생하는 로그, 이벤트를 NHN Cloud Log & Crash Search 서비스에 저장할 수 있습니다. Log & Crash Search 서비스에 로그를 저장하려면, Log & Crash 서비스를 활성화해야 하며 별도 이용 요금이 부과됩니다.
AI EasyMaker 서비스는 Log & Crash Search 서비스에 다음과 같이 정의된 필드로 로그를 전송합니다.
공통 로그 필드
이름 | 설명 | 유효 범위 |
---|---|---|
easymakerAppKey | AI EasyMaker 앱키(AppKey) | - |
category | 로그 카테고리 | easymaker.training, easymaker.inference |
logLevel | 로그 레벨 | INFO, WARNING, ERROR |
body | 로그 내용 | - |
logType | 로그 제공 서비스 이름 | NHNCloud-AIEasyMaker |
time | 로그 발생 시간(UTC 시각) | - |
학습 로그 필드
이름 | 설명 |
---|---|
trainingId | AI EasyMaker 학습 ID |
하이퍼파라미터 튜닝 로그 필드
이름 | 설명 |
---|---|
hyperparameterTuningId | AI EasyMaker 하이퍼파라미터 튜닝 ID |
엔드포인트 로그 필드
이름 | 설명 |
---|---|
endpointId | AI EasyMaker 엔드포인트 ID |
endpointStageId | 엔드포인트 스테이지 ID |
inferenceId | 추론 요청 고유 ID |
action | Action 구분(Endpoint.Model) |
modelName | 추론 대상 모델 이름 |
배치 추론 로그 필드
이름 | 설명 |
---|---|
batchInferenceId | AI EasyMaker 배치 추론 ID |
아래 예시처럼, 학습 생성 시 입력한 하이퍼파라미터 값을 활용할 수 있습니다.
import argparse
model_version = os.environ.get("EM_HP_MODEL_VERSION")
def parse_hyperparameters():
parser = argparse.ArgumentParser()
# 입력한 하이퍼파라미터 파싱
parser.add_argument("--epochs", type=int, default=500)
parser.add_argument("--batch_size", type=int, default=32)
...
return parser.parse_known_args()
주요 환경 변수
환경 변수명 | 설명 |
---|---|
EM_SOURCE_DIR | 학습 생성 시 입력한 알고리즘 스크립트가 다운로드되어 있는 폴더의 절대 경로 |
EM_ENTRY_POINT | 학습 생성 시 입력한 알고리즘 엔트리 포인트 이름 |
EMDATASET${데이터 세트 이름} | 학습 생성 시 입력한 각각의 데이터 세트가 다운로드되어 있는 폴더의 절대 경로 |
EM_DATASETS | 전체 데이터 세트 목록(json 형식) |
EM_MODEL_DIR | 모델 저장 경로 |
EM_CHECKPOINT_INPUT_DIR | 입력 체크 포인트 저장 경로 |
EM_CHECKPOINT_DIR | 출력 체크 포인트 저장 경로 |
EMHP${대문자로 변환된 하이퍼파라미터 키} | 하이퍼파라미터 키에 대응하는 하이퍼파라미터 값 |
EM_HPS | 전체 하이퍼파라미터 목록(json 형식) |
EM_TENSORBOARD_LOG_DIR | 학습 결과 확인을 위한 텐서보드 로그 경로 |
EM_REGION | 현재 리전 정보 |
EM_APPKEY | 현재 사용 중인 AI EasyMaker 서비스의 앱키 |
환경 변수 활용 예시 코드
import os
import tensorflow
dataset_dir = os.environ.get("EM_DATASET_TRAIN")
train_data = read_data(dataset_dir, "train.csv")
model = ... # 입력한 데이터를 이용해 모델 구현
model.load_weights(os.environ.get('EM_CHECKPOINT_INPUT_DIR', None))
callbacks = [
tensorflow.keras.callbacks.ModelCheckpoint(filepath=f'{os.environ.get("EM_CHECKPOINT_DIR")}/cp-{{epoch:04d}}.ckpt', save_freq='epoch', period=50),
tensorflow.keras.callbacks.TensorBoard(log_dir=f'{os.environ.get("EM_TENSORBOARD_LOG_DIR")}'),
]
model.fit(..., callbacks)
model_dir = os.environ.get("EM_MODEL_DIR")
model.save(model_dir)
학습 후 텐서보드 화면에서 결과 지표를 확인하기 위해, 학습 스크립트 작성 시 텐서보드 로그 저장 공간을 지정된 위치(EM_TENSORBOARD_LOG_DIR
)로 설정해 주어야 합니다.
텐서보드 로그 저장 예시 코드(TensorFlow)
import tensorflow as tf
# 텐서보드 로그 경로 지정
tb_log = tf.keras.callbacks.TensorBoard(log_dir=os.environ.get("EM_TENSORBOARD_LOG_DIR"))
model = ... # 모델 구현
model.fit(x_train, y_train, validation_data=(x_test, y_test),
epochs=100, batch_size=20, callbacks=[tb_log])
TF_CONFIG
는 자동으로 설정됩니다. 자세한 내용은 Tensorflow 공식 가이드 문서를 참고하세요.Backends
설정이 필요합니다. 분산 학습을 CPU로 진행할 경우 gloo로, GPU로 진행할 경우 nccl로 설정하세요. 자세한 내용은 Pytorch 공식 가이드 문서를 참고하세요.AI EasyMaker 서비스는 안정적인 서비스와 신규 기능 제공을 위해 주기적으로 클러스터 버전을 업그레이드합니다. 신규 클러스터 버전이 배포되면 구 버전의 클러스터에 구동된 노트북 및 엔드포인트를 신규 클러스터로 이전해야 합니다. 리소스별 신규 클러스터 이전 방법을 안내합니다.
노트북 목록 화면에서 신규 클러스터로 이전해야 하는 노트북은 이름 좌측에 재시작 버튼이 표시됩니다. 재시작 버튼 위에 마우스 포인터를 올리면 재시작 안내 문구와 만료 일시가 표시됩니다.
재시작은 최초 실행 시 약 25분이 소요되며, 이후에는 약 10분이 소요됩니다. 재시작을 실패할 경우 관리자에게 자동으로 보고됩니다.
엔드포인트 목록 화면에서 신규 클러스터로 이전해야 하는 엔드포인트는 이름 좌측에 ! 안내 문구가 표시됩니다. ! 안내 문구 위에 마우스 포인터를 올리면 버전 업그레이드 안내 문구와 만료 일시가 표시됩니다. 만료 전까지 다음의 안내에 따라 구 버전 클러스터에서 운영되는 스테이지를 신규 버전 클러스터로 이전해야 합니다.
[주의] 스테이지를 삭제하면 엔드포인트가 종료되어 API 호출이 불가합니다. 삭제 전 서비스 중이지 않은 스테이지인지 확인합니다.
기본 스테이지는 실제 서비스가 운영되는 스테이지입니다. 서비스의 순단 없이 기본 스테이지의 클러스터 버전을 이전하려면 다음의 가이드에 따라 이전합니다.
exit code : -9 (pid: {pid})
배치 추론과 엔드포인트는 선택한 인스턴스 타입에서 AI EasyMaker의 기본 사용량을 제외한 나머지가 할당됩니다. 배치 추론은 실 사용량을 파드 수로 나누어 각 파드에 할당되고, 엔드포인트는 설정값에 따라 모델별로 리소스가 할당됩니다. 할당된 리소스가 추론에 필요한 최소 사용량보다 적을 경우 생성 실패할 수 있습니다. CPU와 메모리 실 사용량에 맞게 인스턴스 타입, 인스턴스 수 등 입력값을 적절히 조절해야 합니다.
AI EasyMaker에서 제공하는 TensorFlow 모델 서빙은 TensorFlow에서 권장하는 SavedModel(.pb)을 사용하고 있습니다. 체크 포인트를 사용하기 위해서는 SavedModel로 저장된 체크포인트 variables 디렉터리를 모델 디렉터리에 같이 저장하면 모델 서빙에 사용됩니다. 참고: https://www.tensorflow.org/guide/saved_model
AI EasyMaker는 TorchServe로 PyTorch 모델(.mar)을 서빙합니다. model-archiver를 사용해서 만든 MAR 파일을 사용하는 것을 권장하며, weight 파일로도 서빙이 가능하지만 weight 파일과 함께 필요한 파일들이 있습니다. 필요한 파일과 상세한 설명은 아래의 표와 model-archiver 설명 문서를 확인하세요.
파일 이름 | 필수 여부 | 설명 |
---|---|---|
model.py | 필수 | model-file 파라미터로 전달되는 모델 구조 파일입니다. |
handler.py | 필수 | 추론 로직을 처리하기 위한 handler 파라미터로 전달되는 파일입니다. |
weight 파일(.pt, .pth, .bin) | 필수 | 모델의 가중치와 구조를 저장한 파일입니다. |
requirements.txt | 선택 | 서빙할 때 필요한 Python 패키지를 설치하기 위한 파일입니다. |
extra/ | 선택 | 디렉터리에 있는 파일은 extra-files 파라미터로 전달됩니다. |