我目前正在跟踪我的 MLflow 运行到本地文件路径 URI。我还想设置一个远程跟踪服务器与我的合作者共享。我想避免的一件事是将所有内容记录到服务器,因为它可能很快就会被失败的运行淹没。
理想情况下,我想保留我的本地跟踪器,然后能够只将有希望的运行发送到服务器。
将运行从本地跟踪器复制到远程服务器的推荐方法是什么?
我目前正在跟踪我的 MLflow 运行到本地文件路径 URI。我还想设置一个远程跟踪服务器与我的合作者共享。我想避免的一件事是将所有内容记录到服务器,因为它可能很快就会被失败的运行淹没。
理想情况下,我想保留我的本地跟踪器,然后能够只将有希望的运行发送到服务器。
将运行从本地跟踪器复制到远程服务器的推荐方法是什么?
要将训练好的模型发布到远程 MLflow 服务器,您应该使用“register_model”API。例如,如果您使用的是 MLflow 的 spacy 风格,您可以如下使用,其中“nlp”是经过训练的模型:
mlflow.spacy.log_model(spacy_model=nlp, artifact_path='mlflow_sample')
model_uri = "runs:/{run_id}/{artifact_path}".format(
run_id=mlflow.active_run().info.run_id, artifact_path='mlflow_sample'
)
mlflow.register_model(model_uri=model_uri, name='mlflow_sample')
确保应设置以下环境变量。在下面的示例中使用 S3 存储:
SET MLFLOW_TRACKING_URI=https://YOUR-REMOTE-MLFLOW-HOST
SET MLFLOW_S3_BUCKET=s3://YOUR-BUCKET-NAME
SET AWS_ACCESS_KEY_ID=YOUR-ACCESS-KEY
SET AWS_SECRET_ACCESS_KEY=YOUR-SECRET-KEY
出于类似的原因,我一直对将运行从一个实验复制到另一个实验的相关功能感兴趣,即为任意运行设置一个区域,并将我们向前推进的有希望运行的结果移动到另一个区域。您使用单独的跟踪服务器的场景只是我的概括。无论哪种方式,显然目前没有内置于 Mlflow 的此功能的功能。但是,mlflow-export-import基于 python 的工具看起来可能涵盖了我们的两个用例,它引用了 Databricks 和 Mlflow 的开源版本的使用情况,并且在撰写本文时它似乎是最新的。不过,我自己还没有尝试过使用这个工具——如果/当我尝试它时,我很高兴在这里记下一个后续内容,说明它是否适用于此目的,和/或其他任何人都可以这样做。谢谢和欢呼!