Condividi tramite


Che cos'è l'estensione azure_local_ai per Database di Azure per PostgreSQL - Server flessibile (anteprima)

L'estensione azure_local_ai per il server flessibile di Database di Azure per PostgreSQL consente di usare modelli registrati, con training preliminare e open source distribuiti localmente nel server di Database di Azure per PostgreSQL. Questi modelli possono essere usati per creare incorporamenti di testo in grado di fornire contesto al modello di generazione aumentata di recupero durante la creazione di applicazioni di intelligenza artificiale generativa avanzate.  L'estensione azure_local_ai consente al database di chiamare modelli distribuiti in locale per creare incorporamenti vettoriali dai dati di testo, semplificando il processo di sviluppo e riducendo la latenza rimuovendo la necessità di effettuare chiamate API più remote ai modelli di incorporamento di intelligenza artificiale ospitati all'esterno del limite PostgreSQL. In questa versione, l'estensione distribuisce un singolo modello multilingual-e5-small,nell'istanza del server flessibile di Database di Azure per PostgreSQL. Altri modelli open source di terze parti potrebbero diventare disponibili per l'installazione in futuro.

Gli incorporamenti locali consentono ai clienti di:

  • Ridurre la latenza di creazione dell'incorporamento.

  • Usare i modelli di incorporamento a un costo prevedibile.

  • Mantenere i dati all'interno del database eliminando la necessità di trasmettere dati a un endpoint remoto.

Durante questa anteprima pubblica, l'estensione azure_local_ai sarà disponibile in queste aree di Azure:

 

  • Australia orientale

  • Stati Uniti orientali

  • Francia centrale

  • Giappone orientale

  • Regno Unito meridionale

  • Europa occidentale

  • Stati Uniti occidentali

Questa funzionalità di anteprima è disponibile anche solo per le istanze del server flessibile appena distribuite Database di Azure per PostgreSQL.

Importante

L'estensione azure_local_ai è attualmente in anteprima. I modelli di intelligenza artificiale open source di Microsoft per l'installazione tramite l'estensione di intelligenza artificiale locale di Azure vengono considerati prodotti non Microsoft in base alle Condizioni per i prodotti Microsoft. L'uso dei modelli di intelligenza artificiale open source del cliente è disciplinato dalle condizioni di licenza separate fornite nella documentazione del prodotto associata a tali modelli resi disponibili tramite l'estensione azure_local_ai. Condizioni per l'utilizzo supplementari: Servizi di intelligenza artificiale con accesso limitato (anteprime)

Abilitare l'estensione azure_local_ai (anteprima)

Prima di poter abilitare azure_local_ai nell'istanza del server flessibile di Database di Azure per PostgreSQL, è necessario aggiungerla all'elenco di elementi consentiti come descritto in Come usare le estensioni PostgreSQL e verificare se sono state aggiunte correttamente eseguendo l'inserire seguente, SHOW azure.extensions;.

Importante

L'hosting di modelli linguistici nel database richiede un footprint della memoria elevato. Per supportare questo requisito, azure_local_ai è supportato solo in SKU di macchine virtuali di Azure ottimizzate per la memoria con almeno 4 vCore. Attualmente, se si usa una macchina virtuale che non soddisfa i requisiti minimi, l'estensione azure_local_ai non verrà visualizzata nell'elenco delle estensioni disponibili nei parametri del server. Selezionare Parametri del server nella sezione Impostazioni del menu Risorsa nella pagina del portale di Azure Server flessibile di Database di Azure per PostgreSQL.

Screenshot della pagina dei parametri del server PostgreSQL.

Cercare "estensioni" o "azure.extensioni"

Screenshot delle estensioni disponibili per consentire l'elenco di elementi consentiti per Database di Azure per Postgresql - Server flessibile.

Selezionare AZURE_LOCAL_AI nell'elenco delle estensioni.

Screenshot dell'elenco di elementi consentiti per le estensioni per l'estensione di intelligenza artificiale locale di Azure.

Selezionare Salva per applicare le modifiche e avviare il processo di distribuzione dell'elenco di elementi consentiti.

Screenshot delle estensioni salvate per consentire l'elenco di elementi consentiti per l'estensione di intelligenza artificiale locale di Azure.

È possibile monitorare questa distribuzione tramite l'icona a forma di campana nella parte superiore del portale di Azure.

Screenshot dello stato di distribuzione dell'elenco di elementi consentiti per le estensioni per l'estensione di intelligenza artificiale locale di Azure.

Al termine della distribuzione dell'elenco di elementi consentiti, è possibile continuare con il processo di installazione.

Nota

L'abilitazione dell'anteprima dell'intelligenza artificiale locale di Azure distribuirà il modello multilingual-e5-small nell'istanza del server flessibile di Database di Azure per PostgreSQL. La documentazione collegata fornisce le condizioni di licenza del team e5. Altri modelli open source di terze parti potrebbero diventare disponibili per l'installazione in futuro.

È ora possibile installare l'estensione connettendosi al database di destinazione ed eseguendo il comando CREA ESTENSIONE. È necessario ripetere il comando separatamente per ogni database in cui si desidera che l'estensione sia disponibile.

Le estensioni elenco sono consentite nel database dalla pagina Portale di Azure - Parametri server.

SHOW azure.extensions;

Creare l'estensione all'interno del database.

CREATE EXTENSION azure_local_ai;

L'installazione dell'estensione azure_local_ai crea lo schema seguente:

  • azure_local_ai: schema principale in cui l'estensione crea tabelle, funzioni e qualsiasi altro oggetto correlato a SQL necessario per implementare ed esporre le relative funzionalità.

Importante

Si desidera abilitare l'estensione vettoriale, perché è necessario archiviare gli incorporamenti di testo nel database PostgreSQL.

Funzioni fornite dall'estensione azure_local_ai

L'estensione azure_local_ai fornisce un set di funzioni. Queste funzioni consentono di creare incorporamenti vettoriali dai dati di testo, semplificando lo sviluppo di applicazioni di intelligenza artificiale generativa. L'estensione offre funzioni per la creazione di incorporamenti, il recupero di impostazioni e altro ancora. Usando queste funzioni, è possibile semplificare il processo di sviluppo e ridurre la latenza eliminando la necessità di chiamate API remote aggiuntive ai modelli di incorporamento di intelligenza artificiale ospitati all'esterno del limite PostgreSQL.

Schema Nome Tipi di dati risultanti Tipi di dati dell'argomento
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 Testo key text, timeout_ms integer DEFAULT 3600000
azure_local_ai model_metadata jsonb model_uri text

Possono essere visualizzati tramite il comando PSQL,

\df azure_local_ai.*

azure_local_ai.create_embeddings

L'estensione azure_local_ai consente di creare e aggiornare incorporamenti sia in formato scalare che in batch, richiamando l'LLM distribuito in locale.

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);

Argomenti

model_uri

text nome del modello di incorporamento del testo richiamato per creare l'incorporamento.

input

text o text[] singolo testo o array di testi, a seconda dell'overload della funzione usata, per cui vengono creati gli incorporamenti.

batch_size

bigint DEFAULT 128 numero di record da elaborare alla volta (disponibile solo per l'overload della funzione per cui il parametro input è di tipo text[]).

timeout_ms

integer DEFAULT 3600000 timeout in millisecondi dopo il quale l'operazione viene arrestata.

Esempi di incorporamenti di creazione semplice:

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']);

Controllare la versione dell'estensione azure_local_ai

SELECT * FROM pg_available_extensions
WHERE NAME ='azure_local_ai';

Configurazione del runtime ONNX

azure_local_ai.get_setting

Utilizzato per ottenere i valori correnti delle opzioni di configurazione.

SELECT azure_local_ai.get_setting(key TEXT)

azure_local_ai supporta la revisione dei parametri di configurazione del pool di thread di runtime ONNX all'interno del servizio runtime ONNX. In questa fase non sono consentite modifiche. Vedere l'ottimizzazione delle prestazioni del runtime ONNX.

Argomenti

Chiave

I valori validi per key sono:

  • intra_op_parallelism: imposta il numero totale di thread usati per la parallelizzazione di un singolo operatore dal pool di thread del runtime ONNX. Per impostazione predefinita, ingrandiamo il numero di thread tra le operazioni il più possibile in quanto così facendo si migliora la velocità effettiva complessiva (tutte le CPU disponibili per impostazione predefinita).
  • inter_op_parallelism: imposta il numero totale di thread usati per il calcolo di più operatori in parallelo dal pool di thread del runtime ONNX. Per impostazione predefinita, la proprietà viene impostata sul thread minimo possibile, ovvero 1. Aumentandola, spesso le prestazioni si riducono a causa di frequenti cambi di contesto tra thread.
  • spin_control: attiva la rotazione del pool di thread del runtime ONNX per le richieste. Se disabilitata, si usa meno CPU e quindi si causa una maggiore latenza. Per impostazione predefinita, è impostata su true (abilitato).

Tipo restituito

TEXT che rappresenta il valore corrente dell'impostazione selezionata.