人工智能项目开发——项目经理应如何准备

已发表: 2022-03-11

收听本文的音频版本

作为项目经理,您可能在整个职业生涯中参与过许多 IT 项目,从复杂的单体结构到 SaaS Web 应用程序。 然而,随着人工智能和机器学习的进步,具有不同需求和问题的新项目正在迅速出现。

随着这些技术的兴起,技术项目经理与这些概念建立健康的关系变得不再是“值得拥有”,而是变得至关重要。 根据 Gartner 的数据,到 2020 年,人工智能将创造 230 万个工作岗位,超过它将消除的 180 万个工作岗位——到 2021 年创造 2.9 万亿美元的商业价值。谷歌的 CEO 甚至说“人工智能是最重要的事情之一人类正在努力。 它比 […] 电或火更深刻。”

随着人工智能的应用已经扰乱了从金融到医疗保健等行业,能够抓住这个机会的技术 PM 必须了解人工智能项目管理的独特之处,以及他们如何才能最好地为不断变化的环境做好准备。

理论

这一切意味着什么:人工智能与机器学习

在深入之前,重要的是要对 AI 的真正含义有一个深刻的理解。 由于许多不同的术语经常互换使用,让我们首先深入了解最常见的定义。

人工智能、机器学习和深度学习的进展

人工智能、机器学习和深度学习的进展

人工智能 (AI)

人工智能是一个计算机科学领域,致力于解决需要人类智能才能解决的问题,例如模式识别、学习和泛化。

近年来,该术语被过度使用来表示通用人工智能(AGI),它指的是具有自我意识的计算机程序,能够进行真正的认知。 尽管如此,在可预见的未来,大多数人工智能系统将是计算机科学家所称的“狭义人工智能”,这意味着它们将被设计为非常好地执行一项认知任务,而不是真正为自己“思考”。

机器学习 (ML)

机器学习是人工智能的一个子集,它使用统计技术使计算机能够从数据中学习而无需明确编程。

由于一些机器学习方法在人工智能领域的成功,近年来许多公司可以互换使用人工智能和机器学习。 需要明确的是,机器学习表示程序的学习能力,而人工智能包括学习以及其他功能。

要了解更多关于神经网络和深度学习的信息,请参阅本文末尾的附录。

一个重要的区别:人工智能与标准算法

人工智能的一个关键点是,它的算法使用大量数据来调整其内部结构,以便在呈现新数据时,它会根据之前给出的数据进行分类。 我们称之为从数据中“学习”,而不是按照严格写在代码中的分类指令进行操作。

想象一下,我们想编写一个程序来区分汽车和卡车。 在传统的编程方法中,我们会尝试编写一个程序来寻找特定的指示性特征,比如更大的轮子或更长的车身。 我们必须编写代码专门定义这些特征的外观以及它们应该在照片中的什么位置。 编写这样一个程序并使其可靠运行非常困难,可能会产生误报和误报,最终可能根本无法使用。

这就是人工智能算法变得非常有用的地方。 一旦 AI 算法经过训练,我们可以向它展示许多示例,它会调整其内部结构以开始检测与图片成功分类相关的特征,而不是依赖于静态的、规定的特征定义。

人工智能项目管理实践

数据为王

人类并不擅长处理大量数据,而我们可用的大量数据有时会阻止我们直接使用它。 这就是人工智能系统的用武之地。

关于人工智能系统的一个非常核心的概念是,它们的预测只与它们的数据一样好。 例如,具有一百万个数据点的算法将优于具有 10,000 个数据点的相同算法。 此外,BCG 报告称,“许多公司不了解数据和培训对 AI 成功的重要性。 通常,对于构建智能系统而言,更好的数据比更好的裸算法更重要,就像人类的先天后天往往更重要一样。”

有了这些知识,准备和清理数据将在项目过程中变得更加普遍。 这一步通常是构建人工智能系统中劳动强度最大的部分,因为大多数企业没有准备好正确格式的数据——因此,数据分析师可能需要一段时间才能完成这一重要步骤。

数据准备是人工智能项目管理的关键步骤。

数据准备是人工智能项目管理的关键步骤。

此外,数据基础设施设置和数据清理工作比通常的软件开发更加线性,可能需要不同的项目管理方法。

总而言之,与构建机器学习模型来运行数据相比,构建正确的数据基础架构和准备要使用的数据可能需要更长的时间。 这对于项目经理来说是一个重要的考虑因素,因为他们管理团队并考虑 AI 范围和项目估算。

此外,应使用新数据不断更新数据集。 访问独特的数据集可能是决定哪种机器学习产品最成功的主要决定因素。 为了让您的 ML 项目(甚至在发布后)达到最佳性能,及时了解这一点至关重要。

人工智能开发生命周期

你们中的大多数人都会熟悉标准系统开发生命周期 (SDLC) 以及不同的方法和技术是如何塑造它的。 值得注意的是,人工智能的发展将为该领域带来一系列新的挑战。 我们可以将 AI 开发生命周期分为以下步骤:构思和数据发现、确定 MVP 的优先级以及将 MVP 开发成成熟的产品。

构思和数据发现

在第一阶段,重点应该放在两个关键方面:ML 产品的最终用户和可用的数据池。

通过从两个独立的方面解决问题,这些技术可以帮助项目经理快速缩小公司内可用的 ML 产品机会。 在这个阶段,顶级 PM 可以从他们对机器学习领域的知识中受益,以便更好地了解可以解决某些问题的难度。 机器学习领域的事情发展得非常快,一些难题可以通过研究的新进展变得更容易。

如前所述,一旦发现数据,就需要对其进行清理和准备。 这一特定任务通常以线性步骤完成,虽然它们可能被迫进入 sprint,但并不完全适合典型的项目方法,如敏捷或瀑布。 通常,数据清理是通过逐渐增加数据集的大小并与其他开发工作并行准备它们来迭代完成的。

优先考虑最小可行产品 (MVP)

拥有一个小型产品的工作原型比拥有一个未完成的大型产品更好的事实仍然存在于机器学习产品中。 新的 ML MVP 应根据交付速度及其对公司的价值进行优先排序。 如果您可以快速交付产品,即使是那些可能较小的产品,这对整个团队来说都是一个很好的、快速的胜利——您应该首先优先考虑这些产品。

以经典的敏捷方式准备这些 MVP 是一个好主意,开发团队应该专注于交付基于数据团队独立准备的不断改进的数据集的 ML 模型。 这里的一个重要区别是数据团队不一定需要通过与构建 MVP 的团队相同的 Sprint 结构工作

MVP 到成熟产品

这一步是数据基础设施成为关键的地方。 如果您的 ML 产品需要来自全球的高频 API 访问,那么您现在应该考虑如何扩展基础架构以支持 ML 产品。

这是必须仔细评估 ML 模块更改的地方,以避免破坏当前产品的性能。 使用新算法或数据集重新训练 ML 模块并不总能带来线性性能提升——因此,在实时部署之前需要进行大量测试。 针对边缘案例和潜在生成对抗网络 (GAN) 攻击的 ML 模块测试仍处于起步阶段,但项目经理在运行实时 ML 产品时绝对要牢记这一点。

人工智能开发生命周期中的关键角色

开发 ML 应用程序的大量数据需求为 AI 产品的 SDLC 带来了新的角色。 要成为 ML 应用领域的优秀项目经理,你必须非常熟悉以下三个角色:数据科学家、数据工程师和基础架构工程师。 尽管他们有时会被冠以其他头衔,包括机器学习工程师、机器学习基础设施工程师或机器学习科学家,但对这些核心职位及其对 ML 开发过程的影响有深刻的理解是很重要的。

技术 PM 应该熟悉的三个关键角色:数据科学家、数据工程师和基础架构工程师

技术 PM 应该熟悉的三个关键角色:数据科学家、数据工程师和基础架构工程师

数据科学家

数据科学家是构建机器学习模型的个人。 他们基于对应用统计、机器学习和分析的深刻理解综合想法,然后运用他们的见解解决实际的业务问题。

数据科学家有时被视为数据分析师的高级版本。 然而,数据科学家通常具有强大的编程技能,能够轻松处理跨数据中心的大量数据,并且具有机器学习方面的专业知识。

他们还有望对数据基础设施和大数据挖掘有很好的了解,并能够自行进行探索性练习,查看数据并从中找到初步线索和见解。

基本技能: Python、R、Scala、Apache Spark、Hadoop、机器学习、深度学习、统计学、数据科学、Jupyter、RStudio

数据工程师

数据工程师是专门构建机器学习产品运行所需的软件和基础设施的软件工程师。 他们倾向于关注总体架构,虽然他们可能不是机器学习、分析或大数据方面的专家,但他们应该对这些主题有很好的理解,以便测试他们的软件和基础设施。 这对于使数据科学家创建的机器学习模型能够成功实施并暴露于现实世界是必要的。

基本技能: Python、Hadoop、MapReduce、Hive、Pig、数据流、NoSQL、SQL、编程、DashDB、MySQL、MongoDB、Cassandra

基础设施工程师

基础设施工程师负责 ML 产品的主干:基础设施层。 虽然数据工程师可能会构建其中的一些基础架构,但它通常构建在基础架构团队准备和同意的层之上。

基础架构工程师可以跨多个 ML 团队工作,目标是创建一个可扩展且高效的环境,在该环境中 ML 应用程序可以扩展以服务数百万用户。 基础设施工程师不仅负责平台的软件级别,还与数据中心合作伙伴协调,以确保一切顺利运行,从托管数据的地理位置到硬件。 随着这些方面对 ML 项目越来越重要,基础设施工程师在人工智能驱动的公司中变得越来越重要。

基本技能: Kubernetes、Mesos、EKS、GKE、Hadoop、Spark、HDFS、CEPH、AWS、云计算、数据中心运营、端到端计算基础设施、IT 基础设施、服务管理

今天的共同挑战

随着基于 AI 和 ML 的产品的出现,预计项目经理将遇到既熟悉又完全陌生的挑战。 顶级 PM 在从确定项目范围到完成的整个过程中都敏锐地意识到这些潜在问题。

现实检查

尽管 AI 广受欢迎且前景广阔,但您尝试解决的问题很有可能不需要复杂的 AI 解决方案

许多预测问题可以使用更简单,在某些情况下更可靠的统计回归模型来解决。 PM 在开始项目之前进行健全性检查以确保问题确实需要机器学习,这一点非常重要。

有时从更简单的统计模型开始并与基于机器学习的解决方案并行移动是明智的。 例如,如果您正在构建一个推荐引擎,明智的做法是从一个具有更快开发生命周期的更简单的解决方案开始,为后续的 ML 模型提供更好的基准。

AI 范围蔓延

机器学习项目中范围蔓延的最常见原因与试图一次做太多事情以及低估准备数据所需的工作量有关

为了解决第一个问题,管理利益相关者,让他们明白最好从速赢而不是宏伟的计划开始。 在您构建和测试时,在整个项目中不断地交流这种方法。

从可以轻松定义和测试的小型原子特性开始。 如果您发现自己有一项复杂的任务,请尝试将其分解为更简单的任务,这些任务可以很好地替代您的主要任务。 应该很容易传达这些任务要完成的任务。

例如,如果您尝试预测用户何时会点击特定广告,您可以先尝试预测用户是否完全关闭该广告。 在这种方法中,问题得到了简化,并且可以更好地被当前的 ML 模型适应和预测。 Facebook 已经制作了一个很棒的系列来深入探讨这个主题,更多地关注从模型开始到交付的 ML 管道。

要解决导致范围蔓延的第二个因素,请确保您能够准备数据以支持您的 ML 项目。 简单地假设您拥有所需格式的所需数据,这是 PM 刚开始 ML 项目时最常犯的错误。 由于数据准备和清理通常是 ML 项目过程中较长的部分,因此管理此步骤至关重要。 确保您的数据科学家能够访问正确的数据,并且可以在提出他们希望构建的 ML 功能之前检查其质量和有效性。

准备将数据标记和清理作为整个项目的持续练习,而不仅仅是作为发起者,因为项目总是可以从更好和更多的数据中受益。 由于这一步不是最吸引人的任务,请将这项工作分成多个冲刺,以便您的数据团队能够感受到他们的工作进度,而不是面临无休止的积压工单。

有时,公司会将数据标签外包给第三方。 虽然这有助于节省时间和前期成本,但它也会产生不可靠的数据,最终阻碍您的 ML 模型的成功。 为避免这种情况,请使用多重重叠技术,其中每条数据都由多方检查,并且仅在其结果匹配时使用。

在项目规划时,为数据团队留出足够的时间进行调整,以防您的标签要求在项目中期发生变化并需要重新标签。

最后,检查您的数据是否可以轻松地与现有的 ML 方法一起使用,而不是发明新的 ML 方法,因为从零开始可以大大增加项目时间和范围。 请注意,如果您尝试解决尚未解决的 ML 问题,那么您很有可能会失败。 尽管机器学习取得了成功并且发表了许多研究论文,但解决机器学习问题可能是一项非常困难的工作。 从 ML 的一个领域开始总是最容易的,它有很多好的例子和算法,然后尝试改进它,而不是尝试发明新的东西。

机器学习、期望和用户体验

每个 PM 都应该准备好考虑他们正在创建的 AI 产品的用户体验以及如何最好地管理正在构建它们的团队。 谷歌写了一篇很棒的文章,讲述了他们对 UX 和 AI 的思考方式,重点是人机交互。

如果您的 ML 产品必须与操作员交互甚至被他们替换,这一点尤其重要。 设计应为系统的操作员和用户增加最小的必要压力。 例如,聊天机器人通常基于机器学习,但它们可以由人工操作员无缝接管。

还有一种可能性是,利益相关者对机器学习产品的期望可能比他们所能提供的要多得多。 这通常是由于媒体在撰写有关 AI 产品时的炒作而产生的问题,因此,项目经理设定合理的期望非常重要。

确保向利益相关者解释 AI 工具的真正含义以及可以为您的利益相关者实现的目标,以便您在他们测试工具之前能够很好地管理他们的期望。 好的 UX 很棒,但它无法为具有不切实际期望的用户提供价值,因此任何参与的 PM 都必须管理这些并教育他们的利益相关者了解 AI 及其现实能力。

ML 中的质量保证 (QA) 和测试实践

当前形式的人工智能是一个相对较新的领域。 以前从未有如此多的应用程序使用深度学习来实现其目标。 这些新发展带来了一系列挑战,尤其是在测试方面。

虽然测试由人们编写的具有明确“规则集”的标准软件相对容易,但详尽地测试机器学习模型要困难得多,尤其是那些使用神经网络构建的模型。 目前,大多数 ML 模型都是由数据科学家自己测试的,但很少有与标准 QA 团队达成一致的测试方法来确保 ML 产品不会以意想不到的方式失败。

随着操纵已知模型结果的新方法(例如这些 GAN 攻击),全面的模型测试将变得越来越重要。 这将成为许多 ML 项目的优先事项,我们将在未来几年看到更多针对 ML 模型的“集成”类型测试。 对于大多数简单的项目,目前这可能不是一个明显的问题,但如果您正在构建任务关键型 ML 产品,请务必牢记这一点。

ML 模型盗窃和抄袭

自从这篇《连线》文章发表以来,原始论文在 2016 年的 USENIX 安全会议上发表,很明显存在抄袭实时 ML 模型的可能性。

这仍然很难很好地完成,但是如果您有一个通过公开可用的 API 运行的模型,那么了解这种可能性很重要。 从理论上讲,拥有大量访问权限的一方可以根据您的网络训练自己的网络,并有效地复制您的预测能力。

就可能性而言,这仍然非常有限,但如果您的项目担心,请务必与您的团队一起制定可能的攻击的预防策略。

人才短缺

随着当前对世界级人工智能专家的需求,寻找合适人才的竞争非常激烈。 事实上,《纽约时报》报道说,世界级的人工智能专家每年可以为硅谷的大型科技巨头赚取高达 100 万美元的收入。 作为 PM,当您寻找 AI 专家加入您的团队时,请注意这些动态,因为它们可能会影响您的招聘周期、预算或完成的工作质量。

这种短缺超越了创造更新深度学习算法的创新思维,对于顶级数据工程师和科学家来说也是如此。

许多最有才华的人都参加了 Kaggle 等机器学习竞赛,他们有望在解决困难的机器学习问题时赢得 100,000 美元以上的奖金。 如果很难在本地聘请 ML 专家,明智的做法是寻找开箱即用的解决方案,例如远程聘请专业承包商或为最困难的 ML 问题举办自己的 Kaggle 比赛。

法律和道德挑战

人工智能在项目管理中的法律和道德挑战是双重的。

第一组挑战源于用于训练 ML 模型的数据。 了解您使用的数据的来源至关重要,特别是您是否有权使用它以及允许您使用数据的许可。

在部署基于您可能没有正确类型许可的数据训练的模型之前,咨询您的律师以解决此类问题始终很重要。 由于这是一个相对较新的领域,其中许多答案尚不清楚,但 PM 应确保他们的团队只使用他们有权使用的数据集。

这是用于训练您的 ML 算法的公开可用数据集的一个很好的列表。

第二组挑战来自确保您的系统不会产生系统性偏差。 近年来出现了许多此类问题的案例,一家相机公司不得不承认其微笑识别技术只能检测到特定种族的人,因为它只接受了包含该种族面孔的数据的训练。 另一个例子来自一家大型软件公司,该公司在学习了几天后不得不撤回他们的自学 Twitter 机器人,因为一群互联网巨魔的共同努力让它产生了种族诽谤和重复疯狂的阴谋。

这些问题的程度可能很小,也可能会破坏项目,因此在开发关键系统时,PM 应确保他们考虑到这些可能性并尽早阻止它们。

良好的基础导致强大的结构

信息管理的进步,导致人工智能。

信息管理的进步,导致人工智能。

总之,即将到来的人工智能革命带来了一系列有趣的、动态的项目,这些项目通常伴随着修改后的开发过程、不同的团队原型和新的挑战。

顶级技术项目经理不仅对人工智能基础知识有很好的理解,而且对每个项目步骤的难度以及与他们的团队真正可能创造的东西都有直觉。 由于 AI 不是商业现成 (COTS) 解决方案,即使选择购买某些 ML 产品的公司仍必须投资于测试新事物并正确管理其数据和基础设施。

很明显,随着人工智能的出现,软件产品的类型和创建它们的过程正在发生变化。 能够掌握并执行这些新概念的项目经理将成为创造未来机器学习产品的重要参与者。

作者的额外材料

附加理论:DL 和 NN

除了更常见的人工智能 (AI) 和机器学习 (ML) 术语外,项目经理还可以从进一步区分深度学习 (DL) 和神经网络 (NN) 中受益。

深度学习 (DL)

与经典的任务特定算法相反,深度学习是基于学习数据表示的更广泛的机器学习方法家族的一部分。

大多数现代深度学习模型都基于人工神经网络,尽管它们可以使用各种其他方法。

神经网络 (NN)

神经网络是受生物学启发的连接数学结构,使人工智能系统能够从呈现给它们的数据中学习。

我们可以将这些网络想象成数百万个可以打开或关闭的小门,具体取决于我们的数据输入。 这些技术的成功得益于近年来 GPU 计算能力的增长,使我们能够快速调整神经网络中更多的“小门”。

神经网络图

神经网络图

有多种类型的神经网络,每种都有其特定的用例和复杂程度。 您可能会看到诸如 CNN(卷积神经网络)或 RNN(循环神经网络)之类的术语用于描述不同类型的神经网络架构。

为了更好地理解它们的外观和功能,这里有一个很棒的 3D 可视化,展示了神经网络在它们处于活动状态时的“外观”。

有兴趣了解有关 AI 的更多信息吗?

如果在阅读完本文后,您想更深入地探索该主题,我建议您查看以下资源:

了解神经网络

如果您想深入了解神经网络的工作原理,我建议您查看 YouTube 上关于神经网络的 3Blue1Brown 系列。 在我看来,这是迄今为止对神经网络最好的深入解释。 它以简单的方式交付,不需要先验知识。

及时了解 AI 新闻

如果您想在不花费数小时阅读学术论文的情况下了解 AI 技术的最新进展,我推荐以下两分钟论文。 该频道每周提供两分钟更新,介绍最令人印象深刻的新 AI 技术及其实施。

学习机器学习开发的基础知识

如果您想自己涉足代码,并且您有一些基本的 Python 技能,那么您可以查看 Fast.ai。 他们的课程允许任何具有基本开发技能的人开始试验和玩弄神经网络。

机器学习的基础

这个建议适用于那些想要从一开始就一直努力理解和实施机器学习的人。

它由现在具有传奇色彩的 Andrew Ng 创建,他在 Coursera 中推出了这门课程,它确实需要大量的时间投入(至少六个月),但它可以成为度过星期六的一种非常高效的方式。


注意:关键术语定义已改编自维基百科。