为什么数据科学团队需要通才,而不是专家

为什么数据科学团队需要通才,而不是专家
渡边宏/盖蒂图片社

亚当·斯密在《国富论》中展示了劳动分工如何成为生产力提高的主要来源。 一个例子是别针工厂的装配线:“一名工人拉动电线,另一名工人将其拉直,第三名工人将其切割,第四名工人削尖末端,第五名工人磨削另一端以适合头部。” 由于专注于特定职能的专业化,每位员工都成为其狭窄任务中的高素质专家,从而提高了流程效率。 每个工人的产量增加了很多倍,工厂生产销钉的效率也提高了。

即使在今天,这种按功能划分的劳动分工仍然在我们的脑海中根深蒂固,以至于我们很快就相应地组织了我们的团队。 数据科学也不例外。 复杂的算法业务能力需要多种工作职能,因此公司通常会创建专家团队:研究人员、数据工程师、机器学习工程师、因果科学家等。 专家的工作由产品经理协调,以类似于大头针工厂的方式转移功能:“一个人接收数据,另一个人对其进行建模,第三个人执行它,第四个人采取措施”等等,

唉,我们不应该优化我们的数据科学团队来提高生产力。 然而,当您了解自己正在生产什么:销钉或其他东西,并且只是努力提高效率时,您就可以这样做。 装配线的目的是完成一项任务。 我们确切地知道我们想要什么 - 引脚(如史密斯的示例),但是可以提及任何产品或服务,其中的要求充分描述了产品及其行为的所有方面。 员工的作用是尽可能有效地满足这些要求。

但数据科学的目标不是完成任务。 相反,目标是探索和开发强大的新商机。 推荐系统、客户互动、风格偏好分类、尺码、服装设计、物流优化、季节趋势检测等算法产品和服务无法提前开发。 必须对它们进行研究。 没有可复制的蓝图,这些都是具有内在不确定性的新可能性。 系数、模型、模型类型、超参数,所有必要的元素都必须通过实验、试错和重复来学习。 对于销钉,培训和设计是在生产之前完成的。 通过数据科学,您可以边做边学,而不是之前学习。

在别针工厂,当培训放在第一位时,我们既不期望也不希望工人除了提高生产效率之外即兴发挥产品的任何功能。 专业化任务是有意义的,因为它可以提高流程效率和生产一致性(无需更改最终产品)。

但是,当产品仍在开发且目标是培训时,在以下情况下,专业化会干扰我们的目标:

1.增加协调成本。

也就是说,在沟通、讨论、论证和确定需要完成的工作的优先级方面所积累的成本。 这些成本与涉及的人数呈超线性关系。 (正如 J. Richard Hackman 教导我们的那样,关系数 r 的增长类似于根据以下方程的项数 n 的函数:r = (n^2-n)/2。并且每个关系都揭示了一定量的成本关系。) 当数据科学家按职能组织时,每个阶段、每次变更、每次交接等都需要很多专家,这就增加了协调成本。 例如,想要尝试新功能的统计建模人员必须与数据工程师协调,数据工程师每次想要尝试新功能时都会添加到数据集。 同样,训练的每个新模型都意味着模型开发人员需要有人协调才能将其投入生产。 协调成本作为迭代的代价,使迭代变得更加困难和昂贵,并且更有可能导致研究被放弃。 这可能会干扰学习。

2. 等待时间变得困难。

比协调成本更令人畏惧的是轮班之间的时间损失。 虽然协调成本通常以小时为单位(进行会议、讨论、设计审查所需的时间)来衡量,但等待时间通常以天、周甚至月为单位来衡量! 职能专家的日程安排很难平衡,因为每个专家必须分布在多个项目中。 讨论变更的一小时会议可能需要数周时间才能顺利完成工作流程。 并且在同意更改后,有必要在占用专家工作时间的许多其他项目的背景下规划实际工作本身。 涉及代码修复或研究的工作只需几个小时或几天即可完成,但在资源可用之前可能需要更长的时间。 在此之前,迭代和学习都会暂停。

3.它缩小了语境。

劳动分工可以通过奖励人们坚持自己的专业来人为地限制学习。 例如,一位必须在其功能范围内的研究科学家将集中精力尝试不同类型的算法:回归、神经网络、随机森林等。 当然,良好的算法选择可以带来渐进式改进,但通常可以从其他活动中获得更多收益,例如集成新数据源。 同样,它将有助于开发一个模型,利用数据中固有的每一点解释力。 然而,它的优势可能在于改变目标函数或放松某些约束。 当她的工作有限时,这是很难看到或做到的。 因为技术科学家专门研究优化算法,所以他不太可能做其他事情,即使这会带来显着的好处。

列举数据科学团队充当 pin 工厂时出现的迹象(例如,在简单的状态更新中):“等待数据管道更改”和“等待 ML 工程资源”是常见的障碍。 然而,我相信更危险的影响是你没有注意到的,因为你不会为你不知道的事情后悔。 完美的执行和因实现流程效率而产生的自满情绪可能掩盖这样一个事实:组织没有意识到他们错过了学习的好处。

解决这个问题的办法当然是摆脱工厂pin方法。 为了鼓励学习和迭代,数据科学家的角色应该是通用的,但具有独立于技术功能的广泛职责,即组织数据科学家,以便他们针对学习进行优化。 这意味着雇用“全栈专家”——能够执行从概念到建模、实施到测量等各种职能的普通专家。 值得注意的是,我并不是建议雇用全栈人才应该减少员工数量。 相反,我会简单地假设,当他们以不同的方式组织时,他们的激励措施会更好地与学习和绩效收益保持一致。 例如,假设您有一个由三人组成的团队,拥有三种业务技能。 在别针工厂中,每个技术人员都会投入三分之一的时间来完成每项工作任务,因为没有其他人可以完成他的工作。 在全栈中,每位通才都完全致力于整个业务流程、扩展和培训。

由于支持生产周期的人员减少,协调也随之减少。 多面手在功能之间流畅地移动,扩展数据管道以添加更多数据,尝试模型中的新功能,将新版本部署到生产中以进行因果测量,并在新想法出现时尽快重复步骤。 当然,旅行车顺序执行不同的功能,而不是并行执行。 毕竟只是一个人而已。 然而,完成一项任务通常只需要访问另一个专门资源所需时间的一小部分。 因此,迭代时间减少。

我们的通才可能不如特定工作职能的专家那么熟练,但我们并不追求功能完美或小幅渐进式改进。 相反,我们努力学习和发现越来越多、逐渐产生影响的专业挑战。 凭借完整解决方案的整体背景,他看到了专家可能会错过的机会。 他有更多的想法,更多的可能性。 他也失败了。 然而,失败的成本很低,学习的好处却很高。 这种不对称性促进了快速迭代并奖励学习。

值得注意的是,为全栈科学家提供的自主权和技能多样性在很大程度上取决于工作数据平台的稳健性。 精心设计的数据平台可以帮助数据科学家摆脱容器化、分布式处理、自动故障转移和其他高级计算概念的复杂性。 除了抽象之外,强大的数据平台还可以提供与实验基础设施的无缝连接,自动监控和警报,实现算法结果和调试的自动扩展和可视化。 这些组件是由数据平台工程师设计和构建的,这意味着它们不会从数据科学家传递到数据平台开发团队。 数据科学专家负责运行该平台的所有代码。

我也曾经对利用流程效率进行职能分工感兴趣,但通过反复试验(没有更好的学习方法),我发现典型的角色更好地促进学习和创新,并提供正确的衡量标准:发现和创新比专门的方法创造更多的商业机会。 (比我经历的反复试验更有效地了解这种组织方法是阅读艾米·埃德蒙森(Amy Edmondson)的书《团队协作:组织如何在知识经济中学习、创新和竞争》。

有一些重要的假设可能会使这种组织方法在某些公司中或多或少可靠。 迭代过程减少了试错成本。 如果错误成本很高,您可能希望减少错误成本(但不建议在医疗应用或制造中这样做)。 此外,如果您正在处理 PB 或 EB 级的数据,则可能需要数据工程方面的专业知识。 同样,如果维护在线业务能力及其可用性比改进它们更重要,那么卓越的功能可能会胜过学习。 最后,全栈模型依赖于了解它的人的意见。 他们不是独角兽;他们是独角兽。 您可以找到它们或自己准备它们。 然而,他们的需求量很大,吸引和留住他们需要有竞争力的薪酬、强大的企业价值观和具有挑战性的工作。 确保您的公司文化能够支持这一点。

尽管如此,我相信全栈模型提供了最好的起始条件。 从他们开始,然后只有在绝对必要时才有意识地进行职能分工。

功能专业化还有其他缺点。 这可能会导致工人丧失责任感和消极性。 史密斯本人批评劳动分工,认为它会导致人才迟钝,即工人变得无知和孤僻,因为他们的角色仅限于一些重复性的任务。 虽然专业化可以提高流程效率,但不太可能激励员工。

反过来,多功能角色提供了提高工作满意度的所有因素:自主性、掌控力和目标。 自主性是指他们不依赖任何事物来取得成功。 掌握在于强大的竞争优势。 使命感在于有机会对他们创造的业务产生影响。 如果我们能让人们对他们的工作感到兴奋并对公司产生重大影响,那么其他一切都会水到渠成。

来源: habr.com

添加评论