亲爱的机器学习/人工智能社区
我只是一个崭露头角和有抱负的机器学习者,他致力于开放的在线数据集以及一些为我的项目在本地构建的POC。我已经建立了一些模型并转换为泡菜对象,以避免重新训练。
这个问题总是让我感到困惑。实际生产系统如何用于ML算法?
说,我已经用数百万的数据训练了我的ML算法,我想将其移至生产系统或托管在服务器上。在现实世界中,它们会转换为泡菜对象吗?如果是这样,那将是一个巨大的腌制文件,不是。我在本地训练并转换为50000行数据的磁盘本身为该腌制对象占用了300 Mb磁盘空间。我不认为这是正确的方法。
那么,如何避免我的ML算法重新训练并开始对传入数据进行预测?以及我们如何真正使ML算法成为一个连续的在线学习者。例如,我建立了一个图像分类器,并开始预测传入的图像。但是我想通过将传入的在线图像添加到我以前训练过的数据集中来再次训练算法。可能不是每个数据,而是每天一次,我想将当天收到的所有数据合并起来,并用我以前训练过的分类器预测的具有实际价值的新100张图像进行重新训练。而且这种方法不应影响我以前训练的算法来停止预测输入数据,因为这种重新训练可能会基于计算资源和数据花费时间。
我已经Google搜索并阅读了许多文章,但找不到或无法理解我的上述问题。这每天困扰着我。生产系统也需要人工干预吗?或有任何自动化的方法吗?
对以上问题的任何线索或答案将非常有帮助并受到赞赏。如果我的问题没有道理或无法理解,请告诉我。
这不是我正在寻找的以项目为中心的内容。只是现实世界中生产ML系统示例的一般情况。
提前谢谢!
答案 0 :(得分:3)
请注意,这是一个很宽泛的表述,您的问题可能应该搁置,但我尝试简要概述您要问的问题:
对于较大规模的系统,缩放模型,执行每秒所需的预测/分类数量也很重要。我提供的TensorFlow部署页面的链接中也提到了这一点,该页面主要基于云/分布式架构(例如Hadoop或(最近)Kubernetes)构建。再说一次,对于较小的产品,这通常是过大的了,但目的是以任意规模(并可能按需)提供足够的资源。
关于机器学习模型的集成周期,this article中有一个很好的概述。我想通过强调这是一个很自以为是的问题来总结一下,因此每个答案都可能不同!