Condividi tramite


Tutorial: Implementare ed eseguire query su un modello personalizzato

Questo articolo mostra i passaggi di base per la distribuzione e l’esecuzione di query su un modello personalizzato, ovvero un modello di Machine Learning tradizionale, che usa Mosaic AI Model Serving. Il modello deve essere registrato in Unity Catalog o nel registro dei modelli dell'area di lavoro.

Per informazioni sulla gestione e sulla distribuzione di modelli di intelligenza artificiale generativi, consultare gli articoli seguenti:

Passaggio 1: Registrare il modello

Esistono diversi modi per registrare il modello per la gestione del modello:

Metodo di registrazione Descrizione
Registrazione automatica Questa opzione viene attivata automaticamente quando si usa Databricks Runtime per l’apprendimento automatico. È il modo più semplice, ma dà meno controllo.
Registrazione con le versioni predefinite di MLflow È possibile registrare manualmente il modello con le versioni predefinite del modello di MLflow.
Registrazione personalizzata con pyfunc Usare questa opzione se si dispone di un modello personalizzato o se sono necessari passaggi aggiuntivi prima o dopo l’inferenza.

L’esempio seguente illustra come registrare il modello MLflow usando la versione transformer e specificare i parametri necessari per il modello.

with mlflow.start_run():
    model_info = mlflow.transformers.log_model(
        transformers_model=text_generation_pipeline,
        artifact_path="my_sentence_generator",
        inference_config=inference_config,
        registered_model_name='gpt2',
        input_example=input_example,
        signature=signature
    )

Dopo aver registrato il modello, assicurarsi di verificare che il modello sia registrato nel catalogo Unity o nel Registro di sistema dei modelli MLflow.

Passaggio 2: Creare un endpoint usando l’interfaccia utente di gestione

Dopo aver inserito il modello registrato e averlo utilizzato, è possibile creare un endpoint di gestione del modello tramite l’interfaccia Utente di servizio .

  1. Fare clic su Servizi nella barra laterale per visualizzare l’interfaccia utente di lavoro .

  2. Fare click su Crea l'endpoint di servizio.

    Costi nella gestione del modello di Databricks

  3. Nel campo Nome immettere un nome per il calendario.

  4. Nella sezione Entità servite

    1. Fare clic su campo Entità per aprire il modulo Seleziona entità servita.
    2. Selezionare il tipo di modello da usare. Il modulo viene aggiornato dinamicamente in base alla selezione.
    3. Selezionare il modello e la versione del modello da usare.
    4. Selezionare la percentuale di traffico da instradare al modello servito.
    5. Selezionare le dimensioni da usare.
    6. In Scalabilità di calcolo selezionare le dimensioni della scalabilità orizzontale di calcolo corrispondente al numero di richieste che questo modello servito può elaborare contemporaneamente. Questo numero deve essere approssimativamente uguale al tempo di esecuzione del modello QPS x.
      1. Le dimensioni disponibili sono Piccole per 0-4 richieste, richieste medio 8-16 e Large per 16-64 richieste.
    7. Specificare se l’endpoint deve essere ridimensionato su zero quando non è in uso.
  5. Cliccare su Crea. La pagina “Gestione degli endpoint” viene visualizzata con lo Stato dell’endpoint di servizio visualizzato come Non pronto.

    Creare un endpoint di gestione dei modelli

Se si preferisce creare un endpoint a livello di codice con l’API Di gestione di Databricks, consultare la sezione Creare endpoint di gestione di modelli personalizzati.

Passaggio 3: Eseguire una query sull’endpoint

Il modo più semplice e rapido per testare e inviare richieste di assegnazione dei punteggi al modello servito consiste nell’usare l’interfaccia utente di lavoro .

  1. Nella pagina Endpoint di servizio selezionare Endpoint di query.

  2. Inserire i dati di input del modello in formato JSON e fare clic su Invia richiesta. Se il modello è stato registrato con un esempio di input, fare clic su Mostra esempio per caricare l’esempio di input.

       {
       "inputs" : ["Hello, I'm a language model,"],
       "params" : {"max_new_tokens": 10, "temperature": 1}
       }
    

Per inviare richieste di assegnazione dei punteggi, costruire un codice JSON con una delle chiavi supportate e un oggetto JSON corrispondente al formato di input. Consultare Eseguire query sugli endpoint per i modelli personalizzati per i formati supportati e indicazioni su come inviare richieste di assegnazione dei punteggi usando l’API.

Se si prevede di accedere all’endpoint di servizio all’esterno dell’interfaccia utente di Azure Databricks Serving, è necessario un .DATABRICKS_API_TOKEN

Importante

Come buona prassi di sicurezza per scenari di produzione, Databricks consiglia di utilizzare token OAuth da macchina a macchina per l'autenticazione durante la produzione.

Per il test e lo sviluppo, Databricks consiglia di usare un token di accesso personale appartenente alle entità servizio anziché agli utenti dell'area di lavoro. Per creare token per le entità servizio, vedere Gestire i token per un'entità servizio.

Notebook di esempio

Vedere il notebook seguente per la gestione di un modello MLflow transformers con Model Serving.

Distribuire un notebook del modello Hugging Face transformers

Ottenere il notebook

Vedere il notebook seguente per la gestione di un modello MLflow pyfunc con Model Serving. Per altri dettagli sulla personalizzazione delle distribuzioni del modello, consultare la sezione: Distribuire il codice Python con Model Serving.

Distribuire un notebook del modello MLflow pyfunc

Ottenere il notebook