Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.
:::tip Ověřte před laděním Máte problémy s nasazením? Začněte ověřováním před nasazením , abyste zachytili běžné problémy před jejich výskytem. :::
Ladění sestavení kontejneru
Databricks doporučuje kontrolovat protokoly pro ladění a odstraňování chyb v modelu obsluhující úlohy. Podívejte se na Monitorování kvality modelu a zdraví koncového bodu pro informace o protokolech a jak se na ně podívat.
Protokoly událostí (klikněte na kartu Události ) v uživatelském rozhraní pracovního prostoru obsahují informace o průběhu sestavení kontejneru. Úspěšné sestavení kontejneru je zvýrazněno typem SERVED_ENTITY_CONTAINER_EVENT události spolu se zprávou Container image creation finished successfully. Pokud se po hodině vytvoření koncového bodu nezobrazí žádná událost sestavení nebo zpráva, požádejte o pomoc podporu Databricks.
Pokud je sestavení úspěšné, ale objeví se další chyby, podívejte se na Ladění po úspěšném sestavení kontejneru. Pokud se sestavení nezdaří, přečtěte si téma Ladění po selhání sestavení kontejneru.
Ladit 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 jejich řešení.
Poznámka:
Pokud kód modelu vrátí MlflowException chyby, očekávejte, že kód odpovědi bude převeden na 4xx odpověď. Databricks považuje tyto chyby kódu modelu za chyby způsobené zákazníkem, protože je možné je vyřešit na základě výsledné chybové zprávy.
5xx Kódy chyb jsou vyhrazeny pro hlášení chyb, kdy je chyba na straně Databricks.
Chybějící závislost
Může se zobrazit chyba typu An error occurred while loading the model. No module named <module-name>., která může značit, ž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 jsou soubory .whl zahrnuty jako artefakty.
Model selže nebo dojde k vypršení časového limitu při odesílání požadavků do koncového bodu
Může se zobrazit chyba jako Encountered an unexpected error while evaluating the model. Verify that the input is compatible with the model for inference., když je predict() volána na vašem modelu.
Tato chyba může značit problém s kódem predict() ve funkci. Databricks doporučuje načíst model z MLflow v poznámkovém bloku a volat ho. Tím se zvýrazní problémy ve funkci predict() a uvidíte, kde k selhání dochází v rámci metody.
Analýza původní příčiny neúspěšných požadavků
Pokud požadavek na koncový bod selže, můžete provést analýzu původní příčiny pomocí tabulek odvozování. Pokud je povolená, inferenční tabulky automaticky protokolují všechny požadavky a odpovědi ve vašem koncovém bodě v tabulce katalogu Unity, kterou můžete dotazovat.
- Informace o externích modelech, zřízených koncových bodech propustnosti a agentech AI najdete v tématu Monitorování obsluhovaných modelů pomocí tabulek odvozování s podporou brány AI.
- Pro vlastní modely viz Inference tabulky pro monitorování a ladění modelů.
Dotazování tabulek odvozování:
- V pracovním prostoru přejděte na kartu Obsluha a vyberte název koncového bodu.
- V části Odvozovací tabulky vyhledejte plně kvalifikovaný název tabulky odvození. Například:
my-catalog.my-schema.my-table. - V poznámkovém bloku Databricks spusťte následující příkaz:
%sql SELECT * FROM my-catalog.my-schema.my-table - Umožňuje zobrazit a filtrovat sloupce, jako
requestje ,responserequest_timeastatus_codeporozumět požadavkům a zúžit výsledky.%sql SELECT * FROM my-catalog.my-schema.my-table WHERE status_code != 200 - Pokud jste povolili trasování agentů pro agenty AI, podívejte se do sloupce Odpovědi a prohlédněte si podrobné trasování. Viz Povolení odvozovacích tabulek pro agenty AI.
Pracovní prostor překračuje zřízenou souběžnost.
Může se zobrazit chyba Workspace exceeded provisioned concurrency quota. To znamená, že jste dosáhli kvóty pracovního prostoru pro přidělenou souběžnost. Další informace o limitech souběžnosti najdete v tématu Omezení a oblasti služby Model Serving .
Tuto kvótu můžete uvolnit odstraněním nebo zastavením nepoužívaných koncových bodů.
Tento limit je možné zvýšit v závislosti na dostupnosti oblastí. Spojte se s týmem podpory Databricks a sdělte své ID pracovního prostoru k požádání o zvýšení počtu souběžných úloh.
Pracovní prostor překračuje limit paralelních požadavků
Může se zobrazit následující chyba 429: Exceeded max number of parallel requests. Please contact your Databricks representative to increase the limit.
Tento limit označuje, že jste dosáhli limitu pracovního prostoru maximálního počtu požadavků, které je možné odeslat paralelně. Další informace o tomto limitu najdete v tématu Omezení a oblasti služby Model Serving .
Databricks doporučuje přechod na koncové body optimalizované pro směrování, přičemž tento limit byl zrušen. Pokud nemůžete přejít na koncové body optimalizované pro směrování, můžete buď snížit počet klientů zasílajících inferenční žádosti, nebo kontaktovat zástupce Databricks pro navýšení kvóty.
Příliš mnoho souběžných požadavků
Může se zobrazit následující chyba 429: Too many concurrent requests. Consider increasing the provisioned concurrency of the served entity. Tato chyba značí, že aktuální zřízená souběžnost koncového bodu nemůže zpracovat příchozí objem provozu. Pokud jste pro koncový bod povolili automatické škálování, systém automaticky zřídí další souběžnost až do nakonfigurovaného limitu koncového bodu pro zpracování zvýšeného zatížení. Pokud automatické škálování není povolené, zvažte ruční zvýšení zřízené souběžnosti nebo povolení automatického škálování pro zpracování špiček provozu.
Ladění po neúspěšném sestavení kontejneru
Tato část popisuje problémy, ke kterým může dojít, když vaše sestavení selže.
OSError: [Errno 28] No space left on device
Příčinou No space left této chyby může být zbytečné protokolování příliš mnoha velkých artefaktů společně s modelem. V MLflow zkontrolujte, že se spolu s modelem nezaprotokolují nadbytečné artefakty, a pokuste se nasadit znovu redukovaný balíček.
Problémy se službou Azure Firewall při obsluhování modelů z katalogu Unity
Může se zobrazit chyba: 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..
Obraťte se na tým zodpovědný za váš účet Databricks, aby vám pomohl s vyřešením.
Selhání sestavení kvůli nedostatku dostupnosti GPU
Kvůli omezením v poskytování a dostupnosti GPU může sestavení GPU selhat s touto chybou: Build could not start due to an internal error - please contact your Databricks representative..
Obraťte se na tým zodpovědný za váš účet Databricks, aby vám pomohl s vyřešením. V závislosti na dostupnosti regionu může tým zřídit více prostředků GPU.
Nainstalované verze balíčků knihovny
Databricks doporučuje definovat všechny důležité knihovny jako závislosti modelu, aby se zajistilo konzistentní a reprodukovatelné chování modelu napříč prostředími. V protokolech sestavení můžete potvrdit verze balíčků, které jsou nainstalovány správně.
- 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
cudaacuDNNpodle veřejné dokumentace pyTorch a Tensorflow.
Modely protokolů, které vyžadují flash-attn
Pokud protokolujete model, který vyžaduje flash-attn, Databricks doporučuje použít vlastní verzi kola flash-attn. V opačném případě může dojít k ModuleNotFoundError: No module named 'torch' chybám sestavení.
Pokud chcete použít vlastní verzi flash-attnkola , zadejte všechny požadavky pip jako seznam a předejte ho jako parametr do vaší mlflow.transformers.log_model funkce. Musíte také zadat verze pytorch, torch a torchvision, které jsou kompatibilní s verzí CUDA zadanou ve vašem flash attn kole.
Databricks například doporučuje používat následující verze a kola pro CUDA 11.8:
- Pytorch
- Torch 2.0.1+cu118
- Torchvision 0.15.2+cu118
- Flash-Attn
logged_model=mlflow.transformers.log_model(
transformers_model=test_pipeline,
artifact_path="artifact_path",
pip_requirements=["--extra-index-url https://download.pytorch.org/whl/cu118", "mlflow==2.13.1", "setuptools<70.0.0", "torch==2.0.1+cu118", "accelerate==0.31.0", "astunparse==1.6.3", "bcrypt==3.2.0", "boto3==1.34.39", "configparser==5.2.0", "defusedxml==0.7.1", "dill==0.3.6", "google-cloud-storage==2.10.0", "ipython==8.15.0", "lz4==4.3.2", "nvidia-ml-py==12.555.43", "optree==0.12.1", "pandas==1.5.3", "pyopenssl==23.2.0", "pytesseract==0.3.10", "scikit-learn==1.3.0", "sentencepiece==0.1.99", "torchvision==0.15.2+cu118", "transformers==4.41.2", "https://github.com/Dao-AILab/flash-attention/releases/download/v2.5.8/flash_attn-2.5.8+cu118torch2.0cxx11abiFALSE-cp311-cp311-linux_x86_64.whl"],
input_example=input_example,
registered_model_name=registered_model_name)