python - 设置 Mlflow 后端 (SQLite) 和工件(Azure Blob 存储)存储

标签 python azure mlflow mlops

我想将 Mlflow 设置为具有以下组件:

  • 后端存储(本地):在本地使用 SQLite 数据库存储 Mlflow 实体(run_id、params、metrics...)
  • 工件存储(远程):使用 Azure Data Lake Storage Gen2 上的 Blob 存储来存储与模型相关的输出文件(版本化数据集、序列化模型、图像等)
  • 跟踪服务器:通过使用类似于此命令的内容

z

mlflow server --backend-store-uri sqlite:///C:\sqlite\db\mlruns.db --default-artifact-root wasbs://container-name@storage_account_name.blob.core.windows.net/mlartifacts -h 0.0.0.0 -p 8000

其中 mlruns.db 是我在 SQLite 中创建的数据库(在 db 文件夹内),mlartifacts 是我在 blob 容器内创建的用于接收所有输出文件的文件夹。

我运行此命令,然后运行 ​​mlflow(或运行 kedro,因为我使用的是 Kedro),但几乎没有任何反应。该数据库填充了 12 个表,但全部为空,而数据湖内没有任何反应。

我想要的应该是 Scenario 4在文档中。

对于神器商店,我找不到详细的说明。我尝试查看 Mlflow 的文档 here但这不是很有帮助(我仍然是初学者)。他们说:

MLflow expects Azure Storage access credentials in the AZURE_STORAGE_CONNECTION_STRING, AZURE_STORAGE_ACCESS_KEY environment variables or having your credentials configured such that the DefaultAzureCredential(). class can pick them up.

但是,即使添加环境变量,数据湖中似乎也没有存储任何内容。我创建了两个环境变量(在 Windows 10 上):

  • AZURE_STORAGE_ACCESS_KEY = wasbs://container-name@storage_account_name.blob.core.windows.net/mlartifacts

  • AZURE_STORAGE_CONNECTION_STRING = DefaultEndpointsProtocol=https;AccountName=storagesample;AccountKey=。我通过在 Azure 门户上遵循以下路径获得它:存储帐户/访问 key /连接字符串(采用 key 2 之一)。

他们还指出:

Also, you must run pip install azure-storage-blob separately (on both your client and the server) to access Azure Blob Storage. Finally, if you want to use DefaultAzureCredential, you must pip install azure-identity; MLflow does not declare a dependency on these packages by default.

我将它们添加到我的项目需求中,但是在客户端和服务器上安装它们到底意味着什么? azure-identity 如何帮助设置?

您能帮我一步步说明如何进行完整的设置吗?

提前谢谢您!

最佳答案

您只需设置 AZURE_STORAGE_CONNECTION_STRING,如果使用第一个环境变量,AZURE_STORAGE_ACCESS_KEY 是可选的(无论如何,AZURE_STORAGE_ACCESS_KEY 不应该是 URL ,但实际的访问 key )。

关于azure-storage-blob包 - 它应该安装在运行mlflow服务器的服务器上,以及运行训练的同一台计算机上(客户端)。

关于python - 设置 Mlflow 后端 (SQLite) 和工件(Azure Blob 存储)存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70084661/

相关文章:

python - 如何修复fit()方法中的“"TypeError: object of type ' CategoricalDtype' has no len()”问题?

azure - 使用 Kubernetes 指定容器部署目标,例如测试/生产

azure - 无法使用来自 PostMan 的服务主体访问 token 访问 Datalake

python - MLFlow 项目找不到 conda 可执行文件

amazon-sagemaker - 如何从 Amazon SageMaker 运行基于网络的 mlflow 用户界面?

python - 遍历行,并控制计数 i++

python - 如何使用Flask设置Pusher服务器?

Python:直接从提示符中读取用户输入

azure - 一个 azure 辅助角色是否可以拥有多个公共(public) IP 地址?

mlflow - 将实验从 MLFlow 服务器复制到另一个 MLFlow 服务器