En esta página, se describe cómo registrar un extremo de modelo de IA y cómo invocar predicciones con la administración de extremos de modelos en Cloud SQL. Para usar modelos de IA en entornos de producción, consulta Compila aplicaciones de IA generativa con Cloud SQL y Trabaja con embeddings de vectores.
Descripción general
La administración de extremos de modelos te permite registrar un extremo de modelo, administrar los metadatos del extremo de modelo en tu instancia de Cloud SQL y, luego, interactuar con los modelos mediante consultas en SQL.
Cloud SQL proporciona la google_ml_integration extensión que
incluye funciones para agregar y registrar los metadatos del extremo de modelo relacionados con los modelos.
Puedes usar estos modelos para generar embeddings de vectores o invocar predicciones.
Puedes registrar los siguientes tipos de modelos con la administración de extremos de modelos:
- Modelos de embedding de texto deVertex AI.
- Modelos de embedding de texto alojados de forma personalizada en redes dentro de Google Cloud.
Modelos genéricos con una API basada en JSON Entre los ejemplos de estos modelos, se incluyen los siguientes:
- El modelo
gemini-prode Vertex AI Model Garden - El modelo
open_aipara modelos de OpenAI - Modelos alojados en redes dentro de Google Cloud
- El modelo
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.
- Puedes usar el protocolo REST para llamar al modelo.
Cuando registras un extremo de modelo con la administración de extremos de modelos, la administración de extremos de modelos registra cada extremo con un ID de modelo único como referencia al modelo. Puedes usar este ID de modelo para consultar modelos de la siguiente manera:
Genera embeddings para traducir mensajes de texto a vectores numéricos. Puedes almacenar los embeddings generados como datos vectoriales cuando la extensión
pgvectorestá habilitada en la base de datos. Para obtener más información, consulta Indexa y consulta embeddings con pgvector.Invoca predicciones para llamar a un modelo mediante SQL dentro de una transacción.
Tus aplicaciones pueden administrar sus extremos de modelos con la extensión google_ml_integration. Esta extensión proporciona las siguientes funciones de SQL:
google_ml.create_model(): Registra el extremo de modelo que se usa en la función de predicción o embedding.google_ml.create_sm_secret(): Usa secretos en Google Cloud Secret Manager, donde se almacenan las claves de API.google_ml.embedding(): Genera embeddings de texto.google_ml.predict_row(): Genera predicciones cuando llamas a modelos genéricos que admiten los formatos de entrada y salida JSON.
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
El proveedor de modelos es el proveedor de hosting de modelos compatible. 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 (incluye Gemini) | google |
| Anthropic | anthropic |
| Hugging Face | hugging_face |
| OpenAI | open_ai |
| Otros modelos alojados fuera de Vertex AI, Anthropic, Hugging Face y OpenAI |
custom |
El proveedor de modelos predeterminado es custom.
Tipos de modelos
Los tipos de modelos son los tipos de modelo de IA. Cuando registras un extremo de modelo, puedes establecer los tipos de modelos text_embedding o generic para el extremo.
- Modelos de embedding de texto con compatibilidad integrada
- La administración de extremos de modelos proporciona compatibilidad integrada para todas las versiones del
textembedding-geckomodelo. Para registrar estos extremos de modelos, usa la funcióngoogle_ml.create_model(). Cloud SQL 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 de 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. Debido a quegenerices el tipo de modelo predeterminado, si registras extremos de modelos para este tipo, la configuración del tipo de modelo es opcional.
Métodos de autenticación
Puedes usar la extensióngoogle_ml_integration para
especificar diferentes métodos de autenticación para acceder a tu modelo.
La configuración de estos métodos 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 Cloud SQL 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 el
Secret Manager con la
google_ml.create_sm_secret()
función de SQL.
En la siguiente tabla, se muestran los métodos de autenticación que puedes establecer:
| Método de autenticación | Establecer en la función como… | Proveedor de modelos |
|---|---|---|
| Agente de servicio de Cloud SQL | cloudsql_service_agent_iam |
Proveedor de Vertex AI |
| Secret Manager | secret_manager |
Modelos alojados fuera de Vertex AI |
Funciones de predicción
La extensión google_ml_integration incluye las siguientes funciones de predicción:
google_ml.embedding()- Llama a un extremo de modelo de embedding de texto registrado para
generar embeddings. Incluye compatibilidad integrada para el
textembedding-geckomodelo de Vertex AI. - 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()- Llama a un extremo de modelo genérico registrado si el extremo admite APIs basadas 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 Ejemplo de función de generación de encabezados.
Limitaciones
- Para usar modelos de IA con tu instancia de Cloud SQL, la versión de mantenimiento de tu instancia debe ser
R20240910.01_02o posterior. Para actualizar tu instancia a esta versión, consulta Realiza el mantenimiento de autoservicio.
¿Qué sigue?
- Configura la autenticación para los proveedores de modelos.
- Registra un extremo de modelo con la administración de extremos de modelos.
- Obtén información sobre la referencia de la administración de extremos de modelos.