Průvodce laděním pro obsluhu modelů
Tento článek ukazuje kroky ladění běžných problémů, se kterými se můžou uživatelé setkat při práci s koncovými body obsluhy modelu. Mezi běžné problémy můžou patřit chyby, ke kterým uživatelé při selhání inicializace nebo spuštění koncového bodu dochází k chybám, selháním sestavení souvisejícím s kontejnerem nebo problémy během operace nebo spuštění modelu v koncovém bodu.
Přístup k protokolům a jejich kontrola
Databricks doporučuje kontrolovat protokoly sestavení pro ladění a odstraňování chyb v modelu obsluhující úlohy. Informace o protokolechach
Zkontrolujte protokoly událostí pro model v uživatelském rozhraní pracovního prostoru a zkontrolujte úspěšnou zprávu o sestavení kontejneru. Pokud se po hodině nezobrazí zpráva o sestavení, požádejte o pomoc podporu Databricks.
Pokud je sestavení úspěšné, ale po úspěšném sestavení kontejneru se zobrazí další chyby, zobrazí se ladění. Pokud se sestavení nezdaří, přečtěte si téma Ladění po selhání sestavení kontejneru.
Nainstalované verze balíčků knihovny
V protokolech sestavení můžete potvrdit nainstalované verze balíčků.
- Pokud pro verze MLflow nemáte zadanou verzi, používá služba Model Service nejnovější verzi.
- Pro vlastní obsluhu GPU služba Model Serving nainstaluje doporučené verze
cuda
acuDNN
podle veřejné dokumentace pyTorch a Tensorflow.
Ladění po úspěšném sestavení kontejneru
I když se kontejner úspěšně sestaví, může dojít k problémům při spuštění modelu nebo při provozu samotného koncového bodu. Následující pododdíly podrobně uvádějí běžné problémy a postupy při řešení potíží a ladění.
Chybějící závislost
Může se zobrazit chyba typu An error occurred while loading the model. No module named <module-name>.
. Tato chyba může značí, že v kontejneru chybí závislost. Ověřte, že jste správně označili všechny závislosti, které by se měly zahrnout do sestavení kontejneru. Věnujte zvláštní pozornost vlastním knihovnám a ujistěte se, že .whl
jsou soubory zahrnuty jako artefakty.
Smyčka protokolů služeb
Pokud se sestavení kontejneru nezdaří, zkontrolujte protokoly služby a podívejte se, jestli se při pokusu koncového bodu o načtení modelu zobrazí smyčka. Pokud se zobrazí toto chování, vyzkoušejte následující kroky:
- Otevřete poznámkový blok a připojte se ke clusteru pro všechny účely, který používá verzi Databricks Runtime, nikoli Databricks Runtime pro Machine Learning.
- Načtěte model pomocí MLflow a zkuste ho odsud ladit.
Model můžete také načíst místně na počítači a ladit ho odsud. Místně načtěte model pomocí následujícího příkazu:
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)
Model selže, když se požadavky odesílají do koncového bodu.
V modelu se může zobrazit chyba podobná Encountered an unexpected error while evaluating the model. Verify that the input is compatible with the model for inference.
tomu, kdy predict()
je volána.
Ve funkci došlo k problému s kódem predict()
. Databricks doporučuje načíst model z MLflow v poznámkovém bloku a volat ho. Tím se zvýrazní problémy ve predict()
funkci a uvidíte, kde k selhání dochází v rámci metody.
Pracovní prostor překračuje zřízenou souběžnost.
Může se Workspace exceeded provisioned concurrency quota
zobrazit chyba.
Souběžnost můžete zvýšit v závislosti na dostupnosti oblastí. Spojte se s týmem účtu Databricks a zadejte ID pracovního prostoru a požádejte o zvýšení souběžnosti.
Ladění po selhání sestavení kontejneru
Tato část obsahuje podrobnosti o problémech, ke kterým může dojít v případě selhání sestavení.
OSError: [Errno 28] No space left on device
Příčinou No space left
této chyby může být příliš mnoho velkých artefaktů, které se protokolují společně s modelem zbytečně. Zkontrolujte MLflow, že se spolu s modelem nezaprotokolují nadbytečné artefakty, a pokuste se znovu nasadit štíhlý balíček.
Problémy se službou Azure Firewall při obsluhování modelů z katalogu Unity
Může se zobrazit chyba typu 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.
.
S řešením vám pomůže váš tým účtu Databricks.
Selhání sestavení kvůli nedostatku dostupnosti GPU
Může se zobrazit chyba typu Build could not start due to an internal error - please contact your Databricks representative.
.
S řešením vám pomůže váš tým účtu Databricks.