Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il catalogo di modelli del portale di Azure AI Foundry offre oltre 1.600 modelli e un modo comune per distribuire questi modelli consiste nell'usare l'opzione di distribuzione di calcolo gestita, nota anche come distribuzione online gestita.
La distribuzione di un modello linguistico di grandi dimensioni (LLM) lo rende disponibile per l'uso in un sito Web, in un'applicazione o in altri ambienti di produzione. Solitamente, la distribuzione comporta l'hosting del modello in un server o nel cloud, nonché la creazione di un'API o di un'altra interfaccia per consentire agli utenti di interagire con il modello. È possibile richiamare la distribuzione per l'inferenza in tempo reale di applicazioni di intelligenza artificiale generativa, ad esempio chat e copilota.
Questo articolo illustra come distribuire modelli usando l'SDK di Azure Machine Learning. L'articolo illustra anche come eseguire l'inferenza nel modello distribuito.
Prerequisiti
Una sottoscrizione di Azure con un metodo di pagamento valido. Le sottoscrizioni di Azure gratuite o di valutazione non funzioneranno. Se non si dispone di una sottoscrizione di Azure, è possibile creare un account Azure gratuito per iniziare.
Se non ne hai uno, crea un progetto basato su hub.
Gli acquisti tramite il servizio Marketplace sono abilitati per la tua sottoscrizione di Azure. Altre informazioni sono disponibili qui.
Ottieni l'ID del modello
È possibile distribuire modelli di calcolo gestiti usando l'SDK di Azure Machine Learning, ma prima si deve esplorare il catalogo modelli e ottenere l'ID modello necessario per la distribuzione.
Suggerimento
Poiché è possibile personalizzare il riquadro sinistro nel portale di Azure AI Foundry, è possibile che vengano visualizzati elementi diversi rispetto a quelli illustrati in questi passaggi. Se non viene visualizzato ciò che si sta cercando, selezionare ... Altro nella parte inferiore del riquadro sinistro.
Accedere ad Azure AI Foundry e passare alla home page.
Selezionare Catalogo modelli nella barra laterale sinistra.
Nel filtro Opzioni di distribuzione selezionare Calcolo gestito.
Seleziona un modello.
Copiare l'ID modello dalla pagina dei dettagli del modello selezionato. Verrà visualizzata una schermata simile alla seguente:
azureml://registries/azureml/models/deepset-roberta-base-squad2/versions/16
Distribuire il modello
Installare Azure Machine Learning SDK.
pip install azure-ai-ml pip install azure-identity
Eseguire l'autenticazione con Azure Machine Learning e creare un oggetto client. Sostituire i segnaposto con l'ID sottoscrizione, il nome del gruppo di risorse e il nome del progetto Fonderia Azure AI.
from azure.ai.ml import MLClient from azure.identity import InteractiveBrowserCredential workspace_ml_client = MLClient( credential=InteractiveBrowserCredential, subscription_id="your subscription name goes here", resource_group_name="your resource group name goes here", workspace_name="your project name goes here", )
Creare un endpoint. Per l'opzione di distribuzione calcolo gestito, è necessario creare un endpoint prima della distribuzione di un modello. Si consideri l'endpoint come un contenitore in grado di ospitare più distribuzioni di modelli. I nomi degli endpoint devono essere univoci in un'area, quindi in questo esempio usare il timestamp per creare un nome endpoint univoco.
import time, sys from azure.ai.ml.entities import ( ManagedOnlineEndpoint, ManagedOnlineDeployment, ProbeSettings, ) # Make the endpoint name unique timestamp = int(time.time()) online_endpoint_name = "customize your endpoint name here" + str(timestamp) # Create an online endpoint endpoint = ManagedOnlineEndpoint( name=online_endpoint_name, auth_mode="key", ) workspace_ml_client.online_endpoints.begin_create_or_update(endpoint).wait()
Creare una distribuzione. Sostituire l'ID modello nel codice successivo con l'ID modello copiato dalla pagina dei dettagli del modello selezionato nella sezione Ottenere l'ID modello .
model_name = "azureml://registries/azureml/models/deepset-roberta-base-squad2/versions/16" demo_deployment = ManagedOnlineDeployment( name="demo", endpoint_name=online_endpoint_name, model=model_name, instance_type="Standard_DS3_v2", instance_count=2, liveness_probe=ProbeSettings( failure_threshold=30, success_threshold=1, timeout=2, period=10, initial_delay=1000, ), readiness_probe=ProbeSettings( failure_threshold=10, success_threshold=1, timeout=10, period=10, initial_delay=1000, ), ) workspace_ml_client.online_deployments.begin_create_or_update(demo_deployment).wait() endpoint.traffic = {"demo": 100} workspace_ml_client.online_endpoints.begin_create_or_update(endpoint).result()
Eseguire l'inferenza della distribuzione
Per testare l'inferenza sono necessari dei dati JSON di esempio. Creare
sample_score.json
con l’esempio seguente.{ "inputs": { "question": [ "Where do I live?", "Where do I live?", "What's my name?", "Which name is also used to describe the Amazon rainforest in English?" ], "context": [ "My name is Wolfgang and I live in Berlin", "My name is Sarah and I live in London", "My name is Clara and I live in Berkeley.", "The Amazon rainforest (Portuguese: Floresta Amaz\u00f4nica or Amaz\u00f4nia; Spanish: Selva Amaz\u00f3nica, Amazon\u00eda or usually Amazonia; French: For\u00eat amazonienne; Dutch: Amazoneregenwoud), also known in English as Amazonia or the Amazon Jungle, is a moist broadleaf forest that covers most of the Amazon basin of South America. This basin encompasses 7,000,000 square kilometres (2,700,000 sq mi), of which 5,500,000 square kilometres (2,100,000 sq mi) are covered by the rainforest. This region includes territory belonging to nine nations. The majority of the forest is contained within Brazil, with 60% of the rainforest, followed by Peru with 13%, Colombia with 10%, and with minor amounts in Venezuela, Ecuador, Bolivia, Guyana, Suriname and French Guiana. States or departments in four nations contain \"Amazonas\" in their names. The Amazon represents over half of the planet's remaining rainforests, and comprises the largest and most biodiverse tract of tropical rainforest in the world, with an estimated 390 billion individual trees divided into 16,000 species." ] } }
Inferenza con
sample_score.json
. Modificare il percorso del file di assegnazione dei punteggi nel codice successivo, in base al percorso in cui è stato salvato il file JSON di esempio.scoring_file = "./sample_score.json" response = workspace_ml_client.online_endpoints.invoke( endpoint_name=online_endpoint_name, deployment_name="demo", request_file=scoring_file, ) response_json = json.loads(response) print(json.dumps(response_json, indent=2))
Configurare la scalabilità automatica
Per configurare la scalabilità automatica per le distribuzioni, è possibile passare al portale di Azure, individuare la risorsa di Azure digitata Machine learning online deployment
nel gruppo di risorse del progetto di intelligenza artificiale e usare il menu Ridimensionamento in Impostazione. Per altre informazioni sulla scalabilità automatica, vedere Ridimensionare automaticamente gli endpoint online nella documentazione di Azure Machine Learning.
Eliminare l'endpoint di distribuzione
Per eliminare le distribuzioni nel portale di Azure AI Foundry, selezionare il pulsante Elimina nel pannello superiore della pagina dei dettagli della distribuzione.
Considerazioni sulla quota
Per distribuire ed eseguire l'inferenza di endpoint in tempo reale, si utilizza la quota di core della macchina virtuale (VM) assegnata alla sottoscrizione in base all'area. Quando si effettua l'iscrizione ad Azure AI Foundry, si riceve una quota di vm predefinita per diverse famiglie di macchine virtuali disponibili nell'area. È possibile continuare a creare distribuzioni fino a raggiungere il limite di quota. A questo punto è possibile richiedere un aumento della quota.
Contenuti correlati
- Altre informazioni sulle operazioni che è possibile eseguire in Azure AI Foundry
- Risposte alle domande frequenti nell'articolo Domande frequenti su Azure per intelligenza artificiale