이 페이지에서는 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 헤더 생성 또는 일반 모델의 변환 함수 전달을 처리하는 기타 도우미 함수
- 등록된 모델 엔드포인트와 보안 비밀을 관리하는 함수입니다.
주요 개념
모델 엔드포인트 관리를 사용하기 전에 모델에 연결하고 이를 사용하는 데 필요한 개념을 이해하세요.
모델 제공업체
모델 제공업체는 지원되는 모델 호스팅 제공업체를 나타냅니다. 다음 표에는 사용하는 모델 제공자에 따라 설정해야 하는 모델 제공자 값이 나와 있습니다.
모델 제공업체 | 함수에서 다음과 같이 설정 |
---|---|
Vertex AI | google |
Hugging Face 모델 | custom |
Anthropic 모델 | custom |
기타 모델 | custom |
OpenAI | open_ai |
기본 모델 제공업체는 custom
입니다.
지원되는 인증 방법은 제공업체 유형에 따라 다릅니다. Vertex AI 모델은 AlloyDB 서비스 계정을 사용하여 인증하는 반면 다른 제공업체는 보안 비밀 관리자를 사용하여 인증할 수 있습니다. 자세한 내용은 인증 설정을 참고하세요.
모델 유형
모델 유형은 AI 모델의 유형을 나타냅니다. 이 확장 프로그램은 텍스트 임베딩과 모든 일반 모델 유형을 지원합니다. 모델 엔드포인트를 등록할 때 설정할 수 있는 지원되는 모델 유형은 text-embedding
및 generic
입니다. 일반 모델 엔드포인트를 등록할 때는 모델 유형을 설정할 수도 있고 안 해도 됩니다. 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;
헤더 생성 함수를 만드는 방법에 관한 자세한 내용은 헤더 생성 함수 예시를 참고하세요.
다음 단계
- 모델 제공업체의 인증을 설정합니다.
- 모델 엔드포인트 관리에 모델 엔드포인트 등록
- 모델 엔드포인트 관리 참조에 대해 알아보세요.