En esta página se explican los conceptos clave que debes conocer antes de registrar un endpoint de modelo de IA e invocar predicciones con la gestión de endpoints de modelos.
Para registrar endpoints de modelos remotos con AlloyDB para PostgreSQL, consulta Registrar y llamar a modelos de IA remotos en AlloyDB.
Información general
La gestión de endpoints de modelos te permite registrar un endpoint de modelo, gestionar los metadatos de endpoints de modelos en tu clúster de base de datos y hacer llamadas a los endpoints de modelos remotos mediante consultas SQL. Proporciona la extensión google_ml_integration
, que incluye funciones que te permiten registrar los metadatos relacionados con los modelos de IA en AlloyDB. Estos metadatos registrados se usan para generar inserciones vectoriales 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 genéricos y de inserción de texto de Vertex AI
- Modelos de inserción proporcionados por terceros, como Hugging Face u OpenAI
- Modelos de embeddings de texto alojados de forma personalizada, incluidos los modelos alojados por el usuario o los modelos disponibles a través de endpoints privados
- Modelos genéricos con una API basada en JSON, como el modelo
facebook/bart-large-mnli
alojado en Hugging Face, el modelogemini-pro
de Vertex AI Model Garden o los modelosclaude
de Anthropic
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 el ID del endpoint del modelo para consultar modelos y hacer lo siguiente:
Genera incrustaciones para traducir las peticiones de texto a vectores numéricos. Puede almacenar las inserciones generadas como datos vectoriales cuando la extensión
vector
esté habilitada en la base de datos. Para obtener más información, consulta Almacenar incrustaciones de vectores.Invoca predicciones mediante SQL.
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. El tipo de valor devuelto de la función de inserción esREAL[]
. - 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 se encargan de generar URLs personalizadas, encabezados HTTP o funciones de transformación.
- 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, familiarízate con los conceptos necesarios para conectarte a los modelos y usarlos.
Proveedor del modelo
Proveedor del modelo indica los proveedores de alojamiento de modelos admitidos. Definir el proveedor del modelo es opcional, pero ayuda a la gestión de endpoints de modelos a identificar el proveedor y a dar formato automáticamente a los encabezados de los modelos admitidos. En la siguiente tabla se muestra el valor del proveedor del modelo que puedes definir en función del proveedor del modelo que utilices:
Proveedor del modelo | Definir en la función como… |
---|---|
Vertex AI | google |
Modelos de Hugging Face | hugging_face |
Modelos de Anthropic | anthropic |
OpenAI | open_ai |
Otros modelos | custom |
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 que se usó para instalar AlloyDB Omni para autenticarse, mientras que otros proveedores pueden usar Secret Manager o transferir los detalles de autenticación a través de encabezados. Para obtener más información, consulta Configurar la autenticación.
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 Vertex AI pre-registrados
- La gestión de endpoints de modelos admite algunos modelos de inserciones de texto y modelos genéricos de Vertex AI como IDs de modelos pre-registrados. Puedes usar directamente el ID del modelo para generar inserciones o invocar predicciones, en función del tipo de modelo.
Para obtener más información sobre los modelos pre-registrados admitidos, consulta Modelos de Vertex AI pre-registrados.
Por ejemplo, para llamar al modelotextembedding-gecko
pre-registrado, puedes llamar directamente al modelo mediante la función de inserción:SELECT google_ml.embedding( model_id => 'textembedding-gecko', content => 'AlloyDB is a managed, cloud-hosted SQL database service');
- Modelos con compatibilidad integrada
- La gestión de endpoints de modelos ofrece compatibilidad integrada con algunos modelos de Vertex AI, Anthropic y OpenAI. En el caso de los modelos de inserción de texto con compatibilidad integrada, AlloyDB configura automáticamente las funciones de transformación predeterminadas.
- Cuando registres estos endpoints de modelo, define el nombre completo de forma explícita. Para obtener más información sobre la lista de modelos con compatibilidad integrada, consulta Modelos con compatibilidad integrada.
- El tipo de modelo de estos modelos puede ser
text-embedding
ogeneric
. - Otros modelos de inserciones de texto
- Para registrar un endpoint de modelo de inserción de texto sin asistencia integrada, te recomendamos que crees funciones de transformación para gestionar los formatos de entrada y salida que admite el modelo. De forma opcional, en función de los requisitos del modelo, es posible que también tengas que crear una función de encabezado personalizada para especificar el encabezado.
- 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 de inserciones 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 cuando registras 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. Si estás enviando la autenticación a través de encabezados, puedes omitir la configuración del método de autenticación.
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.
- 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. Debes crear 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, así como 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 el modelo admita una API basada 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 entrada que espera el 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 el ejemplo de función de generación de encabezados.
Siguientes pasos
- Configura la autenticación para los proveedores de modelos.
- Registra un endpoint de modelo con la gestión de endpoints de modelo.
- Consulta más información sobre la referencia de gestión de endpoints de modelos.