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 embeddings quando os dados de origem forem atualizados regularmente.
Os embeddings são úteis para aplicações modernas de IA generativa, como a geração aumentada por 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 outras aplicações de IA generativa.
Por exemplo, é possível 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 embeddings 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 embeddings, peça ao administrador para conceder a você as seguintes funções do IAM:
-
Para usar um recurso de conexão:
usuário de conexões do BigQuery (
roles/bigquery.connectionUser) na conexão -
Para criar ou alterar uma tabela:
editor de dados do BigQuery (
roles/bigquery.dataEditor) na tabela -
Conceda à conta de serviço da conexão a seguinte função para que ela possa acessar modelos hospedados em endpoints da Agent Platform:
Usuário da Agent Platform (
roles/aiplatform.user) no projeto que tem a conexão
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 receber as permissões necessárias por meio de funções personalizadas ou outras funções predefinidas.
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, é necessário
criar uma conexão a recursos do Cloud.
Em seguida, conceda
a função de usuário da Agent Platform
(roles/aiplatform.user) à conta de serviço criada ao
criar a conexão.
Criar uma coluna de embedding gerada automaticamente
É possível criar uma coluna de embedding gerada automaticamente em uma nova tabela ou adicionar uma a uma tabela atual.
Criar uma tabela com uma coluna de embedding gerada automaticamente
É possível usar a geração autônoma de embeddings para gerar embeddings usando
a AI.EMBED função
em uma
CREATE TABLE instrução.
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:
No Google Cloud console, acesse a página BigQuery.
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 autônoma de embeddings será criada.COLUMN, ...: todas as colunas que a tabela precisa conter, além da coluna que você quer incorporar automaticamente.SOURCE_COL: o nome da colunaSTRINGouObjectRefque você quer incorporar automaticamente.EMBEDDING_COL_NAME: o nome da coluna de embedding gerada automaticamente.CONNECTION_ID: um valorSTRINGque contém o nome de uma conexão a ser usada, comomy_project.us.example_connection. Você precisa conceder a função de usuário da Agent Platform à conta de serviço da conexão no projeto em que você cria a tabela.ENDPOINT: um valorSTRINGque especifica um endpoint de modelo de embedding de texto da Agent Platform compatível 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 e usar automaticamente o endpoint completo do modelo.MODEL(Prévia): um valorSTRINGque especifica um modelo de embedding de texto integrado. O único valor compatível é oembeddinggemma-300mmodelo. Se você especificar esse parâmetro, não será possível especificar os parâmetrosendpointouconnection_id. Ao especificar o parâmetroMODEL, seus dados permanecem no BigQuery e seus slots são usados para criar os embeddings. Nenhum dado é enviado para a Agent Platform e nenhuma cobrança é feita na Agent Platform.
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 embedding 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:
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,ENDPOINTeMODELna guia SQL.Salve o esquema em um arquivo, como
schema.json.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 embeddings será criada.COLUMN, ...: todas as colunas que a tabela precisa conter, além da coluna que você quer incorporar automaticamente.STRING_COL: o nome da colunaSTRINGque você quer incorporar automaticamente.EMBEDDING_COL_NAME: o nome da coluna de embedding gerada automaticamente.CONNECTION_ID: um valorSTRINGque contém o nome de uma conexão a ser usada, comomy_project.us.example_connection. Você precisa conceder a função de usuário da Agent Platform à conta de serviço da conexão no projeto em que você cria a tabela.ENDPOINT: um valorSTRINGque especifica um endpoint de modelo de embedding de texto da Agent Platform compatível 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 e usar automaticamente o endpoint completo do modelo.MODEL(Prévia): um valorSTRINGque especifica um modelo de embedding de texto integrado. O único valor compatível é oembeddinggemma-300mmodelo. Se você especificar esse parâmetro, não será possível especificar os parâmetrosendpointouconnection_id.Ao especificar 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 nenhuma cobrança é feita na Agent Platform.
Adicionar uma coluna de embedding gerada automaticamente a uma tabela atual
Também é possível adicionar uma coluna de embedding gerada automaticamente a uma tabela atual
usando uma ALTER TABLE ADD COLUMN instrução.
SQL
Use uma instrução ALTER TABLE ADD COLUMN para adicionar uma coluna de embedding gerada automaticamente a uma tabela atual. Para adicionar a coluna, siga estas etapas:
No Google Cloud console, acesse a página BigQuery.
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 colunaSTRINGouObjectRefque você quer incorporar automaticamente.CONNECTION_ID: um valorSTRINGque contém o nome de uma conexão a ser usada, comomy_project.us.example_connection.ENDPOINT: um valorSTRINGque especifica um endpoint de modelo de embedding de texto da Agent Platform compatível a ser usado para o modelo de embedding de texto.MODEL(Prévia): um valorSTRINGque especifica um modelo de embedding de texto integrado. O único valor compatível é oembeddinggemma-300mmodelo. Se você especificar esse parâmetro, não será possível especificar os parâmetrosendpointouconnection_id. Ao especificar o parâmetroMODEL, seus dados permanecem no BigQuery e seus slots são usados para criar os embeddings. Nenhum dado é enviado para a Agent Platform e nenhuma cobrança é feita na Agent Platform.
Clique em Executar.
Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.
bq
Para adicionar uma coluna de embedding gerada automaticamente a uma tabela atual usando a ferramenta de linha de comando bq, use o comando bq update com um arquivo de esquema JSON que define o esquema da tabela atualizada:
- Receba o esquema atual da tabela e salve-o em um arquivo, como
schema.json:bq show --schema --format=prettyjson DATASET_ID.TABLE > schema.json
Edite
schema.jsonpara adicionar a definição da nova coluna de embedding 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,ENDPOINTeMODELna guia SQL.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 de geração de embedding em segundo plano começa logo após a criação ou alteração da tabela ou depois que você atualiza os dados na coluna de origem.
Para acompanhar o progresso da geração de embeddings, use uma consulta semelhante à seguinte:
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, é possível
criar um índice vetorial
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 os produtos que estão procurando. As consultas a seguir mostram como configurar a geração autônoma de embeddings para ajudar na pesquisa semântica das descrições dos 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 é baseada 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 é necessário 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.");
Opcionalmente, é possível criar um índice vetorial na tabela para acelerar a pesquisa.
Um índice vetorial exige mais de três linhas. Portanto, a consulta a seguir pressupõe que você inseriu dados adicionais. 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, é possível usar a
AI.SEARCH função
para realizar uma pesquisa semântica nos seus produtos de 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 colunas ObjectRef
É possível adicionar colunas de embedding geradas para uma coluna ObjectRef em uma tabela.
O exemplo a seguir mostra como criar uma tabela com uma coluna ObjectRef e, em seguida, adicionar uma coluna de embedding gerada para essa coluna:
# 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 embedding geradas automaticamente
Para verificar se uma coluna é uma coluna de embedding gerada automaticamente, consulte
a
INFORMATION_SCHEMA.COLUMNS visualização.
A consulta a seguir mostra informações sobre todas as colunas de embedding 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 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 embedding gerada. Para garantir
um desempenho previsível e consistente, é possível
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 embedding gerada.
Cotas
Ao usar um endpoint da Agent Platform para geração de 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 para o modelo de embedding afeta diretamente a capacidade de processamento dos jobs de geração de embedding em segundo plano. Se a geração de embeddings for lenta, solicite um
limite de cota maior para a Agent Platform seguindo as instruções em
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 para a Agent Platform. Portanto, as cotas da Agent Platform não se aplicam.
Solução de problemas
A coluna de embedding gerada contém dois campos: result e status.
Se ocorrer um erro quando o BigQuery tentar gerar um embedding para uma linha específica na tabela, o campo result será NULL e o campo status descreverá o erro. Por exemplo, se a coluna de origem for NULL
então o result embedding também será NULL e o status é
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 async_generation_status coluna na
INFORMATION_SCHEMA.COLUMNS visualização
para identificar o erro de bloqueio.
Os erros de bloqueio podem incluir o seguinte:
- Erros de permissão negada
- Erros não encontrados
- Erros de endpoint de modelo de embedding não compatível
- Erros da API Vertex AI não ativada
Quando o próximo job de geração de embedding for bem-sucedido, 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 ao seguinte:
[
{
"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
INFORMATION_SCHEMA.JOBS visualização
para o job em segundo plano e conferir as informações no campo error_result.
O ID do job de um embedding 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;
Acompanhar custos
Os custos de 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 tabela usando jobs DML em segundo plano. Por padrão, o BigQuery usa slots sob demanda para processar esses jobs. O projeto da tabela é faturado seguindo o modelo de faturamento sob demanda de DML.
Como alternativa, para garantir um desempenho previsível e consistente, é possível
criar uma reserva
e definir 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á faturada pelo uso do tempo de slot dos jobs DML em segundo plano.
Custos da Gemini Enterprise Agent Platform
A geração autônoma de embeddings envia solicitações para a Gemini Enterprise Agent Platform, o que pode gerar custos. Para acompanhar os custos da Agent Platform gerados por jobs de embedding em segundo plano, siga estas etapas:
- Consulte seus relatórios de faturamento em Cloud Billing.
Use filtros para refinar seus resultados.
Para serviços, selecione Vertex AI.
Para conferir as cobranças de um job específico, filtre por rótulo.
Defina a chave como
bigquery_ml_jobe o valor como o ID do job de embedding. Os jobs de embedding em segundo plano têm um prefixo degc_.
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 DML simultâneas podem causar atrasos e falhas temporárias na geração de embeddings. 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 alguns atrasos antes do início da geração de embeddings.
- Ao usar a API BigQuery Storage Write (gRPC), os jobs de geração de embedding em segundo plano poderão falhar se um job de gravação de streaming estiver em execução simultaneamente. Quando isso ocorre, a cota da Agent Platform e os custos de DML em segundo plano são desperdiçados. O uso da API Storage Write (gRPC) também causa jobs de geração de embedding simultâneos 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 maior capacidade nos endpoints remotos da Agent Platform, recomendamos o uso de 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 seja gerada automaticamente ao
visualizar o esquema de uma tabela usando o Google Cloud console
ou o
ddlcampo da visualizaçãoINFORMATION_SCHEMA.TABLES. - Se você criar uma cópia, um clone ou um snapshot de uma tabela que tenha uma coluna de embedding 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 resultarão em novos embeddings.
- Se você restaurar uma tabela que tinha a geração autônoma de embeddings ativada de um snapshot, a configuração de geração de embeddings não será restaurada.
- Ao usar a API BigQuery, só é possível especificar a propriedade
generatedColumnao criar uma nova coluna. Não é possível adicionar, atualizar ou remover a propriedadegeneratedColumnem uma coluna atual. Depois de criar a coluna de embedding gerada, as seguintes limitações se aplicam:
- Não é possível remover ou renomear a coluna de origem, mas ainda é possível remover ou renomear a coluna de embedding gerada. Se você remover a coluna de embedding, poderá remover ou renomear a coluna de origem.
- Não é possível alterar o tipo de dados da coluna de origem ou da coluna de embedding gerada.
Não é possível especificar valores padrão para colunas de embedding geradas automaticamente.
Não é possível gravar diretamente em colunas de embedding geradas usando estes métodos:
- DML
- Gravações de streaming
bq insertbq loadbq copy -a
Tabelas com colunas de embedding geradas não aceitam políticas de segurança no nível da coluna, como tags de política.
Ao chamar uma função de pesquisa, como
VECTOR_SEARCHouAI.SEARCH, as linhas com embeddings ausentes na tabela base são ignoradas durante a pesquisa.Não é possível criar um índice vetorial particionado em uma tabela que tenha a geração autônoma de embeddings ativada.
Se você criar um índice vetorial na coluna de embedding gerada automaticamente, o treinamento do índice será iniciado depois que pelo menos 80% das linhas tiverem embeddings gerados. Para verificar o progresso da geração de embeddings, siga estas etapas:
Consulte a porcentagem de embeddings na tabela que foram gerados:
SELECT COUNTIF(description_embedding IS NOT NULL AND description_embedding.status = '') * 100.0 / COUNT(*) AS percent FROM PROJECT_ID.DATASET_ID.TABLE;
A seguir
- Saiba mais sobre como criar e gerenciar índices vetoriais.
- Consulte a Introdução à pesquisa de vetor.