머신 러닝 개발을 위한 필수 패키지가 설치되어 있는 주피터(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 | 노트북을 시작 중인 상태입니다. |
DELETE IN PROGRESS | 노트북을 삭제 중인 상태입니다. |
CREATE FAILED | 노트북 생성 중 실패한 상태입니다. 생성이 지속적으로 실패하면 고객 센터로 문의해 주세요. |
STOP FAILED | 노트북 중지를 실패한 상태입니다. 다시 시도해 주세요. |
START 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
구동 중인 노트북을 중지하거나 중지된 노트북을 시작합니다.
[주의] 노트북 중지 후 시작 시 가상 환경 및 외부 라이브러리 유지 방법 노트북을 중지하고 시작할 때 사용자가 생성한 가상 환경 및 외부 라이브러리가 초기화될 수 있습니다. 유지하려면 사용자 가상 실행 환경 구성을 참고하여 사용자 가상 환경을 구성해 주세요.
[참고] 노트북 시작과 중지 소요 시간 노트북 시작과 중지는 몇 분의 시간이 소요될 수 있습니다.
생성된 노트북의 인스턴스 타입을 변경합니다. 변경하려는 인스턴스 타입은 기존 인스턴스와 동일한 코어 타입의 인스턴스 타입으로만 변경이 가능합니다.
[참고] 인스턴스 타입 변경 소요 시간 인스턴스 타입 변경은 몇 분의 시간이 소요될 수 있습니다.
생성된 노트북을 삭제합니다.
[참고] 스토리지 노트북을 삭제할 경우 부트 스토리지와 데이터 스토리지가 삭제됩니다. 연결한 NHN Cloud NAS는 삭제되지 않으며 NHN Cloud NAS에서 개별 삭제해야 합니다.
머신 러닝 알고리즘을 학습하고 학습 결과를 통계로 확인할 수 있는 환경을 제공합니다.
학습이 수행될 인스턴스와 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 | 학습에 사용된 리소스를 정리 중인 상태입니다. |
작업
하이퍼파라미터: 학습을 선택하면 표시되는 상세 화면의 하이퍼파라미터 탭에서 학습에 설정한 하이퍼파라미터 값을 확인할 수 있습니다.
기존 학습과 동일한 설정으로 새로운 학습을 생성합니다.
완료된 상태의 학습으로 모델을 생성합니다.
학습을 삭제합니다.
[참고] 연관된 모델이 존재할 경우 학습 삭제 불가 삭제하려는 학습으로 생성된 모델이 존재하는 경우 학습을 삭제할 수 없습니다. 모델을 먼저 삭제한 후 학습을 삭제해 주세요.
실험은 연관된 학습을 실험으로 그룹화하여 관리합니다.
[참고] 실험 생성 소요 시간 실험 생성은 몇 분의 시간이 소요될 수 있습니다. 최초 리소스(노트북, 학습, 실험, 엔드포인트) 생성 시 서비스 환경 구성을 위해 추가로 몇 분의 시간이 더 소요됩니다.
실험 목록이 표시됩니다. 목록의 실험을 선택하면 상세 정보를 확인하고 정보를 변경할 수 있습니다.
상태: 실험의 상태가 표시됩니다. 주요 상태는 아래 표를 참고해 주세요.
상태 | 설명 |
---|---|
CREATE IN PROGRESS | 실험이 생성 중인 상태입니다. |
CREATE RESOURCE IN PROGRESS | 실험이 생성 중인 상태입니다. |
CREATE EXPERIMENT IN PROGRESS | 실험이 생성 중인 상태입니다. |
ACTIVE | 실험이 정상적으로 생성된 상태입니다. |
FAILED TO CREATE RESOURCE | 실험 생성을 실패한 상태입니다. 다시 시도해 주세요. |
FAILED TO CREATE EXPERIMENT | 실험 생성을 실패한 상태입니다. 다시 시도해 주세요. |
작업
실험을 삭제합니다.
[참고] 연관된 학습이 존재할 경우 실험 삭제 불가 실험과 연관된 학습이 존재하는 경우 실험을 삭제할 수 없습니다. 먼저 연관된 학습을 삭제한 후 실험을 삭제해 주세요. 연관된 학습은 삭제하려는 실험을 클릭하면 표시되는 하단의 상세화면에서 [학습] 탭을 클릭하여 목록을 확인할 수 있습니다.
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 서비스 콘솔에서 직접 변경 작업을 할 경우 다음의 주의 사항을 반드시 참고해 주세요. 1. AI EasyMaker가 생성한 API Gateway 서비스와 스테이지를 삭제하지 않도록 합니다. 삭제하면 엔드포인트에 API Gateway 정보가 정상적으로 표시되지 않고, 엔드포인트의 변경 사항이 API Gateway에 적용되지 않을 수 있습니다. 2. 엔드포인트 생성 시 입력한 API Gateway 리소스 경로의 리소스를 변경하거나 삭제하지 않도록 합니다. 삭제하면 엔드포인트의 추론 API 호출에 실패할 수 있습니다. 3. 엔드포인트 생성 시 입력한 API Gateway 리소스 경로 하위에 리소스를 추가하지 않도록 합니다. 추가한 리소스는 엔드포인트 스테이지 추가/변경 작업 시 삭제될 수 있습니다. 4. API Gateway의 스테이지 설정에서 API Gateway 리소스 경로에 설정된 백엔드 엔드포인트 URL 재정의를 비활성화하거나 URL을 변경하지 않도록 합니다. 변경하면 엔드포인트의 추론 API 호출에 실패할 수 있습니다. 위의 주의 사항 외 다른 설정은 필요에 따라 API Gateway에서 제공하는 기능을 이용할 수 있습니다. 자세한 API Gateway 사용에 대한 내용은 API Gateway 콘솔 가이드를 참고해 주세요.
[참고] 스테이지의 API Gateway '배포 실패' 상태인 경우 복구 방법 일시적인 문제로 AI EasyMaker 엔드포인트의 스테이지 설정이 API Gateway 스테이지에 배포되지 않은 경우, 배포 실패 상태로 표시됩니다. 이 경우, 스테이지 목록에서 스테이지 선택 > 하단 상세 화면의 API Gateway 설정 보기 > '스테이지 배포'를 클릭하여 API Gateway 스테이지를 수동으로 배포할 수 있습니다. 위 가이드로도 배포 상태가 복구되지 않는 경우 고객 센터로 문의해 주세요.
// 추론 API 예시: 요청
curl --location --request POST '{스테이지 엔드포인트 URL}' \
--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의 일부 기능에서 입출력 스토리지로 사용자의 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 |
엔드포인트 로그 필드
이름 | 설명 |
---|---|
endpointId | AI EasyMaker 엔드포인트 ID |
endpointStageId | 엔드포인트 스테이지 ID |
inferenceId | 추론 요청 고유 ID |
action | Action 구분(Endpoint.Model) |
modelName | 추론 대상 모델 이름 |
아래 예시처럼, 학습 생성 시 입력한 하이퍼파라미터 값을 활용할 수 있습니다.
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 | 학습 생성 시 입력한 알고리즘 엔트리 포인트 이름 |
EM_DATASET_${데이터 세트 이름} | 학습 생성 시 입력한 각각의 데이터 세트가 다운로드되어 있는 폴더의 절대 경로 |
EM_DATASETS | 전체 데이터 세트 목록(json 형식) |
EM_MODEL_DIR | 모델 저장 경로 |
EM_CHECKPOINT_DIR | 체크 포인트 저장 경로 |
EM_HP_${대문자로 변환된 하이퍼파라미터 키} | 하이퍼파라미터 키에 대응하는 하이퍼파라미터 값 |
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 = ... # 입력한 데이터를 이용해 모델 구현
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])