Resolver problemas de funções otimizadas

Para resolver problemas de treinamento de modelo, preparação de consultas e fallback de desempenho ao executar funções de IA otimizadas no AlloyDB para PostgreSQL, aplique as correções recomendadas para os avisos ou erros retornados pelas consultas.

O desempenho pode ser reduzido. A função de IA otimizada não está disponível

Descrição

Esse aviso indica que a consulta voltou a usar o LLM. Isso ocorre quando a função otimizada ainda está em treinamento, nunca foi preparada, falhou na verificação de validação de acurácia do ambiente de execução ou se as colunas de conteúdo e embedding referenciadas na função ai.if() não pertencem à mesma tabela. Para tabelas menores, o modelo de proxy pode não generalizar bem, e a acurácia geralmente é menor que 95%. Por isso, o AlloyDB usa o LLM por padrão.

Exemplo de consulta que causa o erro

EXECUTE positive_reviews_query;
  • Aguarde a conclusão do treinamento da função otimizada.
  • Verifique se a consulta está preparada corretamente usando a instrução PREPARE.
  • Verifique se as colunas de conteúdo e embedding referenciadas na função ai.if() pertencem à mesma tabela.
  • As funções otimizadas (pré-lançamento) são mais adequadas para tabelas maiores. Você também pode usar funções de IA baseadas em matriz para melhorar o desempenho.
  • Se você quiser ignorar a verificação de precisão do ambiente de execução (por exemplo, em ambientes de desenvolvimento), defina google_ml_integration.runtime_accuracy_check como off para todo o ambiente do banco de dados.

    ALTER DATABASE DATABASE_NAME SET google_ml_integration.runtime_accuracy_check = off;
    

    Substitua DATABASE_NAME pelo nome do banco de dados.

A consulta não está processando nenhuma linha ou a preparação do modelo está falhando

Descrição

Se a consulta não estiver processando nenhuma linha, o motivo principal é que os embeddings não foram gerados ou que toda a coluna de embedding tem valores NULL. Isso faz com que a preparação da consulta falhe, porque ela não faz amostragem de nenhuma linha que tenha embeddings NULL.

  • Gere embeddings para seus dados antes de usar funções otimizadas.
  • Verifique se a coluna de embedding não contém valores NULL.
  • As consultas que diferem apenas em valores constantes na cláusula WHERE ainda podem usar um modelo treinado.

Desempenho lento apesar do uso de funções de IA otimizadas

Descrição

Verifique se você não está excedendo a cota da Gemini Enterprise Agent Platform. Mesmo com funções de IA otimizadas, a verificação inicial de precisão do ambiente de execução requer a chamada do LLM remoto para uma amostra de linhas. Uma cota insuficiente pode fazer com que essa verificação inicial seja lenta ou falhe.

Verifique sua cota da plataforma de agentes e solicite um aumento, se necessário, para garantir que a verificação inicial de precisão do ambiente de execução possa prosseguir sem atrasos.

ERRO: a função ai.if(prompt => text, embedding => vector) não existe

Descrição

Se você transmitir o parâmetro model_id com a coluna de embedding ao chamar a função ai.if(), o AlloyDB não vai usar o modelo de proxy treinado e vai gerar um erro semelhante ao seguinte:

testdb=# select ai.if('Is the rating positive?' || review, review_embedding, 'gemini-2.5-pro') from restaurant_reviews;
ERROR:  function ai.if(text, vector, unknown) does not exist
LINE 1: select ai.if('Is the rating positive?' || review, review_embe...
               ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

Verifique se você não está transmitindo o valor model_id ao chamar a função ai.if(). Isso garante que o AlloyDB use o modelo de proxy treinado para processar a consulta.