Geração autônoma de embeddings

Este documento descreve como usar a geração autônoma de embeddings para seus dados, o que permite que o BigQuery mantenha uma coluna de embeddings em uma tabela com base em uma coluna de origem. A coluna de origem precisa ter um tipo de dados STRING ou ObjectRef. Quando você adiciona ou modifica dados na coluna de origem, o BigQuery gera ou atualiza automaticamente a coluna de embedding desses dados usando um modelo de embedding da Agent Platform. Isso é útil se você quiser que o BigQuery mantenha seus incorporações quando os dados de origem forem atualizados regularmente.

Os embeddings são úteis para aplicativos modernos de IA generativa, como a geração aumentada de recuperação (RAG, na sigla em inglês), mas podem ser complexos de criar, gerenciar e consultar. Você pode usar a geração autônoma de embeddings para simplificar o processo de criação, manutenção e consulta de embeddings para uso em pesquisas de similaridade e outros aplicativos de IA generativa.

Por exemplo, você pode usar consultas semelhantes às seguintes para criar uma tabela com a geração autônoma de embeddings ativada, inserir dados e realizar uma pesquisa semântica:

CREATE TABLE mydataset.products (
  name STRING,
  description STRING,
  description_embedding STRUCT<result ARRAY<FLOAT64>, status STRING>
    GENERATED ALWAYS AS (
      AI.EMBED(description, connection_id => 'us.example_connection',
        endpoint => 'text-embedding-005')
      # Alternatively, you can use the syntax for a built-in model.
      # AI.EMBED(description, model => 'embeddinggemma-300m')
    ) STORED OPTIONS( asynchronous = TRUE ));

# Values in the description_embedding column are automatically generated.
INSERT INTO mydataset.products (name, description) VALUES
  ('Super slingers', 'An exciting board game for the whole family'), ...;

SELECT * FROM AI.SEARCH(TABLE mydataset.products, 'description', 'A really fun toy');

Antes de começar

Para ativar a geração autônoma de incorporações em uma tabela, você precisa ter as permissões e a conexão necessárias e ativar a API Vertex AI para seu projeto.

Funções exigidas

Para receber as permissões necessárias para ativar a geração autônoma de incorporações, peça ao administrador para conceder a você os seguintes papéis do IAM:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Criar uma conexão e conceder permissão a uma conta de serviço

Para ativar a geração autônoma de embeddings em uma tabela, crie uma conexão a recursos do Cloud. Em seguida, conceda o papel de usuário da plataforma do agente (roles/aiplatform.user) à conta de serviço criada quando você criou a conexão.

Criar uma coluna de embedding gerada automaticamente

Você pode criar uma coluna de incorporação gerada automaticamente em uma nova tabela ou adicionar uma a uma tabela existente.

Criar uma tabela com uma coluna de embedding gerada automaticamente

Você pode usar a geração autônoma de embeddings com a função AI.EMBED em uma instrução CREATE TABLE.

SQL

Use uma instrução CREATE TABLE para criar uma tabela com uma coluna de embedding gerada automaticamente. Para criar a tabela, siga estas etapas:

  1. No console do Google Cloud , acesse a página BigQuery.

    Acessar o BigQuery

  2. No editor de consultas, digite a seguinte instrução:

    CREATE TABLE DATASET_ID.TABLE (
      [COLUMN, ...]
      SOURCE_COL { STRING | ObjectRef },
      EMBEDDING_COL_NAME STRUCT<result ARRAY<FLOAT64>, status STRING>
        GENERATED ALWAYS AS (
          AI.EMBED(
            SOURCE_COL,
            {
              connection_id => CONNECTION_ID,
              endpoint => ENDPOINT |
              model => MODEL
            })
        )
        STORED OPTIONS (asynchronous = TRUE)
    );

    Substitua:

    • DATASET_ID: o nome do conjunto de dados em que você quer criar a tabela.
    • TABLE: o nome da tabela em que a geração de embeddings autônomos será criada.
    • COLUMN, ...: todas as colunas que a tabela precisa ter, além daquela que você quer incorporar automaticamente.
    • SOURCE_COL: o nome da coluna STRING ou ObjectRef que você quer incorporar automaticamente.
    • EMBEDDING_COL_NAME: o nome da coluna de embedding gerada automaticamente.
    • CONNECTION_ID: um valor STRING que contém o nome de uma conexão a ser usada, como my_project.us.example_connection. Você precisa conceder o papel Usuário da plataforma de agente à conta de serviço da conexão no projeto em que você cria a tabela.
    • ENDPOINT: um valor STRING que especifica um endpoint de modelo de embedding de texto compatível da Agent Platform a ser usado para o modelo de embedding de texto. O valor do endpoint especificado precisa incluir a versão do modelo, por exemplo, text-embedding-005. Se você especificar o nome do modelo em vez de um URL, o BigQuery ML vai identificar automaticamente o modelo e usar o endpoint completo dele.
    • MODEL (prévia): um valor STRING que especifica um modelo de embedding de texto integrado. O único valor compatível é o modelo embeddinggemma-300m. Se você especificar esse parâmetro, não poderá especificar os parâmetros endpoint ou connection_id. Quando você especifica o parâmetro MODEL, seus dados permanecem no BigQuery, e seus slots são usados para criar os embeddings. Nenhum dado é enviado para a Agent Platform, e não há cobranças nessa plataforma.

  3. Clique em Executar.

Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.

bq

Para criar uma tabela com uma coluna de incorporação gerada automaticamente usando a ferramenta de linha de comando bq, use o comando bq mk com um arquivo de esquema JSON que define o esquema da tabela:

  1. Crie um arquivo de esquema JSON. O exemplo a seguir mostra um esquema que cria uma coluna de embedding com base em uma coluna de origem. Este exemplo usa um endpoint da Agent Platform para geração de embeddings.

    [
      {
        "name": "SOURCE_COL",
        "type": "STRING"
      },
      {
        "fields": [
          {
            "mode": "REPEATED",
            "name": "result",
            "type": "FLOAT"
          },
          {
            "name": "status",
            "type": "STRING"
          }
        ],
        "generatedColumn": {
          "generationExpressionInfo": {
            "asynchronous": true,
            "generationExpression": "AI.EMBED(SOURCE_COL, connection_id => 'CONNECTION_ID', endpoint => 'ENDPOINT')",
            "stored": true
          },
          "generatedMode": "GENERATED_ALWAYS"
        },
        "name": "EMBEDDING_COL_NAME",
        "type": "RECORD"
      }
    ]
    

    Se você estiver usando um modelo integrado em vez de um endpoint da Agent Platform, use uma sintaxe semelhante à seguinte para generationExpression: "AI.EMBED(SOURCE_COL, model => 'MODEL')"

    Para informações sobre os valores a serem usados, consulte as descrições de SOURCE_COL, EMBEDDING_COL_NAME, CONNECTION_ID, ENDPOINT e MODEL na guia SQL.

  2. Salve o esquema em um arquivo, como schema.json.

  3. Crie a tabela usando o comando bq mk --table:

    bq mk --table DATASET_ID.TABLE schema.json
    

Substitua:

  • DATASET_ID: o nome do conjunto de dados em que você quer criar a tabela.
  • TABLE: o nome da tabela em que a geração autônoma de incorporações será criada.
  • COLUMN, ...: todas as colunas que a tabela precisa ter além da coluna que você quer incorporar automaticamente.
  • STRING_COL: o nome da coluna STRING que você quer incorporar automaticamente.
  • EMBEDDING_COL_NAME: o nome da coluna de embedding gerada automaticamente.
  • CONNECTION_ID: um valor STRING que contém o nome de uma conexão a ser usada, como my_project.us.example_connection. Você precisa conceder o papel de usuário da plataforma de agente à conta de serviço da conexão no projeto em que você cria a tabela.
  • ENDPOINT: um valor STRING que especifica um endpoint compatível do modelo de embedding de texto da Agent Platform a ser usado para o modelo de embedding de texto. O valor do endpoint especificado precisa incluir a versão do modelo, por exemplo, text-embedding-005. Se você especificar o nome do modelo em vez de um URL, o BigQuery ML vai identificar automaticamente o modelo e usar o endpoint completo dele.
  • MODEL (prévia): um valor STRING que especifica um modelo de embedding de texto integrado. O único valor compatível é o embeddinggemma-300m modelo. Se você especificar esse parâmetro, não poderá especificar os parâmetros endpoint ou connection_id.

    Quando você especifica o parâmetro MODEL, seus dados permanecem no BigQuery e seus slots são usados para criar os embeddings. Nenhum dado é enviado para a Agent Platform, e não há cobranças na Agent Platform.

Adicionar uma coluna de embeddings gerada automaticamente a uma tabela

Também é possível adicionar uma coluna de embeddings gerada automaticamente a uma tabela usando uma instrução ALTER TABLE ADD COLUMN.

SQL

Use uma instrução ALTER TABLE ADD COLUMN para adicionar uma coluna de embeddings gerada automaticamente a uma tabela atual. Para adicionar a coluna, siga estas etapas:

  1. No console do Google Cloud , acesse a página BigQuery.

    Acessar o BigQuery

  2. No editor de consultas, digite a seguinte instrução:

    ALTER TABLE DATASET_ID.TABLE
      ADD COLUMN EMBEDDING_COL_NAME
        STRUCT<result ARRAY<FLOAT64>, status STRING>
        GENERATED ALWAYS AS (
          AI.EMBED(
            SOURCE_COL,
            {
              connection_id => CONNECTION_ID,
              endpoint => ENDPOINT |
              model => MODEL
            })
        )
        STORED OPTIONS (asynchronous = TRUE)
    ;

    Substitua:

    • DATASET_ID: o nome do conjunto de dados que contém a tabela.
    • TABLE: o nome da tabela a que você quer adicionar a coluna de embedding gerada automaticamente.
    • EMBEDDING_COL_NAME: o nome da coluna de embedding gerada automaticamente.
    • SOURCE_COL: o nome da coluna STRING ou ObjectRef que você quer incorporar automaticamente.
    • CONNECTION_ID: um valor STRING que contém o nome de uma conexão a ser usada, como my_project.us.example_connection.
    • ENDPOINT: um valor STRING que especifica um endpoint de modelo de embedding de texto compatível da Agent Platform a ser usado para o modelo de embedding de texto.
    • MODEL (prévia): um valor STRING que especifica um modelo de embedding de texto integrado. O único valor compatível é o modelo embeddinggemma-300m. Se você especificar esse parâmetro, não poderá especificar os parâmetros endpoint ou connection_id. Quando você especifica o parâmetro MODEL, seus dados permanecem no BigQuery, e seus slots são usados para criar os embeddings. Nenhum dado é enviado para a Agent Platform, e não há cobranças nessa plataforma.

  3. Clique em Executar.

Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.

bq

Para adicionar uma coluna de incorporação gerada automaticamente a uma tabela usando a ferramenta de linha de comando bq, use o comando bq update com um arquivo de esquema JSON que define o esquema de tabela atualizado:

  1. Extraia o esquema atual da tabela e salve-o em um arquivo, como schema.json:
    bq show --schema --format=prettyjson DATASET_ID.TABLE > schema.json
    
  2. Edite schema.json para adicionar a definição da nova coluna de incorporação gerada automaticamente. O exemplo a seguir mostra a definição de uma coluna de embedding com base em uma coluna de origem. Este exemplo usa um endpoint da Agent Platform para geração de embeddings.

    [
      {
        "name": "SOURCE_COL",
        "type": "STRING"
      },
      {
        "fields": [
          {
            "mode": "REPEATED",
            "name": "result",
            "type": "FLOAT"
          },
          {
            "name": "status",
            "type": "STRING"
          }
        ],
        "generatedColumn": {
          "generationExpressionInfo": {
            "asynchronous": true,
            "generationExpression": "AI.EMBED(SOURCE_COL, connection_id => 'CONNECTION_ID', endpoint => 'ENDPOINT')",
            "stored": true
          },
          "generatedMode": "GENERATED_ALWAYS"
        },
        "name": "EMBEDDING_COL_NAME",
        "type": "RECORD"
      }
    ]
    

    Se você estiver usando um modelo integrado em vez de um endpoint da Agent Platform, use uma sintaxe semelhante à seguinte para generationExpression: "AI.EMBED(SOURCE_COL, model => 'MODEL')"

    Para informações sobre os valores a serem usados, consulte as descrições de SOURCE_COL, EMBEDDING_COL_NAME, CONNECTION_ID, ENDPOINT e MODEL na guia SQL.

  3. Atualize a tabela usando o comando bq update --table:

    bq update --table DATASET_ID.TABLE schema.json
    

    Substitua:

    • DATASET_ID: o nome do conjunto de dados que contém a tabela.
    • TABLE: o nome da tabela a que você quer adicionar a coluna de embedding gerada automaticamente.

O job em segundo plano de geração de incorporações começa logo depois que a tabela é criada ou alterada, ou depois que você atualiza os dados na coluna de origem.

Para acompanhar o progresso da geração de embeddings, use uma consulta semelhante a esta:

SELECT
  COUNT(*) AS total_num_rows,
  COUNTIF(description_embedding IS NOT NULL
          AND description_embedding.status = '') AS total_num_generated_embeddings
FROM
  PROJECT_ID.DATASET_ID.TABLE;

Depois de ter a tabela com embeddings, você pode criar um índice de vetor na coluna STRUCT que contém o embedding gerado automaticamente.

Exemplo

Suponha que você seja um grande varejista que vende muitos produtos diferentes. Você tem uma tabela de nomes e descrições de produtos e quer ajudar seus clientes a encontrar o que estão procurando. As consultas a seguir mostram como configurar a geração autônoma de incorporações para ajudar na pesquisa semântica das descrições de produtos.

Primeiro, crie um conjunto de dados:

CREATE SCHEMA mydataset;

Em seguida, crie uma tabela com a geração autônoma de embeddings ativada para armazenar as informações do produto. A coluna gerada automaticamente é chamada de description_embedding e se baseia na coluna description.

# Create a table of products and descriptions with a generated embedding column.
CREATE TABLE mydataset.products (
  name STRING,
  description STRING,
  description_embedding STRUCT<result ARRAY<FLOAT64>, status STRING>
    GENERATED ALWAYS AS (
      AI.EMBED(description, connection_id => 'us.example_connection',
        endpoint => 'text-embedding-005')
      # Alternatively, you can use the syntax for a built-in model.
      # AI.EMBED(description, model => 'embeddinggemma-300m')
    ) STORED OPTIONS( asynchronous = TRUE )
);

A consulta a seguir insere alguns nomes e descrições de produtos na tabela. Não é preciso especificar um valor para description_embedding porque ele é gerado automaticamente.

# Insert product descriptions into the table.
# The description_embedding column is automatically updated.
INSERT INTO mydataset.products (name, description) VALUES
  ("Lounger chair", "A comfortable chair for relaxing in."),
  ("Super slingers", "An exciting board game for the whole family."),
  ("Encyclopedia set", "A collection of informational books.");

Você também pode criar um índice de vetor na tabela para acelerar a pesquisa. Um índice de vetor exige mais de três linhas. Portanto, a consulta a seguir pressupõe que você inseriu mais dados. Sempre que você insere dados, a coluna description_embedding é atualizada automaticamente.

CREATE VECTOR INDEX my_index
ON mydataset.products(description_embedding)
OPTIONS(index_type = 'IVF');

Por fim, use a função AI.SEARCH para fazer uma pesquisa semântica nos seus produtos e encontrar um brinquedo divertido:

# Search for products that are fun to play with.
SELECT base.name, base.description, distance
FROM AI.SEARCH(TABLE mydataset.products, 'description', "A really fun toy");

/*------------------+----------------------------------------------+----------------------+
 | name             | description                                  | distance             |
 +------------------+----------------------------------------------+----------------------+
 | Super slingers   | An exciting board game for the whole family. | 0.80954913893618929  |
 | Lounger chair    | A comfortable chair for relaxing in.         | 0.938933930620146    |
 | Encyclopedia set | A collection of informational books.         | 1.1119297739353384   |
 +------------------+----------------------------------------------+----------------------*/

Embeddings gerados de ObjectRef colunas

É possível adicionar colunas de embeddings geradas para uma coluna ObjectRef em uma tabela.

O exemplo a seguir mostra como criar uma tabela com uma coluna ObjectRef e adicionar uma coluna de embedding gerada para ela:

# Create a table with ObjectRef columns.
CREATE TABLE mydataset.images AS
SELECT
  REGEXP_EXTRACT(ref.uri, r'.*/(.*).jpg$') AS name,
  ref
FROM mydataset.object_table;

# Add a generated embedding column for the ObjectRef column.
ALTER TABLE mydataset.images
ADD COLUMN image_embedding STRUCT<result ARRAY<FLOAT64>, status STRING>
GENERATED ALWAYS AS (
  AI.EMBED(
    ref,
    connection_id => "us.my_connection",
    endpoint => "multimodalembedding@001")
)
STORED OPTIONS (asynchronous = true);

Receber informações sobre colunas de incorporação geradas automaticamente

Para verificar se uma coluna é uma coluna de incorporação gerada automaticamente, consulte a visualização INFORMATION_SCHEMA.COLUMNS.

A consulta a seguir mostra informações sobre todas as colunas de incorporação geradas automaticamente:

SELECT *
FROM PROJECT_ID.DATASET_ID.INFORMATION_SCHEMA.COLUMNS
WHERE is_generated = 'ALWAYS';

O campo generation_expression mostra a chamada para a função AI.EMBED, que é usada para gerar os embeddings na coluna.

Usar sua própria reserva

Por padrão, o BigQuery usa slots sob demanda para processar a manutenção da coluna de incorporação gerada. Para garantir um desempenho previsível e consistente, você pode criar uma reserva e definir job_type como BACKGROUND. Quando uma reserva em segundo plano está presente, o BigQuery a usa para manter a coluna de incorporação gerada.

Cotas

Quando você usa um endpoint da Agent Platform para gerar embeddings especificando o parâmetro endpoint na função AI.EMBED, o BigQuery envia solicitações à Agent Platform para gerar embeddings. Essas solicitações estão sujeitas às cotas da Agent Platform. A cota de solicitações por minuto do seu modelo de embedding afeta diretamente a capacidade de processamento dos jobs de geração de embeddings em segundo plano. Se a geração de embeddings estiver lenta, solicite um limite de cota maior para a Agent Platform seguindo as instruções em Como solicitar uma cota maior. Se você especificar o parâmetro model na função AI.EMBED, os embeddings serão gerados no BigQuery, e nenhuma solicitação será enviada ao Agent Platform. Portanto, as cotas do Agent Platform não se aplicam.

Solução de problemas

A coluna de incorporação gerada contém dois campos: result e status. Se ocorrer um erro quando o BigQuery tentar gerar uma incorporação para uma linha específica na sua tabela, o campo result será NULL, e o campo status vai descrever o erro. Por exemplo, se a coluna de origem for NULL, a incorporação result também será NULL e o status será NULL value is not supported for embedding generation.

Um erro mais grave pode interromper a geração de embeddings. Nesse caso, é possível consultar a coluna async_generation_status na visualização INFORMATION_SCHEMA.COLUMNS para identificar o erro de bloqueio.

Os erros de bloqueio podem incluir o seguinte:

  • Erros de permissão negada
  • Erros de "não encontrado"
  • Erros de endpoint de modelo de embedding sem suporte
  • Erros de API Vertex AI não ativada

Quando o próximo job de geração de embedding for concluído, a coluna async_generation_status será limpa.

A consulta a seguir mostra como verificar erros de bloqueio:

SELECT
  column_name,
  async_generation_status
FROM
  mydataset.INFORMATION_SCHEMA.COLUMNS
WHERE
  table_name = 'images';

Se a coluna image_embedding tiver um erro de bloqueio, o resultado será semelhante a este:

[
  {
    "column_name": "image_embedding",
    "async_generation_status": {
      "blocking_error": {
        "message": "<service_account> does not have the permission to access resources used by AI.EMBED. Please follow https://cloud.google.com/bigquery/docs/permissions-for-ai-functions to set up permissions.",
        ...
      }
    }
  }
]

Também é possível consultar a visualização INFORMATION_SCHEMA.JOBS do job em segundo plano e analisar as informações no campo error_result. O ID de um job de incorporação em segundo plano tem o prefixo gc_. Por exemplo, a consulta a seguir extrai todos os jobs em segundo plano cujo resultado de erro não é NULL:

SELECT * FROM `region-REGION.INFORMATION_SCHEMA.JOBS` j
WHERE EXISTS (
  SELECT 1
  FROM unnest(j.referenced_tables) t
  WHERE
    j.project_id = 'PROJECT_ID'
    AND t.dataset_id = 'DATASET_ID'
    AND t.table_id = 'TABLE'
)
AND starts_with(job_id, 'gc')
AND error_result IS NOT NULL
ORDER BY j.creation_time DESC;

Monitorar custos

Os custos da geração autônoma de embeddings se enquadram nas seguintes categorias.

Custos de DML em segundo plano do BigQuery

Os embeddings gerados são gravados na sua tabela usando jobs DML em segundo plano. Por padrão, o BigQuery usa slots sob demanda para processar esses jobs. O projeto da tabela é cobrado de acordo com o modelo de faturamento sob demanda da DML.

Como alternativa, para garantir um desempenho previsível e consistente, você pode criar uma reserva e definir o job_type como BACKGROUND. Quando uma reserva em segundo plano está presente, o BigQuery a usa para executar os jobs DML em segundo plano. A reserva em segundo plano será cobrada pelo uso do tempo de slot dos jobs DML em segundo plano.

Custos da Gemini Enterprise Agent Platform

A geração autônoma de incorporações envia solicitações para a Gemini Enterprise Agent Platform, o que pode gerar custos. Para rastrear os custos da Agent Platform incorridos por jobs de incorporação em segundo plano, siga estas etapas:

  1. Confira seus relatórios de faturamento no Cloud Billing.
  2. Use filtros para refinar os resultados.

    Em "Serviços", selecione Vertex AI.

  3. Para conferir as cobranças de um job específico, filtre por rótulo.

    Defina a chave como bigquery_ml_job e o valor como o ID do job de incorporação. Todos os jobs de incorporação em segundo plano têm o prefixo gc_.

Pode levar até 24 horas para que algumas cobranças apareçam no Cloud Billing.

Limitações

  • Cada tabela aceita no máximo uma coluna de embedding gerada automaticamente.
  • Operações simultâneas de DML podem causar atrasos e falhas temporárias na geração de incorporações. Para melhorar o desempenho e reduzir os custos, recomendamos injetar dados em lotes e evitar atualizações frequentes de DML.
  • Se você estiver usando a API de streaming legada para ingerir dados, poderá haver atrasos antes do início da geração de incorporações.
  • Ao usar a API BigQuery Storage Write, os jobs de geração de incorporação em segundo plano podem falhar se um job de gravação de streaming estiver em execução simultaneamente. Quando isso acontece, a cota da Agent Platform e os custos de DML em segundo plano são desperdiçados. O uso da API Storage Write também causa jobs simultâneos de geração de embeddings na tabela, mas isso é processado pelo BigQuery, e nenhuma cota da Agent Platform ou custos de DML em segundo plano são desperdiçados.
  • Para aumentar a capacidade de transferência nos endpoints remotos da Agent Platform, recomendamos usar modelos de embedding de texto em vez de modelos do Gemini. Para mais informações, consulte Cotas.
  • Não há indicação de que uma coluna é gerada automaticamente quando você visualiza o esquema de uma tabela usando o console Google Cloud ou o campo ddl da visualização INFORMATION_SCHEMA.TABLES.
  • Se você criar uma cópia, um clone ou um snapshot de uma tabela que tenha uma coluna de incorporação gerada, apenas os dados serão copiados. A configuração de geração não se aplica à nova tabela, e as atualizações na coluna de origem da nova tabela não resultam em novos embeddings.
  • Se você restaurar uma tabela que tinha a geração autônoma de embeddings ativada de um instantâneo, a configuração de geração de embeddings não será restaurada.
  • Ao usar a API BigQuery, só é possível especificar a propriedade generatedColumn ao criar uma coluna. Não é possível adicionar, atualizar ou remover a propriedade generatedColumn em uma coluna existente.
  • Depois de criar a coluna de incorporação gerada, as seguintes limitações se aplicam:

    • Não é possível soltar ou renomear a coluna de origem, mas você ainda pode soltar ou renomear a coluna de incorporação gerada. Se você remover a coluna de incorporação, poderá remover ou renomear a coluna de origem.
    • Não é possível mudar o tipo de dados da coluna de origem ou da coluna de incorporação gerada.
  • Não é possível especificar valores padrão para colunas de incorporação geradas automaticamente.

  • Não é possível gravar diretamente em colunas de embeddings geradas usando estes métodos:

    • DML
    • Gravações de streaming
    • bq insert
    • bq load
    • bq copy -a
  • Tabelas com colunas de incorporação geradas não são compatíveis com políticas de segurança no nível da coluna, como tags de política.

  • Quando você chama uma função de pesquisa, como VECTOR_SEARCH ou AI.SEARCH, as linhas com embeddings ausentes na tabela de base são ignoradas durante a pesquisa.

  • Não é possível criar um índice de vetor particionado em uma tabela que tenha a geração autônoma de incorporação ativada.

  • Se você criar um índice vetorial na coluna de incorporação gerada automaticamente, o treinamento do índice vai começar depois que pelo menos 80% das linhas tiverem gerado incorporações. Para verificar o progresso da geração de incorporações, siga estas etapas:

    Consulte a porcentagem de embeddings gerados na sua tabela:

    SELECT
      COUNTIF(description_embedding IS NOT NULL
      AND description_embedding.status = '') * 100.0 / COUNT(*) AS percent
    FROM PROJECT_ID.DATASET_ID.TABLE;
    

A seguir