微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

更便宜的替代编排工作流程 将所有内容打包到训练任务中使用 Cloud Functions 启动/停止 Composer在小型虚拟机中自托管 AirflowDockerize 一切并使用 CloudRun 进行训练

如何解决更便宜的替代编排工作流程 将所有内容打包到训练任务中使用 Cloud Functions 启动/停止 Composer在小型虚拟机中自托管 AirflowDockerize 一切并使用 CloudRun 进行训练

我目前正在将 ML 模型投入生产,并且正在研究我应该依靠哪种工具来编排整个过程:

  1. 从 BQ 获取数据。
  2. 做一些特征工程和一般数据预处理
  3. 创建训练/测试分组。
  4. 以 .csv 格式转储数据(在 gs 存储桶中)
  5. 开始训练工作并保存模型工件

一个单独的阶段模型将用于:

  1. 从 BQ 表的输入中检索批量预测。
  2. 在不同的 BQ 表中插入上面计算的预测。

现在,我完全理解编排这样的工作流将是 Cloud Composer 的最佳选择,但该项目是为非营利组织设计的,每月 381 欧元的定价对他们来说不是小事。

因此,我不得不考虑以下选项:

将所有内容打包到训练任务中

一种选择可能是通过将所有内容打包到 AI 平台训练任务中来分解训练工作流程。

使用 Cloud Functions 启动/停止 Composer

我在想以下几点:

  1. 使用 Cloud Functions 启动 Composer 实例
  2. 找到一种从另一个 Cloud Functions 函数启动 Airflow 工作流程的方法
  3. 在工作流程结束后发送发布/订阅消息
  4. 使用上述发布/订阅消息来触发另一个将停止 Composer 实例的 Cloud Function。

在小型虚拟机中自托管 Airflow

这显然需要更多的研究才能让它发挥作用。特别是因为我不知道如何在 Nginx 中实现 oauth。

Dockerize 一切并使用 CloudRun 进行训练

这可能看起来像:

  1. 在 Docker 容器中打包训练作业(具有不同的训练/服务任务入口点)
  2. 使用 Cloud Scheduler(或 Cloud Functions 函数,我仍然需要考虑这个问题)启动 Cloudrun 并执行所有需要的任务。

AFAIK Cloudrun 仍然有 15 分钟的运行时硬上限,所以这个选项可能根本不可行......


我应该如何解决这个问题?我不确定我是否忽略了比上面列出的选项更简单的东西。

解决方法

最近有这个产品https://cloud.google.com/workflows,你可以用它来管理,例如调用BQ api来创建中间表(带有特征工程和转换),然后导出数据,最后触发模型训练. 工作流编排可能是免费的,因为目前有一个免费层,您只需为 BQ 查询、存储和培训付费。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。