Esaminare lo schema di Azure Machine Learning
Lo schema azure_ml dell'estensione azure_ai consente al database di interagire con le funzionalità dei modelli di Machine Learning personalizzati. Usando lo schema azure_ml, è possibile integrare facilmente il database PostgreSQL con i servizi di Azure Machine Learning. Questa integrazione consente di distribuire e gestire modelli di Machine Learning direttamente dal database, rendendo l'inferenza in tempo reale efficiente e scalabile.
Inferenza in tempo reale con lo schema azure_ml
di Azure Machine Learning è una piattaforma basata sul cloud che semplifica i flussi di lavoro di Machine Learning end-to-end. All'interno di Azure Machine Learning, i modelli vengono sviluppati usando framework comuni come PyTorch e TensorFlow. Dopo il training, questi modelli vengono distribuiti come endpoint, URL stabili in cui è possibile richiedere stime.
Con gli endpoint online che forniscono inferenza in tempo reale, Azure Machine Learning integrato con l'estensione azure_ai consente di eseguire stime accurate direttamente dal database. La funzione inference all'interno di questo schema è progettata per facilitare l'esecuzione di stime o la generazione di output usando un modello sottoposto a training da Azure Machine Learning. Quando si distribuisce un modello, la funzione di inferenza consente di richiamare il modello e ottenere stime sui nuovi dati.
azure_ml.inference(jsonb,integer,boolean,text)
La funzione inference() prevede i parametri di input seguenti:
| Parametro | Digitare | Default | Descrizione |
|---|---|---|---|
| input_data | jsonb |
Oggetto JSON contenente l'oggetto input_data necessario per interagire con i modelli di Azure Machine Learning. |
|
| deployment_name | text |
NULL::text |
(Facoltativo) Nome della distribuzione del modello di destinazione nell'endpoint di Azure Machine Learning specificato. |
| timeout_ms | integer |
NULL::integer |
Imposta il tempo massimo in millisecondi per attendere un'operazione di inferenza prima del timeout. |
| throw_on_error | boolean |
true |
Determina se generare un errore se l'operazione di inferenza rileva un problema. |
| max_attempts | integer |
1 |
Numero di tentativi di ripetizione della chiamata al servizio Azure OpenAI in caso di errore. |
| retry_delay_ms | integer |
1000 |
Quantità di tempo, in millisecondi, di attesa prima di tentare di ripetere la chiamata all'endpoint del servizio OpenAI di Azure. |
Gli endpoint di inferenza di Azure Machine Learning prevedono un oggetto JSON (JavaScript Object Notation) come input. Tuttavia, la struttura di questo oggetto dipende dal modello sottostante. Ad esempio, un modello di regressione sottoposto a training per stimare i prezzi di affitto giornalieri per gli alloggi a breve termine nell'area di Seattle, Washington, dati input specifici come il quartiere, il codice postale, il numero di camere da letto, il numero di bagni e altro ancora, ha la forma seguente:
{
"input_data": {
"columns": [
"host_is_superhost",
"host_has_profile_pic",
"host_identity_verified",
"neighbourhood_group_cleansed",
"zipcode",
"property_type",
"room_type",
"accommodates",
"bathrooms",
"bedrooms",
"beds"
],
"index": [0],
"data": [["False", "False", "False", "Central Area", "98122", "House", "Entire home/apt", 4, 1.5, 3, 3]]
}
}
La struttura degli oggetti di input prevista può essere recuperata esaminando la definizione di Swagger associata all'endpoint distribuito. Questa definizione specifica le strutture ServiceInput e ServiceOutput, che è possibile usare per determinare gli input e gli output.
Configurare una connessione ad Azure Machine Learning
Prima di usare la funzione azure_ml.inference() per eseguire l'inferenza in tempo reale, è necessario configurare l'estensione con l'endpoint e la chiave di assegnazione dei punteggi di Azure Machine Learning. Il valore per azure_ml.scoring_endpoint è l'endpoint REST per il modello distribuito. Il valore per azure_ml.endpoint_key può essere la chiave primaria o secondaria per questo endpoint.
SELECT azure_ai.set_setting('azure_ml.scoring_endpoint', '{endpoint}');
SELECT azure_ai.set_setting('azure_ml.endpoint_key', '{api-key}');