Registra y llama a modelos de IA remotos en la descripción general de AlloyDB Omni

Selecciona una versión de la documentación:

En esta página, se describe una versión preliminar que te permite experimentar con el registro de un extremo de modelo de IA y la invocación de predicciones con la administración de extremos de modelos en AlloyDB Omni. Para usar modelos de IA en entornos de producción, consulta Compila aplicaciones de IA generativa con AlloyDB AI y Trabaja con embeddings de vectores.

Para registrar extremos de modelos remotos con AlloyDB, consulta Registra y llama a modelos de IA remotos en AlloyDB.

Descripción general

La versión preliminar de la administración de extremos de modelos te permite registrar un extremo de modelo, administrar los metadatos del extremo de modelo en tu clúster de base de datos y, luego, interactuar con los modelos mediante consultas en SQL. Proporciona la extensión google_ml_integration, que incluye funciones para agregar y registrar los metadatos del extremo de modelo relacionados con los modelos y, luego, usar los modelos para generar embeddings de vectores o invocar predicciones.

Algunos de los tipos de modelos de ejemplo que puedes registrar con la administración de extremos de modelos son los siguientes:

  • Vertex AI modelos de embedding de texto
  • Modelos de embedding proporcionados por proveedores externos, como Anthropic, Hugging Face o OpenAI
  • Modelos de embedding de texto alojados de forma personalizada
  • Modelos genéricos con una API basada en JSON, por ejemplo, el modelo facebook/bart-large-mnli alojado en Hugging Face o el modelo gemini-pro de Vertex AI Model Garden

Cómo funciona

Puedes usar la administración de extremos de modelos para registrar un extremo de modelo que cumpla con lo siguiente:

  • La entrada y la salida del modelo admiten el formato JSON.
  • Se puede llamar al modelo con el protocolo REST.

Cuando registras un extremo de modelo con la administración de extremos de modelos, registra cada extremo con un ID de modelo único que proporcionaste como referencia al modelo. Puedes usar este ID de modelo para consultar modelos:

  • Genera embeddings para traducir mensajes de texto a vectores numéricos. Puedes almacenar los embeddings generados como datos vectoriales cuando la extensión pgvector está habilitada en la base de datos.

  • Invoca predicciones para llamar a un modelo mediante SQL dentro de una transacción.

Tus aplicaciones pueden acceder a la administración de extremos de modelos con la extensión google_ml_integration. Esta extensión proporciona las siguientes funciones:

  • La función de SQL google_ml.create_model(), que se usa para registrar el extremo de modelo que se usa en la función de predicción o embedding
  • La función de SQL google_ml.create_sm_secret(), que usa secretos en el Google Cloud Secret Manager, donde se almacenan las claves de API
  • La función de SQL google_ml.embedding(), que es una función de predicción que genera embeddings de texto
  • La función de SQL google_ml.predict_row() que genera predicciones cuando llamas a modelos genéricos que admiten el formato de entrada y salida JSON
  • Otras funciones auxiliares que controlan la generación de URL personalizadas, la generación de encabezados HTTP o el paso de funciones de transformación para tus modelos genéricos
  • Funciones para administrar los extremos de modelos y los secretos registrados

Conceptos clave

Antes de comenzar a usar la administración de extremos de modelos, comprende los conceptos necesarios para conectarte a los modelos y usarlos.

Proveedor de modelos {: #model-provider}̦

Proveedor de modelos indica los proveedores de alojamiento de modelos compatibles. En la siguiente tabla, se muestra el valor del proveedor de modelos que debes establecer según el proveedor de modelos que uses:

Proveedor de modelos Establecer en la función como…
Vertex AI google
Modelos de Hugging Face custom
Modelos de Anthropic custom
Otros modelos custom
OpenAI open_ai

El proveedor de modelos predeterminado es custom.

Según el tipo de proveedor, el método de autenticación admitido difiere. Los modelos de Vertex AI usan la cuenta de servicio de AlloyDB para autenticarse, mientras que otros proveedores pueden usar Secret Manager para autenticarse.

Tipo de modelo

Tipo de modelo indica el tipo de modelo de IA. La extensión admite el embedding de texto, así como cualquier tipo de modelo genérico. El tipo de modelo admitido que puedes establecer cuando registras un extremo de modelo es text-embedding y generic. La configuración del tipo de modelo es opcional cuando se registran extremos de modelos genéricos, ya que generic es el tipo de modelo predeterminado.

Modelos de embedding de texto con compatibilidad integrada
La administración de extremos de modelos proporciona compatibilidad integrada para todas las versiones del textembedding-gecko modelo de Vertex AI y el text-embedding-ada-002 modelo de OpenAI. Para registrar estos extremos de modelos, usa la función google_ml.create_model(). AlloyDB configura automáticamente las funciones de transformación predeterminadas para estos modelos.
El tipo de modelo para estos modelos es text-embedding.
Otros modelos de embedding de texto
Para otros modelos de embedding de texto, debes crear funciones de transformación para controlar los formatos de entrada y salida que admite el modelo. De manera opcional, puedes usar la función de generación de encabezados HTTP que genera encabezados personalizados que requiere tu modelo.
El tipo de modelo para estos modelos es text-embedding.
Modelos genéricos
La administración de extremos de modelos también admite el registro de todos los demás tipos de modelos, además de los modelos de embedding de texto. Para invocar predicciones para modelos genéricos, usa la google_ml.predict_row() función. Puedes establecer metadatos de extremos de modelos, como un extremo de solicitud y encabezados HTTP que sean específicos de tu modelo.
No puedes pasar funciones de transformación cuando registras un extremo de modelo genérico. Asegúrate de que, cuando invoques predicciones, la entrada a la función esté en formato JSON y de que analices el resultado JSON para obtener el resultado final.
El tipo de modelo para estos modelos es generic.

Autenticación

Tipos de autenticación indica el tipo de autenticación que puedes usar para conectarte a la administración de extremos de modelos con la extensión google_ml_integration. La configuración de la autenticación es opcional y solo es necesaria si necesitas autenticarte para acceder a tu modelo.

Para los modelos de Vertex AI, se usa la cuenta de servicio de AlloyDB para la autenticación. Para otros modelos, se puede usar la clave de API o el token de portador que se almacena como un secreto en Secret Manager con la función de SQL google_ml.create_sm_secret().

En la siguiente tabla, se muestran los tipos de autenticación que puedes establecer:

Método de autenticación Establecer en la función como… Proveedor de modelos
Agente de servicio de AlloyDB alloydb_service_agent_iam Proveedor de Vertex AI
Secret Manager secret_manager Proveedores externos, como Anthropic, Hugging Face o OpenAI

Funciones de predicción

La extensión google_ml_integration incluye las siguientes funciones de predicción:

google_ml.embedding()
Se usa para llamar a un extremo de modelo de embedding de texto registrado para generar embeddings. Incluye compatibilidad integrada para el textembedding-gecko modelo de Vertex AI y el text-embedding-ada-002 modelo de OpenAI.
Para los modelos de embedding de texto sin compatibilidad integrada, los parámetros de entrada y salida son únicos para un modelo y deben transformarse para que la función llame al modelo. Crea una función de entrada de transformación para transformar la entrada de la función de predicción a la entrada específica del modelo y una función de salida de transformación para transformar la salida específica del modelo a la salida de la función de predicción.
google_ml.predict_row()
Se usa para llamar a un extremo de modelo genérico registrado, siempre que admitan la API basada en JSON, para invocar predicciones.

Funciones de transformación

Las funciones de transformación modifican la entrada a un formato que el modelo comprende y convierten la respuesta del modelo al formato que espera la función de predicción. Las funciones de transformación se usan cuando se registra el extremo de modelo text-embedding sin compatibilidad integrada. La firma de las funciones de transformación depende de la función de predicción para el tipo de modelo.

No puedes usar funciones de transformación cuando registras un extremo de modelo generic.

A continuación, se muestran las firmas de la función de predicción para los modelos de embedding de texto:

// 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[];

Para obtener más información sobre cómo crear funciones de transformación, consulta Ejemplo de funciones de transformación.

Función de generación de encabezados HTTP

La función de generación de encabezados HTTP genera el resultado en pares clave-valor JSON que se usan como encabezados HTTP. La firma de la función de predicción define las firmas de la función de generación de encabezados.

En el siguiente ejemplo, se muestra la firma de la función de predicción google_ml.embedding().

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

Para la función de predicción google_ml.predict_row(), la firma es la siguiente:

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

Para obtener más información sobre cómo crear una función de generación de encabezados, consulta Función de generación de encabezados HTTP.

¿Qué sigue?