MLflow Artifact 삭제 (Permanently delete runs)
MLflow를 사용하다 반복되는 실험으로 S3에 artifact가 쌓이고있어 삭제 방법을 찾게 되었습니다. Tracking Server의 Web UI에서는 delete가 hide로 동작하기 때문에 S3에 쌓인 artifact와 PostgreSQL에 쌓인 metadata를 지우기 위...
MLflow를 사용하다 반복되는 실험으로 S3에 artifact가 쌓이고있어 삭제 방법을 찾게 되었습니다. Tracking Server의 Web UI에서는 delete가 hide로 동작하기 때문에 S3에 쌓인 artifact와 PostgreSQL에 쌓인 metadata를 지우기 위...
Kubernetes MLflow ingress 적용을 위해 일반적으로 나와있는 방법을 사용하면 UI는 사용 가능하지만 API 사용이 불가능합니다. API 호출 경로가 ingress path와 상관없이 서비스 상대경로로 적용되기 때문입니다. 따라서 서비스에서 ingress path를...
Airflow로 학습 및 배포 스케줄링을 하는데 단지 모델의 버전 확인, Stage 변경과 같은 단순 작업에 MLflow 패키지를 설치해야하는 과정이 발생했습니다. MLflow 패키지는 생각보다 무겁고, Airflow에서 관리상 PythonVirtualenvOperator를 사용하...
MLflow 가이드를 보면 Production 모델을 가져오는 방법(mlflow.pyfunc.load_model)에 대한 설명이 있지만, 모델을 통채로 가져와서 load하기 때문에 속도도 느리고 리소스 낭비가 발생합니다.
MLflow를 이용해서 transformer 모델을 학습시키는 중 RestException: INVALID_PARAMETER_VALUE...관련 에러가 발생하였습니다.
MLflow UI를 보면 Experiments와 Models 2가지 메뉴를 확인할 수 있는데, 실험 관점과 배포 관점을 나누어 관리하는 부분이라고 생각하면 됩니다. 따라서 MLflow에 등록된 모델을 배포할 때는 Models에서 진행하는게 좋습니다.
본 설치는 MLflow 설계 시나리오 5 기반으로 작성하였습니다.
MLflow는 git에 저장된 코드를 가져와서 바로 실행할 수 있습니다. git clone 과정 정도를 생략할 수 있다고 보면 될 것 같습니다.
본 예제는 Anaconda 없이 pip requirements를 가지고 MLflow pytorch example을 진행하는 방법에 대해 작성하였습니다.
일부 작성한지 오래된 튜토리얼의 CLI에서 pyfunc, rfunc를 사용하고 있습니다. 해당 명령어가 v1.0 정식 버전이 출시되면서 models로 통일되었기 때문에 해당 부분을 공유합니다.