Soluciona problemas relacionados con las funciones optimizadas

Para resolver los problemas de entrenamiento de modelos, preparación de consultas y resguardo de rendimiento cuando ejecutas funciones de IA optimizadas en AlloyDB para PostgreSQL, aplica las correcciones recomendadas para las advertencias o los errores que devuelven tus consultas.

Se espera un rendimiento reducido. La función IA optimizada no está disponible

Descripción

Esta advertencia indica que la consulta recurrió al uso del LLM. Esto ocurre cuando la función optimizada aún se está entrenando, nunca se preparó, falló la verificación de validación de exactitud del entorno de ejecución o si las columnas de contenido y de incorporación a las que se hace referencia en la función ai.if() no pertenecen a la misma tabla. En el caso de las tablas más pequeñas, es posible que el modelo proxy no se generalice bien y que la exactitud sea, por lo general, inferior al 95%, por lo que AlloyDB usa el LLM de forma predeterminada.

Consulta de ejemplo que causa el error

EXECUTE positive_reviews_query;
  • Espera a que se complete el entrenamiento de la función optimizada.
  • Asegúrate de que la consulta esté preparada correctamente con la sentencia PREPARE.
  • Verifica que las columnas de contenido y de incorporación a las que se hace referencia en la función ai.if() pertenezcan a la misma tabla.
  • Las funciones optimizadas (versión preliminar) son más adecuadas para tablas más grandes. También puedes usar funciones de IA basadas en arrays para mejorar el rendimiento.
  • Si deseas omitir la verificación de exactitud del entorno de ejecución (por ejemplo, en entornos de desarrollo), establece google_ml_integration.runtime_accuracy_check en off para todo el entorno de la base de datos.

    ALTER DATABASE DATABASE_NAME SET google_ml_integration.runtime_accuracy_check = off;
    

    Reemplaza DATABASE_NAME por el nombre de tu base de datos.

La consulta no procesa ninguna fila o la preparación del modelo falla

Descripción

Si la consulta no procesa ninguna fila, el motivo principal es que no se generan los embeddings o cuando toda la columna de embeddings tiene valores NULL. Esto hace que falle la preparación de la consulta, ya que no se muestrea ninguna fila que tenga incorporaciones de NULL.

  • Genera incorporaciones para tus datos antes de usar funciones optimizadas.
  • Asegúrate de que la columna de embedding no contenga valores NULL.
  • Las consultas que solo difieren en los valores constantes de la cláusula WHERE pueden seguir usando un modelo entrenado existente.

Rendimiento lento a pesar de usar funciones de IA optimizadas

Descripción

Asegúrate de no superar la cuota de Gemini Enterprise Agent Platform. Incluso con funciones de IA optimizadas, la verificación inicial de la exactitud del entorno de ejecución requiere llamar al LLM remoto para obtener una muestra de filas. Una cuota insuficiente puede hacer que esta verificación inicial sea lenta o falle.

Verifica tu cuota de Agent Platform y solicita un aumento si es necesario para garantizar que la verificación inicial de la exactitud del entorno de ejecución pueda continuar sin demoras.

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

Descripción

Si pasas el parámetro model_id junto con la columna de embedding cuando llamas a la función ai.if(), AlloyDB no usa el modelo de proxy entrenado y genera un error similar al siguiente:

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.

Asegúrate de no pasar el valor model_id cuando llames a la función ai.if(). Esto garantiza que AlloyDB use el modelo de proxy entrenado para procesar la consulta.