AlloyDB Omni 개요에서 원격 AI 모델 등록 및 호출

이 페이지에서는 AlloyDB Omni에서 모델 엔드포인트 관리를 사용하여 AI 모델 엔드포인트를 등록하고 예측을 호출하는 실험을 할 수 있는 미리보기를 설명합니다. 프로덕션 환경에서 AI 모델을 사용하려면 AlloyDB AI를 사용하여 생성형 AI 애플리케이션 빌드벡터 임베딩 사용을 참고하세요.

AlloyDB에 원격 모델 엔드포인트를 등록하려면 AlloyDB에서 원격 AI 모델 등록 및 호출을 참고하세요.

개요

모델 엔드포인트 관리 미리보기를 사용하면 모델 엔드포인트를 등록하고, 데이터베이스 클러스터에서 모델 엔드포인트 메타데이터를 관리한 후 SQL 쿼리를 사용하여 모델과 상호작용할 수 있습니다. 모델과 관련된 모델 엔드포인트 메타데이터를 추가하고 등록한 후 모델을 사용하여 벡터 임베딩을 생성하거나 예측을 호출하는 함수가 포함된 google_ml_integration 확장 프로그램을 제공합니다.

모델 엔드포인트 관리를 사용하여 등록할 수 있는 모델 유형의 예는 다음과 같습니다.

  • Vertex AI 텍스트 임베딩 모델
  • Anthropic, Hugging Face, OpenAI와 같은 서드 파티 제공업체에서 제공하는 모델 삽입
  • 맞춤 호스팅 텍스트 임베딩 모델
  • JSON 기반 API가 있는 일반 모델(예: Hugging Face에 호스팅된 facebook/bart-large-mnli 모델 또는 Vertex AI Model Garden의 gemini-pro 모델)

기능 소개

모델 엔드포인트 관리를 사용하여 다음을 준수하는 모델 엔드포인트를 등록할 수 있습니다.

  • 모델 입력 및 출력은 JSON 형식을 지원합니다.
  • REST 프로토콜을 사용하여 모델을 호출할 수 있습니다.

모델 엔드포인트 관리에 모델 엔드포인트를 등록하면 모델 참조로 제공한 고유한 모델 ID가 각 엔드포인트에 등록됩니다. 이 모델 ID를 사용하여 모델을 쿼리할 수 있습니다.

  • 임베딩을 생성하여 텍스트 프롬프트를 숫자 벡터로 변환합니다. 데이터베이스에서 pgvector 확장 프로그램이 사용 설정된 경우 생성된 임베딩을 벡터 데이터로 저장할 수 있습니다. 자세한 내용은 pgvector를 사용하여 임베딩 쿼리 및 색인 생성을 참고하세요.

  • 트랜잭션 내에서 SQL을 사용하여 모델을 호출하려면 예측을 호출합니다.

애플리케이션은 google_ml_integration 확장 프로그램을 사용하여 모델 엔드포인트 관리에 액세스할 수 있습니다. 이 확장 프로그램은 다음과 같은 함수를 제공합니다.

  • 예측 또는 임베딩 함수에 사용되는 모델 엔드포인트를 등록하는 데 사용되는 google_ml.create_model() SQL 함수입니다.
  • API 키가 저장된 Google CloudSecret Manager의 비밀을 사용하는 google_ml.create_sm_secret() SQL 함수입니다.
  • 텍스트 임베딩을 생성하는 예측 함수인 google_ml.embedding() SQL 함수
  • JSON 입력 및 출력 형식을 지원하는 일반 모델을 호출할 때 예측을 생성하는 google_ml.predict_row() SQL 함수입니다.
  • 맞춤 URL 생성, HTTP 헤더 생성 또는 일반 모델의 변환 함수 전달을 처리하는 기타 도우미 함수
  • 등록된 모델 엔드포인트와 보안 비밀을 관리하는 함수입니다.

주요 개념

모델 엔드포인트 관리를 사용하기 전에 모델에 연결하고 이를 사용하는 데 필요한 개념을 이해하세요.

모델 제공업체 {: #model-provider}̦

모델 제공업체는 지원되는 모델 호스팅 제공업체를 나타냅니다. 다음 표에는 사용하는 모델 제공자에 따라 설정해야 하는 모델 제공자 값이 나와 있습니다.

모델 제공업체 함수에서 다음과 같이 설정
Vertex AI google
Hugging Face 모델 custom
Anthropic 모델 custom
기타 모델 custom
OpenAI open_ai

기본 모델 제공업체는 custom입니다.

지원되는 인증 방법은 제공업체 유형에 따라 다릅니다. Vertex AI 모델은 AlloyDB 서비스 계정을 사용하여 인증하는 반면 다른 제공업체는 보안 비밀 관리자를 사용하여 인증할 수 있습니다. 자세한 내용은 인증 설정을 참고하세요.

모델 유형

모델 유형은 AI 모델의 유형을 나타냅니다. 이 확장 프로그램은 텍스트 임베딩과 모든 일반 모델 유형을 지원합니다. 모델 엔드포인트를 등록할 때 설정할 수 있는 지원되는 모델 유형은 text-embeddinggeneric입니다. 일반 모델 엔드포인트를 등록할 때는 모델 유형을 설정할 수도 있고 안 할 수도 있습니다. generic가 기본 모델 유형이기 때문입니다.

기본 지원되는 텍스트 임베딩 모델
모델 엔드포인트 관리는 Vertex AI의 모든 버전의 textembedding-gecko 모델과 OpenAI의 text-embedding-ada-002 모델을 기본적으로 지원합니다. 이러한 모델 엔드포인트를 등록하려면 google_ml.create_model() 함수를 사용하세요. AlloyDB는 이러한 모델의 기본 변환 함수를 자동으로 설정합니다.
이러한 모델의 모델 유형은 text-embedding입니다.
기타 텍스트 임베딩 모델
기타 텍스트 임베딩 모델의 경우 모델에서 지원하는 입력 및 출력 형식을 처리할 변환 함수를 만들어야 합니다. 원하는 경우 모델에 필요한 맞춤 헤더를 생성하는 HTTP 헤더 생성 함수를 사용할 수 있습니다.
이러한 모델의 모델 유형은 text-embedding입니다.
일반 모델
모델 엔드포인트 관리는 텍스트 임베딩 모델 외에도 다른 모든 모델 유형의 등록도 지원합니다. 일반 모델의 예측을 호출하려면 google_ml.predict_row() 함수를 사용하세요. 모델에만 해당하는 요청 엔드포인트 및 HTTP 헤더와 같은 모델 엔드포인트 메타데이터를 설정할 수 있습니다.
일반 모델 엔드포인트를 등록할 때 변환 함수를 전달할 수 없습니다. 예측을 호출할 때 함수의 입력이 JSON 형식이고 JSON 출력을 파싱하여 최종 출력을 도출해야 합니다.
이러한 모델의 모델 유형은 generic입니다.

인증

인증 유형google_ml_integration 확장 프로그램을 사용하여 모델 엔드포인트 관리에 연결하는 데 사용할 수 있는 인증 유형을 나타냅니다. 인증 설정은 선택사항이며 모델에 액세스하기 위해 인증이 필요한 경우에만 필요합니다.

Vertex AI 모델의 경우 AlloyDB 서비스 계정이 인증에 사용됩니다. 다른 모델의 경우 Secret Manager에 보안 비밀로 저장된 API 키 또는 보유자 토큰을 google_ml.create_sm_secret() SQL 함수와 함께 사용할 수 있습니다.

다음 표에는 설정할 수 있는 인증 유형이 나와 있습니다.

인증 방법 함수에서 다음과 같이 설정 모델 제공업체
AlloyDB 서비스 에이전트 alloydb_service_agent_iam Vertex AI 제공업체
Secret Manager secret_manager Anthropic, Hugging Face, OpenAI와 같은 서드 파티 제공업체

예측 함수

google_ml_integration 확장 프로그램에는 다음과 같은 예측 함수가 포함되어 있습니다.

google_ml.embedding()
등록된 텍스트 임베딩 모델 엔드포인트를 호출하여 임베딩을 생성하는 데 사용됩니다. 여기에는 Vertex AI의 textembedding-gecko 모델과 OpenAI의 text-embedding-ada-002 모델에 대한 기본 제공 지원이 포함됩니다.
기본 제공 지원이 없는 텍스트 임베딩 모델의 경우 입력 및 출력 매개변수는 모델에 고유하며 함수가 모델을 호출하려면 변환해야 합니다. 예측 함수의 입력을 모델별 입력으로 변환하는 변환 입력 함수와 모델별 출력을 예측 함수 출력으로 변환하는 변환 출력 함수를 만듭니다.
google_ml.predict_row()
JSON 기반 API를 지원하는 등록된 일반 모델 엔드포인트를 호출하여 예측을 호출하는 데 사용됩니다.

변환 함수

변환 함수는 입력을 모델이 이해하는 형식으로 수정하고 모델 응답을 예측 함수가 예상하는 형식으로 변환합니다. 변환 함수는 내장 지원 없이 text-embedding 모델 엔드포인트를 등록할 때 사용됩니다. 변환 함수의 서명은 모델 유형의 예측 함수에 따라 다릅니다.

generic 모델 엔드포인트를 등록할 때는 변환 함수를 사용할 수 없습니다.

다음은 텍스트 임베딩 모델의 예측 함수 서명을 보여줍니다.

// define custom model specific input/output transform functions.
CREATE OR REPLACE FUNCTION input_transform_function(model_id VARCHAR(100), input_text TEXT) RETURNS JSON;

CREATE OR REPLACE FUNCTION output_transform_function(model_id VARCHAR(100), response_json JSON) RETURNS real[];

변환 함수를 만드는 방법에 관한 자세한 내용은 변환 함수 예를 참고하세요.

HTTP 헤더 생성 함수

HTTP 헤더 생성 함수는 HTTP 헤더로 사용되는 JSON 키-값 쌍으로 출력을 생성합니다. 예측 함수의 서명은 헤더 생성 함수의 서명을 정의합니다.

다음 예는 google_ml.embedding() 예측 함수의 서명을 보여줍니다.

CREATE OR REPLACE FUNCTION generate_headers(model_id VARCHAR(100), input TEXT) RETURNS JSON;

google_ml.predict_row() 예측 함수의 서명은 다음과 같습니다.

CREATE OR REPLACE FUNCTION generate_headers(model_id VARCHAR(100), input JSON) RETURNS JSON;

헤더 생성 함수를 만드는 방법에 관한 자세한 내용은 헤더 생성 함수 예시를 참고하세요.

다음 단계