赞
踩
目录
如果您尚未被要求向应用程序添加人工智能(AI)功能,那么提出该主题可能只是时间问题。
添加AI功能并不难。但是,这就像说向应用程序添加数据库支持并不难。事实并非如此,但选择正确的数据库、设置架构和存储过程可能是一项艰巨的工作。然后,您需要确定数据库是否应该在同一台服务器上,不同的服务器上。您还需要决定将使用哪个数据库:关系数据库、基于文档数据库、键/值数据库...它可能会变得复杂。
人工智能就是这样。添加库,使用本地服务,使用托管服务,我使用哪个服务?我该如何设置它。然后是棘手的问题:要花多少钱?如何处理我的数据?它有多安全?
因此,让我们快速浏览一下您的选择,以便您至少知道要问的问题。
我首先要说的是,这就是我们十年前开始涉足人工智能的方式,我真的不推荐它。有这么多才华横溢的研究人员花费了无数工时,基于快速发展的人工智能研究语料库,构建了令人难以置信的强大和高效的人工智能库和模型,以至于使用已经可用的众多人工智能解决方案之一更容易、更快、更安全。
话虽如此,深入研究简单的神经网络以建立根据特定场景对数据进行分类的能力可能会很充实,提供出色的结果,并且开销很小。CodeProject的SPAM过滤器就是这样一个野兽,在我们看来,任何更大的东西都是矫枉过正的。在这种情况下,适合这项工作的工具。
如果您希望将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模型可以很大,也可以是技嘉大。
许多库要求您使用特定形式的预训练模型,或者它们需要针对不同硬件的不同库。此问题已通过ML.NET和openVino等库来解决,这些库用于聚合和抽象库和硬件,以便为您的AI操作提供单个API。
使用托管AI服务意味着您可以消除与库和硬件以及兼容工具包相关的所有问题,并且拖拽大约GB的模型。您调用托管的AI服务,结果会在几毫秒后通过低延迟、高带宽的互联网连接返回。当然,假设您有其中之一。
托管提供商提供的服务范围确实令人惊叹。预构建的模型、快速的硬件、出色的API。请注意成本。
在考虑成本时,您需要了解如何计算费用。将数据上传到提供商会花费吗?下载结果怎么样?什么是费用预请求,如何计算?有些服务将按请求收费,有些按处理单元收费,有些服务按时间收费。您还需要考虑数据存储成本和可能适用的任何许可成本。
另请注意,任务会在很大程度上影响成本:传入应用于预训练模型的数据是一回事,但传入数TB的数据来训练新模型的成本要高出几个数量级。例如,据传GPT-3的训练成本约为5万美元。
有一些选项可以降低成本。一种方法是混合和匹配服务提供商:使用具有廉价存储空间的提供商(如DELL)上传和存储您的数据。将此数据发送到Azure(可能没有存储引入费用),训练模型,并将结果发送回DELL存储。您的数据是安全的,并且存储在一个提供程序上相对便宜,而另一个提供程序则完成了训练模型的繁重工作。大型托管服务提供商之间的数据发送通常非常快,因为它们所在的管道很大。
如果您只是使用托管提供商进行AI推理(即将数据发送到AI模型以进行模型的预测或分析),那么您还应该受到约束,例如对绝对调用数的限制,以及任何限制给定时间段内调用次数的限制。如果某项功能因其他用户用完您当天的配额而消失,您的用户将如何反应?
您还需要了解数据的去向以及该司法管辖区的法律可能对您产生的影响。您的数据副本是否会存储在外国司法管辖区?您的数据馈送是否会受到监控或提供给第三方?来自用户家中的网络摄像头源可能不是用户或你的应用想要知道的内容,而是发送到国外进行处理的内容。如果将个人身份数据发送到您所在国家/地区之外,您甚至可能需要注意法律或保险限制。
因此,如果您不想为AI编写自己的代码,想要使用您选择的任何语言或平台进行AI分析,不希望数据离开本地网络(甚至机器),并且不想为已知免费提供的服务支付未知金额。
本地托管的AI服务(如CodeProject SenseAI)是两全其美的AI服务的一个很好的例子。您无需担心处理库和版本,任何可以进行HTTP调用的语言都可以与服务交互。
将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 © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。