모델 제공을 위한 패키지 사용자 지정 아티팩트.
이 문서에서는 Azure Databricks 엔드포인트에서 제공하는 모델에서 모델의 파일 및 아티팩트 종속성을 사용할 수 있도록 하는 방법을 설명합니다 .
요구 사항
MLflow 1.29 이상
모델과 함께 아티팩트 패키지
유추 중에 모델에 파일이나 아티팩트가 필요한 경우 모델을 로그할 때 모델 아티팩트로 패키지할 수 있습니다.
Azure Databricks Notebook을 사용하는 경우 이러한 파일이 Unity 카탈로그 볼륨에 상주하도록 하는 것이 일반적입니다. 모델은 경우에 따라 인터넷에서 아티팩트를 다운로드하도록 구성됩니다(예: HuggingFace 토크나이저). 필요한 모든 종속성이 배포 시 정적으로 캡처될 때 대규모 실시간 워크로드가 가장 잘 수행됩니다. 이러한 이유로 모델 서비스를 사용하려면 MLflow 인터페이스를 사용하여 Unity 카탈로그 볼륨 아티팩트가 모델 아티팩트 자체에 패키지되어야 합니다. 모델과 함께 로드된 네트워크 아티팩트는 가능할 때마다 모델과 함께 패키지되어야 합니다.
MLflow 명령 log_model()을 사용하면 artifacts
매개 변수로 모델 및 종속 아티팩트를 로그할 수 있습니다.
mlflow.pyfunc.log_model(
...
artifacts={'model-weights': "/Volumes/catalog/schema/volume/path/to/file", "tokenizer_cache": "./tokenizer_cache"},
...
)
PyFunc 모델에서 이러한 아티팩트의 경로는 context.artifacts
아래의 context
개체에서 액세스할 수 있으며 해당 파일 형식에 대한 표준 방식으로 로드할 수 있습니다.
예를 들어, 사용자 지정 MLflow 모델에서:
class ModelPyfunc(mlflow.pyfunc.PythonModel):
def load_context(self, context):
self.model = torch.load(context.artifacts["model-weights"])
self.tokenizer = transformers.BertweetTokenizer.from_pretrained("model-base", local_files_only=True, cache_dir=context.artifacts["tokenizer_cache"])
...
파일 및 아티팩트가 모델 아티팩트 내에 패키지된 후 모델 서비스 엔드포인트에 모델을 제공할 수 있습니다.