AI 在所有行业/地区的引入正在创造软件开发人员十年前从未梦想过的规模的新功能。但这种发展不仅仅是技术问题。AI 和云基础设施的结合正在触发一个令人着迷的人事变动,您无法忽视;它正在改变某些工程师的角色,并创造了一个全新的要求,需要一个全新的工程专业。
让我们回顾一下迄今为止的演变。在云时代之前,事情就更简单了:工程师们应该管理生产过程,并担心软件本身的规模。它在当时是有意义的,因为没有框架能够使软件逻辑与计算资源分离。软件与预先定义的离散硬件计算资源紧密相连。但如今,在云和弹性计算资源的时代,我们将工程师分成更专业化、更独特的团队,以构建利用这些弹性计算平台的软件解决方案、产品和服务:
后端工程师- 通常负责构建软件背后的逻辑。有时,根据具体应用,该团队的一部分将包括算法专家。这将发生在项目中, 其中构建逻辑 特别是建筑逻辑, 可以缩放 需要的不仅仅是 “工程” 或简单的 “如果这话, 那么” 逻辑。这种专业知识的需求是基于软件日益复杂的复杂性和需求,以及可用于支持它的计算马力的急剧增加而自然演变的。
前端工程师- 构建顶级应用层和用户界面。构建一个引人入胜、逻辑合理且适应性强的人机接口确实需要相当的技能,并且是开发过程的一个重要方面。尽管如此,我相信这个领域仍然等待着巨大的中断和范式的改变,因为浏览器界面的局限性为简化、高效的应用程序开发和生产制造了重大障碍。
DevOps 工程师- 负责将软件 applet(代码容器)缩放到弹性云上进行部署,以便轻松满足尽可能多的用户的需求,并优雅地处理所需的负载。DevOps 工程师不太了解或不需要了解他们需要支持的软件的实际逻辑。
所以。。。有什么变化?
AI 挑战我们刚刚讨论过的角色的组织结构,这种变化是由一个核心因素推动的:数据在开发引擎中的关键 cog 的作用。
机器学习及其更”大脑”的表亲深度学习都是利用神经网络等算法的学科,而神经网络又被大量数据源滋养,以创建和完善核心应用的逻辑。当然,在深度学习中,这种方法在试图模仿人脑如何从它通过经验和感官收集的数据中学习方面走得更远。实际上,这两种技术最终都创造了自己的逻辑路径来完成给定的任务,并在此,取代后端工程师的工作,因为我们知道它。
那么,谁管理这个新流程呢?简单的答案是,我们转向数据科学家,其工作是选择正确的初始算法,然后训练,测试和调谐(和调整,调整和调谐…),他们优化算法,做他们的工作,最终”吐出”软件的核心应用逻辑。他或她的培训工作或实验将结合某个模型(或神经网络)与特定的数据集和一组执行参数。
要是它那么容易就好了:事实上,这不是我们故事的结尾。
组织已经意识到,仅仅雇佣一些优秀的数据科学家是不够的。我们发现,我们又缺少了一个谜题:有人专门关注这些数据科学家算法需要咀嚼的原材料的选择、优化和管理,然后扩展实验过程以测试所需的潜在配置。这称为构建数据管道,这不是在过程后期插入到部署中启动并运行的系统的任务。相关、可用、可出售的数据管道需要从第一天开始开发。
这不是一个简单的任务:与人脑不同,机器/深度学习算法在数据使用前需要大量的帮助来标记或分类数据。也有很多算法配置参数需要调整。尽管所有尖端的发展,这些仍然是非常简单的模型创建,只解决具体问题 不真正”思考”自己或表现出真正的人式判断时,面对意想不到的。有人需要帮助算法”解决”边缘案例和数据偏差。没有它,软件无法像人脑”自动”那样适应离群值和意外情况。
这也是为什么它也是一个硬件问题;为了有效地创建机器/深度学习解决方案,组织现在需要利用大量专门的硬件来优化任务(目前其中绝大多数由 GPU 处理)。有些人开始将这一纪律称为ML-Ops。从一开始,利用组织的云/弹性计算资源已经成为开发过程中的问题,而不是仅在部署期间需要解决的问题。
所有这些都是寻找所有者的挑战,智能组织正在查看其组织图,以发现此任务的所有者不一定存在。这当然不是后端工程师的工作,因为它不是关于开发应用程序逻辑。事实上,这不是传统的 DevOps 工程师的责任,他们传统上不参与基础软件逻辑或使用案例,也不参与基础数据源或连接所有内容所需的管道。此外,与传统的 DevOps 不同(核心任务是在需要的尽可能多的情况下复制核心软件 Applet 并保持高可用性),这里的核心任务是复制大型培训作业,同时同时运行多个、持续、不同的培训和实验作业,以便实现高效和及时的开发过程。
因此,在引入数据科学家之后,我们终于到达了人工智能开发核心的组织变革的第二阶段:输入数据工程师。
这个新兴的工程师类别(通常称为数据工程师,有时在行业试图确定一个术语时有其他名称)的任务是构建数据管道和扩展机制,以利用人工智能工作负载的弹性计算资源。他们的工作是向数据科学家提供基于云或预设的数据和基础设施,以便他们的算法能够有效地访问和运行他们的实验,以构建最终的部署模型。
因此,数据工程师需要处理一方面是数据管理(以前称为 DBA), 另一方面是处理类似 DevOps 的任务,这些任务需要配置特定的硬件来扩展软件,以及为每个软件应用程序安排许多不同(但相关的)任务。
认识到这一需要的组织现在正迅速采取行动,通过将数据工程师引入流程来重组其 AI 团队;这一调整使他们在竞争中具有明显的优势,而竞争仍在苦苦挣扎失败迫使他们的数据科学团队在其现有的 IT 或研发组织结构中有效运作。