如果要深入研究人工智能应用程序开发过程,首先需要了解这些项目与常规应用程序开发项目的区别。在谈到人工智能时,每个问题都需要独特的解决方案,即使企业已经开发了类似的项目。一方面,有多种预训练模型和经过验证的方法可用于构建人工智能。此外,人工智能是独一无二的,因为它基于不同的数据和业务案例。正因为如此,人工智能工程师通常通过深入研究业务案例和可用数据,探索现有的方法和模型来开始这一旅程
由于这些方面,人工智能项目的创建更接近于科学研究,而不是经典的软件开发。以下探讨一下其原因,以及了解这一现实如何帮助企业准备好为其项目执行这些流程和预算。
人工智能项目可以分为四个类别:
人工智能项目开发环境可以被可视化为一个由技术和即用型解决方案组成的三层金字塔。
上层包含适合人工智能使用的现成产品——如第三方库或经过验证的公司解决方案。例如,谷歌用于检测支票欺诈、面部识别和物体检测的解决方案就是很好的例子。
第二个层次包括描述业务挑战的新领域。我们可能有合适的模型来解决挑战,但该技术需要稍作修改或调整才能在实施过程中证明其有效性。该模型应该专门针对其特定用例,这导致了人工智能使用中新利基市场的出现。
科学研究构成低层。科学研究还没有准备好生产,因为人们不知道这些模型会展示什么结果。这是人工智能系统的一个深层次,尽管可以朝这个方向努力。
人工智能应用程序的开发与非人工智能应用程序并无根本区别,都需要进行概念证明(PoC)和演示阶段。用户界面(UI)/用户体验(UX)阶段则在演示和人工智能组件准备就绪之后开始
应用程序开发公司在接到创建人工智能驱动的应用程序的任务时,首要的事情是向客户询问需求和数据:人工智能是产品的核心还是附加组件?这个问题的答案将会影响解决方案的复杂程度
客户可能不需要最准确和现代的解决方案。因此,重要的是要找出人工智能组件的缺乏是否阻碍了成熟的产品开发,以及在没有人工智能组件的情况下创建产品是否有任何意义。解决了这个问题后,我们就可以继续前进了。
最初,可以将人工智能项目分为两个子类别:
因此,如果决定从头开始开发一个新的人工智能功能应用程序。正因为如此,没有任何基础设施来集成人工智能应用程序。这里来到了最重要的问题:人工智能功能开发是否可以像处理通常的应用程序功能一样处理,例如登录/注销或发送/接收消息和照片?
乍一看,人工智能只是用户可以与之交互的一项功能。例如,人工智能可用于检测一条消息是否应被视为垃圾邮件,识别照片中脸上的微笑,并在人脸和语音识别的帮助下实现基于人工智能的登录。然而,人工智能解决方案的开发仍然很年轻,而且还以研究为基础。这导致人们意识到应用程序的人工智能功能是整个项目中风险最大的部分,尤其是在业务目标需要提出创新且复杂的AI解决方案时。
举个例子,如果要构建一个带有登录/注销屏幕、消息系统和视频通话功能的聊天应用程序。视频通话功能应该支持类似Snapchat的滤镜效果。以下是风险表和应用程序不同功能复杂性的概述:
很明显,从风险最小化策略的角度来看,从具有最低复杂性和风险的任务开始开发过程是不合理的。人信可能会问,为什么类似Snapchat的过滤器风险最大?这里有一个简单的答案:要创建一个类似Snapchat的过滤器,必须涉及许多尖端技术,如增强现实(AR)和深度学习,将它们适当地混合在一起,并将它们放在计算资源低的手机上。为此,您必须解决许多非凡的工程任务。
将人工智能功能集成到现有项目与从头开始构建AI应用程序有一些不同。首先,我们必须使用人工智能增强的现有项目是在没有任何架构考虑AI功能的情况下开发的,这是一种常见的情况。考虑到人工智能功能是某些数据管道的一部分,我们得出结论,开发AI功能肯定需要至少对应用程序架构进行一些更改。从人工智能的角度来看,现有的应用可以分为以下几类:
基于数据库的项目:
非基于数据库的项目:
以下是典型人工智能应用程序开发过程的五个阶段。 首先是问题定义阶段。在这个阶段,开发团队需要明确应用程序的目标和所要解决的问题。他们会与客户或相关利益方进行讨论,以确定需求和期望。 接下来是数据收集和准备阶段。在这个阶段,团队会收集大量的数据,这些数据将用于训练和优化人工智能算法。数据的质量和多样性对于应用程序的性能至关重要。 第三个阶段是模型选择和训练。在这个阶段,团队会选择合适的人工智能模型,并使用之前收集的数据对其进行训练。训练的目标是让模型能够准确地预测和处理各种情况。 然后是模型测试和评估阶段。在这个阶段,团队会对训练好的模型进行测试,以确保其在不同情况下的表现。他们会使用测试数据集来评估模型的准确性和性能。 最后是部署和维护阶段。在这个阶段,团队会将训练好的模型部署到实际的应用环境中,并持续监测和维护模型的性能。他们可能需要进行调整和更新,以适应不断变化的需求和数据。 这些阶段的顺序可能会有所不同,具体的开发过程也会因项目而异。然而,这些阶段提供了一个典型的人工智能应用程序开发过程的概述
在第一阶段,我们获得客户的输入或愿景,这些输入或愿景可以作为具有总体想法概述的文档。在这里,我们开始业务分析过程。为了准备输入,我们需要考虑业务问题。企业用业务问题解决应用程序开发公司,后者的工作是找到业务和人工智能能力的交点。
在餐馆或杂货连锁店等场景中,企业主们对于通过分析采购和销售来减少食物浪费并实现平衡表现出浓厚的兴趣。对于人工智能工程师而言,这一任务转变为了时间序列预测或关系分析任务,其解决方案能够帮助人们预测具体的数字
在接下来的阶段,我们需要确定需要讨论和解决的机器学习(ML)问题。这一步骤必须考虑到人工智能子领域的技术能力,如计算机视觉、自然语言处理、语音识别、预测和生成人工智能等
数据是机器学习的燃料,是人工智能应用程序开发的关键步骤。有两种主要的数据类型——特定的和一般的。一般数据可以从开源数据网站获得,所以我们要做的就是缩小目标受众的范围,把重点放在特定的地区、性别、年龄或其他关键因素上。大量通用数据可以简化流程。
因此,如果客户有一个基于健身追踪器活动的应用程序,我们可以应用数据和迁移学习来尽快开始实施。这同样适用于可以从大量集合开始的图像分类。
需要进行重写的内容是:(1)为新项目开发AIPoC
全新人工智能项目的概念证明(PoC)阶段应该以AI为中心。这是什么意思?为了满足风险最小化策略,我们应该从项目中风险最大的部分开始,即AI功能,如果可能的话,不要触及项目的任何其他功能。概念证明(PoC)阶段可以重复多次以达到合适的结果。在取得令人满意的结果后,可以自由地进入MVP/工业化阶段,开发应用程序的所有剩余功能。
(2)为现有项目开发AIPoC
为了让最终用户能够使用人工智能功能,首先需要开发这个功能,然后将其与现有的应用程序进行整合。也就是说,需要考虑应用程序的代码库、架构和基础设施
重新写成: 人工智能的最吸引人之处在于,它们可以在不触及主要应用程序的情况下进行研究、开发和测试。这引发了一个想法,即人们可以启动人工智能的概念证明(PoC),而不会给主要应用程序带来风险。这实际上是最小化风险策略的核心
以下是要遵循的三个步骤:
(1)通过以下方式从现有应用程序中收集数据:
构建一个隔离的AI环境前,请先收集数据
(3)部署训练成功的人工智能组件:
根据项目类型,代码库的调整可能会导致:
企业主经常会向软件供应商提问,在进行概念证明(PoC)阶段时可能需要的预算、时间表和工作量。正如上文所述,与常规开发过程相比,人工智能项目具有高度不可预测性。这是因为任务类型、数据集、方法和技术都具有高度可变性。所有这些因素都解释了为什么对假设项目进行估算是一项相当困难的任务。尽管如此,我们还是根据项目的复杂程度展示了上述人工智能项目的一种可能分类
经过第一个概念证明(PoC)之后,下一步可以进行新一轮的概念证明(PoC)并进行进一步的改进或部署。创建新的概念证明(PoC)意味着需要添加数据、处理案例、进行错误分析等步骤。迭代的次数是有条件的,取决于具体的项目
任何人工智能项目都与风险直接相关。可能面临来自数据适用性的风险,以及算法或实施风险。为了降低风险,明智的做法是仅在人工智能组件的准确性满足业务目标和期望时才开始产品开发
以上是企业级人工智能应用程序开发指南的详细内容。更多信息请关注PHP中文网其他相关文章!