모델 제공에 대한 디버깅 가이드
이 문서에서는 사용자가 엔드포인트를 제공하는 모델을 사용할 때 발생할 수 있는 일반적인 문제에 대한 디버깅 단계를 보여 줍니다. 일반적인 문제에는 엔드포인트가 초기화 또는 시작에 실패할 때 발생하는 오류, 컨테이너와 관련된 빌드 오류 또는 엔드포인트에서 모델을 실행하거나 실행하는 동안 발생하는 문제가 포함될 수 있습니다.
로그 액세스 및 검토
Databricks는 워크로드를 제공하는 모델의 디버깅 및 문제 해결을 위해 빌드 로그를 검토하는 것이 좋습니다. 로그 및 로그를 보는 방법에 대한 자세한 내용은 모니터 모델 품질 및 엔드포인트 상태를 참조하세요.
작업 영역 UI에서 모델에 대한 이벤트 로그를 확인하고 성공적인 컨테이너 빌드 메시지를 확인합니다. 한 시간 후에 빌드 메시지가 표시되지 않으면 Databricks 지원에 문의하여 도움을 요청하세요.
빌드가 성공했지만 다른 오류가 발생하면 컨테이너 빌드가 성공한 후 디버깅이 표시됩니다. 빌드가 실패하면 컨테이너 빌드 실패 후 디버깅을 참조하세요.
설치된 라이브러리 패키지 버전
빌드 로그에서 설치된 패키지 버전을 확인할 수 있습니다.
- MLflow 버전의 경우 지정된 버전이 없는 경우 Model Serving는 최신 버전을 사용합니다.
- 사용자 지정 GPU 서비스용 Model Serving는 공용 PyTorch 및
cuDNN
Tensorflow 설명서에cuda
따라 권장되는 버전을 설치합니다.
컨테이너 빌드 성공 후 디버깅
컨테이너가 성공적으로 빌드되더라도 모델을 실행하거나 엔드포인트 자체를 작업하는 동안 문제가 발생할 수 있습니다. 다음 하위 섹션에서는 일반적인 문제 및 문제 해결 및 디버그 방법을 자세히 설명합니다.
누락된 종속성
와 같은 An error occurred while loading the model. No module named <module-name>.
오류가 발생할 수 있습니다. 이 오류는 컨테이너에서 종속성이 누락되었음을 나타낼 수 있습니다. 컨테이너 빌드에 포함해야 하는 모든 종속성을 올바르게 표시했는지 확인합니다. 사용자 지정 라이브러리에 특히 주의를 기울이고 파일이 아티팩트로 포함되어 있는지 확인 .whl
합니다.
서비스 로그 반복
컨테이너 빌드가 실패하면 서비스 로그를 확인하여 엔드포인트가 모델을 로드하려고 할 때 반복되는 것을 확인할 수 있습니다. 이 동작이 표시되면 다음 단계를 수행합니다.
- Notebook을 열고 Machine Learning용 Databricks 런타임이 아닌 Databricks 런타임 버전을 사용하는 다목적 클러스터에 연결합니다.
- MLflow를 사용하여 모델을 로드하고 여기에서 디버깅을 시도합니다.
PC에서 로컬로 모델을 로드하고 여기에서 디버그할 수도 있습니다. 다음을 사용하여 모델을 로컬로 로드합니다.
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)
요청이 엔드포인트로 전송되면 모델이 실패합니다.
모델에서 호출되는 경우 predict()
와 같은 Encountered an unexpected error while evaluating the model. Verify that the input is compatible with the model for inference.
오류가 발생할 수 있습니다.
함수에 코드 문제가 있습니다 predict()
. Databricks는 Notebook의 MLflow에서 모델을 로드하고 호출하는 것이 좋습니다. 이렇게 하면 함수의 문제가 predict()
강조 표시되고 메서드 내에서 오류가 발생하는 위치를 확인할 수 있습니다.
작업 영역이 프로비전된 동시성을 초과함
오류가 발생할 Workspace exceeded provisioned concurrency quota
수 있습니다.
지역 가용성에 따라 동시성을 높일 수 있습니다. Databricks 계정 팀에 문의하고 작업 영역 ID를 제공하여 동시성 증가를 요청합니다.
컨테이너 빌드 실패 후 디버깅
이 섹션에서는 빌드가 실패할 때 발생할 수 있는 문제에 대해 자세히 설명합니다.
OSError: [Errno 28] No space left on device
이 오류는 No space left
너무 많은 큰 아티팩트가 불필요하게 모델과 함께 기록되기 때문일 수 있습니다. MLflow에서 불필요한 아티팩트가 모델과 함께 기록되지 않는지 확인하고 축소된 패키지를 다시 배포합니다.
Unity 카탈로그에서 모델 제공과 관련된 Azure Firewall 문제
다음과 같은 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.
오류가 표시될 수 있습니다.
문제를 해결하려면 Databricks 계정 팀에 문의하세요.
GPU 가용성 부족으로 인한 빌드 실패
다음과 같은 Build could not start due to an internal error - please contact your Databricks representative.
오류가 표시될 수 있습니다.
문제를 해결하려면 Databricks 계정 팀에 문의하세요.