IA do vérticeCompatible with Milvus 2.6.x

O Google Cloud Vertex AI é um serviço de elevado desempenho concebido especificamente para modelos de incorporação de texto. Este guia explica como utilizar o Google Cloud Vertex AI com o Milvus para uma geração eficiente de incorporação de texto.

O Vertex AI suporta vários modelos de incorporação para diferentes casos de utilização:

  • gemini-embedding-001 (desempenho topo de gama em tarefas em inglês, multilingues e de código)

  • text-embedding-005 (Modelo de incorporação de texto mais recente)

  • text-multilingual-embedding-002 (Modelo de incorporação de texto multilingue mais recente)

Para obter mais informações, consulte Modelos de incorporação de texto do Vertex AI.

Pré-requisitos

Certifique-se de que cumpre estes requisitos antes de configurar o Vertex AI:

  • Executar o Milvus versão 2.6 ou superior - Verifique se a implantação atende ao requisito de versão mínima.

  • Criar uma conta de serviço do Google Cloud - No mínimo, provavelmente precisará de funções como "Usuário do Vertex AI" ou outras funções mais específicas. Para obter detalhes, consulte Criar contas de serviço.

  • Baixe o arquivo de chave JSON da conta de serviço - armazene com segurança esse arquivo de credenciais no servidor ou no computador local. Para obter detalhes, consulte Criar uma chave de conta de serviço.

Configurar credenciais

Antes que o Milvus possa chamar a Vertex AI, ele precisa acessar a chave JSON da sua conta de serviço do GCP. Oferecemos suporte a dois métodos - escolha um com base nas suas necessidades operacionais e de implantação.

Opção

Prioridade

Melhor para

Ficheiro de configuração (milvus.yaml)

Alta

Definições persistentes em todo o cluster

Variáveis de ambiente (MILVUSAI_GOOGLE_APPLICATION_CREDENTIALS)

Baixa

Fluxos de trabalho de contentores, testes rápidos

Milvus sempre preferirá credenciais declaradas em milvus.yaml sobre quaisquer variáveis de ambiente para o mesmo provedor.

  1. Codificação base64 da sua chave JSON

    cat credentials.json | jq . | base64
    
  2. Declare as credenciais em milvus.yaml

    # milvus.yaml
    credential:
      gcp_vertex:                      # arbitrary label
        credential_json: |
          <YOUR_BASE64_ENCODED_JSON>
    
  3. Vincular a credencial ao provedor Vertex AI

    # milvus.yaml
    function:
      textEmbedding:
        providers:
          vertexai:
            credential: gcp_vertex      # must match the label above
            url: <optional: custom Vertex AI endpoint>
    

    Se mais tarde precisar de rodar as chaves, basta atualizar a cadeia de caracteres Base64 em credential_json e reiniciar o Milvus - não são necessárias alterações ao seu ambiente ou contentores.

Opção 2: variáveis de ambiente

Use este método quando preferir injetar segredos no momento da implantação. O Milvus recorre às env-vars apenas se não existir uma entrada correspondente em milvus.yaml.

As etapas de configuração dependem do seu modo de implantação do Milvus (autônomo vs. cluster distribuído) e da plataforma de orquestração (Docker Compose vs. Kubernetes).

Para obter o ficheiro de configuração do Milvus(docker-compose.yaml), consulte Transferir um ficheiro de instalação.

  1. Monte a sua chave no contentor

    Edite o seu ficheiro docker-compose.yaml para incluir o mapeamento do volume de credenciais:

    services:
      standalone:
        volumes:
          # Map host credential file to container path
          - /path/to/your/credentials.json:/milvus/configs/google_application_credentials.json:ro
    

    Na configuração anterior:

    • Utilizar caminhos absolutos para um acesso fiável aos ficheiros (/home/user/credentials.json e não ~/credentials.json)

    • O caminho do contentor tem de terminar com a extensão .json

    • :ro O sinalizador garante acesso somente leitura para segurança

  2. Definir variável de ambiente

    No mesmo ficheiro docker-compose.yaml, adicione a variável de ambiente que aponta para o caminho da credencial:

    services:
      standalone:
        environment:
          # Essential for Vertex AI authentication
          MILVUSAI_GOOGLE_APPLICATION_CREDENTIALS: /milvus/configs/google_application_credentials.json
    
  3. Aplicar alterações

    Reinicie o contentor do Milvus para ativar a configuração:

    docker-compose down && docker-compose up -d
    

Para obter seu arquivo de configuração do Milvus(values.yaml), consulte Configurar o Milvus via arquivo de configuração.

  1. Criar um segredo do Kubernetes

    Execute isto na sua máquina de controlo (onde o kubectl está configurado):

    kubectl create secret generic vertex-ai-secret \
      --from-file=credentials.json=/path/to/your/credentials.json \
      -n <your-milvus-namespace>
    

    No comando anterior:

    • vertex-ai-secret: Nome para o seu segredo (personalizável)

    • /path/to/your/credentials.json: Nome de ficheiro local do seu ficheiro de credenciais GCP

    • <your-milvus-namespace>: Espaço de nomes Kubernetes que aloja o Milvus

  2. Configurar os valores do Helm

    Actualize o seu values.yaml com base no seu tipo de implementação:

    • Para implantação autónoma

      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 implantação distribuída (adicionar 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. Aplicar a configuração do Helm

    Implemente a configuração actualizada no seu cluster:

    helm upgrade milvus milvus/milvus -f values.yaml -n <your-milvus-namespace>
    

Usar a função de incorporação

Depois que o Vertex AI estiver configurado, siga estas etapas para definir e usar funções de incorporação.

Etapa 1: definir campos de esquema

Para usar uma função de incorporação, crie uma coleção com um esquema específico. Esse esquema deve incluir pelo menos três campos necessários:

  • O campo primário que identifica de forma exclusiva cada entidade numa coleção.

  • Um campo escalar que armazena os dados brutos a serem incorporados.

  • Um campo vetorial reservado para armazenar as incorporações vectoriais que a função irá gerar para o 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)

Passo 2: Adicionar a função de incorporação ao esquema

O módulo Function do Milvus converte automaticamente os dados brutos armazenados num campo escalar em embeddings e armazena-os no campo vetorial explicitamente definido.

# 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

Descrição do parâmetro

Necessário?

Exemplo Valor

provider

O fornecedor do modelo de incorporação. Definido como "vertexai".

Sim

"vertexai"

model_name

Especifica qual o modelo de incorporação Vertex AI a utilizar.

Sim

"text-embedding-005"

projectid

O ID do seu projeto Google Cloud.

Sim

"your-gcp-project-id"

location

A região para o serviço Vertex AI. Atualmente, os embeddings do Vertex AI suportam principalmente us-central1. O padrão é us-central1.

Não

"us-central1"

task

Especifica o tipo de tarefa de incorporação, afectando os resultados da incorporação. Valores aceites: DOC_RETRIEVAL (predefinição), CODE_RETRIEVAL (apenas 005 suportado), STS (Semantic Textual Similarity).

Não

"DOC_RETRIEVAL"

dim

A dimensão dos vectores de incorporação de saída. Aceita números inteiros entre 1 e 768. Nota: Se especificado, certifique-se de que a dimensão do campo de vetor no Schema corresponde a este valor.

Não

768

Próximos passos

Depois de configurar a função de incorporação, consulte a Visão geral da função para obter orientações adicionais sobre a configuração do índice, exemplos de inserção de dados e operações de pesquisa semântica.

Try Managed Milvus for Free

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

Get Started
Feedback

Esta página foi útil?