加入收藏 | 设为首页 | 会员中心 | 我要投稿 新余站长网 (https://www.0790zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 网站设计 > 教程 > 正文

深度剖析:数据工程师vs数据科学家

发布时间:2019-02-26 12:58:43 所属栏目:教程 来源:yoku酱
导读:了解数据工程师和数据科学家之间的差异非常重要。 误解或不了解其差异,会导致团队在处理大数据时失败或者表现不及预期。 一个核心的误解是每个职位各自的优点和弱点。 我认为,其中一些误解来源于描述数据科学家和数据工程师的图表。 图1.关于数据科学家

在数据管线创建中,相对来说业余的数据科学家也会碰到这种问题:数据科学家会在选择工具上犯错误、进行错误的选择,而数据工程师则不会。 数据科学家通常不清楚或者不理解处理一个任务所需要的合适工具。对于所有任务都使用单一工具(往往是一个错误的工具),最终把一切都搞砸。现实情况是,为了处理不同的工作,需要许多不同的工具。 合格的数据工程师会知道这些,数据科学家通常不会知道这些。

最近的一个例子是,数据科学家使用Apache Spark处理几十GB数据集。 的确,Spark可以处理这么多数据。 但是,一个小型数据程序会更快,也会执行的更好。他们的Spark任务需要10-15分钟才能执行,然而小数据的关系型数据库只需要0.01秒来完成同样的事情。 在这种情况下,数据科学家不甚完美地解决了这个问题,但却不明白这项工作的正确工具是什么。 在一天内完成这种消耗15分钟时间的工作16次,(这是低端的数据分析),你的数据科学家每天就要花四个小时等待,因为他们正在使用错误的工具来完成这个任务。

在另一个机构中,他们的数据科学家没有任何数据工程资源。 数据科学家会处理这些问题,直到他们遇到无法解决的数据工程问题并且卡住。 他们向业务部门报告说,他们无法完成任务,就在那里让工作只完成了一半就停了下来。这导致数据科学家们截止到那个时刻都在浪费时间,并且据他们估计,就只因为无法完成工作,数百万美元的价值在那里悬而未决。

如果让一位数据科学家做数据工程师工作,一个更令人担忧的表现是数据科学家会感到沮丧并辞职。 我在许多机构中,和处理数据工程师工作的许多数据科学家交谈过。 对话总是一样的 :数据科学家抱怨他们来公司是为了从事数据科学工作,而不是数据工程工作的。 他们把事情做完就需要完成数据工程工作,但让数据科学家做数据工程师的工作会让他们发疯。 他们会选择辞职,而您将会需要用3-6个月的时间来完成数据工程。 我在另一篇文章中更多地讨论了这些问题。

数据工程师与数据科学家的比率

决定数据工程师和数据科学家的比率是一个常见问题。在确定这个比率时,常见需要考虑的问题包括数据管线有多复杂,数据管线有多成熟,以及数据工程团队需要拥有多少经验。

拥有比数据工程师更多的数据科学家通常是个问题。 它通常意味着,机构正在让他们的数据科学家进行数据工程工作。 正如我之前所说的,这会进而导致各种各样的问题。

为每个数据科学家搭配2-3位数据工程师是一个常见配置。 对于一些具有更复杂数据工程要求的机构,这个数字可以是每个数据科学家配备4-5名数据工程师。 这包括那些数据工程和数据科学处于不同汇报组织结构中的机构。 您需要更多的数据工程师,因为创建数据管线需要比创建ML / AI部分花费更多的时间和精力。

我在《数据工程团队》一书中,更多地讨论了数据工程和数据科学团队应该如何相互交流。

数据工程师从事数据科学研究

一个远非常见的情况是数据工程师开始进行数据科学工作。 随着数据工程师开始提高他们的数学和统计技能,这是一个向上的推动力。 随着数据科学变得更加标准化,这种向上的推动力变得越来越普遍。 它导致了一种全新的工程师类型出现。

对机器学习工程师的需求

让我们直面这个事实:数据科学家来自学术背景。 他们通常拥有博士学位或硕士学位。 问题在于,他们宁愿写一篇关于问题的论文,而不是将某些东西投入生产。 其他时候,他们的编程能力只会扩展到在R中创建一些东西。把用R编写的东西放到生产中本身就是一个问题。 他们不像工程师那样思考如何建立系统。

数据科学家面临的一般问题是,他们不是将工作投入生产、创建数据管线以及公开这些AI / ML结果的工程师。

为了应对学术思维与“投入生产的需求”之间的差异,我们观察到了一种新型的工程师。 现在,这位工程师大多可以在美国看到。他们的头衔是机器学习工程师。

深度剖析:数据工程师vs数据科学家
图3.显示机器学习工程师与数据科学家和数据工程师的匹配情况的图表。 Jesse Anderson和大数据研究所的插图

机器学习工程师主要来自数据工程背景。 他们经历了足够多的交叉培训,变得同时熟练掌握数据工程和数据科学。 一种不常见的途径是数据科学家在数据工程方面进行交叉训练。

对机器学习工程师,我一言以蔽之的定义是:机器学习工程师是坐在数据科学和数据工程的十字路口,并且熟练掌握数据工程和数据科学两方面的人。

如图2所示,您可能想知道在数据科学与数据工程之间存在的差距里会发生什么。 这正是机器学习工程师所处的位置,如图3所示。它们是数据工程师创建的数据管线与数据科学家所创造东西之间的桥梁。 机器学习工程师负责获取数据科学家发现或创造的内容,并使其在生产环境中发挥价值(值得注意的是,数据科学家创建的大部分内容并非在生产上有价值, 并且大部分被用技巧拼凑起来能够工作)。

机器学习工程师的工作,主要是创建数据科学管线的最后一步。 这可能需要几个部分。 它可能是将数据科学家的代码从R / Python重写为Java / Scala。 它可能是从软件工程的角度优化ML / AI代码,保证数据科学家写的代码能够运行良好(或者干脆就是能够运行)。 机器学习工程师具有足够的工程背景,可以在一个领域(数据科学)保障所必需的工程规范,这些领域以并不遵循良好的工程原理而著称。

在生产环境中运行的模型需要维护和输入,而普通的软件并不需要。 机器学习模型可能过时,并开始给出不正确或扭曲事实的结果。 这可能来自数据属性的改变,新数据的增加,或恶意性质的攻击。 无论是哪种方式导致的,机器学习工程师都需要时刻注意他们的模型中需要修改的部分,这可能导致模型的重新训练或调整。

机器学习工程师和数据工程师

数据工程师向机器学习工程师的过渡是一个缓慢的过程。 坦率来讲,我们将看到,变成机器学习工程师需要作出什么变化和变成数据科学家需要作出什么变化是非常相似的。

(编辑:新余站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读