Guida al debug per la gestione dei modelli
Questo articolo illustra i passaggi di debug per i problemi comuni che gli utenti potrebbero riscontrare durante l'uso degli endpoint di gestione del modello. I problemi comuni possono includere errori riscontrati dagli utenti quando l'endpoint non riesce a inizializzare o avviare, errori di compilazione correlati al contenitore o problemi durante l'operazione o l'esecuzione del modello nell'endpoint.
Accedere ed esaminare i log
Databricks consiglia di esaminare i log di compilazione per il debug e la risoluzione degli errori nel modello che gestisce i carichi di lavoro. Vedere Monitorare la qualità del modello e l'integrità degli endpoint per informazioni sui log e su come visualizzarli.
Controllare i registri eventi per il modello nell'interfaccia utente dell'area di lavoro e verificare la presenza di un messaggio di compilazione del contenitore riuscito. Se non viene visualizzato un messaggio di compilazione dopo un'ora, contattare il supporto di Databricks per assistenza.
Se la compilazione ha esito positivo, ma si verificano altri errori, vedere Debug dopo l'esito positivo della compilazione del contenitore. Se la compilazione non riesce, vedere Debug dopo l'errore di compilazione del contenitore.
Versioni dei pacchetti di libreria installate
Nei log di compilazione è possibile confermare le versioni del pacchetto installate.
- Per le versioni di MLflow, se non è specificata una versione, Model Serving usa la versione più recente.
- Per la gestione della GPU personalizzata, Model Serving installa le versioni consigliate di
cuda
ecuDNN
in base alla documentazione pubblica di PyTorch e Tensorflow.
Debug dopo l'esito positivo della compilazione del contenitore
Anche se il contenitore viene compilato correttamente, potrebbero verificarsi problemi durante l'esecuzione del modello o durante il funzionamento dell'endpoint stesso. Le sottosezioni seguenti illustrano in dettaglio i problemi comuni e come risolvere i problemi e il debug
Dipendenza mancante
È possibile che venga visualizzato un errore simile a An error occurred while loading the model. No module named <module-name>.
. Questo errore potrebbe indicare che manca una dipendenza dal contenitore. Verificare di aver indicato correttamente tutte le dipendenze che devono essere incluse nella compilazione del contenitore. Prestare particolare attenzione alle librerie personalizzate e assicurarsi che i .whl
file siano inclusi come artefatti.
Ciclo dei log del servizio
Se la compilazione del contenitore non riesce, controllare i log del servizio per verificare se vengono visualizzati cicli quando l'endpoint tenta di caricare il modello. Se viene visualizzato questo comportamento, seguire questa procedura:
- Aprire un notebook e collegarsi a un cluster all-purpose che usa una versione di Databricks Runtime, non Databricks Runtime per Machine Learning.
- Caricare il modello usando MLflow e provare a eseguire il debug da questa posizione.
È anche possibile caricare il modello in locale nel PC ed eseguire il debug da questa posizione. Caricare il modello in locale usando quanto segue:
import os
import mlflow
os.environ["MLFLOW_TRACKING_URI"] = "databricks://PROFILE"
ARTIFACT_URI = "model_uri"
if '.' in ARTIFACT_URI:
mlflow.set_registry_uri('databricks-uc')
local_path = mlflow.artifacts.download_artifacts(ARTIFACT_URI)
print(local_path)
conda env create -f local_path/artifact_path/conda.yaml
conda activate mlflow-env
mlflow.pyfunc.load_model(local_path/artifact_path)
Il modello ha esito negativo quando le richieste vengono inviate all'endpoint
È possibile che venga visualizzato un errore simile Encountered an unexpected error while evaluating the model. Verify that the input is compatible with the model for inference.
a quando predict()
viene chiamato sul modello.
Si è verificato un problema di codice nella predict()
funzione. Databricks consiglia di caricare il modello da MLflow in un notebook e chiamarlo. In questo modo si evidenziano i problemi nella predict()
funzione e si può vedere dove si verifica l'errore all'interno del metodo .
L'area di lavoro supera la concorrenza con provisioning
È possibile che venga visualizzato un Workspace exceeded provisioned concurrency quota
errore.
È possibile aumentare la concorrenza a seconda della disponibilità dell'area. Contattare il team dell'account Databricks e fornire l'ID dell'area di lavoro per richiedere un aumento della concorrenza.
Debug dopo un errore di compilazione del contenitore
Questa sezione descrive in dettaglio i problemi che possono verificarsi quando la compilazione non riesce.
OSError: [Errno 28] No space left on device
L'errore No space left
può essere dovuto a troppi artefatti di grandi dimensioni registrati insieme al modello inutilmente. Controllare in MLflow che gli artefatti estranei non vengono registrati insieme al modello e provare a ridistribuire il pacchetto ridotto.
Firewall di Azure problemi relativi alla gestione dei modelli dal catalogo unity
È possibile che venga visualizzato un errore simile a Build could not start due to an internal error. If you are serving a model from UC and Azure Firewall is enabled, this is not supported by default.
.
Contattare il team dell'account Databricks per risolvere il problema.
Errore di compilazione a causa della mancanza di disponibilità della GPU
È possibile che venga visualizzato un errore simile a Build could not start due to an internal error - please contact your Databricks representative.
.
Contattare il team dell'account Databricks per risolvere il problema.