Compartir por


¿Cuál es la extensión de azure_local_ai para Azure Database for PostgreSQL: servidor flexible (versión preliminar)

La extensión azure_local_ai para el servidor flexible de Azure Database for PostgreSQL permite usar modelos registrados, previamente entrenados y de código abierto implementados localmente en el servidor de Azure Database for PostgreSQL. Estos modelos se pueden usar para crear inserciones de texto que pueden proporcionar contexto al patrón de generación aumentada de recuperación (RAG) a medida que crea aplicaciones enriquecidas de inteligencia artificial generativa.  La extensión azure_local_ai permite que la base de datos llame a modelos implementados localmente para crear incrustaciones de vectores a partir de datos de texto, lo que simplifica el proceso de desarrollo y reduce la latencia mediante la eliminación de la necesidad de realizar llamadas API más remotas a modelos de inserción de IA hospedados fuera del límite de PostgreSQL. En esta versión, la extensión implementa un único modelo, multilingual-e5-small, en la instancia del servidor flexible de Azure Database for PostgreSQL. Es posible que otros modelos de código abierto de terceros estén disponibles para su instalación de forma continua.

Las incrustaciones locales ayudan a los clientes:

  • Reduzca la latencia de la creación de incrustaciones.

  • Use la inserción de modelos a un costo predecible.

  • Mantenga los datos dentro de su base de datos eliminando la necesidad de transmitir datos a un punto de conexión remoto.

Importante

La extensión azure_local_ai está actualmente en versión preliminar. Los modelos de inteligencia artificial de código abierto de Microsoft para su instalación a través de la extensión de Inteligencia artificial local de Azure se consideran productos que no son de Microsoft en los términos del producto de Microsoft. El uso del cliente de modelos de IA de código abierto se rige por los términos de licencia independientes proporcionados en la documentación del producto asociada a estos modelos disponibles a través de la extensión azure_local_ai. Términos de uso complementarios: servicios de IA de acceso limitado (versiones preliminares)

Habilitación de la extensión azure_local_ai (versión preliminar)

Para poder habilitar azure_local_ai en la instancia de servidor flexible de Azure Database for PostgreSQL, debe agregarla a la lista de permitidos tal como se describe en cómo usar extensiones de PostgreSQL y comprobar que se agregó correctamente mediante la ejecución de la siguiente instrucción SQL, SHOW azure.extensions;.

Importante

El hospedaje de modelos de lenguaje en la base de datos requiere una superficie de memoria grande. Para admitir este requisito, azure_local_ai solo se admite en SKU de máquina virtual de Azure optimizadas para memoria con un mínimo de 4 núcleos virtuales. En la actualidad, si usa una máquina virtual que no cumple los requisitos mínimos, la extensión de azure_local_ai no aparecerá en la lista de extensiones disponibles en Parámetros del servidor. Seleccione Parámetros del servidor en la sección Configuración del menú Recursos de la página Azure Portal de Azure Database for PostgreSQL con servidor flexible de Azure.

Captura de pantalla de la página de parámetros del servidor PostgreSQL.

Busque "extensiones" o "azure.extensions"

Captura de pantalla de extensiones disponibles para la lista de permitidos para el servidor flexible de Azure Database for Postgresql.

Seleccione AZURE_LOCAL_AI en la lista de extensiones.

Captura de pantalla de la lista de extensiones permitidas para la extensión Azure Local AI.

Seleccione Guardar para aplicar los cambios y comenzar el proceso de implementación de la lista de permitidos.

Captura de pantalla de extensiones guardadas en la lista de permitidos para la extensión de Inteligencia artificial local de Azure.

Puede supervisar esta implementación mediante el icono de campana en la parte superior de Azure Portal.

Captura de pantalla del estado de implementación de la lista de permitidos de extensiones para la extensión de Inteligencia artificial local de Azure.

Una vez completada la implementación de la lista de permitidos, puede continuar con el proceso de instalación.

Nota:

Al habilitar la versión preliminar de Azure Local AI, se implementará el modelo multilingual-e5-small en la instancia del servidor flexible de Azure Database for PostgreSQL. La documentación vinculada proporciona los términos de licencia del equipo de e5. Es posible que otros modelos de código abierto de terceros estén disponibles para su instalación de forma continua.

Ahora puede instalar la extensión conectándose a la base de datos de destino y ejecutando el comando CREATE EXTENSION. Debe repetir el comando por separado para cada base de datos en la que quiera que la extensión esté disponible.

Las extensiones de lista se permiten en la base de datos desde la página Azure Portal - Parámetros del servidor.

SHOW azure.extensions;

Cree la extensión dentro de la base de datos.

CREATE EXTENSION azure_local_ai;

Al instalar la extensión azure_local_ai se crea el esquema siguiente:

  • azure_local_ai: esquema principal en el que la extensión crea tablas, funciones y cualquier otro objeto relacionado con SQL que requiera para implementar y exponer su funcionalidad.

Importante

Le conviene habilitar la extensión vectorial, ya que es necesaria para almacenar incrustaciones de texto en la base de datos PostgreSQL.

Funciones proporcionadas por la extensión azure_local_ai

La extensión azure_local_ai proporciona un conjunto de funciones. Estas funciones permiten crear inserciones de vectores a partir de datos de texto, lo que facilita el desarrollo de aplicaciones de IA generativas. La extensión ofrece funciones para crear inserciones, obtener configuraciones, etc. Con estas funciones, puede simplificar el proceso de desarrollo y reducir la latencia mediante la eliminación de la necesidad de llamadas API remotas adicionales a modelos de inserción de IA hospedados fuera del límite de PostgreSQL.

Esquema Nombre Tipos de datos de resultado Tipos de datos de argumento
azure_local_ai create_embeddings TABLE(embedding real[]) model_uri text, inputs text[], batch_size bigint DEFAULT 128, timeout_ms integer DEFAULT 3600000
azure_local_ai create_embeddings real[] model_uri text, input text, timeout_ms integer DEFAULT 3600000
azure_local_ai get_setting jsonb keys text[] DEFAULT ARRAY[]::text[], timeout_ms integer DEFAULT 3600000
azure_local_ai get_setting text key text, timeout_ms integer DEFAULT 3600000
azure_local_ai model_metadata jsonb model_uri text

Se pueden mostrar mediante el comando PSQL,

\df azure_local_ai.*

azure_local_ai.create_embeddings

La extensión azure_local_ai permite crear y actualizar inserciones tanto en formato escalar como por lotes, invocando el LLM implementado localmente.

azure_local_ai.create_embeddings(model_uri text, input text, batch_size bigint DEFAULT 128, timeout_ms integer DEFAULT 3600000);
azure_local_ai.create_embeddings(model_uri text, array[inputs [text]], batch_size bigint DEFAULT 128, timeout_ms integer DEFAULT 3600000);

Argumentos

model_uri

text nombre del modelo de inserción de texto invocado para crear la inserción.

input

Texto único de text o text[] o matriz de textos, en función de la sobrecarga de la función utilizada, para la que se crean incrustaciones.

batch_size

bigint DEFAULT 128 número de registros que se van a procesar a la vez (solo está disponible para la sobrecarga de la función para la que el parámetro input es de tipo text[]).

timeout_ms

integer DEFAULT 3600000 tiempo de espera en milisegundos después del cual se detiene la operación.

Ejemplos de inserciones de creación simple:

SELECT azure_local_ai.create_embeddings('model_uri TEXT', 'query: input TEXT');
SELECT azure_local_ai.create_embeddings('multilingual-e5-small:v1', 'query: Vector databases are awesome');
SELECT azure_local_ai.create_embeddings('model_uri TEXT', array['input TEXT', 'input TEXT']);
SELECT azure_local_ai.create_embeddings('multilingual-e5-small:v1', array['Hello', 'World']);

Comprobación de la versión de la extensión de azure_local_ai

SELECT * FROM pg_available_extensions
WHERE NAME ='azure_local_ai';

Configuración del entorno de ejecución de ONNX

azure_local_ai.get_setting

Se usa para obtener los valores actuales de las opciones de configuración.

SELECT azure_local_ai.get_setting(key TEXT)

azure_local_ai admite la revisión de los parámetros de configuración del grupo de subprocesos en tiempo de ejecución de ONNX en el servicio en tiempo de ejecución de ONNX. Los cambios no se permiten en este momento. Consulte ajuste del rendimiento de ONNX Runtime.

Argumentos

Clave

Los valores válidos para key son:

  • intra_op_parallelism: establece el número total de subprocesos usados para paralelizar el operador único por el grupo de subprocesos en tiempo de ejecución de ONNX. De forma predeterminada, maximizamos el número de subprocesos dentro de las operaciones tanto como sea posible, lo que mejora el rendimiento general (todas las CPU disponibles de forma predeterminada).
  • inter_op_parallelism: establece el número total de subprocesos usados para calcular varios operadores en paralelo por el grupo de subprocesos en tiempo de ejecución de ONNX. De forma predeterminada, se establece en el subproceso mínimo posible, que es 1. Aumentar a menudo afecta al rendimiento debido a cambios de contexto frecuentes entre subprocesos.
  • spin_control: cambia la rotación del grupo de subprocesos en tiempo de ejecución de ONNX para las solicitudes. Cuando está deshabilitado, usa menos CPU y, por lo tanto, provoca más latencia. De forma predeterminada, se establece en true (habilitado).

Tipo de valor devuelto

TEXT que representa el valor actual de la configuración seleccionada.