Vértice AICompatible with Milvus 2.6.x
Google Cloud Vertex AI es un servicio de alto rendimiento diseñado específicamente para modelos de incrustación de texto. Esta guía explica cómo utilizar Google Cloud Vertex AI con Milvus para una generación eficiente de incrustación de texto.
Vertex AI admite varios modelos de incrustación para diferentes casos de uso:
gemini-embedding-001 (Rendimiento de vanguardia en tareas en inglés, multilingües y de código)
text-embedding-005 (Último modelo de incrustación de texto)
text-multilingual-embedding-002 (Último modelo de incrustación de texto multilingüe)
Para obtener más información, consulte los modelos de incrustación de texto de Vertex AI.
Requisitos previos
Asegúrese de que cumple estos requisitos antes de configurar Vertex AI:
Ejecute Milvus versión 2.6 o superior - Compruebe que su implementación cumple el requisito mínimo de versión.
Cree una cuenta de servicio de Google Cloud - Como mínimo, es probable que necesite funciones como "Usuario de Vertex AI" u otras funciones más específicas. Para obtener más información, consulta Crear cuentas de servicio.
Descargue el archivo de clave JSON de la cuenta de servicio: almacene de forma segura este archivo de credenciales en su servidor o equipo local. Para obtener más información, consulte Crear una clave de cuenta de servicio.
Configurar credenciales
Antes de que Milvus pueda llamar a Vertex AI, necesita acceder a la clave JSON de su cuenta de servicio GCP. Admitimos dos métodos: elija uno en función de sus necesidades operativas y de implementación.
Opción |
Prioridad |
Mejor para |
|---|---|---|
Archivo de configuración ( |
Alta |
Configuración persistente para todo el clúster |
Variables de entorno ( |
Bajo |
Flujos de trabajo de contenedores, pruebas rápidas |
Opción 1: Archivo de configuración (recomendado y de mayor prioridad)
Milvus siempre preferirá las credenciales declaradas en milvus.yaml sobre cualquier variable de entorno para el mismo proveedor.
Codifique en Base64 su clave JSON
cat credentials.json | jq . | base64Declare las credenciales en
milvus.yaml# milvus.yaml credential: gcp_vertex: # arbitrary label credential_json: | <YOUR_BASE64_ENCODED_JSON>Vincular la credencial al proveedor Vertex AI
# milvus.yaml function: textEmbedding: providers: vertexai: credential: gcp_vertex # must match the label above url: <optional: custom Vertex AI endpoint>Si más adelante necesita rotar las claves, simplemente actualice la cadena Base64 en
credential_jsony reinicie Milvus; no se requieren cambios en su entorno ni en los contenedores.
Opción 2: Variables de entorno
Utilice este método cuando prefiera inyectar secretos en el momento del despliegue. Milvus recurre a env-vars sólo si no existe una entrada coincidente en milvus.yaml.
Los pasos de configuración dependen de su modo de despliegue de Milvus (independiente vs. cluster distribuido) y plataforma de orquestación (Docker Compose vs. Kubernetes).
Para obtener su archivo de configuración Milvus(docker-compose.yaml), consulte Descargar un archivo de instalación.
Monte su llave en el contenedor
Edite su archivo
docker-compose.yamlpara incluir la asignación del volumen de credenciales:services: standalone: volumes: # Map host credential file to container path - /path/to/your/credentials.json:/milvus/configs/google_application_credentials.json:roEn la configuración anterior:
Utilice rutas absolutas para un acceso fiable a los archivos (
/home/user/credentials.jsonno~/credentials.json)La ruta del contenedor debe terminar con la extensión
.json:roLa bandera garantiza el acceso de sólo lectura por seguridad
Establezca la variable de entorno
En el mismo archivo
docker-compose.yaml, añada la variable de entorno que apunta a la ruta de credenciales:services: standalone: environment: # Essential for Vertex AI authentication MILVUSAI_GOOGLE_APPLICATION_CREDENTIALS: /milvus/configs/google_application_credentials.jsonAplique los cambios
Reinicie su contenedor Milvus para activar la configuración:
docker-compose down && docker-compose up -d
Para obtener su archivo de configuración de Milvus(values.yaml), consulte Configurar Milvus mediante un archivo de configuración.
Cree un Secreto de Kubernetes
Ejecute esto en su máquina de control (donde está configurado kubectl ):
kubectl create secret generic vertex-ai-secret \ --from-file=credentials.json=/path/to/your/credentials.json \ -n <your-milvus-namespace>En el comando anterior:
vertex-ai-secret: Nombre para su secreto (personalizable)/path/to/your/credentials.json: Nombre local de su archivo de credenciales GCP<your-milvus-namespace>: Espacio de nombres de Kubernetes que aloja Milvus
Configure los valores de Helm
Actualice su
values.yamlen función de su tipo de despliegue:Para despliegue autónomo
standalone: extraEnv: - name: MILVUSAI_GOOGLE_APPLICATION_CREDENTIALS value: /milvus/configs/credentials.json # Container path volumes: - name: vertex-ai-credentials-vol secret: secretName: vertex-ai-secret # Must match Step 1 volumeMounts: - name: vertex-ai-credentials-vol mountPath: /milvus/configs/credentials.json # Must match extraEnv value subPath: credentials.json # Must match secret key name readOnly: truePara despliegue distribuido (añadir a cada componente)
proxy: extraEnv: - name: MILVUSAI_GOOGLE_APPLICATION_CREDENTIALS value: /milvus/configs/credentials.json volumes: - name: vertex-ai-credentials-vol secret: secretName: vertex-ai-secret volumeMounts: - name: vertex-ai-credentials-vol mountPath: /milvus/configs/credentials.json subPath: credentials.json readOnly: true # Repeat same configuration for dataNode, etc.
Aplique la configuración de Helm
Despliegue la configuración actualizada en su cluster:
helm upgrade milvus milvus/milvus -f values.yaml -n <your-milvus-namespace>
Utilizar la función de incrustación
Una vez configurado Vertex AI, siga estos pasos para definir y utilizar las funciones de incrustación.
Paso 1: Definir campos de esquema
Para utilizar una función de incrustación, cree una colección con un esquema específico. Este esquema debe incluir al menos tres campos necesarios:
El campo primario que identifica de forma única a cada entidad de una colección.
Un campo escalar que almacena los datos brutos que se van a incrustar.
Un campo vectorial reservado para almacenar las incrustaciones vectoriales que la función generará para el campo escalar.
from pymilvus import MilvusClient, DataType, Function, FunctionType, CollectionSchema, FieldSchema
# Assume you have connected to Milvus
# client = MilvusClient(uri="http://localhost:19530")
# 1. Create Schema
schema = MilvusClient.create_schema()
# 2. Add fields
schema.add_field("id", DataType.INT64, is_primary=True, auto_id=False)
schema.add_field("document", DataType.VARCHAR, max_length=9000) # Store text data
# IMPORTANT: Set dim to match the output dimension of the model and parameters
schema.add_field("dense_vector", DataType.FLOAT_VECTOR, dim=768) # Store embedding vectors (example dimension)
Paso 2: Añadir la función de incrustación al esquema
El módulo Function de Milvus convierte automáticamente los datos brutos almacenados en un campo escalar en incrustaciones y las almacena en el campo vectorial definido explícitamente.
# 3. Define Vertex AI embedding function
text_embedding_function = Function(
name="vert_func", # Unique identifier for this embedding function
function_type=FunctionType.TEXTEMBEDDING, # Indicates a text embedding function
input_field_names=["document"], # Scalar field(s) containing text data to embed
output_field_names=["dense_vector"], # Vector field(s) for storing embeddings
params={ # Vertex AI specific parameters (function-level)
"provider": "vertexai", # Must be set to "vertexai"
"model_name": "text-embedding-005", # Required: Specifies the Vertex AI model to use
"projectid": "your-gcp-project-id", # Required: Your Google Cloud project ID
# Optional parameters (include these only if necessary):
# "location": "us-central1", # Optional: Vertex AI service region (default us-central1)
# "task": "DOC_RETRIEVAL", # Optional: Embedding task type (default DOC_RETRIEVAL)
# "dim": 768 # Optional: Output vector dimension (1-768)
}
)
# Add the configured embedding function to your existing collection schema
schema.add_function(text_embedding_function)
Parámetro |
Descripción |
¿Necesario? |
Ejemplo Valor |
|---|---|---|---|
|
El proveedor del modelo de incrustación. Establecer como "vertexai". |
Sí |
|
|
Especifica el modelo de incrustación Vertex AI que se va a utilizar. |
Sí |
|
|
Su ID de proyecto de Google Cloud. |
Sí |
|
|
La región para el servicio Vertex AI. Actualmente, las incrustaciones de Vértice AI admiten principalmente us-central1. Por defecto es us-central1. |
No |
|
|
Especifica el tipo de tarea de incrustación, que afecta a los resultados de la incrustación. Valores aceptados: DOC_RETRIEVAL (por defecto), CODE_RETRIEVAL (sólo se admite 005), STS (Semantic Textual Similarity). |
No |
|
|
La dimensión de los vectores de incrustación de salida. Acepta números enteros entre 1 y 768. Nota: Si se especifica, asegúrese de que la dimensión del campo vectorial en el esquema coincide con este valor. |
No |
|
Pasos siguientes
Después de configurar la función de incrustación, consulte la Descripción general de la función para obtener orientación adicional sobre la configuración de índices, ejemplos de inserción de datos y operaciones de búsqueda semántica.