Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk a végpontokat kiszolgáló modell használatakor előforduló gyakori problémák hibakeresési lépéseit mutatja be. A gyakori problémák közé tartozhatnak azok a hibák, amikor a végpont nem inicializálja vagy indítja el a végpontot, a tárolóval kapcsolatos buildelési hibák, vagy a modell a végponton való futtatása során fellépő problémák.
:::tipp Érvényesítés a hibakeresés előtt Üzembehelyezési problémák esetén? Kezdje az üzembe helyezés előtti ellenőrzéssel a gyakori problémák észlelése érdekében, mielőtt azok felmerülnének. :::
Tároló buildjének hibakeresése
A Databricks azt javasolja, hogy tekintse át a számítási feladatokat kiszolgáló modell hibakeresési és hibaelhárítási hibáinak naplóit. A naplókkal és azok megtekintésének módjával kapcsolatos információkért tekintse meg a modellminőség és a végpont állapotának figyelése című témakört.
A munkaterület felhasználói felületén található eseménynaplók (kattintson az Események fülre) információkat tartalmaznak a tároló buildjének előrehaladásáról. A sikeres tároló buildet egy SERVED_ENTITY_CONTAINER_EVENT eseménytípus és egy üzenet Container image creation finished successfullyemeli ki. Ha egy órával a végpont létrehozása után nem lát buildeseményt vagy üzenetet, forduljon a Databricks ügyfélszolgálatához segítségért.
Ha a build sikeres, de más hibákba ütközik, olvassa el a hibakeresést a tároló buildelésének sikerességét követően. Ha a build sikertelen, tekintse meg a konténer felépítési hiba utáni hibakeresést.
Hibakeresés, miután a konténerek buildelése sikeresen befejeződött
Még akkor is, ha a tároló buildelése sikeres, problémák merülhetnek fel a modell futtatásakor vagy maga a végpont működése során. Az alábbi alszakaszok részletesen ismertetik a gyakori problémákat és azok hibaelhárításának módját.
Megjegyzés:
Ha a modellkód MlflowException hibákat ad vissza, számítson rá, hogy a válaszkódot 4xx válaszhoz rendelik. A Databricks ezeket a modellkódhibákat ügyfél által okozott hibáknak tekinti, mivel az eredményként kapott hibaüzenet alapján megoldhatók.
5xx A hibakódok olyan hibák közlésére vannak fenntartva, amelyekben a Databricks hibás.
Hiányzó függőség
Előfordulhat, hogy egy hasonló An error occurred while loading the model. No module named <module-name>.hibaüzenet jelenik meg, amely azt jelezheti, hogy hiányzik egy függőség a tárolóból. Ellenőrizze, hogy megfelelően jelölte-e meg a tároló buildjében szereplő összes függőséget. Ügyeljen az egyéni kódtárakra, és győződjön meg arról, hogy a .whl fájlok összetevőként szerepelnek.
A modell meghiúsul vagy túllépi az időkorlátot, amikor a rendszer kéréseket küld a végpontnak
Előfordulhat, hogy amikor Encountered an unexpected error while evaluating the model. Verify that the input is compatible with the model for inference. meghívásra kerül a modellen, egy olyan hibaüzenetet kap, mint predict().
Ez a hiba kódhibát jelezhet a predict() függvényben. A Databricks azt javasolja, hogy töltse be a modellt az MLflow-ból egy jegyzetfüzetbe, és hívja meg. Ezzel kiemeli a függvény problémáit predict() , és láthatja, hogy hol történik a hiba a metóduson belül.
Sikertelen kérések alapvető okainak elemzése
Ha egy végpontra irányuló kérés meghiúsul, következtetési táblák használatával elvégezheti a kiváltó okok elemzését. Ha engedélyezve van, a következtetési táblák automatikusan naplóznak minden kérést és választ a végpontra egy Unity Catalog-táblában, a lekérdezéshez.
Következtetéstáblák lekérdezése:
- A munkaterületen lépjen a Kiszolgáló lapra, és válassza ki a végpont nevét.
- Az Inference táblák szakaszban keresse meg a következtetési tábla teljes nevét. Például:
my-catalog.my-schema.my-table. - Futtassa a következőket egy Databricks-jegyzetfüzetben:
%sql SELECT * FROM my-catalog.my-schema.my-table - Megtekintheti és szűrheti az olyan oszlopokat, mint a
request, aresponse, arequest_timeés astatus_code, hogy jobban megértse a kéréseket, és leszűkítse az eredményeket.%sql SELECT * FROM my-catalog.my-schema.my-table WHERE status_code != 200 - Ha engedélyezte az ügynökök nyomkövetését, a részletes nyomkövetés megtekintéséhez tekintse meg a Válasz oszlopot. Lásd : Következtetéstáblák engedélyezése ügynökök számára.
A munkaterület túllépi a kiosztott egyidejűséget
Előfordulhat, hogy hibaüzenetet Workspace exceeded provisioned concurrency quota kap. Ez azt jelzi, hogy elérte a munkaterület kvótáját a kiépített egyidejűség érdekében. Az egyidejűségi korlátokról további információt a Modellmegjelenítési korlátok és régiók című témakörben talál.
Ezt a kvótát a nem használt végpontok törlésével vagy leállításával szabadíthatja fel.
Ez a korlát a régió elérhetőségétől függően növelhető. Forduljon a Databricks-fiók csapatához, és adja meg a munkaterület azonosítóját az egyidejűség növelésének igényléséhez.
A munkaterület túllépi a párhuzamos kérelmek korlátját
A következő 429-hiba jelenhet meg: Exceeded max number of parallel requests. Please contact your Databricks representative to increase the limit.
Ez a korlát azt jelzi, hogy elérte a munkaterület korlátját a párhuzamosan küldhető kérelmek maximális száma alapján. Erről a korlátról további információt a Modellmegjelenítési korlátok és régiók című témakörben talál.
A Databricks javasolja az optimalizált végpontok átirányítását, ahol ezt a korlátot eltávolították. Ha nem tud áttérni az optimalizált végpontok átirányítására, csökkentheti a következtetési kérelmeket küldő ügyfelek számát, vagy felveheti a kapcsolatot a Databricks képviselőjével a kvótanövelés érdekében.
Túl sok egyidejű kérés
A következő 429-hiba jelenhet meg: Too many concurrent requests. Consider increasing the provisioned concurrency of the served entity. Ez a hiba azt jelzi, hogy a végpont aktuális kiosztott egyidejűsége nem tudja kezelni a bejövő forgalom mennyiségét. Ha engedélyezte az automatikus skálázást a végponthoz, a rendszer automatikusan további egyidejűséget épít ki a végpont konfigurált korlátjához képest a megnövekedett terhelés kezeléséhez. Ha az automatikus skálázás nincs engedélyezve, fontolja meg a kiosztott egyidejűség manuális növelését vagy az automatikus skálázás engedélyezését a forgalomnövekedések kezeléséhez.
Hibakeresés a tároló buildelési hibája után
Ez a szakasz azokat a problémákat ismerteti, amelyek akkor fordulhatnak elő, ha a build meghiúsul.
OSError: [Errno 28] No space left on device
A No space left hiba oka lehet, hogy túl sok nagy összetevő van naplózva a modell mellett szükségtelenül. Ellenőrizze az MLflow-ban, hogy a rendszer nem naplózza a felesleges összetevőket a modell mellett, és próbálja meg újból üzembe helyezni a karcsúsított csomagot.
Az Azure Firewall problémái a Unity Catalog modelljeinek kiszolgálásával kapcsolatban
A következő hibaüzenet jelenhet meg: 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..
A probléma megoldásához forduljon a Databricks-fiók csapatához.
Építés sikertelensége a GPU rendelkezésre állásának hiánya miatt
A GPU-kínálat és a rendelkezésre állás korlátozásai miatt a GPU-build a következő hibával meghiúsulhat: Build could not start due to an internal error - please contact your Databricks representative..
A probléma megoldásához forduljon a Databricks-fiók csapatához. A régió rendelkezésre állásától függően a csapat további GPU-erőforrásokat építhet ki.
Telepített kódtárcsomag-verziók
A Databricks azt javasolja, hogy az összes fontos kódtárat modellfüggőségként definiálja, hogy a modellek konzisztens és reprodukálható viselkedést biztosítsanak a környezetekben. A buildnaplókban ellenőrizheti a megfelelően telepített csomagverziókat.
- Az MLflow-verziók esetében, ha nincs megadva verzió, a Modellkiszolgáló a legújabb verziót használja.
- Az egyéni GPU-kiszolgáláshoz a Model Serving telepíti a PyTorch és a Tensorflow nyilvános dokumentációja alapján ajánlott verziókat.
Naplómodellek, amelyek megkövetelik flash-attn
Ha olyan modellt naplóz, amely megköveteli flash-attn, a Databricks javasolja a flash-attn egyéni kerékverziójának használatát. Ellenkező esetben olyan összeállítási hibák következhetnek be, mint a ModuleNotFoundError: No module named 'torch'.
Az egyéni kerékverzió flash-attnhasználatához adja meg az összes pipkövetelményt listaként, és adja meg paraméterként a mlflow.transformers.log_model függvénynek. Meg kell adnia a flash attn kerékben megadott CUDA-verzióval kompatibilis PyTorch-, Torch- és Torchvision-verziókat is.
A Databricks például a következő verziókat és kerekeket javasolja a CUDA 11.8-hoz:
- 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)