Resolver problemas de funções otimizadas

Neste documento, descrevemos os erros que podem ocorrer ao usar funções de IA otimizadas. Exemplos de erros e correções recomendadas também são apresentados.

É esperado um desempenho 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á sendo treinada, nunca foi preparada, falhou na verificação de validação da acurácia de tempo de execução ou se as colunas de conteúdo e incorporação 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 é inferior a 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 foi preparada corretamente usando a instrução PREPARE.
  • Verifique se as colunas de conteúdo e incorporação 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 matrizes para melhorar a performance.
  • Se você quiser ignorar a verificação de precisão de tempo de execução (por exemplo, em ambientes de desenvolvimento), defina google_ml_integration.runtime_accuracy_check como off para todo o ambiente de banco de dados.

    ALTER DATABASE DATABASE_NAME SET google_ml_integration.runtime_accuracy_check = off;
    

    Substitua DATABASE_NAME pelo nome do seu banco de dados.

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

Descrição

Se a consulta não estiver processando nenhuma linha, o motivo principal é que os incorporações não foram geradas ou quando toda a coluna de incorporação tem valores NULL. Isso faz com que a preparação da consulta falhe, porque ela não faz amostragem de linhas com incorporações NULL.

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

Desempenho lento apesar de usar 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 da acurácia de tempo de execução exige 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 Agent Platform e solicite um aumento, se necessário, para garantir que a verificação inicial da acurácia do tempo de execução possa prosseguir sem atrasos.

ERROR: function ai.if(prompt => text, embedding => vector) does not exist

Descrição

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

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.