모델 통합모델 에셋Externally hosted models예시: Vertex AI 모델 통합

본 번역은 검증되지 않았습니다. AIP를 통해 영문원문으로부터 번역되었습니다.

예시: Vertex AI 모델 통합

아래 문서는 Google의 Vertex AI에 호스팅된 모델에 대한 사용자 정의 연결을 위한 예시 설정 및 모델 어댑터를 제공합니다.

단계별 가이드는 모델 어댑터 생성 방법외부 호스팅 모델에 대한 연결 생성 방법에 관한 문서를 참조하십시오.

예시 Vertex AI 탭 모델 어댑터

먼저, Code Repositories 애플리케이션의 모델 어댑터 라이브러리를 사용하여 모델 어댑터를 게시하고 태그를 달아주십시오. 아래 모델 어댑터는 Vertex AI SDK for Python 및 프레임워크를 사용하여 Vertex AI에 호스팅된 모델에 대한 연결을 구성합니다. 아래 코드는 Python 3.8.17, pandas 1.5.3, google-cloud-aiplatform 1.32.0, google-auth 2.23.0, google-auth-oauthlib 1.1.0 버전에서 테스트되었습니다.

이 모델 어댑터는 다음 가정을 기반으로 합니다:

  • 이 모델 어댑터는 이 모델에 제공되는 데이터가 탭 형식임을 가정합니다.
  • 이 모델 어댑터는 입력 데이터를 JSON으로 직렬화하고 이 데이터를 호스팅된 Vertex AI 모델로 전송합니다.
  • 이 모델 어댑터는 응답이 JSON에서 판다스 데이터프레임으로 역직렬화 가능하다고 가정합니다.
  • 이 모델 어댑터는 Vertex AI 클라이언트를 구성하기 위해 네 가지 입력을 받습니다.
    • region_name - 연결 구성으로 제공됩니다.
    • project_id - 연결 구성으로 제공됩니다.
    • endpoint_id - 연결 구성으로 제공됩니다.
    • google_application_credentials - 자격증명으로 제공됩니다.
Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 import palantir_models as pm import models_api.models_api_executable as executable_api from google.oauth2 import service_account from google.cloud import aiplatform from google.api_core import exceptions import json import pandas as pd import logging from typing import Optional logger = logging.getLogger(__name__) class VertexAITabularAdapter(pm.ExternalModelAdapter): """ :display-name: Vertex AI 테이블 모델 어댑터 :description: 탭 형식의 입력 및 출력 데이터를 기대하는 Vertex AI 모델을위한 기본 모델 어댑터입니다. """ def __init__(self, project_id, region_name, endpoint_id, google_application_credentials): self.endpoint_id = endpoint_id # google_application_credentials는 Google 제공의 유효한 문자열 표현의 비밀 키 파일로 예상됩니다. credentials = service_account.Credentials.from_service_account_info( json.loads(google_application_credentials), scopes=["https://www.googleapis.com/auth/cloud-platform"] ) aiplatform.init(project=project_id, location=region_name, credentials=credentials) @classmethod def init_external(cls, external_context) -> "pm.ExternalModelAdapter": project_id = external_context.external_model.connection_configuration["project_id"] region_name = external_context.external_model.connection_configuration["region_name"] endpoint_id = external_context.external_model.connection_configuration["endpoint_id"] google_application_credentials = external_context.resolved_credentials["google_application_credentials"] return cls( project_id, region_name, endpoint_id, google_application_credentials ) @classmethod def api(cls): inputs = {"df_in": pm.Pandas()} outputs = {"df_out": pm.Pandas()} return inputs, outputs def predict(self, df_in): instances = df_in.to_dict(orient='records') try: endpoint = aiplatform.Endpoint(endpoint_name=self.endpoint_id) except ValueError as error: logger.error("엔드 포인트 객체를 초기화하는 중 오류가 발생했습니다. 입력된 endpoint_id, project_id 및 " "region_name을 다시 확인하세요.") raise error try: # 모델의 출력은 json 직렬화 가능으로 가정됩니다. # 결과가 실행기에 너무 크면 OOM이 발생할 수 있습니다. prediction_result = endpoint.predict(instances=instances) except exceptions.Forbidden as error: logger.error("충분한 권한이 없는 제공된 google_application_credentials로 추론을 수행하는 중 오류가 발생했습니다.") raise error except exceptions.BadRequest as error: logger.error("입력 데이터 프레임을 다시 확인하십시오. 추론을 수행하는 중 오류가 발생했습니다.") raise error return pd.json_normalize(prediction_result.predictions)

Vertex AI 표 모델 설정

다음으로, 이 모델 어댑터를 사용하고 모델 어댑터가 예상하는 필요한 설정과 자격증명을 제공하기 위해 외부 호스팅 모델 설정합니다. 이 예제에서는 모델이 us-central1에 호스팅되어 있다고 가정하지만, 이는 설정 가능합니다.

위의 VertexAITabularAdapter에는 URL이 필요하지 않으므로 비워두었지만, 설정과 자격증명 맵은 모델 어댑터에서 정의한 동일한 키를 사용하여 완성됩니다.

이그레스 정책 선택

아래는 us-central1-aiplatform.googleapis.com(포트 443)에 대해 설정된 이그레스 정책을 사용합니다.

Modelling Objective 애플리케이션에서 Vertex AI의 이그레스 정책

모델 어댑터 설정

외부 호스팅 모델 연결 대화 상자에서 게시된 모델 어댑터를 선택합니다.

Palantir Foundry의 Vertex AI용 모델 어댑터 설정 패널

연결 설정 구성

예제 Vertex AI 표 모델 어댑터가 필요로 하는 연결 설정을 정의합니다.

이 어댑터는 다음의 연결 설정이 필요합니다:

  • region_name - 모델이 호스팅되는 Google 지역 이름.
  • project_id - 이 외부 호스팅 모델이 속한 프로젝트의 고유 식별자.
  • endpoint_id - 외부 호스팅 모델의 고유 식별자.

Palantir Foundry의 Vertex AI용 연결 설정 패널

자격증명 설정 구성

예제 Vertex AI 표 모델 어댑터가 필요로 하는 자격증명 설정을 정의합니다.

이 어댑터는 다음의 자격증명 설정이 필요합니다:

  • google_application_credentials - 이것은 서비스 계정에 대한 자격증명을 얻는 데 사용할 수 있는 서비스 계정 개인 키 파일의 전체 내용입니다. Google Cloud Console의 자격증명 페이지를 사용하여 개인 키를 생성할 수 있습니다.

Palantir Foundry의 Vertex AI용 자격증명 설정 패널

Vertex AI 표 모델 사용

Vertex AI 모델이 설정되었으므로, 이 모델은 실시간 배포 또는 Python 변환에서 호스팅될 수 있습니다.

아래 이미지는 실시간 배포에서 Vertex AI 모델에 대한 예제 쿼리를 보여줍니다.

VertexAITabularAdapter를 사용한 예제 쿼리