Jupyter 노트북 만들기

이 튜토리얼에서는 Jupyter 노트북에서 Vertex AI SDK로 Vertex AI Workbench 인스턴스를 사용하여 예측을 수행합니다.

이 섹션에서는 Vertex AI Workbench 인스턴스에서 Jupyter 노트북을 만드는 방법을 보여줍니다. Vertex AI Workbench 인스턴스는 전체 데이터 과학 워크플로를 위한 Jupyter 노트북 기반의 개발 환경입니다. Vertex AI Workbench 인스턴스는 JupyterLab과 함께 사전 패키징되어 있으며 TensorFlow 및 PyTorch 프레임워크 지원 기능이 포함된 딥 러닝 패키지 제품군이 사전 설치되어 있습니다. 자세한 내용은 Vertex AI Workbench 인스턴스 소개를 참조하세요.

Vertex AI Workbench에서 노트북을 만든 후 Python 코드를 순차적으로 실행하여 예측 생성을 위한 대부분의 작업을 수행합니다.

Vertex AI Workbench 인스턴스 생성

Vertex AI Workbench 인스턴스를 만들려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서 Google Cloud 프로젝트를 아직 열지 않은 경우 지금 엽니다.

  2. Google Cloud 콘솔에서 Vertex AI Workbench 인스턴스 페이지로 이동합니다.

    인스턴스로 이동

  3. Notebooks API를 사용 설정하는 옵션이 표시되면 사용 설정을 클릭합니다. 사용 설정 프로세스가 완료되는 데 잠시 시간이 걸릴 수 있습니다.

  4. 새로 만들기를 클릭합니다.

  5. 새 인스턴스 대화상자에서 이름에 인스턴스 이름을 입력합니다.

  6. 리전에서 us-central1(아이오와)을 선택합니다.

  7. 영역으로 us-central1-a를 선택합니다.

  8. 만들기를 클릭합니다. 인스턴스에 대해 자세히 알아보려면 인스턴스 목록에 표시된 후 해당 이름을 클릭하여 속성을 확인합니다.

노트북 준비

Vertex AI Workbench 인스턴스는 이미 Google Cloud 프로젝트를 사용하도록 인증되어 있습니다. 그러나 Python용 Vertex AI SDK는 직접 설치하고 초기화해야 합니다. 이 섹션에서 해당 단계를 안내합니다.

노트북을 만든 후 이를 사용하여 이 튜토리얼의 코드 스니펫을 순차적으로 입력하고 실행합니다. 각 코드 스니펫을 순서에 따라 개별적으로 실행해야 합니다.

노트북 만들기 및 열기

노트북은 이 튜토리얼의 코드를 실행하는 위치입니다. 이 파일은 확장자가 .ipynb인 파일입니다. 만들 때는 제목이 없습니다. 파일을 연 후에 이름을 변경할 수 있습니다. 노트북을 만들고 열려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서 인스턴스 페이지로 이동합니다.

    인스턴스로 이동

  2. 인스턴스 이름 옆에 있는 JupyterLab 열기를 클릭합니다.

    Vertex AI Workbench 인스턴스가 JupyterLab 환경을 엽니다.

  3. JupyterLab에서 파일 > 새로 만들기 > 노트북을 선택합니다.

    새 노트북 파일이 열립니다.

  4. JupyterLab의 왼쪽 탐색 창에서 Untitled.ipynb라는 새 노트북을 찾습니다. 이름을 바꾸려면 노트북 이름을 마우스 오른쪽 버튼으로 클릭하고 이름 바꾸기를 클릭한 후 새 이름을 입력합니다.

Python용 Vertex AI SDK 설치

노트북을 연 후 Python용 Vertex AI SDK를 설치해야 합니다. Python용 Vertex AI SDK로 Vertex AI API를 호출하여 데이터 세트를 만들고, 모델을 만들고, 모델을 학습 및 배포하고, 모델로 예측을 수행합니다. 자세한 내용은 Python용 Vertex AI SDK 사용을 참조하세요.

Python용 Vertex AI SDK를 설치하면 종속된 다른 Google Cloud SDK도 설치됩니다. 이 튜토리얼에서는 이러한 SDK 중 다음 두 개가 사용됩니다.

  • Cloud Storage - Python용 Vertex AI SDK를 사용해서 Vertex AI API 호출을 수행하면 Vertex AI가 Cloud Storage 버킷에 아티팩트를 저장합니다. 이 버킷을 스테이징 버킷이라고 부릅니다. Python용 Vertex AI SDK를 초기화할 때 스테이징 버킷을 지정합니다. 자세한 내용은 Google Cloud Storage API용 Python 클라이언트를 참조하세요.

  • BigQuery - Vertex AI는 BigQuery 공개 데이터 세트를 사용하여 모델을 학습합니다. 이 튜토리얼에서 사용되는 데이터 세트에 액세스하고 다운로드하려면 BigQuery SDK를 설치해야 합니다. 자세한 내용은 BigQuery API 클라이언트 라이브러리를 참조하세요.

Python용 Vertex AI SDK 및 종속된 SDK를 설치하려면 다음 코드를 실행합니다.

# Install the Vertex AI SDK
! pip3 install --upgrade --quiet google-cloud-aiplatform

--quiet 플래그는 출력을 숨기고 오류가 있는 경우 오류만 표시합니다. 느낌표(!)는 셸 명령어임을 나타냅니다.

새 노트북에서 실행하는 첫 번째 코드이기 때문에 노트북 상단의 비어 있는 코드 셀에 입력합니다. 코드 셀에 코드를 입력한 후  선택한 셀 실행 및 진행을 클릭하거나 단축키 Shift + Enter를 사용하여 코드를 실행합니다.

코드를 실행하여 SDK를 설치합니다.

이 튜토리얼을 진행하면서 가장 최근에 실행된 코드 아래에 자동으로 나타나는 빈 코드 셀에서 코드를 실행합니다. 새 코드 셀을 수동으로 추가하려면 노트북 파일의  아래 셀 삽입 버튼을 클릭합니다.

새 코드 셀을 추가합니다.

프로젝트 ID 및 리전 설정

이 단계에서는 프로젝트 ID 및 리전을 설정합니다. 이 튜토리얼 뒷부분에서 쉽게 참조할 수 있도록 우선 변수에 할당합니다. 그런 후 gcloud config 명령어를 사용하여 Google Cloud 세션에 대해 설정합니다. 나중에 이 값과 Cloud Storage 버킷 URI를 사용하여 Python용 Vertex AI SDK를 초기화합니다.

프로젝트 ID 설정

프로젝트 ID를 설정하려면 다음을 수행합니다.

  1. Google Cloud 프로젝트 ID를 찾습니다. 자세한 내용은 프로젝트 ID 찾기를 참조하세요.

  2. 노트북의 코드 셀에서 다음을 실행합니다. 코드에서 PROJECT_ID를 바로 전에 찾은 프로젝트 ID로 바꿉니다. 이 명령어로 생성되는 출력은 Updated property [core/project].입니다.

    project_id = "PROJECT_ID"  # @param {type:"string"}
    # Set the project id
    ! gcloud config set project ${project_id}
    

리전 설정

이 튜토리얼에서는 us-central1 리전을 사용합니다. 리전을 설정하려면 다음을 수행합니다.

  1. 다음 코드를 실행하여 Vertex AI에 사용된 region 변수를 us-central1로 설정합니다. 이 명령어는 출력을 생성하지 않습니다. 자세한 내용은 위치 선택을 참조하세요.

    region = "us-central1"  # @param {type: "string"}
    

Cloud Storage 버킷 만들기

이 튜토리얼에는 아티팩트를 스테이징하기 위해 Vertex AI에 사용되는 Cloud Storage 버킷이 필요합니다. Vertex AI는 사용자가 만든 데이터 세트와 연결된 데이터 및 모델 리소스를 스테이징 버킷에 저장합니다. 이 데이터는 보관되며 여러 세션에서 사용할 수 있습니다. 이 튜토리얼에서 Vertex AI는 데이터 세트도 스테이징 버킷에 저장합니다. Python용 Vertex AI SDK를 초기화할 때 스테이징 버킷을 지정합니다.

모든 Cloud Storage 버킷 이름은 전역적으로 고유해야 합니다. 사용된 이름을 선택하면 버킷을 만드는 명령어가 실패합니다. 다음 코드는 날짜 시간 스탬프와 프로젝트 이름을 사용해서 고유한 버킷 이름을 만듭니다. gs://에 버킷 이름을 추가하여 Cloud Storage 버킷에 대한 URI를 만듭니다. echo 셸 명령어로 URI를 표시하여 올바르게 생성되었는지 확인할 수 있습니다.

  1. 버킷 이름과 URI를 설정하고 다음 코드를 실행합니다. 마지막 줄에는 Cloud Storage 버킷의 URI가 표시됩니다.

    bucket_name = "bucket-name-placeholder"  # @param {type:"string"}
    bucket_uri = f"gs://{bucket_name}"
    
    from datetime import datetime
    timestamp = datetime.now().strftime("%Y%m%d%H%M%S")
    
    if bucket_name == "" or bucket_name is None or bucket_name == "bucket-name-placeholder":
        bucket_name = project_id + "aip-" + timestamp
        bucket_uri = "gs://" + bucket_name
    ! echo $bucket_uri
    
  2. Cloud Storage 클라이언트 라이브러리 및 버킷 URI를 사용하여 버킷을 만들려면 다음 코드를 실행합니다. 이 코드는 출력을 생성하지 않습니다.

    from google.cloud import storage
    client = storage.Client(project=project_id)
    
    # Create a bucket
    bucket = client.create_bucket(bucket_name, location=region)
    
  3. 성공적으로 생성된 버킷을 확인하려면 다음을 실행합니다.

    print("Bucket {} created.".format(bucket.name))
    

Python용 Vertex AI SDK 초기화

Python용 Vertex AI SDK를 초기화하려면 먼저 aiplatform 라이브러리를 가져옵니다. 그런 후 aiplatform.init을 호출하고 다음 매개변수의 값을 전달합니다.

  • project - project는 Python용 Vertex AI SDK를 사용하여 Vertex AI API를 호출할 때 사용할 Google Cloud 프로젝트를 지정합니다. 이 튜토리얼에서는 해당 이름으로 Google Cloud 프로젝트를 지정합니다. 프로젝트 번호로 프로젝트를 지정할 수도 있습니다.

  • location - location은 API를 호출할 때 사용할 Google Cloud 리전을 지정합니다. 위치를 지정하지 않으면 Python용 Vertex AI SDK에서 us-central1을 사용합니다.

  • staging_bucket - staging_bucket은 Python용 Vertex AI SDK를 사용할 때 아티팩트를 스테이징하는 데 사용되는 Cloud Storage 버킷을 지정합니다. URI가 gs://로 시작되는 버킷을 지정합니다. 이 튜토리얼에서는 앞서 Cloud Storage 버킷 만들기에서 만든 URI를 사용합니다.

Google Cloud 프로젝트, 리전, 스테이징 버킷을 설정하려면 다음 명령어를 실행합니다. 이 명령어는 출력을 생성하지 않습니다.

from google.cloud import aiplatform

# Initialize the Vertex AI SDK
aiplatform.init(project=project_id, location=region, staging_bucket=bucket_uri)

BigQuery 초기화

이 튜토리얼에서는 펭귄의 BigQuery 공개 데이터 세트를 사용하여 모델을 학습시킵니다. Vertex AI가 모델을 학습시킨 후 펭귄의 특성을 나타내는 매개변수를 지정하면 모델에서 해당 특성을 사용하여 펭귄의 종을 예측합니다. 공개 데이터 세트에 대한 자세한 내용은 BigQuery 공개 데이터 세트를 참조하세요.

BigQuery 데이터 세트를 사용하기 전에 프로젝트 ID로 BigQuery를 초기화해야 합니다. 이렇게 하려면 다음 명령어를 실행합니다. 이 명령어는 출력을 생성하지 않습니다.

from google.cloud import bigquery

# Set up BigQuery client
bq_client = bigquery.Client(project=project_id)