将文件存储中保存的文件传输到工作区或存储库

Transfer files saved in filestore to either the workspace or to a repo

我构建了一个机器学习模型:

lr = LinearRegression()
lr.fit(X_train, y_train)

我可以通过以下方式保存到文件存储:

filename = "/dbfs/FileStore/lr_model.pkl"
with open(filename, 'wb') as f:
    pickle.dump(lr, f)

理想情况下,我想将模型直接保存到工作区或存储库中,所以我尝试了:

filename = "/Users/user/lr_model.pkl"
os.makedirs(os.path.dirname(filename), exist_ok=True)
with open(filename, 'wb') as f:
    pickle.dump(lr, f)

但它不起作用,因为该文件未显示在工作区中。

我现在唯一的选择是将模型从文件存储转移到工作区或存储库,我该怎么做?

当您将文件存储在 DBFS (/FileStore/...) 中时,它就在您的帐户(数据平面)中。而notebooks等则在Databricks账户(control plane)中。根据设计,您无法将 non-code 个对象导入工作区。但是 Repos 现在支持 arbitrary files,尽管只有一个方向——您可以在数据平面中从集群 运行 访问 Repos 中的文件,但不能写入 Repos(至少现在不能)。您可以:

  • 将模型导出到您的本地磁盘并提交,然后将更改拉入 Repos
  • 使用Workspace API to put file (only source code as of right now) into Repos. Here is an .

但实际上,您应该将 built-in 的 MLflow 用于 Azure Databricks,它将帮助您 logging the model file, hyper-parameters, and other information. And then you can work with this model using APIs, command tools, etc., for example, to move the model between staging & production stages using Model Registry, deploy model to AzureML,等等