Machine Learning > AI EasyMaker > 콘솔 사용 가이드

노트북

머신 러닝 개발을 위한 필수 패키지가 설치되어 있는 주피터(Jupyter) 노트북을 생성하고 관리합니다.

노트북 생성

주피터 노트북을 생성합니다.

  • 이미지: 노트북 인스턴스에 설치될 OS 이미지를 선택합니다.

    • 코어 타입: 이미지의 CPU, GPU 코어 타입이 표시됩니다.
    • 프레임워크: 이미지에 설치된 프레임워크가 표시됩니다.
      • TENSORFLOW: TensorFlow 딥러닝 프레임워크가 설치된 이미지입니다.
      • PYTORCH: PyTorch 딥러닝 프레임워크가 설치된 이미지입니다.
      • PYTHON: 딥러닝 프레임워크가 설치되지 않고 파이썬 언어만 설치된 이미지입니다.
    • 프레임워크 버전: 이미지에 설치된 프레임워크의 버전이 표시됩니다.
    • 파이썬 버전: 이미지에 설치된 파이썬 버전이 표시됩니다.
  • 노트북 정보

    • 노트북의 이름, 설명을 입력합니다.
    • 노트북의 인스턴스 타입을 선택합니다. 선택한 타입에 따라 인스턴스의 사양이 선택됩니다.
  • 스토리지

    • 노트북의 부트 스토리지와 데이터 스토리지 크기를 지정합니다.
      • 부트 스토리지는 주피터 노트북 및 기본 가상 환경이 설치되는 스토리지입니다. 이 스토리지는 노트북을 재시작하면 초기화됩니다.
      • 데이터 스토리지는 /root/easymaker디렉터리 경로에 마운트 되는 블록 스토리지입니다. 이 스토리지의 데이터는 노트북을 재시작해도 유지됩니다.
    • 생성된 노트북의 스토리지 크기는 변경할 수 없으므로 생성 시 충분한 스토리지 크기로 지정하시기 바랍니다.
    • 스토리지 크기는 10GB 단위로, 최대 2,040GB까지 입력할 수 있습니다.
    • 필요한 경우 노트북을 연결할 NHN Cloud NAS를 추가할 수 있습니다.
      • 마운트 디렉터리 이름: 노트북에 마운트 할 디렉터리 이름을 입력합니다.
      • NHN Cloud NAS 경로: nas://{NAS ID}:/{path} 형식의 디렉터리 경로를 입력합니다.
  • 추가 설정

    • 태그: Key-Value 형식의 태그를 지정할 수 있습니다. 태그는 최대 10개까지 입력할 수 있습니다.

[주의] 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 디렉터리 경로에 생성된 가상 환경에 대해 노트북을 중지하고 시작할 때 초기화되어 구동되도록 지원합니다.

다음의 가이드를 참고하여 사용자 가상 환경을 구성해 주세요.

  1. 콘솔 노트북 메뉴의 주피터 노트북 열기 > 주피터 노트북 > Launcher > Terminal을 클릭합니다.
  2. /root/easymaker/custom-conda-envs 경로로 이동합니다.

    cd /root/easymaker/custom-conda-envs
    
  3. 파이썬 3.8 버전의 easymaker_env라는 가상 환경을 생성하려면 다음과 같이 conda create 명령어를 수행합니다.

    conda create --prefix ./easymaker_env python=3.8
    
  4. 생성된 가상 환경은 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
    

노트북 중지

구동 중인 노트북을 중지하거나 중지된 노트북을 시작합니다.

  1. 노트북 목록에서 시작 또는 중지하려는 노트북을 선택합니다.
  2. 노트북 시작 또는 노트북 중지를 클릭합니다.
  3. 요청된 작업은 취소할 수 없습니다. 계속 진행하려면 확인을 클릭합니다.

[주의] 노트북 중지 후 시작 시 가상 환경 및 외부 라이브러리 유지 방법 노트북을 중지하고 시작할 때 사용자가 생성한 가상 환경 및 외부 라이브러리가 초기화될 수 있습니다. 유지하려면 사용자 가상 실행 환경 구성을 참고하여 사용자 가상 환경을 구성해 주세요.

[참고] 노트북 시작과 중지 소요 시간 노트북 시작과 중지는 몇 분의 시간이 소요될 수 있습니다.

노트북 인스턴스 타입 변경

생성된 노트북의 인스턴스 타입을 변경합니다. 변경하려는 인스턴스 타입은 기존 인스턴스와 동일한 코어 타입의 인스턴스 타입으로만 변경이 가능합니다.

  1. 인스턴스 타입을 변경하려는 노트북을 선택합니다.
  2. 노트북이 구동 중인 상태(ACTIVE)인 경우, 노트북 중지를 클릭하여 노트북을 중지합니다.
  3. 인스턴스 타입 변경을 클릭합니다.
  4. 변경하려는 인스턴스 타입을 선택하고 확인을 클릭합니다.

[참고] 인스턴스 타입 변경 소요 시간 인스턴스 타입 변경은 몇 분의 시간이 소요될 수 있습니다.

노트북 삭제

생성된 노트북을 삭제합니다.

  1. 목록에서 삭제하려는 노트북을 선택합니다.
  2. 노트북 삭제을 클릭합니다.
  3. 요청된 삭제 작업은 취소할 수 없습니다. 계속 진행하려면 확인을 클릭합니다.

[참고] 스토리지 노트북을 삭제할 경우 부트 스토리지와 데이터 스토리지가 삭제됩니다. 연결한 NHN Cloud NAS는 삭제되지 않으며 NHN Cloud NAS에서 개별 삭제해야 합니다.

학습

머신 러닝 알고리즘을 학습하고 학습 결과를 통계로 확인할 수 있는 환경을 제공합니다.

학습 생성

학습이 수행될 인스턴스와 OS 이미지를 선택하여 학습이 수행될 환경을 설정하고, 학습하려는 알고리즘 정보와 입력/출력 데이터 경로를 입력하여 학습을 진행합니다.

  • 기본 정보: 학습에 대한 기본 정보와 학습이 포함될 실험을 선택합니다.
    • 학습 이름: 학습 이름을 입력합니다.
    • 학습 설명: 설명을 입력합니다.
    • 실험: 학습이 포함될 실험을 선택합니다. 실험은 연관된 학습을 그룹화합니다. 생성된 실험이 없는 경우 추가를 클릭하여 실험을 생성합니다.
  • 알고리즘 정보: 학습하려는 알고리즘에 대한 정보를 입력합니다.

    • 알고리즘 경로

      • NHN Cloud Object Storage: 알고리즘이 저장된 NHN Cloud Object Storage의 경로를 입력합니다.
      • NHN Cloud NAS: 알고리즘이 저장된 NHN Cloud NAS 경로를 입력합니다.
        nas://{NAS ID}:/{path} 형식으로 디렉터리 경로를 입력합니다.
    • 엔트리 포인트

      • 엔트리 포인트는 학습이 시작되는 알고리즘 실행의 인입점입니다. 엔트리 포인트 파일명을 작성합니다.
      • 엔트리 포인트 파일은 알고리즘 경로에 존재해야 합니다.
      • 동일한 경로에 requirements.txt를 작성하면 스크립트에서 필요한 파이썬 패키지가 설치됩니다.
    • 하이퍼파라미터
      • 학습을 위한 파라미터를 추가하려면 + 버튼을 클릭하여 Key-Value 형식으로 파라미터를 입력합니다. 파라미터는 최대 100개까지 입력할 수 있습니다.
      • 입력된 하이퍼파라미터는 엔트리 포인트가 실행될 때 실행 인자로 입력됩니다. 자세한 활용 방법은 부록 > 3. 학습 알고리즘 작성 가이드를 참고해 주세요.
  • 이미지: 학습을 실행해야 하는 환경에 맞게 인스턴스의 이미지를 선택합니다.

  • 학습 인스턴스 정보

    • 학습 인스턴스 타입: 학습을 실행할 인스턴스 타입을 선택합니다.
    • 학습 인스턴스 수: 학습을 수행할 인스턴스 수를 입력합니다. 인스턴스 수를 2개 이상 입력하면 학습 실행이 병렬로 진행되어 보다 빠르게 학습을 완료할 수 있습니다.
  • 데이터 정보

    • 입력 데이터: 학습을 실행할 데이터 세트를 입력합니다. 데이터 세트는 최대 10개까지 설정할 수 있습니다.
      • 데이터 세트 이름: 데이터 세트 이름을 입력합니다.
      • 데이터 경로: NHN Cloud Object Storage 또는 NHN Cloud NAS 경로를 입력합니다.
    • 출력 데이터: 학습의 실행 결과를 저장할 데이터 저장 경로를 입력합니다.
      • NHN Cloud Object Storage 또는 NHN Cloud NAS 경로를 입력합니다.
  • 추가 설정

    • 체크 포인트: 알고리즘이 체크 포인트를 제공하는 경우, 체크 포인트의 저장 경로를 입력합니다.
      • 생성된 체크 포인트는 이전 학습으로부터 다시 학습을 재개할 때 이용할 수 있습니다.
      • NHN Cloud Object Storage 또는 NHN Cloud NAS 경로를 입력합니다.
    • 데이터 스토리지 크기: 학습을 실행할 인스턴스의 데이터 스토리지 크기를 입력합니다.
      • NHN Cloud Object Storage를 사용하는 경우에만 사용됩니다. 학습에 필요한 데이터가 모두 저장될 수 있도록 충분한 크기를 지정하시기 바랍니다.
    • 최대 학습 시간: 학습이 완료될 때까지 최대 대기 시간을 지정합니다. 최대 대기 시간이 초과한 학습은 종료 처리됩니다.
    • 로그 관리: 학습 진행 중 발생하는 로그를 NHN Cloud Log & Crash 서비스에 저장할 수 있습니다.
    • 태그: 태그를 추가하려면 + 버튼을 클릭하여 Key-Value 형식으로 태그를 입력합니다. 태그는 최대 10개까지 입력할 수 있습니다.

[주의] 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 학습에 사용된 리소스를 정리 중인 상태입니다.
  • 작업

    • 텐서보드 바로가기: 학습의 통계 정보를 확인할 수 있는 텐서보드가 브라우저 새 창으로 열립니다.
      텐서보드 로그를 남기는 방법은 부록 > 3. 학습 알고리즘 작성 가이드를 참고해 주세요. 텐서보드는 콘솔에 로그인한 사용자만 접속할 수 있습니다.
    • 학습 중지: 진행 중인 학습을 중지할 수 있습니다.
  • 하이퍼파라미터: 학습을 선택하면 표시되는 상세 화면의 하이퍼파라미터 탭에서 학습에 설정한 하이퍼파라미터 값을 확인할 수 있습니다.

학습 복사

기존 학습과 동일한 설정으로 새로운 학습을 생성합니다.

  1. 복사하려는 학습을 선택합니다.
  2. 학습 복사를 클릭합니다.
  3. 기존 학습과 동일한 설정으로 학습 생성 화면이 표시됩니다.
  4. 설정을 변경하려는 정보가 있다면 변경한 후 학습 생성을 클릭하여 학습을 생성합니다.

학습에서 모델 생성하기

완료된 상태의 학습으로 모델을 생성합니다.

  1. 모델로 생성하려는 학습을 선택합니다.
  2. 모델 생성을 클릭합니다. 완료(COMPLETE) 상태의 학습만 모델로 생성할 수 있습니다.
  3. 모델 생성 페이지로 이동됩니다. 내용을 확인 후 모델 생성을 클릭하여 모델을 생성합니다. 모델 생성에 대한 자세한 내용은 모델 문서를 참고해 주세요.

학습 삭제

학습을 삭제합니다.

  1. 삭제하려는 학습을 선택합니다.
  2. 학습 삭제를 클릭합니다. 진행 중인 학습은 중지 후 삭제할 수 있습니다.
  3. 요청된 삭제 작업은 취소할 수 없습니다. 계속 진행하려면 확인을 클릭합니다.

[참고] 연관된 모델이 존재할 경우 학습 삭제 불가 삭제하려는 학습으로 생성된 모델이 존재하는 경우 학습을 삭제할 수 없습니다. 모델을 먼저 삭제한 후 학습을 삭제해 주세요.

실험

실험은 연관된 학습을 실험으로 그룹화하여 관리합니다.

실험 생성

  1. 실험 생성을 클릭합니다.
  2. 실험 이름과 설명을 입력하고 확인을 클릭합니다.

[참고] 실험 생성 소요 시간 실험 생성은 몇 분의 시간이 소요될 수 있습니다. 최초 리소스(노트북, 학습, 실험, 엔드포인트) 생성 시 서비스 환경 구성을 위해 추가로 몇 분의 시간이 더 소요됩니다.

실험 목록

실험 목록이 표시됩니다. 목록의 실험을 선택하면 상세 정보를 확인하고 정보를 변경할 수 있습니다.

  • 상태: 실험의 상태가 표시됩니다. 주요 상태는 아래 표를 참고해 주세요.

    상태 설명
    CREATE IN PROGRESS 실험이 생성 중인 상태입니다.
    CREATE RESOURCE IN PROGRESS 실험이 생성 중인 상태입니다.
    CREATE EXPERIMENT IN PROGRESS 실험이 생성 중인 상태입니다.
    ACTIVE 실험이 정상적으로 생성된 상태입니다.
    FAILED TO CREATE RESOURCE 실험 생성을 실패한 상태입니다. 다시 시도해 주세요.
    FAILED TO CREATE EXPERIMENT 실험 생성을 실패한 상태입니다. 다시 시도해 주세요.
  • 작업

    • 텐서보드 바로가기을 클릭하면 실험에 포함된 학습의 통계 정보를 확인할 수 있는 텐서보드가 브라우저 새 창으로 열립니다. 텐서보드는 콘솔에 로그인한 사용자만 접속할 수 있습니다.
    • 재시도: 실험 상태가 실패(FAIL)일 경우, 재시도를 클릭하여 실험을 복구할 수 있습니다.
  • 학습: 학습을 선택하면 표시되는 상세 화면의 학습 탭은 실험에 포함된 학습의 목록이 표시됩니다.

실험 삭제

실험을 삭제합니다.

  1. 삭제할 실험을 선택합니다.
  2. 실험 삭제를 클릭합니다. 실험이 생성 중인 상태인 경우 실험을 삭제할 수 없습니다.
  3. 요청된 삭제 작업은 취소할 수 없습니다. 계속 진행하려면 확인을 클릭합니다.

[참고] 연관된 학습이 존재할 경우 실험 삭제 불가 실험과 연관된 학습이 존재하는 경우 실험을 삭제할 수 없습니다. 먼저 연관된 학습을 삭제한 후 실험을 삭제해 주세요. 연관된 학습은 삭제하려는 실험을 클릭하면 표시되는 하단의 상세화면에서 [학습] 탭을 클릭하여 목록을 확인할 수 있습니다.

모델

AI EasyMaker의 학습 결과의 모델 또는 외부의 모델을 아티팩트로 관리할 수 있습니다.

모델 생성

  • 기본 정보: 모델의 기본 정보를 입력합니다.
    • 이름: 모델 이름을 입력합니다.
      • 모델의 프레임워크 종류가 PyTorch인 경우, PyTorch 모델 이름과 동일한 모델 이름을 입력해야 합니다.
    • 설명: 모델 설명을 입력합니다.
  • 프레임워크 정보: 모델의 프레임워크 정보를 입력합니다.
    • 프레임워크: 모델의 프레임워크를 TensorFlow 또는 PyTorch 중 선택합니다.
    • 프레임워크 버전: 모델 프레임워크의 버전을 입력합니다.
  • 모델 정보: 모델의 아티팩트가 저장된 저장소를 입력합니다.
    • NHN Cloud Object Storage: 모델 아티팩트가 저장된 Object Storage 경로를 입력합니다.
      • obs://{Object Storage API 엔드포인트}/{containerName}/{path} 형식으로 디렉터리 경로를 입력합니다.
      • NHN Cloud Object Storage를 이용하는 경우 부록 > 1. NHN Cloud Object Storage에 AI EasyMaker 시스템 계정 권한 추가를 참고하여 권한을 설정해 주세요. 권한을 설정하지 않으면 모델의 아티팩트에 접근이 불가하여 모델 생성에 실패합니다.
    • NHN Cloud NAS: 모델 아티팩트가 저장된 NHN Cloud NAS 경로를 입력합니다.
      • nas://{NAS ID}:/{path} 형식으로 디렉터리 경로를 입력합니다.
  • 추가 설정: 모델의 추가 정보를 입력합니다.
    • 태그: 태그를 추가하려면 + 버튼을 클릭하여 Key-Value 형식으로 태그를 입력합니다. 태그는 최대 10개까지 입력할 수 있습니다.

[주의] 프레임워크가 PyTorch인 경우, 모델 이름 설정 모델의 프레임워크 종류가 PyTorch인 경우, 모델 생성 시 반드시 PyTorch 모델 아티팩트에 포함된 config.properties에 설정한 모델 이름으로 입력해야 합니다. config.properties에 설정한 모델 이름과 다를 경우, 해당 모델의 엔드포인트 생성이 실패합니다.

[주의] NHN Cloud NAS를 사용하는 경우 AI EasyMaker와 동일한 프로젝트에서 생성된 NHN Cloud NAS만 사용 가능합니다.

[주의] 저장소의 모델 아티팩트 유지 저장소에 저장된 모델 아티팩트를 유지하지 않으면, 해당 모델의 엔드포인트 생성이 실패합니다.

모델 목록

모델 목록이 표시됩니다. 목록의 모델을 선택하면 상세 정보를 확인하고 정보를 변경할 수 있습니다.

  • 이름: 모델 이름과 설명이 표시됩니다. 모델 이름과 설명은 변경을 클릭하여 변경할 수 있습니다.
  • 태그: 모델의 태그가 표시됩니다. 태그는 변경을 클릭하여 변경할 수 있습니다.
  • 모델 아티팩트 경로: 모델의 아티팩트가 저장된 저장소가 표시됩니다.
  • 학습 이름: 학습에서 생성된 모델의 경우, 기반이 되는 학습의 이름이 표시됩니다.
  • 학습 ID: 학습에서 생성된 모델의 경우, 기반이 되는 학습의 아이디가 표시됩니다.
  • 프레임워크: 모델의 프레임워크 정보가 표시됩니다.

모델에서 엔드포인트 생성하기

선택한 모델을 서빙할 수 있는 엔드포인트를 생성합니다.

  1. 엔드포인트로 생성하려는 모델을 목록에서 선택합니다.
  2. 엔드포인트 생성을 클릭합니다.
  3. 엔드포인트 생성 페이지로 이동됩니다. 내용을 확인 후 엔드포인트 생성을 클릭하여 모델을 생성합니다. 엔드포인트 생성에 대한 자세한 내용은 엔드포인트 문서를 참고해 주세요.

모델 삭제

모델을 삭제합니다.

  1. 목록에서 삭제하려는 모델을 선택합니다.
  2. 모델 삭제을 클릭합니다.
  3. 요청된 삭제 작업은 취소할 수 없습니다. 계속 진행하려면 확인을 클릭합니다.

[참고] 연관된 엔드포인트가 존재할 경우 모델 삭제 불가 삭제하려는 모델로 생성된 엔드포인트가 존재하는 경우, 모델을 삭제할 수 없습니다. 삭제하려면 먼저 해당 모델로 생성된 엔드포인트를 삭제한 후 모델을 삭제해 주세요.

엔드포인트

모델을 서빙할 수 있는 엔드포인트를 생성하고 관리합니다.

엔드포인트 생성

  • API Gateway 서비스 활성화
    • AI EasyMaker 엔드포인트는 NHN Cloud API Gateway 서비스를 통해 API 엔드포인트를 생성하고 API를 관리합니다. 엔드포인트 기능을 이용하려면 API Gateway 서비스를 반드시 활성화해야 합니다.
    • API Gateway 서비스에 대한 자세한 내용과 요금은 다음의 문서를 확인하시기 바랍니다.
  • 엔드포인트: 신규 또는 기존 엔드포인트에 스테이지를 추가할지 선택합니다.
    • 신규 엔드포인트로 생성: 신규 엔드포인트를 생성합니다. API Gateway에 신규 서비스와 기본 스테이지로 엔드포인트가 생성됩니다.
    • 기존 엔드포인트에서 신규 스테이지 추가: 기존 엔드포인트의 API Gateway의 서비스에 신규 스테이지로 엔드포인트가 생성됩니다. 스테이지를 추가할 기존 엔드포인트를 선택합니다.
  • 엔드포인트 이름: 엔드포인트 이름을 입력합니다. 엔드포인트 이름은 중복될 수 없습니다.
  • 스테이지 이름: 기존 엔드포인트에서 신규 스테이지를 추가하는 경우, 신규 스테이지 이름을 입력합니다. 스테이지 이름은 중복될 수 없습니다.
  • 설명: 엔드포인트 스테이지 설명을 입력합니다.
  • 모델 정보: 엔드포인트에 배포할 모델 아티팩트의 정보를 입력합니다.
    • 모델: 엔드포인트에 배포하려는 모델을 선택합니다. 모델을 생성하지 않은 경우 모델을 먼저 생성하시기 바랍니다.
    • API Gateway 리소스 경로: 배포되는 모델의 API 리소스 경로를 입력합니다. 예를 들어 /inference로 설정한 경우, POST https://{enpdoint-domain}/inference로 추론 API를 요청할 수 있습니다.
  • 인스턴스 정보: 모델이 서빙될 인스턴스 정보를 입력합니다.
    • 인스턴스 타입: 인스턴스 타입을 선택합니다.
    • 인스턴스 개수: 인스턴스의 구동 수를 입력합니다.
  • 추가 설정 > 태그: 태그를 추가하려면 + 버튼을 클릭하여 Key-Value 형식으로 태그를 입력합니다. 태그는 최대 10개까지 입력할 수 있습니다.

[참고] 엔드포인트 생성 소요 시간 엔드포인트 생성은 몇 분의 시간이 소요될 수 있습니다. 최초 리소스(노트북, 학습, 실험, 엔드포인트) 생성 시 서비스 환경 구성을 위해 추가로 몇 분의 시간이 더 소요됩니다.

[참고] 엔드포인트 생성 시 API Gateway 서비스 리소스 제공 제약 신규 엔드포인트 생성을 하면 API Gateway 서비스를 신규 생성합니다. 기존 엔드포인트에서 신규 스테이지 추가를 하면 API Gateway 서비스에 신규 스테이지를 생성합니다. API Gateway 서비스 리소스 제공 정책의 리소스 제공 정책을 초과한 경우, AI EasyMaker에서의 엔드포인트 생성이 불가할 수 있습니다. 이 경우 API Gateway 서비스 리소스 쿼터를 조정하시기 바랍니다.

엔드포인트 목록

엔드포인트 목록이 표시됩니다. 목록의 엔드포인트를 선택하면 상세 정보를 확인하고 정보를 변경할 수 있습니다.

  • 기본 스테이지 URL: 엔드포인트의 스테이지 중 기본 스테이지의 URL이 표시됩니다.
  • 상태: 엔드포인트의 상태입니다. 주요 상태는 아래 표를 참고해 주세요.

    상태 설명
    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 '배포 실패' 상태인 경우 복구 방법을 참고하여 배포 실패 상태를 복구할 수 있습니다.

엔드포인트 스테이지 생성

기존 엔드포인트에 신규 스테이지를 추가합니다. 신규 스테이지를 생성하여 기본 스테이지의 영향 없이 신규 스테이지를 테스트할 수 있습니다.

  1. 엔드포인트 목록에서 엔드포인트 이름을 클릭합니다.
  2. + 스테이지 생성을 클릭합니다.
  3. 기존 엔드포인트에서 신규 스테이지 추가가 자동 선택되며, 설정 방법은 엔드포인트 생성 내용과 동일합니다.
  4. 요청된 삭제 작업은 취소할 수 없습니다. 계속 진행하려면 확인을 클릭합니다.

엔드포인트 스테이지 목록

엔드포인트 하위에 생성된 스테이지 목록이 표시됩니다. 목록의 스테이지를 선택하면 상세 정보를 확인할 수 있습니다.

  • 상태: 엔드포인트 스테이지의 상태가 표시됩니다. 주요 상태는 아래 표를 참고해 주세요.

    상태 설명
    CREATE REQUESTED 엔드포인트 스테이지 생성이 요청된 상태입니다.
    CREATE IN PROGRESS 엔드포인트 스테이지를 생성 중인 상태입니다.
    DEPLOY IN PROGRESS 엔드포인트 스테이지에 모델을 배포 중인 상태입니다.
    DELETE IN PROGRESS 엔드포인트 스테이지를 삭제 중인 상태입니다.
    ACTIVE 엔드포인트 스테이지가 정상적으로 구동 중인 상태입니다.
    CREATE FAILED 엔드포인트 스테이지 생성에 실패한 상태입니다. 다시 시도해 주세요.
    DEPLOY FAILED 엔드포인트 스테이지 배포에 실패한 상태입니다. 다시 생성을 시도해 주세요.
  • API Gateway 상태: 엔드포인트 스테이지가 배포된 API Gateway의 스테이지 상태가 표시됩니다.

  • 스테이지 기본 스테이지 여부: 기본 스테이지 여부가 표시됩니다.
  • 스테이지 URL: 모델이 서빙된 API Gateway의 스테이지 URL이 표시됩니다.
  • 스테이지 엔드포인트 URL: 스테이지에 배포된 모델의 엔드포인트 URL입니다. API 클라이언트는 표시된 URL로 API를 요청할 수 있습니다.
  • API Gateway 설정 보기: AI EasyMaker가 API Gateway 스테이지에 배포한 설정을 확인하려면, 설정 보기을 클릭합니다.
  • API Gateway 통계 보기: 엔드포인트의 API 통계를 보려면 통계 보기를 클릭합니다.
  • 모델 아이디/이름/아티팩트 경로: 스테이지에 배포된 모델의 정보를 표시합니다.
  • 인스턴스 타입: 모델이 서빙되는 엔드포인트 인스턴스 타입이 표시됩니다.
  • 실행 중인 워크 노드/파드 수: 엔드포인트에서 사용 중인 노드와 파드 수가 표시됩니다.

[주의] 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의 스테이지 설정에서 API Gateway 리소스 경로에 설정된 '백엔드 엔드포인트 URL 재정의'를 비활성화하거나 URL을 변경하지 않도록 합니다. 변경하면 엔드포인트의 추론 API 호출에 실패할 수 있습니다. 위의 주의 사항 외 다른 설정은 필요에 따라 API Gateway에서 제공하는 기능을 이용할 수 있습니다. 자세한 API Gateway 사용에 대한 내용은 API Gateway 콘솔 가이드를 참고해 주세요.

[참고] 스테이지의 API Gateway '배포 실패' 상태인 경우 복구 방법 일시적인 문제로 AI EasyMaker 엔드포인트의 스테이지 설정이 API Gateway 스테이지에 배포되지 않은 경우, 배포 실패 상태로 표시됩니다. 이 경우, 스테이지 목록에서 스테이지 선택 > 하단 상세 화면의 API Gateway 설정 보기 > '스테이지 배포'를 클릭하여 API Gateway 스테이지를 수동으로 배포할 수 있습니다. 위 가이드로도 배포 상태가 복구되지 않는 경우 고객 센터로 문의해 주세요.

엔드포인트 추론 호출

  1. 엔드포인트 > 엔드포인트 스테이지에서 스테이지를 클릭하면, 하단에 스테이지 상세화면이 표시됩니다.
  2. 상세화면의 스테이지 엔드포인트 URL을 확인합니다.
  3. HTTP POST Method로 스테이지 엔드포인트 URL을 호출하면, 추론 API가 호출됩니다.
    • 사용자가 작성한 알고리즘에 따라 추론 API의 요청, 응답 사양은 다릅니다.

      // 추론 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는 스테이지 기능을 활용하여 모델을 배포하는 것을 권장합니다.

  1. 실제 서비스로 운영 중인 스테이지는 기본 스테이지에서 운영합니다.
  2. 신규 모델로 교체하는 경우, 기존 엔드포인트에 신규 스테이지를 추가합니다.
  3. 신규 스테이지에서 교체된 모델로 엔드포인트 서비스에 문제가 없는지 확인합니다.
  4. 기본 스테이지 변경을 클릭합니다.
  5. 기본 스테이지로 변경하는 신규 스테이지를, 변경할 스테이지에서 선택합니다.
  6. 변경 요청 작업은 취소할 수 없습니다. 계속 진행하려면 확인을 클릭합니다.
  7. 변경할 스테이지가 기본 스테이지로 변경되며, 기존 기본 스테이지의 리소스는 자동으로 삭제됩니다.

엔드포인트 스테이지 삭제

  1. 엔드포인트 목록에서 엔드포인트 이름을 클릭하여 엔드포인트 스테이지 목록으로 이동합니다.
  2. 엔드포인트 스테이지 목록에서 삭제할 엔드포인트 스테이지를 선택합니다. 기본 스테이지는 삭제할 수 없습니다.
  3. 스테이지 삭제을 클릭합니다.
  4. 요청된 삭제 작업은 취소할 수 없습니다. 계속 진행하려면 확인을 클릭합니다.

[주의] 엔드포인트 스테이지 삭제 시 API Gateway 서비스의 스테이지 삭제 AI EasyMaker의 엔드포인트 스테이지를 삭제하면, 엔드포인트의 스테이지가 배포된 API Gateway 서비스의 스테이지도 삭제됩니다. 삭제되는 API Gateway 스테이지에 운영 중인 API가 존재하는 경우, API 호출이 불가하므로 주의해 주세요.

엔드포인트 삭제

엔드포인트를 삭제합니다.

  1. 엔드포인트 목록에서 삭제하려는 엔드포인트를 선택합니다.
  2. 엔드포인트 하위에 기본 스테이지를 제외한 스테이지가 존재하는 경우, 엔드포인트를 삭제할 수 없습니다. 먼저 다른 스테이지를 삭제한 후 엔드포인트를 삭제해 주세요.
  3. 엔드포인트 삭제를 클릭합니다.
  4. 요청된 삭제 작업은 취소할 수 없습니다. 계속 진행하려면 확인을 클릭합니다.

[주의] 엔드포인트 삭제 시 API Gateway 서비스 삭제 AI EasyMaker의 엔드포인트를 삭제하면, 엔드포인트가 배포된 API Gateway 서비스도 삭제됩니다. 삭제되는 API Gateway 서비스에 운영 중인 API가 존재하는 경우, API 호출이 불가하므로 주의해 주세요.

부록

1. NHN Cloud Object Storage에 AI EasyMaker 시스템 계정 권한 추가

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 시스템 계정의 읽기/쓰기 권한을 추가하려면 다음 내용을 참고해 주세요.

  1. [학습] 또는 [모델] 탭 > AI EasyMaker 시스템 계정 정보을 클릭합니다.
  2. AI EasyMaker 시스템 계정 정보인 AI EasyMaker 테넌트 IDAI EasyMaker API 사용자 ID 를 보관합니다.
  3. NHN Cloud Object Storage 콘솔로 이동합니다.
  4. 특정 프로젝트 또는 특정 사용자에게 읽기/쓰기 허용 문서를 참고하여 NHN Cloud Object Storage 콘솔에서 AI EasyMaker 시스템 계정에 필요한 읽기 및 쓰기 허용 권한을 추가합니다.

AI EasyMaker 서비스에서 발생하는 로그, 이벤트를 NHN Cloud Log & Crash Search 서비스에 저장할 수 있습니다. Log & Crash Search 서비스에 로그를 저장하려면, Log & Crash 서비스를 활성화해야 하며 별도 이용 요금이 부과됩니다.

로그 조회

  1. Log & Crash Search 서비스 콘솔 페이지로 이동합니다.
  2. Log & Crash Search 서비스에서 검색 조건을 입력하여 로그들을 조회합니다.
    • AI EasyMaker 학습 로그 질의: category 필드가 "easymaker.training"인 로그를 조회합니다.
      • 질의문: category:"easymaker.training"
    • AI EasyMaker 엔드포인트 로그 질의: category 필드가 "easymaker.inference"인 로그를 조회합니다.
      • 질의문: category:"easymaker.inference"
    • AI EasyMaker 로그 전체 조회 질의: logType 필드가 "NNHCloud-AIEasyMaker"인 로그를 조회합니다.
      • 질의문: logType:"NHNCloud-AIEasyMaker"
  3. Log & Crash Search 서비스의 자세한 이용 방법은 Log & Crash Search 서비스의 콘솔 가이드를 참고해 주세요.

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 구분(요청: Inference.Request, 응답:Inference.Response)
    modelName 추론 대상 모델 이름

3. 학습 알고리즘 작성 가이드

학습에 사용될 알고리즘 스크립트 작성과 결과 지표 확인을 위해 필요한 방법을 설명합니다.

하이퍼파라미터

  • 콘솔을 통해 입력받은 Key-Value 형식의 값입니다.
  • 엔트리 포인트 실행 시, 실행 인자로 전달됩니다.

아래 예시처럼, 학습 생성 시 입력한 하이퍼파라미터 값을 활용할 수 있습니다.
하이퍼파리미터 입력 화면

    import argparse

    def parse_hyperparameters():
        parser = argparse.ArgumentParser()

        # 입력한 하이퍼파라미터 파싱
        parser.add_argument("--epochs", type=int, default=500)
        parser.add_argument("--batch_size", type=int, default=32)
        parser.add_argument("--model_version", type=str, default="1.0.0")
        ...

        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
    
    dataset_dir = os.environ.get("EM_DATASET_TRAIN")
    train_data = read_data(dataset_dir, "train.csv")
    
    model = ... # 입력한 데이터를 이용해 모델 구현
    
    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])
    

텐서보드 로그 확인

TOP