Gerar embeddings multimodais

Selecione uma versão da documentação:

É possível gerar embeddings multimodais no AlloyDB Omni usando o modelo multimodal da Vertex AI compatível, multimodalembedding@001.

É possível usar os modelos de embedding multimodal da Vertex AI mencionados em Modelos compatíveis.

Nesta página, presumimos que você já conhece o AlloyDB Omni e os conceitos de IA generativa. Para mais informações, consulte O que são embeddings.

Antes de começar

Antes de usar embeddings multimodais, faça o seguinte:

  1. Configurar o acesso do usuário aos modelos da Vertex AI.
  2. Verifique se a versão mais recente do google_ml_integration está instalada.
    1. Para verificar a versão instalada, execute o seguinte comando:

      SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';
      extversion
      ------------
      1.5.2
      (1 row)
    2. Se a extensão não estiver instalada ou se a versão instalada for anterior à 1.5.2, atualize a extensão.

      CREATE EXTENSION IF NOT EXISTS google_ml_integration;
      ALTER EXTENSION google_ml_integration UPDATE;

      Se você tiver problemas ao executar os comandos anteriores ou se a extensão não for atualizada para a versão 1.5.2 depois de executar os comandos anteriores, entre em contato com o suporte do Google Cloud.

  3. Para usar a funcionalidade do mecanismo de consulta da IA do AlloyDB, defina a flag google_ml_integration.enable_ai_query_engine como on.

    1. Use um editor de texto para definir a seguinte flag no arquivo de configuração postgresql.conf da sua instalação do AlloyDB Omni:
      google_ml_integration.enable_ai_query_engine = on
    2. Depois de salvar o arquivo postgresql.conf, reinicie o serviço do AlloyDB Omni para que as mudanças entrem em vigor.
      sudo systemctl restart alloydbomni18
  4. Acessar dados no Cloud Storage para gerar incorporações multimodais.

Acessar dados no Cloud Storage para gerar incorporações multimodais

  • Para gerar incorporações multimodais, consulte o conteúdo no Cloud Storage usando um URI gs://.
  • Acesse o conteúdo do Cloud Storage usando o agente de serviço da Vertex AI do projeto atual. Por padrão, o agente de serviço da Vertex AI já tem permissão para acessar o bucket no mesmo projeto. Para mais informações, consulte o índice de papéis e permissões do IAM.
  • Para acessar dados em um bucket do Cloud Storage em outro projeto do Google Cloud , execute o seguinte comando da CLI gcloud para conceder o papel Leitor de objeto do Storage (roles/storage.objectViewer) ao agente de serviço da Vertex AI do seu projetoGoogle Cloud .

    gcloud projects add-iam-policy-binding <ANOTHER_PROJECT_ID> \
    --member="serviceAccount:service-<PROJECT_ID>@gcp-sa-aiplatform.iam.gserviceaccount.com" \
    --role="roles/storage.objectViewer"

    Para mais informações, consulte Definir e gerenciar políticas do IAM em buckets.

Para gerar embeddings multimodais, selecione um dos seguintes esquemas.

Gerar embeddings multimodais

Para gerar embeddings de texto para um endpoint de modelo multimodalembedding@001, execute a seguinte instrução:

SELECT
  ai.text_embedding(
    model_id => 'multimodalembedding@001',
    content => 'TEXT');

Substitua TEXT pelo texto para gerar o embedding.

Para gerar embeddings de imagem para um endpoint de modelo multimodalembedding@001 registrado em que o mimetype da imagem é o padrão image/jpeg, execute a seguinte instrução:

SELECT
  ai.image_embedding(
    model_id => 'multimodalembedding@001',
    image => 'IMAGE_PATH_OR_TEXT',
    mimetype => 'MIMETYPE');

Substitua:

  • IMAGE_PATH_OR_TEXT com o URI do Cloud Storage da imagem, por exemplo, gs://my-bucket/embeddings/flowers.jpeg, ou a string base64 da imagem.
  • MIMETYPE com o tipo MIME da imagem, por exemplo, image/jpeg. Para conferir a lista completa de tipos MIME compatíveis, consulte a API Multimodal Embeddings.

Para gerar embeddings de vídeo para um endpoint de modelo multimodalembedding@001 registrado, execute a seguinte instrução:

SELECT
  ai.video_embedding(
    model_id => 'multimodalembedding@001',
    video => 'VIDEO_URI');

Substitua VIDEO_URI pelo URI do Cloud Storage do vídeo de destino, por exemplo, gs://my-bucket/embeddings/supermarket-video.mp4, ou pela string base64 do vídeo. São matrizes bidimensionais que podem ser acessadas como sintaxe do tipo my_array[0][5]. Para mais informações, consulte Matrizes.

A seguir