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 ti 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 il transformer flavor 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 che il tuo modello è stato registrato e sei pronto per servirlo, è possibile creare un endpoint di serving del modello usando l'interfaccia utente Serving.

  1. Fare clic su Serve nella barra laterale per visualizzare l'interfaccia utente Di servizio .

  2. Fare clic su Crea endpoint di servizio.

    Riquadro di gestione del modello nell'interfaccia utente di Databricks

  3. Nel campo Nome specificare un nome per l'endpoint.

  4. Nella sezione Entità servite

    1. Fare clic nel campo entità per aprire il modulo Seleziona entità servita .
    2. Selezionare il tipo di modello da servire. Il modulo viene aggiornato dinamicamente in base alla selezione.
    3. Selezionare il modello e la versione del modello da servire.
    4. Selezionare la percentuale di traffico da instradare al modello servito.
    5. Selezionare la dimensione del calcolo da usare.
    6. Nella sezione Scalabilità di calcolo, selezionare la dimensione della scalabilità orizzontale di calcolo che corrisponde 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. Fare clic 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 del modello

Se si preferisce creare un endpoint a livello di codice con l'API Di gestione di Databricks, vedere 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 servizio .

  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. Vedi Query sugli endpoint per i modelli personalizzati per i formati supportati e indicazioni su come inviare richieste di punteggio utilizzando 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 procedura consigliata per la sicurezza per gli scenari di produzione, Databricks consiglia di usare token OAuth da computer a computer per l'autenticazione durante l'ambiente di 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

Ottieni un 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, vedere Distribuire il codice Python con Model Serving.

Distribuire un notebook del modello pyfunc di MLflow

Ottieni un notebook