问题标签 [mlops]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
49 浏览

python - 使用 Kedro 挂钩将 git_sha 作为参数记录在 Mlflow 上

我想在 Mlflow 上记录 git_sha 参数,如文档中所示。在我看来,只需运行以下代码部分就足以让 git_sha 登录到 Mlflow UI。我对吗 ?

但这不起作用,因为我得到了除了 git_sha 参数之外的所有参数。当我查看hooks specs时,似乎这个参数不是 run_params 的一部分(不再了吗?)

有没有办法可以获取 git sha(可能来自上下文日志?)并将其添加到记录的参数中?

先感谢您 !

0 投票
0 回答
142 浏览

python - 使用 Kedro 和 Mlflow 在 Azure ML 上运行实验

我正在尝试将整个 Kedro 管道作为 Azure ML 实验运行。我在这里有两个选择。第一个是使用 Azure ML 的内置日志记录功能,第二个是使用将 Azure ML 与 Mlflow 集成的 azumeml-mlflow 包。

我只尝试了第二种方法,因为我不知道如何在 Kedro 挂钩中实现 Azure ML 的 Run() 方法。

因此,对于第二种方法,我认为一切都应该与仅使用 Mlflow 时相同。然而,即使它在 Kedro 结构之外运行良好,我也无法让它工作 ==> 我可以从其他脚本启动实验。

我从 Kedro 得到的是管道运行良好,但在 Azure ML 上没有任何反应。

这是代码(钩子在 ModelTrackingHooks 类中):

我做错了吗?

您对如何通过仅利用 Azure ML 的内置功能(即不通过 Mlflow)来使用 Kedro 和 Azure ML 有任何想法或示例吗?

先感谢您。

0 投票
1 回答
408 浏览

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

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

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

z

其中 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 对设置有何帮助?

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

先感谢您 !

0 投票
2 回答
92 浏览

python - 如何在 MLFlow 模型上保存更多元数据

我正在尝试将模型保存到 MLFlow,但由于我有一个自定义预测管道来检索数据,因此我需要将额外的元数据保存到模型中。

我尝试使用我的自定义签名类,它可以正确完成工作并将模型与额外的元数据一起保存在 MLModel 文件(YAML 格式)中。但是当想要从 MLFlow 注册表加载模型时,签名是不容易访问的。

我还尝试在 log_model 函数中保存一个额外的字典,但它将它保存在 conda.yaml 文件中:

我应该自己做口味吗?还是我自己的模型继承?我在这里看到PyFuncModel 收到一些元数据类和一个实现来解决这个问题,但我不知道我应该在哪里将我自己的实现传递给实验脚本上的 PyFuncModel。这是一个最小的例子:

0 投票
1 回答
175 浏览

amazon-web-services - Amazon SageMaker 模型注册表/管道 - 如何为给定模型版本手动设置阶段?

这可能是一个非常具体的问题,但无论如何我都会尝试。

我想在模型注册表中为给定模型版本显式设置阶段列:

在此处输入图像描述

此图片来自文档,仅在您运行他们提供的示例 SageMaker Projects MLOps 模板时才会设置。当我手动创建Model Package(ie Model Version) 时,该列保持为空。我该如何设置?我要调用什么 API?

另外,浏览模型版本历史的文档有如下一句话

在此处输入图像描述

我们如何手动发送那个确切的事件(“部署到舞台 XYZ”)?

我已经彻底检查了 SageMaker MLOps 项目生成的所有文件(CodeBuild Builds、CodePipeline、CloudFormation、各种.py文件、SageMaker Pipeline),但找不到对该事件的任何直接和明确的调用。

我认为它可能以某种方式连接到标签sagemaker:deployment-stage,但我已经将它设置为Endpoint,EndpointConfigurationModel,但没有成功。我也试过一味调用UpdateModelPackage API,StageCustomerMetadataProperties. 再次 - 没有运气。

我在该活动选项卡中得到的唯一信息是给定的模型版本已部署到推理端点:

在此处输入图像描述

0 投票
1 回答
258 浏览

amazon-web-services - SageMaker 管道实际上是什么?

Sagemaker 管道对我来说相当不清楚,我在 ML 领域没有经验,但我正在努力弄清楚管道定义。

我有几个问题:

  • sagemaker 管道是独立的服务/功能吗?因为我看不到通过控制台创建它们的任何选项,但我确实看到了 CloudFormation 和 CDK 资源。

  • sagemaker 管道本质上是代码管道吗?这些如何整合,它们有何不同?

  • 还有一个 Python SDK,这与 CDK 和 CloudFormation 有什么不同?

除了 Python SDK 用法,我似乎找不到任何示例,怎么会?

文档和研讨会似乎只是正确地描述了 Python SDK 的使用,如果有人可以为我解决这个问题,那将非常有帮助!

0 投票
0 回答
15 浏览

azure - 如何将 Azure SQL 数据库与默认机器学习 blob 存储连接?

我正在编写一个 Azure Devops 管道,我正在其中动态创建一个机器学习工作区。我想连接一个 Azure SQL 表,以便可以在我的机器学习模型中使用它。

如何使用az命令即时创建数据集?

0 投票
1 回答
171 浏览

apache-spark - Mlflow log_model,无法使用 spark_udf 进行预测,但可以使用 python 进行预测

我想在 mlflow 上记录一个模型,一旦我这样做了,我就可以用 python 加载模型预测概率,但不能用 spark_udf 预测概率。问题是,我仍然需要在模型内部有一个预处理功能。这是一个玩具可复制示例,供您查看它何时失败:

现在让我们为模型创建一个包装器来对模型中的函数进行编码。请注意,类内的encode_catcolumn函数和前面介绍的类外的函数是一样的。

现在让我们记录模型

在没有火花的情况下进行推理并完美运行:

现在使用 spark_udf 进行推理并得到一个错误:

错误是:

我需要一些如何在类中编码变量和预处理。是否有任何解决方案或任何解决方法使此代码能够与火花一起工作?到目前为止我已经尝试过:

  1. 将 encode_catcolumn 合并到 sklearn 管道中(使用自定义编码器 sklearn)-> 失败;
  2. 在 sklearn 包装类中创建一个函数(本例)-> 失败 3)使用 log_model,然后创建一个 pandas_udf 以便也使用 spark 执行此操作-> 有效,但这不是我想要的。我希望能够通过调用 .predict() 方法或类似的方法在 spark 上运行模型。
  3. 当删除预处理功能并在类外执行时->这实际上可行,但这不是
0 投票
0 回答
56 浏览

azure - 如何在 Azure DevOps 构建的管道中安装 ODBC 驱动程序以在 Azure ML 计算上运行脚本?

我正在运行 Python 脚本以在 DevOps 构建的管道中连接到我的 Azure SQL 数据库。在使用 azure CLI 从 DevOps 运行脚本时,我将 azure ML 计算附加到脚本。但是如何在 Azure 代理上安装 ODBC 驱动程序?还是我需要安装的 docker 映像在 cli 中提交脚本时被调用?

0 投票
0 回答
27 浏览

machine-learning - 如何通过DVC跟踪存储在Gdrive中的大数据?

我目前正在从事 ML 项目,数据大小约为 10 GB。我存储在谷歌驱动器中的数据。我不可能在我的本地机器上下载它。那么,如何使用 DVC(数据版本控制)来跟踪该数据?提前感谢您的宝贵时间。