将人工智能添加到现有应用程序的5种方法

您所在的位置:网站首页 来画app无法添加ai语音怎么回事 将人工智能添加到现有应用程序的5种方法

将人工智能添加到现有应用程序的5种方法

2024-07-11 11:52| 来源: 网络整理| 查看: 265

目录

自己写

优点

缺点

直接在代码中使用AI库或工具包

优点

缺点

使用抽象库(.NET ML,openVino)

优点

缺点

托管AI服务

优点

缺点

本地人工智能服务

优点

缺点

后续步骤

上一篇

如果您尚未被要求向应用程序添加人工智能(AI)功能,那么提出该主题可能只是时间问题。

添加AI功能并不难。但是,这就像说向应用程序添加数据库支持并不难。事实并非如此,但选择正确的数据库、设置架构和存储过程可能是一项艰巨的工作。然后,您需要确定数据库是否应该在同一台服务器上,不同的服务器上。您还需要决定将使用哪个数据库:关系数据库、基于文档数据库、键/值数据库...它可能会变得复杂。

人工智能就是这样。添加库,使用本地服务,使用托管服务,我使用哪个服务?我该如何设置它。然后是棘手的问题:要花多少钱?如何处理我的数据?它有多安全?

因此,让我们快速浏览一下您的选择,以便您至少知道要问的问题。

自己写

我首先要说的是,这就是我们十年前开始涉足人工智能的方式,我真的不推荐它。有这么多才华横溢的研究人员花费了无数工时,基于快速发展的人工智能研究语料库,构建了令人难以置信的强大和高效的人工智能库和模型,以至于使用已经可用的众多人工智能解决方案之一更容易、更快、更安全。

话虽如此,深入研究简单的神经网络以建立根据特定场景对数据进行分类的能力可能会很充实,提供出色的结果,并且开销很小。CodeProject的SPAM过滤器就是这样一个野兽,在我们看来,任何更大的东西都是矫枉过正的。在这种情况下,适合这项工作的工具。

优点 编写代码很有趣。你得到的正是你需要的,仅此而已您最终可能会得到一个小得多的代码库,因为您没有导入库及其所有依赖项 缺点 你正在重新发明轮子你(可能)不会做得那么好,那么准确,或者有一个像已经存在的那样快的解决方案。这可能会分散您核心业务案例的注意力。与简单地使用现有解决方案相比,它最终可能会花费您更多的时间、错失机会和开发人员时间。 直接在代码中使用AI库或工具包

如果您希望将AI处理直接包含在代码库中,那么使用Tensorflow或PyTorch等库不会出错。有许多成熟、受支持、易于使用的库可用于多种语言和平台。他们为您处理艰苦的工作,再加上许多预先训练的模型,您需要做的就是包含工具包、加载模型、输入数据、运行推理并输出结果。

以下是在python中使用最新的YOLO5模型的方法:

import torch # import the Torch library model = torch.hub.load(‘ultralytics/yolov5’, ‘yolov5s’) # Load the YOLO model img = '~/username/images/street.jpg' # Specify the image results = model(img) # Perform the inference results.print() # Output the results

这是多么容易啊!

当您需要满足不同的模型版本以及模型训练的库版本时,问题开始出现。以及模型所需的库所需的编译器或解释器版本。然后,如果所有这些都与应用程序其他部分的库、解释器版本甚至硬件要求发生冲突,会发生什么?

这可能是一个真正的挑战,特别是对于Python,您可能需要设置多个虚拟环境,每个环境都有自己的库包副本,并且每个都使用不同版本的Python。保持这些同步和未损坏可能需要很大的耐心。

你可能有一个很好的解决方案,比如说,Python 3.7,但是当它在另一台安装了Python 3.11的机器上运行时,它可能会失败。

将AI直接添加到您的应用程序中可能意味着您需要非常小心,以确保始终将所有需要的部件部署为一个单元。Docker可以在这里拯救你,但对许多人来说,这种开销可能是不可接受的。

最后,在向应用添加AI工具包时,您需要记住,您还将添加模型本身。AI模型可以很大,也可以是技嘉大。

优点 您建立在您之前杰出的开发人员和研究人员的工作之上许多库都是开源的,因此您可以查看和审核代码人工智能库和工具正在以惊人的速度开发和完善。不断发布新功能和改进的性能这些库通常非常易于使用有一些工具允许在库之间转换模型。几乎任何语言和平台都有模型 缺点 使用库肯定有一个学习曲线您可能被限制为对给定库使用特定的模型格式有这么多库。选择的悖论。包括一个库很少意味着只有一个库:它通常会带来它的所有朋友、亲戚和远房表亲。事情可能会变得臃肿包含库意味着包括模型。事情可以变得非常非常大,很快。您必须确保在版本控制方面保持编译器/解释器、库和模型的同步。例如,永远不要假设python的默认安装可以与您的代码一起使用。 使用抽象库(.NET ML,openVino)

许多库要求您使用特定形式的预训练模型,或者它们需要针对不同硬件的不同库。此问题已通过ML.NET和openVino等库来解决,这些库用于聚合和抽象库和硬件,以便为您的AI操作提供单个API。

优点 使用专用库的所有优点无需为特定硬件提供特定版本。库将动态调整您可以轻松使用更广泛的模型您在某种程度上可以适应新的硬件和模型格式 缺点 库和功能的聚合将导致更大的占用空间。抽象可能会导致“最小公分母”问题,即库仅公开通用功能,这意味着您将无法访问专用库中可用的某些功能或微调您选择的语言或平台可能会受到限制。 托管AI服务

使用托管AI服务意味着您可以消除与库和硬件以及兼容工具包相关的所有问题,并且拖拽大约GB的模型。您调用托管的AI服务,结果会在几毫秒后通过低延迟、高带宽的互联网连接返回。当然,假设您有其中之一。

托管提供商提供的服务范围确实令人惊叹。预构建的模型、快速的硬件、出色的API。请注意成本。

在考虑成本时,您需要了解如何计算费用。将数据上传到提供商会花费吗?下载结果怎么样?什么是费用预请求,如何计算?有些服务将按请求收费,有些按处理单元收费,有些服务按时间收费。您还需要考虑数据存储成本和可能适用的任何许可成本。

另请注意,任务会在很大程度上影响成本:传入应用于预训练模型的数据是一回事,但传入数TB的数据来训练新模型的成本要高出几个数量级。例如,据传GPT-3的训练成本约为5万美元。

有一些选项可以降低成本。一种方法是混合和匹配服务提供商:使用具有廉价存储空间的提供商(如DELL)上传和存储您的数据。将此数据发送到Azure(可能没有存储引入费用),训练模型,并将结果发送回DELL存储。您的数据是安全的,并且存储在一个提供程序上相对便宜,而另一个提供程序则完成了训练模型的繁重工作。大型托管服务提供商之间的数据发送通常非常快,因为它们所在的管道很大。

如果您只是使用托管提供商进行AI推理(即将数据发送到AI模型以进行模型的预测或分析),那么您还应该受到约束,例如对绝对调用数的限制,以及任何限制给定时间段内调用次数的限制。如果某项功能因其他用户用完您当天的配额而消失,您的用户将如何反应?

您还需要了解数据的去向以及该司法管辖区的法律可能对您产生的影响。您的数据副本是否会存储在外国司法管辖区?您的数据馈送是否会受到监控或提供给第三方?来自用户家中的网络摄像头源可能不是用户或你的应用想要知道的内容,而是发送到国外进行处理的内容。如果将个人身份数据发送到您所在国家/地区之外,您甚至可能需要注意法律或保险限制。

优点 快速,强大,您可以访问最新,最好的无需担心AI库或版本无需担心硬件速度或容量。您的信用卡是您唯一的限制。您可以轻松使用各种型号您是面向未来的。您将可以访问最新和最好的您的应用程序将更小。无需随身携带库代码或模型它们将与任何可以通过HTTP进行API调用的语言一起使用 缺点 您可能需要良好的互联网连接才能使用这些服务它们可能很昂贵,或者通常,实际成本模棱两可或不透明。系统已关闭。你无法真正看到窗帘后面发生了什么您无法控制数据的去向。这可能是隐私和安全方面的一个问题。您可能会遇到配额或使用问题 本地人工智能服务

因此,如果您不想为AI编写自己的代码,想要使用您选择的任何语言或平台进行AI分析,不希望数据离开本地网络(甚至机器),并且不想为已知免费提供的服务支付未知金额。

本地托管的AI服务(如CodeProject SenseAI)是两全其美的AI服务的一个很好的例子。您无需担心处理库和版本,任何可以进行HTTP调用的语言都可以与服务交互。

优点 本地开源AI服务器可以在线找到并免费使用没有使用限制您的数据保留在您可以看到的位置。除非您选择,否则不会将任何内容发送到网络外部。与托管AI服务一样,您无需担心库或版本控制。这一切都在服务的范围内您可以轻松访问多个AI功能,而无需为要执行的每个AI操作安装库或工具包 缺点 该服务的安装程序可能很大,具体取决于包含的型号和功能。就像直接使用库一样,您受到安装服务的计算机功率的限制同样,就像直接使用库一样,您不会自动获得更新。提供的AI功能不会像托管服务那样大。但是,单个服务可以提供来自多个提供商的多个AI操作,所有这些操作都通过统一的API呈现。 后续步骤

将AI添加到应用程序可以从根本上扩展应用程序的功能,同时降低复杂性。启发式和硬编码的if-then语句被基于(希望)传统二进制逻辑无法轻松包含的各种真实世界数据的训练集所取代。

你添加AI的方式具有同样根本性的后果,你如何做到这一点的选择取决于你的要求、你的预算和最终的情况。

在CodeProject,我们已经涉足了上述所有方法,将AI添加到我们的系统中。我们的经验包括对某些方法如此容易的惊喜,到对每一步都必须与工具作斗争的彻底愤怒。

最后,我们希望与尽可能多的开发人员分享我们与AI合作的经验(以及乐趣),而无需要求他们经历挫折。寻找兼容的库,处理模型,系统工具,路径,操作系统之间的奇怪之处以及不同CPU上同一操作系统之间的奇怪之处过去和现在都非常耗时。我们构建了SenseAI 服务器,作为将这种复杂性包装成一个独立的包的一种方式,该包为您完成了所有繁重的工作。安装后,您可以立即开始在应用程序中玩和使用AI。

下载安装程序并尝试一下。

下一篇

https://www.codeproject.com/Articles/5330374/5-ways-to-add-Artificial-Intelligence-to-an-existi 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3