En esta página se describe una versión preliminar que te permite experimentar con el registro de un endpoint de modelo de IA y la invocación de predicciones con la gestión de endpoints de modelos en AlloyDB Omni. Para usar modelos de IA en entornos de producción, consulta Crea aplicaciones de IA generativa con AlloyDB AI y Trabaja con incrustaciones de vectores.
Para registrar endpoints de modelos remotos en AlloyDB, consulta Registrar y llamar a modelos de IA remotos en AlloyDB.
Información general
La vista previa de Gestión de endpoints de modelos te permite registrar un endpoint de modelo, gestionar los metadatos de los endpoints de modelos en tu clúster de base de datos y, a continuación, interactuar con los modelos mediante consultas SQL. Proporciona la extensión google_ml_integration
, que incluye funciones para añadir y registrar los metadatos del endpoint del modelo relacionados con los modelos, y luego usar los modelos para generar incrustaciones de vectores o invocar predicciones.
Estos son algunos de los tipos de modelos de ejemplo que puedes registrar mediante la gestión de endpoints de modelos:
- Modelos de inserción de texto de Vertex AI
- Modelos de inserción proporcionados por terceros, como Anthropic, Hugging Face u OpenAI.
- Modelos de inserción de texto alojados de forma personalizada
- Modelos genéricos con una API basada en JSON, como el modelo
facebook/bart-large-mnli
alojado en Hugging Face o el modelogemini-pro
de Vertex AI Model Garden
Cómo funciona
Puedes usar la gestión de endpoints de modelos para registrar un endpoint de modelo que cumpla los siguientes requisitos:
- La entrada y la salida del modelo admiten el formato JSON.
- Se puede llamar al modelo mediante el protocolo REST.
Cuando registras un endpoint de modelo en la gestión de endpoints de modelos, se registra cada endpoint con un ID de modelo único que has proporcionado como referencia al modelo. Puedes usar este ID de modelo para consultar modelos:
Genera incrustaciones para traducir las peticiones de texto a vectores numéricos. Puede almacenar las inserciones generadas como datos vectoriales cuando la extensión
pgvector
esté habilitada en la base de datos.Invoca predicciones para llamar a un modelo mediante SQL en una transacción.
Tus aplicaciones pueden acceder a la gestión de endpoints de modelos mediante la extensión google_ml_integration
. Esta extensión ofrece las siguientes funciones:
- La función SQL
google_ml.create_model()
, que se usa para registrar el endpoint del modelo que se utiliza en la función de predicción o de inserción. - La función de SQL
google_ml.create_sm_secret()
, que usa secretos en Google Cloud Secret Manager, donde se almacenan las claves de API. - La función SQL
google_ml.embedding()
, que es una función de predicción que genera inserciones de texto. - La función 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 gestionan la generación de URLs personalizadas, la generación de encabezados HTTP o la transferencia de funciones de transformación para tus modelos genéricos.
- Funciones para gestionar los endpoints y los secretos del modelo registrado.
Conceptos clave
Antes de empezar a usar la gestión de endpoints de modelos, debes conocer los conceptos necesarios para conectarte a los modelos y usarlos.
Proveedor de modelos {: #model-provider}̦
Proveedor del modelo indica los proveedores de alojamiento de modelos admitidos. En la siguiente tabla se muestra el valor del proveedor del modelo que debe definir en función del proveedor del modelo que utilice:
Proveedor del modelo | Definir 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
.
El método de autenticación admitido varía en función del tipo de proveedor. 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 la inserción de texto, así como cualquier tipo de modelo genérico. Los tipos de modelo admitidos que puedes definir al registrar un endpoint de modelo son text-embedding
y generic
. Definir el tipo de modelo es opcional al registrar endpoints de modelos genéricos, ya que generic
es el tipo de modelo predeterminado.
- Modelos de inserción de texto con asistencia integrada
- La gestión de endpoints de modelos ofrece compatibilidad integrada con todas las versiones del modelo
textembedding-gecko
de Vertex AI y del modelotext-embedding-ada-002
de OpenAI. Para registrar estos endpoints de modelo, usa la funcióngoogle_ml.create_model()
. AlloyDB configura automáticamente funciones de transformación predeterminadas para estos modelos. - El tipo de modelo de estos modelos es
text-embedding
. - Otros modelos de inserciones de texto
- En el caso de otros modelos de inserción de texto, debes crear funciones de transformación para gestionar los formatos de entrada y salida que admite el modelo. También puedes usar la función de generación de encabezados HTTP, que genera los encabezados personalizados que necesita tu modelo.
- El tipo de modelo de estos modelos es
text-embedding
. - Modelos genéricos
- La gestión de endpoints de modelos también admite el registro de todos los demás tipos de modelos, excepto los modelos de inserción de texto. Para invocar predicciones de modelos genéricos, usa la función
google_ml.predict_row()
. Puedes definir metadatos de puntos de conexión de modelos, como un punto de conexión de solicitud y encabezados HTTP específicos de tu modelo. - No puedes transferir funciones de transformación al registrar un endpoint de modelo genérico. Asegúrate de que, cuando invoques las predicciones, la entrada de la función esté en formato JSON y de que analices la salida JSON para obtener la salida final.
- El tipo de modelo de estos modelos es
generic
.
Autenticación
Los tipos de autenticación indican el tipo de autenticación que puedes usar para conectarte a la gestión de endpoints de modelos mediante la extensión google_ml_integration
. Configurar la autenticación es opcional y solo es necesario si necesitas autenticarte para acceder a tu modelo.
En el caso de los modelos de Vertex AI, la cuenta de servicio de AlloyDB se usa para la autenticación. En otros modelos, se puede usar una clave de API o un token de portador almacenado como secreto en Secret Manager con la función google_ml.create_sm_secret()
SQL.
En la siguiente tabla se muestran los tipos de autenticación que puedes definir:
Método de autenticación | Definir en la función como… | Proveedor del modelo |
---|---|---|
Agente de servicio de AlloyDB | alloydb_service_agent_iam |
Proveedor de Vertex AI |
Secret Manager | secret_manager |
Proveedores externos, como Anthropic, Hugging Face u 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 endpoint de modelo de incrustación de texto registrado para generar incrustaciones. Incluye compatibilidad integrada con el modelo
textembedding-gecko
de Vertex AI y el modelotext-embedding-ada-002
de OpenAI. - En el caso de los modelos de inserción de texto que no tienen asistencia integrada, los parámetros de entrada y salida son únicos para cada modelo y deben transformarse para que la función pueda llamar al modelo. Crea una función de entrada de transformación para transformar la entrada de la función de predicción en la entrada específica del modelo y una función de salida de transformación para transformar la salida específica del modelo en la salida de la función de predicción.
google_ml.predict_row()
- Se usa para llamar a un endpoint de modelo genérico registrado, siempre que admita APIs basadas en JSON, para invocar predicciones.
Transformar funciones
Las funciones de transformación modifican la entrada a un formato que el modelo entiende y convierten la respuesta del modelo al formato que espera la función de predicción. Las funciones de transformación se usan al registrar el endpoint del modelo text-embedding
sin compatibilidad integrada. La firma de las funciones de transformación depende de la función de predicción del tipo de modelo.
No puedes usar funciones de transformación al registrar un endpoint de modelo generic
.
A continuación, se muestran las firmas de la función de predicción de los modelos de inserción 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 el ejemplo de funciones de transformación.
Función de generación de encabezados HTTP
La función de generación de encabezados HTTP genera la salida en pares clave-valor JSON que se utilizan 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;
En el caso de 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.
Siguientes pasos
- Registra un endpoint de modelo con la gestión de endpoints de modelo.
- Consulta la referencia de gestión de endpoints de modelos.