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 (milvus.yaml)

Alta

Configuración persistente para todo el clúster

Variables de entorno (MILVUSAI_GOOGLE_APPLICATION_CREDENTIALS)

Bajo

Flujos de trabajo de contenedores, pruebas rápidas

Milvus siempre preferirá las credenciales declaradas en milvus.yaml sobre cualquier variable de entorno para el mismo proveedor.

  1. Codifique en Base64 su clave JSON

    cat credentials.json | jq . | base64
    
  2. Declare las credenciales en milvus.yaml

    # milvus.yaml
    credential:
      gcp_vertex:                      # arbitrary label
        credential_json: |
          <YOUR_BASE64_ENCODED_JSON>
    
  3. 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_json y 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.

  1. Monte su llave en el contenedor

    Edite su archivo docker-compose.yaml para 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:ro
    

    En la configuración anterior:

    • Utilice rutas absolutas para un acceso fiable a los archivos (/home/user/credentials.json no ~/credentials.json)

    • La ruta del contenedor debe terminar con la extensión .json

    • :ro La bandera garantiza el acceso de sólo lectura por seguridad

  2. 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.json
    
  3. Aplique 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.

  1. 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

  2. Configure los valores de Helm

    Actualice su values.yaml en 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: true
      
    • Para 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.
      
  3. 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

provider

El proveedor del modelo de incrustación. Establecer como "vertexai".

"vertexai"

model_name

Especifica el modelo de incrustación Vertex AI que se va a utilizar.

"text-embedding-005"

projectid

Su ID de proyecto de Google Cloud.

"your-gcp-project-id"

location

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

"us-central1"

task

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

"DOC_RETRIEVAL"

dim

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

768

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.

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

¿Fue útil esta página?