모델 제공과 함께 사용자 지정 Python 라이브러리 사용
이 문서에서는 모델을 기록할 때 개인 미러 서버의 사용자 지정 라이브러리 또는 라이브러리를 포함하여 Mosaic AI 모델 서비스 모델 배포와 함께 사용할 수 있도록 하는 방법을 알아봅니다. 학습된 ML 모델을 배포할 준비가 된 후 Azure Databricks 모델 서비스 엔드포인트를 만들기 전에 이 가이드에 자세히 설명된 단계를 완료해야 합니다.
모델 개발에는 사전 또는 사후 처리, 사용자 지정 모델 정의 및 기타 공유 유틸리티를 위한 함수가 포함된 사용자 지정 Python 라이브러리를 사용해야 하는 경우가 많습니다. 또한 많은 기업 보안 팀에서는 공급망 공격의 위험을 줄이기 위해 Nexus 또는 Artifactory와 같은 프라이빗 PyPi 미러를 사용할 것이 좋습니다. Azure Databricks는 Azure Databricks 작업 영역의 프라이빗 미러에서 사용자 지정 라이브러리 및 라이브러리를 설치하기 위한 네이티브 지원을 제공합니다.
요구 사항
- MLflow 1.29 이상
1단계: 종속성 파일 업로드
Databricks는 Unity Catalogvolumes에 종속성 파일을 업로드할 것을 권장합니다. 또는 Azure Databricks UI를 사용하여 DBFS(Databricks 파일 시스템) 에 업로드할 수 있습니다.
전자 필기장에서 라이브러리를 사용할 수 있도록 하려면 .를 사용하여 %pip%
라이브러리를 설치해야 합니다. 사용 하 여 %pip
현재 Notebook에 라이브러리를 설치 하 고 클러스터에 종속성을 다운로드 합니다.
2단계: 사용자 지정 라이브러리를 사용하여 모델 기록
Important
사용자 지정 PyPi 미러를 가리켜 프라이빗 라이브러리를 설치하는 경우 이 섹션의 지침이 필요하지 않습니다.
라이브러리를 설치하고 Python 휠 파일을 Unity Catalogvolumes 또는 DBFS에 업로드한 후 스크립트에 다음 코드를 포함합니다.
extra_pip_requirements
종속성 파일의 경로를 지정합니다.
mlflow.sklearn.log_model(model, "sklearn-model", extra_pip_requirements=["/volume/path/to/dependency.whl"])
DBFS의 경우 다음을 사용합니다.
mlflow.sklearn.log_model(model, "sklearn-model", extra_pip_requirements=["/dbfs/path/to/dependency.whl"])
사용자 지정 라이브러리가 있는 경우 로깅을 구성할 때 모델과 연결된 모든 사용자 지정 Python 라이브러리를 지정해야 합니다.
extra_pip_requirements
또는 conda_env
parameters를 log_model()에서 사용하여 그렇게 할 수 있습니다.
Important
DBFS를 사용하는 경우 로깅/
할 때 경로 앞에 슬래시dbfs
를 포함해야 합니다extra_pip_requirements
. Azure Databricks의 파일 작업에서 DBFS 경로에 대해 자세히 알아봅니다.
from mlflow.utils.environment import _mlflow_conda_env
conda_env = _mlflow_conda_env(
additional_conda_deps= None,
additional_pip_deps= ["/volumes/path/to/dependency"],
additional_conda_channels=None,
)
mlflow.pyfunc.log_model(..., conda_env = conda_env)
3단계: Python wheel 파일을 사용한 MLflow 모델 Update
MLflow는 python 휠 파일로 미리 패키지된 모든 종속성을 사용하여 모델을 기록하는 add_libraries_to_model() 유틸리티를 제공합니다. 이렇게 하면 모델의 종속성으로 지정된 다른 모든 라이브러리 외에 모델과 함께 사용자 지정 라이브러리를 패키지합니다. 이렇게 하면 모델에서 사용하는 라이브러리가 학습 환경에서 액세스할 수 있는 것과 정확히 일치합니다.
다음 예제에서는 구문 models:/<uc-model>/<model-version>
를 사용하여 model_uri
이(가) Unity Catalog 모델 레지스트리를 참조합니다. 작업 영역 모델 레지스트리(레거시)를 참조하려면 models:/<model-name>/<model-version>
을(를) 사용하십시오.
모델 레지스트리 URI를 사용하는 경우 이 유틸리티는 기존 등록 모델에서 새 버전을 생성합니다.
import mlflow.models.utils
mlflow.models.utils.add_libraries_to_model(<model-uri>)
4단계: 모델 제공
패키지가 포함된 새 모델 버전을 모델 레지스트리에서 사용할 수 있는 경우 Model Serving를 사용하여 이 모델 버전을 엔드포인트에 추가할 수 있습니다.