gpt4 book ai didi

python - 现实世界的机器学习生产系统如何运行?

转载 作者:行者123 更新时间:2023-11-30 09:28:37 25 4
gpt4 key购买 nike

亲爱的机器学习/人工智能社区,

我只是一个初出茅庐、有抱负的机器学习者,曾致力于开放在线数据集和为我的项目在本地构建的一些 POC。我构建了一些模型并转换为 pickle 对象,以避免重新训练。

这个问题总是让我困惑。真实的生产系统如何适用于 ML 算法?

假设,我已经用数百万数据训练了我的 ML 算法,我想将其移动到生产系统或将其托管在服务器上。在现实世界中,它们会转换成pickle对象吗?如果是这样,那将是一个巨大的腌制文件,不是。我在本地训练并转换为 50000 行数据的数据本身在磁盘上占用了 300 Mb 空间来存储该 pickled 对象。我不认为这是正确的做法。

那么它是如何工作的,以避免我的 ML 算法重新训练并开始预测传入数据?我们如何真正让 ML 算法成为一个持续的在线学习者。例如,我构建了一个图像分类器,并开始预测传入的图像。但我想通过将传入的在线图像添加到我之前训练的数据集中来再次训练算法。可能不是针对每个数据,但每天一次,我想将当天收到的所有数据结合起来,并用我之前训练的分类器用实际值预测的新 100 张图像进行重新训练。这种方法不应该影响我之前训练的算法来停止预测传入数据,因为这种重新训练可能需要基于计算资源和数据的时间。

我在谷歌上搜索并阅读了很多文章,但找不到或理解我的上述问题。这每天都让我困惑。生产系统也需要人工干预吗?或者有什么自动化方法吗?

上述问题的任何线索或答案都将非常有帮助和感激。如果我的问题没有意义或无法理解,请告诉我。

这不是我正在寻找的以项目为中心的项目。只是现实世界生产机器学习系统示例的一般情况。

提前谢谢您!

最佳答案

请注意,这是非常广泛的表述,您的问题可能应该搁置,但我尝试对您想要问的内容进行简要总结:

  1. “真正的生产系统是如何工作的?”
    嗯,这始终取决于您产品的规模,以及您在系统中使用 ML/AI 的方式。对于大多数部分,您会 deploy a model在您的服务器或应用程序上。
    请注意,部署随着您拥有的训练数据量线性扩展。相反,网络的大小完全取决于网络中的激活数量。请注意,训练后,您甚至可能不需要那么多的存储空间,因为例如 CNN 的连接数量非常有限,而在训练期间保留的连接数量要大得多。我强烈推荐 Roger Grosse 在 size of a network 上的幻灯片。这也与第二点有直接关系。
  2. “如何避免重新训练?”
    据我所知,大多数系统不会定期进行重新训练,至少对于较小规模的系统来说是这样。这意味着网络将主要仅在推理模式下运行,这具有我提到的有关网络大小(以及计算结果所需的时间)的上述好处。不过,这也很大程度上取决于您为其部署 ML 模型的具体任务。 “标准类别”上的图像分类的优点是已经提供了相当多的模型(AlexNet、Inception、ResNet...),而机器翻译模型主要取决于您的特定领域和词汇。
  3. “我将如何进行再培训?”
    这实际上是棘手的部分,其背后有一个重要的领域,称为“强盗学习”。问题是,大多数传入的"new"数据将是未标记的,即不能用于直接集成到新的训练阶段。相反,您依靠用户的反馈来了解什么是错误或正确的。话又说回来,并非每个用户对相同的机器翻译(或亚马逊等上的相同推荐)都有相同的评分,因此判断您的系统是“正确”还是“错误”变得非常困难。
    显然有很多方法可以自动标记(即图像的最近邻,或其他基于相似性的搜索)。因此,只有当您有这种持续的反馈/再培训循环时,在线学习才有效。

对于更大规模的系统,扩展模型、每秒执行所需数量的预测/分类也变得很重要。我提供的 TensorFlow 部署页面的链接中也提到了这一点,并且主要构建在云/分布式架构之上,例如 Hadoop 或(最近的)Kubernetes。话又说回来,对于较小的产品来说,这大多是矫枉过正,但其目的是在任意规模(并且可能按需)提供足够的资源。

关于机器学习模型的集成周期,this article中有一个很好的概述。 。最后我想强调这是一个非常固执己见的问题,所以每个答案都可能不同!

关于python - 现实世界的机器学习生产系统如何运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50981478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com