为了了解软件开发中机器学习 (ML) 的当前和未来状态,我们从 16 个解决方案提供商的 IT 专业人员那里收集了见解。我们问:”在 SDLC 中使用机器学习时,开发人员需要记住什么?以下是我们学到的:
您可能还喜欢:
机器学习如何影响软件开发
基础
对于 ML 来说,最大的问题是将其视为 SDLC 的无所不能的救世主,从而否定了遵守传统 SDLC 设计和协议的必要性。ML 可以极大地提高效率,并使开发人员能够更好地将时间分配给需要人工输入的操作。然而,它不能完全取代认真,勤奋和周到的软件规划,设计,开发和版本控制。
机器学习不同于代码
使用公共云提供商提供的工具。他们是自定进度的,无痛的,你可以得到认证。ML 与编写代码相反。它基于需求培训和新数据不断发展的模型。更像一个持怀疑态度的科学家,你总是试图反驳和改进。
SDLC 中的 ML 应用程序中的过程不太具有确定性,因此它相当依赖于 ML 工程师的技能,以便能够以正确的方式构建数据和算法。引入偏见是开发人员必须注意的问题。开发人员需要记住,计算机只知道他们教什么,并从我们提供他们的数据中学习。如果数据是偏差,机器将带有偏差 – 有无数示例说明,机器无法识别通过从中学到的数据未接触的面孔、口音或性别。
另一个风险在于构建一个不太理想的产品,该产品将在代码和 SDLC 中不断自我推广。这比传统的编码环境更为普遍,在这种环境中,不正确的输出可以快速且经常在雷达下显示。重要的是找出护栏,如何确保获得正确的结果,然后如何确保机器知识是可转移的,并随着时间的推移变得更好,而不是变得更糟。
将包容性融入到预期的结果是关键,而不是通过构建到后期制作而失去对优化的关注是关键。反馈将构成这个过程的一大部分 – 收集、解释和将其重新纳入数据科学是我们获得真正成功的地方。
了解您正在解决的业务问题
看大局。您如何帮助解决您遇到的难题?AI 在哪里可以帮助您解决这些问题?这将有助于你的事业和你的公司。了解您的客户正在做什么。我们如何使用 AI 帮助他们?端到端测试具有很大的价值,可提高所生产产品的整体质量
没有监控模型会记住准确性、有效性和计算性能指标。医院感染费用为 10,000 美元,而干预费用为 100 美元。误报的成本远低于假阴性。考虑您正在处理的业务问题。Auto null 使工程师有机会自行尝试此功能,并与数据科学协作,以提高工作效率。
其他
使用经典算法和 ML 模型通常证明在相互补充时是成功的。
不需要 ML 时不要使用。它有很多缺点。如果你足够聪明,可以编写维护代码,就去做。当您不能,您将去ML。它是统计的,需要大量的数据,它不完全准确。不要试图在内部解决这个难题。你应该买一个工具。请注意,它不是100%准确,并知道成本补偿。
有很多的炒作和噪音。工具和技术对数据科学家非常重要。数据科学家需要了解您正在解决的业务问题。随着时间的推移,数据科学家将成为开发人员。更侧重于脚本编写。角色正在合并。统计学家已经拿起Python和脚本。拿起框架。标题混合为工具混合。数据工程的简便性将带来更混合的角色。具有业务背景和实施能力的人将产生最大的影响。您不再需要知道如何管理 Hadoop 群集。
开发人员应确保他们选择正确的工具和技术,并注意项目的复杂性。 选择正确的 ML 算法和在何处使用它们的领域起着至关重要的作用。了解其开发生态系统的内在基础、选择适当的算法、对 ML 效率和工具的监督是开发人员在构建智能开发生态系统时需要密切关注的领域。SDLC 可以成为由多个移动部件、众多生态系统组件和编程组件组成的复杂组件。
在我目前的产品结构中,例如,模块C++,一些在Java中,有些在Python中,有些在JavaScript中,一些是第三方库,等等。此外,不同的模块和不同的功能需要不同的测试技术。不同的 ML 算法和培训集需要设计到 SDLC 流程中。了解复杂性并选择适用于特定生态系统的工具和技术至关重要。
了解 ML 模型和缺乏可预测性。与团队中的数据科学家建立合作伙伴关系,并熟悉数据,了解应用正在执行的操作。
在建模中,偏差和方差(拟合不足或过度拟合)之间存在权衡,只能分析一段数据。两种力量在模型中理解和找到正确的平衡。
以下是我们从中听到的消息:
Io