실행자를 사용한 노트북 파일 실행
이 페이지에서는 Vertex AI Workbench 관리형 노트북 인스턴스에서 실행자를 사용하여 노트북 파일을 일회성 실행으로 실행하거나 일정에 따라 실행하는 방법을 설명합니다.
개요
실행자를 사용하면 Vertex AI 커스텀 학습으로 실행할 노트북(ipynb) 파일을 제출할 수 있습니다. 노트북 파일을 실행할 때마다 매개변수 값을 설정할 수 있습니다. 또한 반복 일정에 따라 노트북 파일을 실행할 수도 있습니다. 실행이 완료되면 실행 결과를 보고 이를 다른 사람과 공유할 수 있습니다.
노트북 파일이 Vertex AI 커스텀 학습에 제출되면 Vertex AI에서 학습 작업의 수명 주기에 따라 노트북 파일을 실행하는 새 커스텀 학습 작업을 만듭니다.
실행자가 실행하는 노트북 코드에 대한 요구사항
실행자에서 실행할 노트북 코드를 작성할 때는 코드가 관리형 노트북 인스턴스의 프로젝트와 별도의 테넌트 프로젝트에서 실행된다는 점을 명심하세요. 이 섹션에서는 코드가 실행자에서 실행될 때 코드에 미치는 영향을 설명합니다.
실행자가 패키지 설치를 사용할 수 있는지 확인
사용 중인 관리형 노트북 커널에 아직 포함되지 않은 패키지 설치를 사용하는 노트북의 경우 다음 방법 중 하나를 사용하여 실행자에서 노트북 코드에 패키지를 사용할 수 있는지 확인합니다.
패키지가 이미 설치된 커스텀 컨테이너를 사용한 후 해당 커스텀 컨테이너에서 노트북을 실행합니다. 실행자로 커스텀 컨테이너를 사용하기 위한 요구사항을 참조하세요.
노트북 파일 코드에 패키지를 설치합니다. 노트북 파일이 실행될 때마다 패키지를 설치하지만 이를 통해 노트북을 실행할 때 선택한 컨테이너에서 패키지를 사용할 수 있습니다.
명시적 프로젝트 선택 사용
실행자가 실행하는 코드를 통해 리소스에 액세스할 때 실행자가 올바른 Google Cloud 프로젝트에 연결되지 않을 수 있습니다. 권한 오류가 발생하는 경우 잘못된 프로젝트에 연결하는 것이 문제일 수 있습니다.
이 문제는 실행자가 관리형 노트북 인스턴스의 Google Cloud 프로젝트에서 직접 코드를 실행하지 않기 때문에 발생합니다. 대신 실행자는 Google에서 관리되는 테넌트 프로젝트 내의 Vertex AI 커스텀 학습에서 코드를 실행합니다. 따라서 노트북 코드의 환경에서 프로젝트 ID를 유추하지 마세요. 프로젝트 ID를 명시적으로 지정하세요.
코드에 프로젝트 ID를 하드코딩하지 않으려면 CLOUD_ML_PROJECT_ID
환경 변수를 참조하면 됩니다.
Vertex AI는 커스텀 학습을 시작한 프로젝트의 프로젝트 번호를 포함하도록 모든 커스텀 학습 컨테이너에서 이 환경 변수를 설정합니다. 많은 Google Cloud 도구는 프로젝트 ID를 가져올 때마다 해당 프로젝트 번호를 그대로 사용합니다.
예를 들면 Google BigQuery용 Python 클라이언트를 사용하여 동일한 프로젝트의 BigQuery 테이블에 액세스하려는 경우 노트북 코드에서 프로젝트를 유추하지 마세요.
암시적 프로젝트 선택
from google.cloud import bigquery
client = bigquery.Client()
대신 프로젝트를 명시적으로 선택하는 코드를 사용합니다.
명시적 프로젝트 선택
import os
from google.cloud import bigquery
project_number = os.environ["CLOUD_ML_PROJECT_ID"]
client = bigquery.Client(project=project_number)
서비스 계정을 사용한 액세스 인증
기본적으로 관리형 노트북 인스턴스는 동일한 프로젝트에 있는 리소스에 액세스할 수 있습니다. 따라서 노트북 파일의 코드를 수동으로 실행할 경우 이러한 리소스에 추가 인증이 필요하지 않습니다. 그러나 실행자는 별도의 테넌트 프로젝트에서 실행되므로 실행자에는 동일한 기본 액세스 권한이 없습니다.
또한, 실행자는 최종 사용자 인증 정보를 사용하여 gcloud auth login
명령어와 같은 리소스에 대한 액세스를 인증할 수 없습니다.
이 문제를 해결하려면 노트북 파일 코드에서 서비스 계정을 통해 리소스에 대한 액세스를 인증합니다.
그런 후 실행 또는 일정을 만들 때 서비스 계정을 지정합니다.
예를 들어 실행을 만드는 동안 다음 단계를 완료하세요.
실행자에 노트북 제출 대화상자에서 고급 옵션을 펼칩니다.
Identity and API access 섹션에서 Vertex AI Training의 기본 서비스 계정 사용 옆에 있는 체크표시를 선택 해제하고 사용할 특정 서비스 계정을 입력합니다.
실행 만들기 단계의 전체 목록을 참조하세요.
커스텀 컨테이너를 사용할 때의 요구사항
실행자를 사용하여 커스텀 컨테이너에서 노트북 코드를 실행할 수 있습니다.
커스텀 컨테이너에는 실행자가 노트북 코드를 Vertex AI 커스텀 학습 작업으로 실행할 수 있게 해주는 nbexecutor
확장 프로그램이 포함되어 있어야 합니다.
커스텀 컨테이너에 nbexecutor
확장 프로그램이 있는지 확인하려면 파생 컨테이너 이미지를 만들도록 Deep Learning Containers 컨테이너 이미지 중 하나를 수정할 수 있습니다.
Deep Learning Containers 이미지에는 nbexecutor
확장 프로그램이 포함되어 있습니다.
시작하기 전에
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Notebooks and Vertex AI APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Notebooks and Vertex AI APIs.
- 아직 관리형 노트북 인스턴스를 만들지 않은 경우 관리형 노트북 인스턴스를 만듭니다.
필요한 역할
인스턴스의 서비스 계정에 Vertex AI Workbench 실행자와 상호작용하는 데 필요한 권한이 있는지 확인하려면 관리자에게 인스턴스의 서비스 계정에 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
-
노트북 뷰어(
roles/notebooks.viewer
) -
Vertex AI 사용자(
roles/aiplatform.user
) -
스토리지 관리자(
roles/storage.admin
)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
관리자는 커스텀 역할이나 다른 사전 정의된 역할을 통해 인스턴스의 서비스 계정에 필요한 권한을 부여할 수도 있습니다.
JupyterLab 열기
JupyterLab을 열고 실행할 노트북 파일을 준비하려면 다음 단계를 완료하세요.
노트북(ipynb) 파일을 업로드하거나 기존 파일을 열거나 새 노트북 파일을 열고 노트북에 실행할 코드를 추가합니다.
노트북 파일의 코드가 실행자 사용 요구사항을 충족하는지 확인합니다.
실행 만들기
노트북 파일을 실행하는 실행을 만들려면 다음 단계를 수행합니다. 이러한 단계에서는 실행 예약 및 일회성 실행 만들기가 모두 처리됩니다.
관리형 노트북 인스턴스의 JupyterLab 사용자 인터페이스에서 실행할 노트북 파일을 엽니다.
실행 버튼을 클릭합니다.
실행자에 노트북 제출 대화상자의 실행 이름 필드에 실행 이름을 입력합니다.
머신 유형 및 가속기 유형을 선택합니다.
환경을 선택합니다.
유형 필드에서 일회성 실행을 선택하거나 일정 기반 반복 실행을 선택하고 실행 예약 대화상자를 완료합니다.
고급 옵션에서 노트북을 실행할 리전을 선택합니다.
Cloud Storage 버킷 필드에서 사용 가능한 Cloud Storage 버킷을 선택하거나 새 버킷의 이름을 입력하고 만들기 및 선택을 클릭합니다. 실행자는 이 Cloud Storage 버킷에 노트북 출력을 저장합니다.
선택사항: 노트북 매개변수화 섹션의 입력 매개변수 텍스트 상자에서 쉼표로 구분된 노트북 매개변수를 추가합니다(예:
optimizer="SGD",learning_rate=0.01
).노트북 매개변수 사용 방법에 대해 자세히 알아보세요.
선택사항: Identity and API access 섹션에서 Vertex AI Training의 기본 서비스 계정 사용을 선택하거나 체크표시를 선택 해제하고 사용할 특정 서비스 계정을 입력합니다.
선택사항: 네트워킹 섹션에서 Virtual Private Cloud 네트워크를 지정합니다. 실행에 VPC 네트워크를 사용하려면 비공개 서비스 액세스 연결이 필요합니다.
제출을 클릭합니다.
일회성 실행이 즉시 시작됩니다. 예약된 실행은 설정한 일정에 따라 자동으로 실행됩니다.
Google Cloud Console의 Vertex AI Workbench 페이지에 있는 실행 탭에서 완료된 실행을 보고 일정 탭에서 일정을 볼 수 있습니다.
실행된 노트북 파일 보기, 공유, 가져오기
관리형 노트북 인스턴스의 JupyterLab 사용자 인터페이스를 사용하면 실행된 노트북의 출력을 보고, 결과를 다른 사용자와 공유하며, 실행된 노트북 파일을 JupyterLab으로 가져올 수 있습니다.
노트북 실행 결과 보기
Google Cloud Console 또는 JupyterLab 사용자 인터페이스에서 노트북 실행 결과를 볼 수 있습니다.
콘솔
Google Cloud Console에서 Vertex AI Workbench 페이지로 이동하고 실행 탭을 클릭합니다.
결과가 포함된 리전을 선택합니다.
확인할 실행 옆에 있는 결과 보기를 클릭합니다.
결과가 새 브라우저 탭으로 열립니다.
JupyterLab
JupyterLab의 탐색 메뉴에서 노트북 실행자 버튼을 클릭합니다.
실행 탭을 클릭합니다.
보려는 실행 아래에서 결과 보기를 클릭합니다.
결과가 새 브라우저 탭으로 열립니다.
노트북 실행 결과 공유
노트북 실행이 포함된 Cloud Storage 버킷에 액세스 권한을 제공하여 실행 결과를 공유할 수 있습니다. 이 액세스 권한을 제공하면 동일한 Cloud Storage 버킷의 다른 리소스에 대한 액세스 권한도 사용자에게 부여됩니다. 실행 결과를 공유하려면 다음 단계를 완료합니다.
콘솔
Google Cloud Console에서 Vertex AI Workbench 페이지로 이동하고 실행 탭을 클릭합니다.
실행이 포함된 리전을 선택합니다.
공유할 실행 옆에서
공유 버튼을 클릭합니다.대화상자의 안내에 따라 노트북 실행이 포함된 Cloud Storage 버킷에 대한 액세스 권한을 사용자에게 부여합니다.
JupyterLab
관리형 노트북 인스턴스의 JupyterLab 사용자 인터페이스의 탐색 메뉴에서 노트북 실행자 버튼을 클릭합니다.
실행 탭을 클릭합니다.
공유할 실행 옆에 있는
옵션 메뉴를 클릭하고 실행 결과 공유를 선택합니다.대화상자의 안내에 따라 노트북 실행이 포함된 Cloud Storage 버킷에 대한 액세스 권한을 사용자에게 부여합니다.
실행된 노트북을 JupyterLab으로 가져오기
실행된 노트북을 JupyterLab으로 가져오려면 다음 단계를 완료합니다.
관리형 노트북 인스턴스의 JupyterLab 사용자 인터페이스의 탐색 메뉴에서 노트북 실행자 버튼을 클릭합니다.
실행 탭을 클릭합니다.
실행된 노트북이 포함된 리전을 선택합니다.
가져오려는 실행 옆에 있는
옵션 메뉴를 클릭하고 실행된 노트북 가져오기을 선택합니다.노트북을 열려는 커널을 선택합니다.
실행자가 JupyterLab에서 실행된 노트북 파일을 열고 이 노트북 파일을 JupyterLab 파일 브라우저에서 imported_notebook_jobs이라는 폴더에 저장합니다.
일정 보기 또는 삭제
Google Cloud Console 또는 관리형 노트북 인스턴스의 JupyterLab 사용자 인터페이스를 사용하여 일정을 보고 삭제할 수 있습니다.
일정 보기
일정을 보고 일정의 빈도 설정을 확인하거나 노트북 실행 결과를 볼 수 있습니다.
콘솔
Google Cloud Console에서 Vertex AI Workbench 페이지로 이동하고 일정 탭을 클릭합니다.
일정이 포함된 리전을 선택합니다.
일정 이름을 클릭하여 일정 세부정보 페이지를 엽니다.
실행 이름 옆에 있는 결과 보기를 클릭하여 실행된 노트북 파일을 엽니다. 실행자가 새 브라우저 탭에서 결과를 엽니다.
JupyterLab
관리형 노트북 인스턴스의 JupyterLab 사용자 인터페이스의 탐색 메뉴에서 노트북 실행자 버튼을 클릭합니다.
일정 탭을 클릭합니다.
최신 실행을 보려면 확인할 실행에서 최신 실행 결과 보기를 클릭합니다. 실행자가 새 브라우저 탭에서 결과를 엽니다.
모든 일정을 보려면 일정 이름을 클릭합니다. 실행자가 Google Cloud Console에서 일정 세부정보 페이지를 엽니다.
실행 이름 옆에 있는 결과 보기를 클릭하여 실행된 노트북 파일을 엽니다. 실행자가 새 브라우저 탭에서 결과를 엽니다.
일정 삭제
일정을 삭제해도 해당 일정에서 생성된 실행은 삭제되지 않습니다.
콘솔
Google Cloud Console에서 Vertex AI Workbench 페이지로 이동하고 일정 탭을 클릭합니다.
일정이 포함된 리전을 선택합니다.
삭제할 일정을 선택합니다.
삭제를 클릭합니다.
JupyterLab
관리형 노트북 인스턴스의 JupyterLab 사용자 인터페이스의 탐색 메뉴에서 노트북 실행자 버튼을 클릭합니다.
일정 탭을 클릭합니다.
삭제할 일정의 이름을 클릭합니다. 실행자가 Google Cloud Console에서 일정 세부정보 페이지를 엽니다.
삭제를 클릭합니다.
Vertex AI 커스텀 학습 작업
노트북 실행은 Vertex AI 커스텀 학습에서 실행되기 때문에 Vertex AI에서 커스텀 학습 작업으로 노출됩니다. Google Cloud 콘솔의 Vertex AI Training 페이지에 있는 커스텀 작업 탭에서 이러한 커스텀 학습 작업을 볼 수 있습니다. Vertex AI 커스텀 학습 작업 사용 방법을 자세히 알아보세요.
다음 단계
매개변수로 노트북 실행을 실행하는 방법 알아보기
Vertex AI 커스텀 학습 자세히 알아보기