Condividi tramite


Distribuire modelli come distribuzioni di API serverless

Importante

Gli elementi contrassegnati (anteprima) in questo articolo sono attualmente disponibili in anteprima pubblica. Questa anteprima viene fornita senza un contratto di servizio e non è consigliabile per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.

Questo articolo illustra come distribuire un modello di Azure AI Foundry come distribuzione di API serverless. Alcuni modelli nel catalogo dei modelli possono essere distribuiti come distribuzione di API serverless. Questo tipo di distribuzione consente di usare i modelli come le API senza ospitarli nella sottoscrizione, mantenendo al contempo la sicurezza e la conformità aziendali necessarie alle organizzazioni. Questa opzione di distribuzione non richiede la quota dalla sottoscrizione.

Anche se la distribuzione di API serverless è un'opzione per la distribuzione di modelli di Azure AI Foundry, è consigliabile distribuire i modelli Foundry nelle risorse di Azure AI Foundry.

Annotazioni

È consigliabile distribuire i modelli di Azure AI Foundry nelle risorse di Azure AI Foundry in modo da poter usare le distribuzioni nella risorsa tramite un singolo endpoint con la stessa autenticazione e lo stesso schema per generare l'inferenza. L'endpoint segue l'API di inferenza del modello di intelligenza artificiale di Azure supportata da tutti i modelli foundry. Per informazioni su come distribuire un modello Foundry nelle risorse di Azure AI Foundry, vedere Aggiungere e configurare modelli ai modelli di Azure AI Foundry.

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.

  • Assicurarsi che la funzionalità Distribuisci modelli nelle risorse di Azure AI Foundry (anteprima) sia disattivata nel portale di Azure AI Foundry. Quando questa funzionalità è attiva, le distribuzioni di API serverless non sono disponibili nel portale.

    Screenshot del portale di Azure AI Foundry che mostra dove disabilitare la distribuzione nelle risorse di Azure AI Foundry.

  • I modelli foundry dei partner e della community richiedono l'accesso ad Azure Marketplace, mentre i modelli Foundry venduti direttamente da Azure non hanno questo requisito. Assicurarsi di avere le autorizzazioni necessarie per sottoscrivere le offerte di modelli in Azure Marketplace.

  • I controlli degli accessi in base al ruolo di Azure vengono usati per concedere l'accesso alle operazioni nel portale di Azure AI Foundry. Per eseguire la procedura descritta in questo articolo, all'account utente deve essere assegnato il ruolo di sviluppatore di Azure per intelligenza artificiale nel gruppo di risorse. Per altre informazioni sulle autorizzazioni, vedere Controllo degli accessi in base al ruolo nel portale di Azure AI Foundry.

  • È possibile usare qualsiasi Web browser compatibile per esplorare Fonderia Azure AI.

Trovare il modello nel catalogo dei modelli

  1. Accedi a Azure AI Foundry.
  2. Se non si è già nel proprio progetto, selezionarlo.
  3. Selezionare Catalogo modelli nel riquadro sinistro.
  1. Selezionare la scheda modello del modello da implementare. In questo articolo viene selezionato un modello DeepSeek-R1 .

  2. Selezionare Usa questo modello per aprire la finestra Distribuzione API serverless in cui è possibile visualizzare la scheda Prezzi e termini .

  3. Nella procedura guidata di distribuzione, assegnare un nome alla distribuzione. L'opzione Filtro contenuto (anteprima) è abilitata per impostazione predefinita. Lasciare l'impostazione predefinita per il servizio per rilevare contenuti dannosi che esprimono ad esempio odio e autolesionismo, nonché contenuti sessuali e violenti. Per altre informazioni sul filtro del contenuto, vedere Filtro del contenuto nel portale di Azure AI Foundry.

    Screenshot che mostra la distribuzione guidata per un modello venduto direttamente da Azure.

Distribuire il modello in un'API serverless

In questa sezione viene creato un endpoint per il modello.

  1. Nella distribuzione guidata selezionare Distribuisci. Attendere che la distribuzione sia pronta e che si venga reindirizzati alla pagina Distribuzioni.

  2. Per visualizzare gli endpoint distribuiti nel progetto, nella sezione Risorse personali del riquadro sinistro selezionare Modelli e endpoint.

  3. L'endpoint creato usa l'autenticazione con chiave per l'autorizzazione. Per ottenere le chiavi associate a un determinato endpoint, seguire questa procedura:

    1. Selezionare la distribuzione e prendere nota dell'URI di destinazione e della chiave dell'endpoint.

    2. Usare queste credenziali per chiamare la distribuzione e generare stime.

  4. Se è necessario usare questa distribuzione da un progetto o un hub diverso o si prevede di usare il flusso prompt per compilare applicazioni intelligenti, è necessario creare una connessione alla distribuzione dell'API serverless. Per informazioni su come configurare una distribuzione di API serverless esistente in un nuovo progetto o hub, consultare Utilizzare la distribuzione di API serverless da un progetto diverso o da Prompt Flow.

    Suggerimento

    Se si utilizza Prompt flow nello stesso progetto o hub in cui è stata effettuata la distribuzione, è comunque necessario creare la connessione.

Usare la distribuzione dell'API serverless

I modelli distribuiti in Azure Machine Learning e Azure AI Foundry nelle distribuzioni di API serverless supportano l'API di inferenza del modello di intelligenza artificiale di Azure che espone un set comune di funzionalità per i modelli di base e che possono essere usati dagli sviluppatori per usare stime da un set diversificato di modelli in modo uniforme e coerente.

Ulteriori informazioni sulle funzionalità di questa API e su come utilizzarla durante la compilazione di applicazioni.

Eliminare endpoint e sottoscrizioni

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.

È possibile eliminare sottoscrizioni ed endpoint del modello. L'eliminazione di una sottoscrizione del modello rende qualsiasi endpoint associato Non integro e inutilizzabile.

Per eliminare un'installazione di un'API serverless:

  1. Passare a Fonderia Azure AI.
  2. Vai al tuo progetto.
  3. Nella sezione Risorse personali, selezionare Modelli + Endpoint.
  4. Aprire la distribuzione da eliminare.
  5. Selezionare Elimina.

Per eliminare la sottoscrizione modello associata:

  1. Accedere al portale di Azure
  2. Passare al gruppo di risorse a cui appartiene il progetto.
  3. Nel filtro Tipo, selezionare SaaS.
  4. Selezionare la sottoscrizione da eliminare.
  5. Selezionare Elimina.
  • Per usare Azure AI Foundry, installare la CLI di Azure e l'estensione ml per Azure Machine Learning.

    az extension add -n ml
    

    Se l'estensione è già installata, assicurarsi di disporre della versione più recente.

    az extension update -n ml
    

    Dopo aver installato l'estensione, configurarla:

    az account set --subscription <subscription>
    az configure --defaults workspace=<project-name> group=<resource-group> location=<location>
    

Trovare il modello nel catalogo dei modelli

  1. Accedi a Azure AI Foundry.
  2. Se non si è già nel proprio progetto, selezionarlo.
  3. Selezionare Catalogo modelli nel riquadro sinistro.
  1. Selezionare la scheda modello del modello da implementare. In questo articolo viene selezionato un modello DeepSeek-R1 .

  2. Copiare l'ID modello senza includere la versione del modello, perché le distribuzioni dell'API serverless distribuiscono sempre la versione più recente del modello disponibile. Ad esempio, per l'ID modello azureml://registries/azureml-deepseek/models/DeepSeek-R1/versions/1, copiare azureml://registries/azureml-deepseek/models/DeepSeek-R1.

    Screenshot che mostra la pagina dei dettagli di un modello per un modello venduto direttamente da Azure.

I passaggi descritti in questa sezione dell'articolo usano il modello DeepSeek-R1 per l'illustrazione. I passaggi sono gli stessi, indipendentemente dal fatto che si usino i modelli Foundry venduti direttamente da Azure o Modelli Foundry da partner e community. Ad esempio, se si sceglie di distribuire il modello Cohere-command-r-08-2024 , è possibile sostituire le credenziali del modello nei frammenti di codice con le credenziali per Cohere.

Distribuire il modello in un'API serverless

In questa sezione viene creato un endpoint per il modello. Assegnare all'endpoint il nome DeepSeek-R1-qwerty.

  1. Creare l'endpoint serverless.

    endpoint.yml

    name: DeepSeek-R1-qwerty
    model_id: azureml://registries/azureml-deepseek/models/DeepSeek-R1
    

    Usare il file endpoint.yml per creare l'endpoint:

    az ml serverless-endpoint create -f endpoint.yml
    
  2. È possibile visualizzare gli endpoint distribuiti nel progetto in qualsiasi momento:

    az ml serverless-endpoint list
    
  3. L'endpoint creato usa l'autenticazione con chiave per l'autorizzazione. Usare la procedura seguente per ottenere le chiavi associate a un determinato endpoint.

    az ml serverless-endpoint get-credentials -n DeepSeek-R1-qwerty
    
  4. Se è necessario usare questa distribuzione da un progetto o un hub diverso o si prevede di usare il flusso prompt per compilare applicazioni intelligenti, è necessario creare una connessione alla distribuzione dell'API serverless. Per informazioni su come configurare una distribuzione di API serverless esistente in un nuovo progetto o hub, consultare Utilizzare la distribuzione di API serverless da un progetto diverso o da Prompt Flow.

    Suggerimento

    Se si utilizza Prompt flow nello stesso progetto o hub in cui è stata effettuata la distribuzione, è comunque necessario creare la connessione.

Usare la distribuzione dell'API serverless

I modelli distribuiti in Azure Machine Learning e Azure AI Foundry nelle distribuzioni di API serverless supportano l'API di inferenza del modello di intelligenza artificiale di Azure che espone un set comune di funzionalità per i modelli di base e che possono essere usati dagli sviluppatori per usare stime da un set diversificato di modelli in modo uniforme e coerente.

Ulteriori informazioni sulle funzionalità di questa API e su come utilizzarla durante la compilazione di applicazioni.

Eliminare endpoint e sottoscrizioni

È possibile eliminare sottoscrizioni ed endpoint del modello. L'eliminazione di una sottoscrizione del modello rende qualsiasi endpoint associato Non integro e inutilizzabile.

Per eliminare un'installazione di un'API serverless:

az ml serverless-endpoint delete \
    --name "DeepSeek-R1-qwerty"

Per eliminare la sottoscrizione modello associata:

az ml marketplace-subscription delete \
    --name "DeepSeek-R1"
  • Per usare Azure AI Foundry, installare Azure Machine Learning SDK per Python.

    pip install -U azure-ai-ml
    

    Una volta completata l'installazione, importare gli spazi dei nomi necessari e creare un client connesso al progetto:

    from azure.ai.ml import MLClient
    from azure.identity import InteractiveBrowserCredential
    from azure.ai.ml.entities import MarketplaceSubscription, ServerlessEndpoint
    
    client = MLClient(
        credential=InteractiveBrowserCredential(tenant_id="<tenant-id>"),
        subscription_id="<subscription-id>",
        resource_group_name="<resource-group>",
        workspace_name="<project-name>",
    )
    

Trovare il modello nel catalogo dei modelli

  1. Accedi a Azure AI Foundry.
  2. Se non si è già nel proprio progetto, selezionarlo.
  3. Selezionare Catalogo modelli nel riquadro sinistro.
  1. Selezionare la scheda modello del modello da implementare. In questo articolo viene selezionato un modello DeepSeek-R1 .

  2. Copiare l'ID modello senza includere la versione del modello, perché le distribuzioni dell'API serverless distribuiscono sempre la versione più recente del modello disponibile. Ad esempio, per l'ID modello azureml://registries/azureml-deepseek/models/DeepSeek-R1/versions/1, copiare azureml://registries/azureml-deepseek/models/DeepSeek-R1.

    Screenshot che mostra la pagina dei dettagli di un modello per un modello venduto direttamente da Azure.

I passaggi descritti in questa sezione dell'articolo usano il modello DeepSeek-R1 per l'illustrazione. I passaggi sono gli stessi, indipendentemente dal fatto che si usino i modelli Foundry venduti direttamente da Azure o Modelli Foundry da partner e community. Ad esempio, se si sceglie di distribuire il modello Cohere-command-r-08-2024 , è possibile sostituire le credenziali del modello nei frammenti di codice con le credenziali per Cohere.

Distribuire il modello in un'API serverless

In questa sezione viene creato un endpoint per il modello. Assegnare all'endpoint il nome DeepSeek-R1-qwerty.

  1. Creare l'endpoint serverless.

    endpoint_name="DeepSeek-R1-qwerty"
    
    serverless_endpoint = ServerlessEndpoint(
        name=endpoint_name,
        model_id=model_id
    )
    
    created_endpoint = client.serverless_endpoints.begin_create_or_update(
        serverless_endpoint
    ).result()
    
  2. È possibile visualizzare gli endpoint distribuiti nel progetto in qualsiasi momento:

    endpoint_name="DeepSeek-R1-qwerty"
    
    serverless_endpoint = ServerlessEndpoint(
        name=endpoint_name,
        model_id=model_id
    )
    
    created_endpoint = client.serverless_endpoints.begin_create_or_update(
        serverless_endpoint
    ).result()
    
  3. L'endpoint creato usa l'autenticazione con chiave per l'autorizzazione. Usare la procedura seguente per ottenere le chiavi associate a un determinato endpoint.

    endpoint_keys = client.serverless_endpoints.get_keys(endpoint_name)
    print(endpoint_keys.primary_key)
    print(endpoint_keys.secondary_key)
    
  4. Se è necessario usare questa distribuzione da un progetto o un hub diverso o si prevede di usare il flusso prompt per compilare applicazioni intelligenti, è necessario creare una connessione alla distribuzione dell'API serverless. Per informazioni su come configurare una distribuzione di API serverless esistente in un nuovo progetto o hub, consultare Utilizzare la distribuzione di API serverless da un progetto diverso o da Prompt Flow.

    Suggerimento

    Se si utilizza Prompt flow nello stesso progetto o hub in cui è stata effettuata la distribuzione, è comunque necessario creare la connessione.

Usare la distribuzione dell'API serverless

I modelli distribuiti in Azure Machine Learning e Azure AI Foundry nelle distribuzioni di API serverless supportano l'API di inferenza del modello di intelligenza artificiale di Azure che espone un set comune di funzionalità per i modelli di base e che possono essere usati dagli sviluppatori per usare stime da un set diversificato di modelli in modo uniforme e coerente.

Ulteriori informazioni sulle funzionalità di questa API e su come utilizzarla durante la compilazione di applicazioni.

Eliminare endpoint e sottoscrizioni

È possibile eliminare sottoscrizioni ed endpoint del modello. L'eliminazione di una sottoscrizione del modello rende qualsiasi endpoint associato Non integro e inutilizzabile.

client.serverless_endpoints.begin_delete(endpoint_name).wait()

Per eliminare la sottoscrizione modello associata:

client.marketplace_subscriptions.begin_delete(subscription_name).wait()
  • Per usare Azure AI Foundry, installare Azure CLI, come descritto in Azure CLI.

    Configurare le seguenti variabili di ambiente in base alle proprie impostazioni:

    RESOURCE_GROUP="serverless-models-dev"
    LOCATION="eastus2" 
    

Trovare il modello nel catalogo dei modelli

  1. Accedi a Azure AI Foundry.
  2. Se non si è già nel proprio progetto, selezionarlo.
  3. Selezionare Catalogo modelli nel riquadro sinistro.
  1. Selezionare la scheda modello del modello da implementare. In questo articolo viene selezionato un modello DeepSeek-R1 .

  2. Copiare l'ID modello senza includere la versione del modello, perché le distribuzioni dell'API serverless distribuiscono sempre la versione più recente del modello disponibile. Ad esempio, per l'ID modello azureml://registries/azureml-deepseek/models/DeepSeek-R1/versions/1, copiare azureml://registries/azureml-deepseek/models/DeepSeek-R1.

    Screenshot che mostra la pagina dei dettagli di un modello per un modello venduto direttamente da Azure.

I passaggi descritti in questa sezione dell'articolo usano il modello DeepSeek-R1 per l'illustrazione. I passaggi sono gli stessi, indipendentemente dal fatto che si usino i modelli Foundry venduti direttamente da Azure o Modelli Foundry da partner e community. Ad esempio, se si sceglie di distribuire il modello Cohere-command-r-08-2024 , è possibile sostituire le credenziali del modello nei frammenti di codice con le credenziali per Cohere.

Distribuire il modello in un'API serverless

In questa sezione viene creato un endpoint per il modello. Assegnare all'endpoint il nome myserverless-text-1234ss.

  1. Creare l'endpoint serverless. Usare il modello seguente per creare un endpoint:

    serverless-endpoint.bicep

    param projectName string = 'my-project'
    param endpointName string = 'myserverless-text-1234ss'
    param location string = resourceGroup().location
    param modelId string = 'azureml://registries/azureml-deepseek/models/DeepSeek-R1'
    
    var modelName = substring(modelId, (lastIndexOf(modelId, '/') + 1))
    var subscriptionName = '${modelName}-subscription'
    
    resource projectName_endpoint 'Microsoft.MachineLearningServices/workspaces/serverlessEndpoints@2024-04-01-preview' = {
      name: '${projectName}/${endpointName}'
      location: location
      sku: {
        name: 'Consumption'
      }
      properties: {
        modelSettings: {
          modelId: modelId
        }
      }
      dependsOn: [
        projectName_subscription
      ]
    }
    
    output endpointUri string = projectName_endpoint.properties.inferenceEndpoint.uri
    

    Creare la distribuzione come segue:

    az deployment group create --resource-group $RESOURCE_GROUP --template-file model-subscription.bicep
    
  2. È possibile visualizzare gli endpoint distribuiti nel progetto in qualsiasi momento:

    È possibile usare gli strumenti di gestione risorse per eseguire query sulle risorse. Il seguente codice usa l'interfaccia della riga di comando di Azure:

    az resource list \
        --query "[?type=='Microsoft.MachineLearningServices/workspaces/serverlessEndpoints']"
    
  3. L'endpoint creato usa l'autenticazione con chiave per l'autorizzazione. Ottieni le chiavi associate all'endpoint specificato usando le API REST per ottenere queste informazioni.

  4. Se è necessario usare questa distribuzione da un progetto o un hub diverso o si prevede di usare il flusso prompt per compilare applicazioni intelligenti, è necessario creare una connessione alla distribuzione dell'API serverless. Per informazioni su come configurare una distribuzione di API serverless esistente in un nuovo progetto o hub, consultare Utilizzare la distribuzione di API serverless da un progetto diverso o da Prompt Flow.

    Suggerimento

    Se si utilizza Prompt flow nello stesso progetto o hub in cui è stata effettuata la distribuzione, è comunque necessario creare la connessione.

Usare la distribuzione dell'API serverless

I modelli distribuiti in Azure Machine Learning e Azure AI Foundry nelle distribuzioni di API serverless supportano l'API di inferenza del modello di intelligenza artificiale di Azure che espone un set comune di funzionalità per i modelli di base e che possono essere usati dagli sviluppatori per usare stime da un set diversificato di modelli in modo uniforme e coerente.

Ulteriori informazioni sulle funzionalità di questa API e su come utilizzarla durante la compilazione di applicazioni.

Eliminare endpoint e sottoscrizioni

È possibile eliminare sottoscrizioni ed endpoint del modello. L'eliminazione di una sottoscrizione del modello rende qualsiasi endpoint associato Non integro e inutilizzabile.

È possibile usare gli strumenti di gestione delle risorse per gestire le risorse. Il seguente codice usa l'interfaccia della riga di comando di Azure:

az resource delete --name <resource-name>

Considerazioni su costi e quote per i modelli Foundry distribuiti come distribuzione di API serverless

La quota viene gestita per distribuzione. Ogni distribuzione ha un limite di frequenza di 200.000 token al minuto e 1.000 richieste API al minuto. Inoltre, attualmente viene limitata una distribuzione per ogni modello per ogni progetto. Contattare il supporto tecnico di Microsoft Azure se i limiti di frequenza correnti non sono sufficienti per gli scenari in uso.

  • È possibile trovare informazioni sui prezzi per i modelli venduti direttamente da Azure, nella scheda Prezzi e termini della finestra Distribuzione API serverless .

  • I modelli dei partner e della community vengono offerti tramite Azure Marketplace e integrati con Azure AI Foundry per l'uso. È possibile trovare i prezzi di Azure Marketplace durante la distribuzione o l'ottimizzazione di questi modelli. Ogni volta che un progetto sottoscrive una determinata offerta da Azure Marketplace, viene creata una nuova risorsa per tenere traccia dei costi associati al consumo. La stessa risorsa viene usata per tenere traccia dei costi associati all'inferenza e all'ottimizzazione; tuttavia, sono disponibili più contatori per tenere traccia di ogni scenario in modo indipendente. Per altre informazioni su come tenere traccia dei costi, vedere Monitorare i costi per i modelli offerti tramite Azure Marketplace.

Autorizzazioni necessarie per la sottoscrizione a offerte di modello

I controlli degli accessi in base al ruolo di Azure vengono usati per concedere l'accesso alle operazioni nel portale di Azure AI Foundry. Per eseguire la procedura descritta in questo articolo, è necessario che all'account utente sia assegnato il ruolo di Proprietario, Collaboratore o Sviluppatore di intelligenza artificiale di Azure per la sottoscrizione di Azure. In alternativa, all'account può essere assegnato un ruolo personalizzato con le autorizzazioni seguenti:

  • Nella sottoscrizione di Azure, per sottoscrivere l'area di lavoro all'offerta di Azure Marketplace, una volta per ogni area di lavoro, per offerta:

    • Microsoft.MarketplaceOrdering/agreements/offers/plans/read
    • Microsoft.MarketplaceOrdering/agreements/offers/plans/sign/action
    • Microsoft.MarketplaceOrdering/offerTypes/publishers/offers/plans/agreements/read
    • Microsoft.Marketplace/offerTypes/publishers/offers/plans/agreements/read
    • Microsoft.SaaS/register/action
  • Nel gruppo di risorse, per creare e usare la risorsa SaaS:

    • Microsoft.SaaS/resources/read
    • Microsoft.SaaS/resources/write
  • Nell'area di lavoro, per distribuire gli endpoint (il ruolo data scientist di Azure Machine Learning contiene già queste autorizzazioni):

    • Microsoft.MachineLearningServices/workspaces/marketplaceModelSubscriptions/*
    • Microsoft.MachineLearningServices/workspaces/serverlessEndpoints/*

Per altre informazioni sulle autorizzazioni, vedere Controllo degli accessi in base al ruolo nel portale di Azure AI Foundry.