Richiamare Modelli di Azure Machine Learning
Lo schema azure_ml 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 apprendimento automatico direttamente dal database, rendendo l'inferenza in tempo reale efficiente e scalabile.
Inferenza in tempo reale con lo schema azure_ml
Quando si usa l'estensione azure_ai, lo schema azure_ml fornisce una funzione per eseguire l'inferenza in tempo reale 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 | TIPO | Impostazione predefinita | Descrizione |
|---|---|---|---|
| input | jsonb |
Un oggetto JSON contenente l'oggetto input_data necessario per interagire con i modelli di Azure Machine Learning. |
|
| timeout_ms | integer |
NULL::integer |
Timeout... |
| throw_on_error | boolean |
true |
desc... |
| deployment_name | text |
NULL::text |
(Facoltativo) Nome della distribuzione del modello di destinazione nell'endpoint di Azure Machine Learning specificato. |
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, indicati input specifici come il quartiere, il codice postale, il numero di camere da letto e il numero di bagni, presenta 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 la chiave e l'endpoint di punteggio 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}');