我想将 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 个表,但都是空的,而数据湖内没有任何事情发生。
我想要的应该看起来像文档中的场景 4。
对于神器商店,我找不到详细的说明。我试图在这里查看 Mlflow 的文档,但这不是很有帮助(我仍然是初学者)。他们说:
MLflow 需要 AZURE_STORAGE_CONNECTION_STRING、AZURE_STORAGE_ACCESS_KEY 环境变量中的 Azure 存储访问凭据,或者配置您的凭据,以便使用 DefaultAzureCredential()。班级可以接他们。
但是,即使添加了 env 变量,数据湖中似乎也没有存储任何内容。我创建了两个环境变量(在 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 Portal 上的以下路径获得它:存储帐户/访问密钥/连接字符串(使用密钥 2 之一)。
他们还声明:
此外,您必须单独(在您的客户端和服务器上)运行 pip install azure-storage-blob 才能访问 Azure Blob 存储。最后,如果要使用 DefaultAzureCredential,则必须 pip install azure-identity;默认情况下,MLflow 不声明对这些包的依赖。
我在我的项目需求中添加了它们,但是通过在客户端和服务器上安装它们到底意味着什么?azure-identity 对设置有何帮助?
你能帮我一步一步地说明如何进行完整的设置吗?
先感谢您 !