了解机器学习项目规模的一般方程式

数据挖掘 硬件 项目计划
2022-02-27 02:59:42

我正在为一个项目编写一个应用程序,我们打算教一个模型使用一个数据库来预测环境的一个方面(交通安全),该数据库包含 10 个图像(大约 300x300 像素,例如 256 种颜色),每个图像为 100 000 或1500 万个地点。

在我们的硬件限制下,我必须了解这些项目中的一个或一个都不可行。我能期待什么?有没有可以参考的公式或基准?一个人是否能够在具有像样 GPU、专用 ML 计算机的笔记本电脑上执行此操作,或者它是否需要谷歌和亚马逊使用的基础设施水平?

1个回答

有趣但困难的问题!这取决于您的算法在训练和评分/预测方面的效率,但要获得第一个想法,我会通过我们正在谈论的数据量来了解。

256 色是每像素 8 位,乘以 300x300 像素。未压缩,每张图像有 720 kB。每个位置 10 张图像:每个位置 7.2 MB 数据。100k 个位置:720 GB 的未压缩输入数据,15M 个位置:108 TB。如果您压缩数据,这意味着您将它们存储为 JPG 或其他内容,我不知道,但我希望您需要少 10 倍的存储空间(这取决于图像压缩的难易程度以及 JPG 压缩的效果) .

给定无限的时间(和存储空间),任何数量的数据都可以在笔记本电脑上处理,尽管我的笔记本电脑没有 10 TB 的存储空间。但我预计 720 GB 的未压缩数据在一台计算机上是不切实际的,除非你有一个非常有效的算法。那将是一种可能专门设计的算法,以便可以在一台计算机上对所有数据进行训练,而不是我希望你想到的具有一堆层的 CNN。

在云或本地使用分布式计算也有其成本,在基础设施成本、调试复杂性等方面。但我希望使用这种数据集,这是值得的。

这与“谷歌使用的基础设施级别”不同,后者是数百万台服务器。例如,我会从 100 个内核开始处理,看看情况如何。完成后不要忘记关闭它们!