2019-AI技术带给软件开发的6种转变

Author Tanmer Tanmer
Tanmer · 2024-10-18发布 · 624 次浏览

随着人工智能技术的不断发展将会颠覆我们传统的软件制作,软件开发智能化不在是个趋势而是必然性的体现

AI正在逐渐的改变所有业务功能,软件开发也不例外。机器学习技术不仅可以用于加速传统的软件开发生命周期(SDLC),也为技术创新提供了一种全新的范例。
传统上,开发计算机程序要求我们事先准确指定系统要做的事情,然后手工设计技术的所有功能。以明确的方式编码许多任务。然而随着时代的发展需求的不断提高,有许多任务和决定太复杂,无法以严格的,基于规则的方式教给计算机。即使是像识别互联网上的照片或视频是否属于猫这样看似简单的活动,也是传统软件开发无法实现的。鉴于猫照片可以采取的巨大排列,没有任何工程师团队可以列举所有能够可靠地识别猫的规则以及可能出现在媒体中的所有其他可能的对象。

机器学习从根本上改变了软件开发模式
进入人工智能技术,如机器学习和深度学习。在这些方法中,软件开发人员不会为如何制定决策和采取行动提供计算机规则。相反,他们会策划并准备特定领域的数据,这些数据被输入到学习算法中,这些算法经过迭代训练并不断改进。机器学习模型可以从数据中推断出哪些特征和模式是重要的,而无需人类明确地编码这些知识。ML模型的输出甚至可以给人类带来惊喜,并突出我们自己没有想到的观点或细节。
因此,人工智能对计算机编程的最深刻影响是揭示人类如何感知,定义和执行软件开发。
现任特斯拉人工智能总监的OpenAI研究科学家安德烈·卡尔帕西(Andrej Karpathy)表示,“未来很大一部分程序员不会维护复杂的软件存储库,编写错综复杂的程序或分析他们的运行时间。他们将会收集,清理,操作,标记,分析和可视化为神经网络提供数据的数据。“Karpathy用一种高度可引用的见解来描述海洋变化:”神经网络不仅仅是另一种分类器,它们代表了我们如何从根本上转变的开始编写软件。它们是软件2.0 。 “
他将Software 1.0的“经典堆栈”描述为计算机的明确指令,由程序员使用Python或C ++等语言编写。传统的软件开发生命周期通常从需求定义(即技术规范)开始,然后转向设计和开发。一旦构建了可行的原型,就会进行QA测试。最后,一旦产品通过集合,它将被部署到生产中并且必须持续维护。敏捷流程可以使这个周期变得更快,因为工程师将选择较小的功能集来专注于2-4周的冲刺,而不是试图一次性构建整个软件。无论是敏捷还是瀑布,这个过程基本上是相同的。
随着时间的推移,这些系统变得异常复杂,需要多个依赖关系和集成以及层功能和接口层。所有这些组件必须由人工手动管理和更新,从而导致不一致和无法解决的错误。
相比之下,机器学习模型推断出数据中的重要特征和模式。用Karpathy的话来说,软件2.0是以“神经网络权重”的形式编写的代码,不是由人类编写的,而是通过机器学习方法,如反向传播和随机梯度下降。更新模型需要使用新数据重新训练算法,这将改变模型的行为和执行方式。
虽然机器学习开发有其自身的调试和维护挑战,但Karpathy强调了这样一个事实,即软件2.0已经变得非常可行和有价值,因为“很大一部分现实问题具有收集数据更容易的特性”(或者更一般地说,确定一个理想的行为,而不是明确地编写程序。“从软件2.0中受益最多的领域包括计算机视觉,语音识别,机器翻译,游戏,机器人和数据库。

Karpathy还引用了新范式的好处:
  • 更加同质化,更易于管理
  • 可以轻松烘焙成硬件
  • 持续运行时间和内存使用
  • 高度的便携性
  • 高度的敏捷性和可集成性
  • 更容易为未来的开发人员学习
  • 比某些功能/垂直(即图像/视频,声音/语音和文本)中最好的人类编码器更好
  • 然而,专业人士并非没有缺点。许多机器学习方法的关键局限性是我们人类无法完全理解这些复杂系统的工作原理,导致它们在我们看来是“黑匣子”。由于缺乏理解和控制而产生的另一个挑战是由于算法偏差和偏执机器人等有缺陷的模型而产生的意外和令人尴尬的后果。

传统软件从ML技术中获得提升

然而,传统的软件开发并没有消失。培养高性能机器学习模型只是产品化AI技术的一个步骤。正如一篇受欢迎的谷歌论文所断言的那样,只有一小部分真实世界的机器学习系统由机器学习代码组成。
数据管理,前端产品接口和安全性等关键组件仍需要由常规软件处理。但是,使用传统SDLC开发的技术仍然可以通过以下方式受益于机器学习方法:
  • 快速原型制作:将业务需求转变为技术产品通常需要数月甚至数年的计划,但机器学习通过使技术领域较少的专家能够使用自然语言或可视化界面开发技术来缩短此过程。
  • 智能编程助手:开发人员将大部分时间用于阅读文档和调试代码。智能编程助手可以通过提供即时支持和建议(例如相关文档,最佳实践和代码示例)来缩短这一时间。此类助手的示例包括Kite for Python和Codota for Java。
  • 自动分析和错误处理:编程助手还可以从过去的经验中学习,以识别常见错误并在开发阶段自动标记它们。一旦部署了技术,机器学习也可用于分析系统日志,以快速甚至主动地标记错误。将来,还可以使软件在没有人为干预的情况下动态地改变以响应错误。
  • 自动代码重构:清洁代码对团队协作和长期维护至关重要。随着企业升级技术,大规模的重构是不可避免的,往往这个过程是痛苦的。机器学习可用于分析代码并自动优化代码以实现可解释性和性能。
  • 精确估计:众所周知,软件开发的过程中对于时间的把握相当的重要。然而可靠的估算需要深入的专业知识,对环境的理解以及对实施团队的熟悉程度。机器学习可以训练过去项目的数据 - 例如用户故事,特征定义,估计和实际情况 - 以更准确地预测工作量和预算。
  • 战略决策:花费大量时间来讨论哪些产品和功能要优先考虑哪些以及哪些要削减。针对过去的开发项目和业务因素培训的AI解决方案可以评估现有应用程序的性能,并帮助业务负责人和工程团队确定最大化影响并最大限度降低风险的工作。
根据Forrester Research关于AI对软件开发影响的报告,将AI应用于软件开发中的主要作用总结为在于自动化测试和错误检测工具。
实际上,我们已经看到AutoML解决方案的巨大增长,这些解决方案旨在实现机器学习模型培训流程的自动化,减少数据科学家和工程师的工作量,并使领域专家能够培训生产质量模型。
诸如H2O.ai的无人驾驶AIGoogle Cloud的AutoMLAmazon Sagemaker等解决方案可自动化或简化关键组件,例如数据准备,模型搜索和调整以及模型部署和扩展。

总结:随着人工智能技术的不断发展将会颠覆我们传统的软件制作,软件开发智能化不在是个趋势而是必然性的体现,探码科技作为新时代的软件技术商将利用更多新技术赋予软件制造更多智能化的可能!
 
提交反馈

博客 博客

专注数字内容治理,助力数字体验升级

打破知识孤岛:提升客服效率的7个关键步骤

打破知识孤岛:提升客服效率的7个关键步骤

知识孤岛严重影响客服团队效率与客户体验。本文系统介绍七个实用步骤,帮助团队消除信息壁垒、实现知识共享与高效协作,全面提升客户满意度与服务质量。

Author overcome-knowledge-silos
By Lisa
发布:2026-07-15
内容管理与知识管理:哪个更适合你的企业?

内容管理与知识管理:哪个更适合你的企业?

内容管理与知识管理常被混为一谈,实则各有侧重。内容管理聚焦数字资产的创建、存储与分发;知识管理则着眼组织智慧的萃取、共享与应用。本文详解两者异同,助你根据实际需求做出明智选择。

Author content-management-vs-knowledge-management
By Lisa
发布:2026-07-13
2026年7款SharePoint替代方案推荐

2026年7款SharePoint替代方案推荐

SharePoint知识库管理复杂且分析功能有限。本文对比2026年7款替代方案,涵盖Baklib、Helpjuice、Shelf等平台的功能、定价与适用场景,帮你找到更高效的知识管理工具。

Author 7-sharepoint-alternatives-2026
By Lisa
发布:2026-07-13
数字客户参与指南:策略与效益解析

数字客户参与指南:策略与效益解析

本文全面解析数字客户参与的定义、重要性及核心策略,涵盖主动服务、个性化、全渠道支持及AI应用等关键方法,并阐述其提升满意度与忠诚度的显著效益。

Author digital-customer-engagement-strategies-benefits
By Lisa
发布:2026-07-10
信息管理与知识管理的区别:企业为何需要两者兼顾

信息管理与知识管理的区别:企业为何需要两者兼顾

信息管理与知识管理常被混为一谈,实则差异显著。本文通过生活案例引入,从导向性、知识类型、可复制性、技术与人本侧重、衡量指标五个维度剖析两者区别,并说明企业为何需要将二者结合,以Baklib为例展示如何落地知识管理。

Author information-management-vs-knowledge-management
By Lisa
发布:2026-06-29
组织信息孤岛:利与弊的平衡艺术

组织信息孤岛:利与弊的平衡艺术

组织孤岛既带来专业化与问责优势,也可能造成沟通断裂与效率下降。本文解析孤岛的利弊两面,并介绍以 Baklib 为代表的知识管理方案,帮助企业实现平衡管理。

Author organizational-silos-balancing-act
By Lisa
发布:2026-06-29
知识中心支持 KCS :知识驱动客户成功

知识中心支持 KCS :知识驱动客户成功

知识中心支持(KCS)是以知识为核心资产的客户服务方法论,通过持续捕获、组织、复用、改进知识,帮助团队更快解决客户问题,降本增效,提升客户满意度。

Author knowledge-centered-support
By Lisa
发布:2026-06-18
如何打破信息孤岛以及这样做的好处

如何打破信息孤岛以及这样做的好处

信息孤岛会降低企业效率、造成重复劳动。本文介绍信息孤岛的成因、早期信号,并分享打破孤岛的实用方法:如5W1H分析、共享公司愿景、团队协作、培训、知识库(如Baklib)等。打破孤岛能提升生产力、协作能力和投资回报率。

Author break-down-information-silos-benefits
By Lisa
发布:2026-06-11
最全TOP 50 大模型 AI 知识库软件厂商排名汇总

最全TOP 50 大模型 AI 知识库软件厂商排名汇总

编者按:千行百业都在上大模型上 AI;同时我们也发现大模型+知识库是企业落地 AI 的最佳路径。所以我们通过汇总收集大模型+知识库的软件厂商,方便用户一窥究竟。内容持续更新中,排名不分先后~

Author top50
By 巴克励步
发布:2026-06-02