机器学习项目管理中的陷阱

图片

一年半以来,我一直担任公司主要ML开发人员的职位。 我管理一个小团队六个月。 我积累了一些经验,想与大家分享。 我将以大量错误和潜在困难的形式进行此操作。

我们想要一个神经网络!


许多人至少听说过有关人工智能和神经网络成就的知识。 某些人只是因为流行而希望在业务中使用神经网络。 因此,您已经解决了一些文本分析的小任务,可以安全地向所有人宣布您的企业使用了最先进的人工智能技术。

而且,几乎没有人了解神经网络的优缺点。 实际上,由于资源消耗高,它们远非总是最佳模型。

通常,与神经网络相比,诸如boosting,k最近邻或svm之类的算法在解决业务问题(如果我们谈论的是经典脚本功能->价值)上可以显示更高的质量指标。 尽管事实上它们更轻巧。

如果客户告诉您:“我们需要一个神经网络来解决此类问题,”那么他很可能根本不知道解决该问题的最佳工具。 但是在他看来,这里需要一些复杂的算法,唯一想到的就是神经网络。

因此,您可以通过更多的灯光模型解决问题。

听起来似乎很明显,但是实际上,在客户端发出这样的请求之后,您可以花时间在神经网络的各种体系结构中进行排序,然后才能意识到可以更轻松地解决任务。

早上数据,晚上estimeyta


通常,系统会要求您提供进行实验/在产品中推出解决方案的截止日期。 而且,作为这种估计的基础,只能提供问题的抽象描述。 例如:“我们想要一个神经网络,它将根据医学图像诊断出患有疾病的人。 需要多长时间?” 不使用ML(有时也工作)的人对实验的概念了解甚少。 许多方法将ML解决方案的开发视为标准软件开发。 但是这些都是错误。 机器学习的发展更接近科学而不是发展(特别是在初期阶段)。 数据分析和实验需要大部分时间。 人们很少了解这一点。

如果您很幸运,例如,您有经验丰富的项目经理,那么您将不必处理此类问题。 他本人将向客户解释一切。 但这发生了另一种情况-当经理本人对ML的理解很差,弯腰客户并开始与您踢踢时,在接到客户的要求后几天或一周要求最后期限。 有时甚至在接收数据之前。 然后,您很可能必须命名一些日期(或者,或者更改工作地点,在这种情况下,这也是一个不错的选择)。 但是如果您决定在没有足够信息的情况下对时间轴进行估算,请务必小心。 花一些时间尝试边际。

初步实验中模型的准确性99.99999%


即使您在初步实验中或在测试原型时收到了很高的指标,这也不是立即将其传达给客户的理由。 但是您所说的一切都可能对您不利。

如果您在初步实验中获得了较高的模型质量估算值,则可以告诉客户该问题可以解决,但是用在新数据上可能不那么令人满意的数字取悦他是不值得的。 或者,您可以调用指标,但是必须保留的是,您不能保证在其他情况下质量会保持不变。 它可以改善和恶化。 在执行实验时,总有一种错误的选择(例如,错误编写的生成器,以及从训练到测试中泄漏的某些数据)。

或者,您可以为模型的不同最终质量确定合同中的不同付款。

一般而言,人们通常比具体数字更信任具体示例。 对模型的小幅演示将比99%的准确度陈述给客户更多的信心。

例如,如果您要解决使用卷积神经技术进行检测/分类的问题,并且是时候编写有关团队成功情况的报告,请花额外的30分钟时间,制作几张漂亮的图片:在高抽象水平或隐藏的完全连接层上使用卷积过滤器的可视化,类的热图等

服务器将没有问题


在某个时候,我开始注意到模型的工作通常取决于模型的大小。 例如,当您需要为500万个类别创建分类器时,即使最简单的模型也可能会占用大量资源。 然后自然会出现服务器规范的问题,客户端可以通过以下方式来解决:“服务器没有问题-我们将在云服务上进行选择。”

问题在于它可能根本无法代表模型的规模。 例如,一个数据集将重2 TB,而经过训练的模型的权重矩阵又是500 GB。 要使用这种模型,您需要68-128 GB的RAM。 租用这样一辆汽车每月可能使客户花费数千到数万美元(如果需要更多的GPU)。 在这里,很少有人同意为此类服务器付费。

Source: https://habr.com/ru/post/zh-CN478634/


All Articles