为了了解软件开发中机器学习 (ML) 的当前和未来状态,我从 16 个解决方案提供商的 IT 专业人员那里收集了见解。
您可能还喜欢:
软件开发中的机器学习与技术和工具
以下是我从中听到的:
- 迪普蒂·博尔卡尔, V.P. 产品,阿卢西奥
- 亚当·卡米,联合创始人和 CTO,应用程序
- 奥列格·辛亚夫斯基博士,脑力公司研发主管
- 公司首席执行官兼联合创始人埃利·芬克尔施泰因Constructor.io
- 森蒂尔·库马尔,福格霍恩软件工程副总裁
- 伊瓦伊洛·巴赫切瓦诺夫,福格洛克数据科学主管
- 约翰·西顿,数据科学总监,功能
- 伊琳娜·法鲁克,动力学首席产品官
- 埃利夫·图图克, AVP 研究, Qlik
- 希瓦尼·戈维尔,EVP 新兴技术和生态系统,圣人
- 帕特里克·哈伯德, 头极客,太阳风
- 蒙特·兹韦本,斯普利机首席执行官
- 扎克·班诺, SPR助理顾问
- 大卫·安德烈耶夫斯基,相扑逻辑工程总监
- 奥伦·鲁宾,创始人兼首席执行官,Testim.io
com/in/dan-rope-4951517/”rel=”指目标””_blank”=丹·罗普,数据科学总监,TIBCO首席分析官迈克尔·奥康奈尔
以下是我学到的:
使用 ML 开发软件的最重要要素是确定您尝试解决的业务问题,并确保 ML 是适当的解决方案。考虑 ML 如何影响测试、自动化、数据的重要性以及提高价值实现时间的能力非常重要。
了解 ML 将带给您什么。您需要人才来定义和理解如何解决业务问题,然后有人具有技术深度来确定解决问题所需的模型类型,然后将模型集成到 DevOps 中,以便实现它。只是做大量的模型,并确定其准确性是一个研究项目。了解 ML 将处理哪些业务决策。如果要花费时间和金钱来部署 ML,则需要确保业务成果显著。
自动执行部署管道。减少发布过程中的缺陷并优化软件性能。自动化测试并改进测试覆盖率。使用 ML 检测故障并实现自愈测试。通过了解开发人员正在执行哪些重复性活动来自动执行工作。这有利于任何编写代码的人,无论代码是如何编写或操作的。
ML 的关键主题是价值时间。产品必须为消费者提供价值,并且必须按时交付,质量良好。ML 注入智能错误处理,生成优化的算法,并改进部署管理,从而提高开发人员的工作效率,并缩短从第一个代码到发布时间。
ML 改进了测试、自动化和开发软件的质量。自动测试创作、根本原因分析、更大的覆盖范围以及在多个设备和浏览器上进行测试的能力已导致 100 倍更好的测试。可视化测试可公开所有功能结果。提供和维护新测试只需一小部分时间。
通过实现算法来自我更正代码,ML 可显著改善 Bug 的识别和修复,以及改进和缩短修复和优化代码所需的时间。组织可以使用智能软件开发技术来创建结果驱动的流程。此类系统可以自动编排 SDLC 期间需要发生的情况,以高精度和高精度满足目标。
ML 工具和技术对于软件开发最为有效,涉及版本控制 ML 模型、自动测试和提供更好的反馈的能力。考虑到您将开发和测试的模型数量,您需要一个 ML 数据平台管理系统来跟踪具有参数和指标的模型。
现代测试自动化工具支持自愈测试、自动测试、发现 Bug 的自动爬网程序以及记录系统,以查找安全警报的异常情况。工具简化了开发人员的基础架构和数据工程。
借助闭环功能,智能代理可以自动检测和触发重新学习和重新训练过程,从而自动提高模型的性能和准确性。这提高了生产效率、效率和成本节约。
在软件开发中,ML 的用例与提供见解的人一样多。其中包括异常检测、错误修复、建筑物监控、现金流投影、数据提取、动态定价、眼睛跟踪和图像识别等。同样,在软件中使用 ML 的行业也多种多样,包括汽车、金融服务、保险、物流、专业服务和零售最常见的问题是数据质量差,拥有正确的数据,能够及时访问数据,以及准备数据所需的时间。财富 500 强公司通常需要一个月的时间才能将数据集获取给数据科学家。这是低效的,并且会损害创新。
模型往往是一个黑盒子,而不是非常透明。很难明确说明模型在新环境中的性能。
使用 ML 构建软件时,公司需要认识到需要具有特定技能集的人力,培训人员与模型需要时间,而保留数据科学家是一项挑战。
与问题类似,挑战也围绕数据、偏见和技能展开。数据不特定于软件。它需要干净和受治理才能生成可靠的见解。人们担心获得正确的数据以消除偏见,同时考虑到组织价值。训练集数据存在固有的偏差。在算法中引入意外偏差可能会扭曲结果。需要经过培训和认证的人员来培训系统,以选择具有正确门控措施的正确算法。
使用ML更快地开发更高质量的软件是光明的。我们将看到许多机会来构建自动化系统,这些系统分析和处理机器数据,以提高经济关键型软件服务的安全性、性能和可靠性。错误修复、测试、部署和代码优化将继续自动化。ML 将继续识别更多可以自动执行的测试。
通过解决和自动化日常完成的小任务,做出明智的决策,您将能够以更高质量、更少的人工参与交付更多、更快、更高质量的工作。机会真正在于人和机器协同工作,使开发人员能够构建新的技能,并让他们在机器处理世俗事务时专注于自己擅长的东西。开发人员的关键是执行软件开发的基础知识,了解 ML 与代码和应用程序开发有何不同,并始终知道需要解决的业务问题。ML 并不否定遵守传统软件设计和开发协议的必要性。保持认真、勤奋和周到的软件规划、设计、开发和版本控制。
ML 与编写代码相反。模型根据培训和数据不断发展。与代码不同,您不会”设置并忘记”模型。了解 ML 模型及其缺乏可预测性。与数据科学家建立合作伙伴关系,对数据非常满意,以便了解应用在模型上执行的操作。
开发人员和数据科学家需要了解要解决的业务问题。随着时间的推移,数据科学家将变得更加专注于脚本编写,随着统计人员学习 Python 并开始学习框架,角色正在被合并。
找出护栏,以确保您获得正确的结果,确保机器知识是可转移的,在结果中建立包容性,在整个过程中专注于优化,并了解反馈 – 收集、解释和将其重新纳入数据科学,您将在这里找到真正的成功。