从ChatGPT看AI模型服务化趋势

作者:杨亦诚 

1.     大模型是人工智能的发展趋势和未来

“从代码修复到智能问答,ChatGPT似乎已经变得无所不能“,”上线仅5天,就已经拥有超过100万用户“,从ChatGPT的实际表现,与带来的市场热度来看,大模型势必是人工智能的发展趋势和未来。

        这里大模型是对结构复杂,且参数量巨大的深度学习模型的统称,参数量大也势必意味着这些模型对于底层算例也有着更高的要求。下面这张图罗列了市场上比较主流的一些AI大模型服务,以及他们各自所依赖的算力资源,可以看到承载这些大模型的基本都是大规模的GPU集群,其中ChatGPT的原型版本GPT3.5更是需要上万块V100 GPU才能满足其训练和推理任务需求。

图:主流大模型AI服务的基础设施

        除了对基础设施高度要求以外,大模型还意味着对于强算法的引入,这里的强算法是相对弱算法来说,但弱算法并不是说他准确性不高,而是由于项目对于功耗,延迟,数据安全性等要求,这些弱算法模型只能在限定领域解决特定的问题,例如工业场景下的产品缺陷检测就是一个典型的弱算法模型,受限于数据采集渠道,大部分算法只能针对某几类产品或者某几种缺陷实现产业化落地,不具备通用性,而强算法正好相反,它通过大规模的数据采集,高复杂度的模型结构实现了在通用领域下可以替代人类的工作,此时评估一个强算法的好坏,已经不局限在它的算法精度上,更多是从商业模式维度:因为强算法的前期购入非常巨大,我们需判断其所涉及的应用领域,是否有足量的需求,是否具有投资价值。

图:不同领域的人工智能算法能力

        基于这样一个趋势,AIGC类的大模型也给产业带来新的技术挑战,首先是对算力需求的高速增长,可以看到OpenAI在2018年所发布的GPT参数量为1.17亿,3年后的GPT-3参数量直接暴涨至1750亿。AI模型对算力的需求在过去短短几年内翻了大约100万倍,平均每年十几倍,这个增速甚至超过了对算法精度增长的需求。此外这类AI应用也为模型的迭代速度提出了更高的要求,大模型需要依赖于大量的训练数据,也需要更多真实场景下的反馈才可以帮助他们提升准确性,在GPT-3之后,OpenAI的所有模型都没有开源,但它提供了API调用,建立起了真实的用户调用和模型迭代之间的飞轮,他非常重视真实世界数据的调用,以及这些数据对模型的迭代。

2. MaaS 将成为人工智能公司的核心商业模式

面对以上这两点挑战,我们可以看到目前模型服务化已成成为一个必然的趋势(Model-as-a-Service),也将成为人工智能的核心商业模式。其实模型服务化并不是一个新的概念,它的本质是将算力和模型集中托管,并对外提供可以用模型能力的API接口,提供训练和推理服务,特别适合于有着高并发需求的推理应用场景。下面这张图展示的就是一个比较简化的模型服务架构,最左边是一个模型仓库,用来存储模型,并进行模型的版本管理,中间是模型服务器,用来托管算力资源,并开展推理任务,最右边则是用户侧的客户端,用来发起任务请求,通过通过API的调用,为模型服务器送入输出数据,并获从取推理结果数据。

图:模型服务化架构

在这个架构中有一个非常重要的角色叫做模型服务器,那我们为什么要使用模型服务器呢,首先对于普通用户来说,他们无需在购买高昂的AI硬件设备,通过集成在手机或者终端上的客户端程序,就可以轻松体验大模型的服务,降低使用门槛,提升用户体验;对AI应用的开发人员来说,使用通用API获取模型的推理服务,可以更易于在不同的编程语言,不同的系统架构下进行产品集成;最后针对AI模型的开发人员和算法研究人员,这样的模型服务器的引入,也更方便他们对现有的算力进行有效管理,可根据实际业务量合理分配资源, 实现利用率最大化,同时根据API调用次数的收费模式,也更具有商业可落地性。

图:模型服务器的价值

3. OpenVINO™ 模型服务器降低AI服务部署门槛

图:使用OpenVINO™部署Stable Diffusion模型

说到这里就不得不提一下OpenVINO™的模型服务器,如果了解过OpenVINO™的小伙伴应该都知道,OpenVINO™可以通过引入runtime动态库或者静态库的方式来部署加速深度学习模型,除此之外OpenVINO™也提供了模型服务器这样的部署模式,OpenVINO™ 模型服务器(以下简称OVMS)是快速部署深度学习模型的高性能工具,灵活且高效,降低AI模型部署门槛。

图:OpenVINO™ 模型服务器架构

OVMS的系统架构可以分为两个部分:客户端和服务器,客户端发起请求,服务端响应请求,他主要有以下几个特点:

·简单:标准化网络API接口(gRPC和RESTful),易于集成。

·快速: 通过docker方式部署,只需要若干命令行,便可以快速搭建一套完整的模型服务器

·高效: OVMS的底层继承了OpenVINO的推理引擎,因此它可以兼容各类Intel平台,榨干设备算力,降低延时,提高吞吐率。

·部署: OVMS基于云原生架构设计,可以通过K8s进行部署,具有很强的动态扩展能力,同时通过Scheduler组件可以是对前端推理请求的负载均衡,平衡后端算力资源。

·运维: OVMS可以通过配置文件动态进行模型的版本管理,支持模型热更新,这意味着我们可以在不暂定当前服务的情况下,实时更新模型。

此外OVMS还支持以下一些能力:

·兼容TensorFlow Serving API和KServe API

·支持C++版本gRPC, RESTful API

·支持模型增减,配置热更新

·支持动态尺寸

·支持多模型部署

·支持OpenVINO IR/ONNX/Paddle Paddle模型

·支持本地及远程模型文件存储(GCS/AWS S3/Azure Storage)

·支持Bare Metal/VM/Docker/K8s部署

·支持多种异构计算硬件CPU/GPU/VPU

·提供性能测试客户端,快速验证AI服务性能

4. OpenVINO™ 模型服务器部署示例

接下来我们通过一个简单的示例,来看下如何快速搭建一个文本检测任务的模型服务器。

·第一步,安装Docker Engine

我们可以参考docker官方的文档(https://docs.docker.com/engine/install/)来安装容器服务,并且可以使用以下命令来验证docker engine是否安装成功。

!docker run hello-world

     如果出现以下打印输出就说明docker安装成功了。

图:验证docker engine是否安装成功

·第二步,准备模型仓库

OVMS对于模型文件在服务器端的存储路径有一定格式上要求:

1) 每一个模型都必须被存储在一个独立的根目录文件夹下,例如:model1,model2

2) 每一个模型目录必须包含一个子目录,子目录名称为该模型的版本号,例如1或2,每个根目录下可以有多个子目录,用来存储不同版本的模型

3) 一个版本目录下只能包含单个模型所有的模型文件

图:OVMS模型仓库文件夹结构示例

· 第三步,拉取并启动OVMS镜像

通过以下命令可以拉取OVMS镜像,并快速启动一个基于本地端口的OVMS服务器:

!docker run -d --rm  --name="ovms" -v $(pwd)/models:/models -p 9000:9000 openvino/model_server:latest --model_path /models/detection/ --model_name detection --port 9000                                                      

这里有一些重要的参数,需要在服务启动是进行配置:

如果发现由于9000端口已经被占用,导致服务无法启动,在linux系统上我们可通过 netstat -tln 指令查看端口占用情况,将物理机端口更为空闲端口,例如:-p 9020:9000。

· 第四步,编写客户端应用

客户端应用主要用于发起推理请求,并接受模型服务器的结果数据,用于后续的处理或者展示。从通信接口维度,目前OVMS支持gRPC与REST api的数据传输接口,鉴于通常情况下gRPC的性能要优于REST,如果应用对时效性要求比较高,推荐使用gRPC编写客户端应用。其次从编程接口维度,OVMS的客户端是兼容TensorFlow Serving 和KServe API两种接口规范,并同时支持Python和C++编程语言,这也意味着如果用户原本的应用是部署在TensorFlow Serving或者Triton上,他们可以非常容易地将这些应用迁移到OVMS上。这里的以ovmsclient工具包作为示例,该工具包已经集成了TensorFlow Serving api, 这里展示了几个比较常用的接口:

1.安装并加载ovmsclient工具包

!pip install ovmsclientfrom ovmsclient import make_grpc_client                                                               

2. 创建客户端对象,并绑定服务端口

address = "localhost:9000"client = make_grpc_client(address)                                                       

打印后,我们可以观察到以下输出,证明模型目前是可以接受推理任务的

{1: {'state': 'AVAILABLE', 'error_code': 0, 'error_message': 'OK'}}                                                                 

3. 获取模型服务状态,与模型元数据

model_status = client.get_model_status(model_name="detection")model_metadata = client.get_model_metadata(model_name="detection")

 打印后,我们可以观察到以下输出,其中有关于模型输入输出的名称,以及他们的维度和形状信息等。

{'model_version': 1, 'inputs': {'image': {'shape': [1, 3, 704, 704], 'dtype': 'DT_FLOAT'}}, 'outputs': {'1204_1205.0': {'shape': [484], 'dtype': 'DT_FLOAT'}, '1141_1142.0': {'shape': [1000], 'dtype': 'DT_FLOAT'}, '1469_1470.0': {'shape': [100], 'dtype': 'DT_FLOAT'}, 'labels': {'shape': [100], 'dtype': 'DT_INT32'}, '1267_1268.0': {'shape': [121], 'dtype': 'DT_FLOAT'}, 'boxes': {'shape': [100, 5], 'dtype': 'DT_FLOAT'}, '1078_1079.0': {'shape': [1000], 'dtype': 'DT_FLOAT'}, '1330_1331.0': {'shape': [36], 'dtype': 'DT_FLOAT'}}}

   4. OVMS是支持将原始的结果数据以二进制格式或者Numpy Array进行输入的,这里我们将将原始图片转化为Numpy Array格式,推送至模型服务器,并发起推理请求

boxes = client.predict(inputs=inputs, model_name="detection")['boxes']

 这里结果数据boxes所对应的key值['boxes'],可以通过之前查询到的模型元数据中获取。当客户端接收到模型服务返回的boxes结果数据后,我们可以在客户端实现对这部分数据的后处理工作,以获取最终可以被应用的结果数据。

该示例的具体流程和演示效果可以参考OpenVINO notebook:

 https://github.com/openvinotoolkit/openvino_notebooks/tree/main/notebooks/117-model-server

5. 总结

从当下ChatGPT的火爆,我们看到大模型势必是人工智能的发展趋势和未来,同时模型服务化将成为人工智能公司的核心商业模式,以便更好地对大模型基础设施资源进行管理,并提升用户的使用体验,而­­­­OpenVINO™ 模型服务器则可以帮助模型开发人员实现简单、快速、高效地部署和运维AI推理服务,加快大模型商业化落地的进程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/54172.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ssh协议绑定Git服务器

1、起因 在公司开发一般使用gitlab部署公司git代码管理,个人的代码存储在公司gitlab上就显得不合时宜了,所以找了gitee上来存储代码。 2、经过 搜索了下github.com,gitee.com 其他当然有阿里云的云效等,个人使用优先国内git服务器&#xff0c…

IT运维平台管理

业务管理人员必须了解,对于每个投入使用的信息化解决方案来说,每年的运营、维护和安全保障费用是其实施预算的20%到40%。因此,在大多数公司里,固定的IT营运费用占到IT预算的70%之多。也就是说,大部分IT开支仅仅被用于维…

老杨说运维 | 基于低代码能力的运营可视化

前言: 在当代技术加持和需求迭代的背景下,运维人员更需要透过现象看本质,也就是通过复杂的表象数据去挖掘其背后的信息价值。而运维数据经过各种技术手段的治理后,通常呈现方式是数据空间的形式,比如表格、纯文字等。为…

写给刚进互联网圈子的人,不管你是开发,测试,产品,运维都适用

1、技术没那么值钱,真正值钱的是技术背后的商业模式,更好地满足市场需求才是重点。 所以不要排斥技术以外的东西,我们要做的,是以技术进入这个行业立足,然后找到适合自己的定位,深耕下去,把自己…

几个开源的运维管理系统介绍

国内开源运维管理平台 OWS OWS是Open Web SA的简称,意指开放的web运维管理系统。 OWS是由Open Web SA开发团队,针对目前服务器运维、监控和报警提出的一个开源、易用的Linux服务器运维管理平台。 OWS是一个基于《GPLv2协议》永久开源,并且可以免费下载…

运维需要懂产品和运营吗?

在《云计算和AI时代,运维应该如何做好转型》这一期内容中,我提到两个转型建议:一个是技术产品,另一个就是技术运营。 今天我就更加聚焦地来分享这个观点。 我们运维接触更多的是软件生命周期中的运行维护阶段,我之前总结过一张图…

火狐Firefox浏览器安装使用油猴Tampermonkey插件

下面说下火狐安装油猴插件 相比之下,火狐使用油猴插件更容易一些,因为安装可以直接到火狐浏览器拓展下载。 下载地址百度搜索火狐插件,或者从浏览器拓展中找到如下 chorme的插件国内是进不去的,火狐的官网可以进。 在这搜索Tamp…

【Hutool】验证码

目录 引入Hutool获得验证码图片 并把captcha写入session前端请求接口得到验证码后端处理得到的验证码 引入Hutool <!-- hutool工具类--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.3.…

最新sogou搜狗搜索 机智操作绕过反爬验证码!

前情提要 此代码使用scrapy框架爬取特定“关键词”下的搜狗常规搜索结果&#xff0c;保存到同级目录下csv文件。并非爬取微信公众号文章&#xff0c;但是绕过验证码的原理相同。如有错误&#xff0c;希望大家指正。 URL结构 https://www.sogou.com/web?query{关键词}&p…

基于pyppeteer模拟浏览器方式破解极验滑块验证码

1.背景 在爬虫领域中&#xff0c;可能你有很多中破解手段&#xff0c;但是随着产品的迭代和技术新进&#xff0c;反爬措施也就趋于智能化&#xff0c;我们也就要模拟人的想法来破解了 2.目标 本节将介绍基于pyppeteer技术来模拟浏览器方式的滑块验证码图片 主要步骤&#x…

网络爬虫-tx滑块验证码

仅供研究学习使用。 目标站点 --> 腾讯防水墙官网 首先打开Fiddler&#xff0c;刷新下页面完成一组操作&#xff0c;发现主要请求有这几个 去除加载的js与log上传&#xff0c;真正的一组操作有三个&#xff1a; 1是初始化验证码。详细请求为 GET https://t.captcha.qq.co…

验证码识别登录:使用超级鹰(验证码识别第三方包)识别超级鹰网站登录

验证码识别超级鹰网址&#xff1a;超级鹰验证码识别-专业的验证码云端识别服务,让验证码识别更快速、更准确、更强大 (chaojiying.com) 注册并微信扫码即可获得1000积分&#xff0c;首先做如图操作生成ID 然后下载其第三方开发api python文件 点击下载即可&#xff0c;将下载…

selenium 超级鹰 通过携程滑块和汉字验证码

大概流程 1、进入页面点击同意按钮。 2、得到滑块和滑块区域的xpath 3、定位滑块&#xff0c;设置按住事件&#xff0c;进行拖动 4、xpath定位汉字图片&#xff0c;获取屏幕截图&#xff0c;保存本地 5、超级鹰识别图片返回汉字对应的坐标&#xff0c;移动至坐标位置进行点击。…

面试中经常问到的几个问题,快来看看能答对几道吧

写在前面 CSDN话题挑战赛第1期 活动详情地址&#xff1a;https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f 参赛话题&#xff1a;前端面试宝典 话题描述&#xff1a;欢迎各位加入话题创作得小伙伴&#xff0c;如果我没有猜错得话&#xff0c;我觉得你是应该同…

速卖通大卖不会告诉你的技巧,学会这招出单很简单

如今&#xff0c;无论是在实体店还是在网上&#xff0c;“流量”一词都很熟悉&#xff0c;流量越大&#xff0c;交易量自然就越大。从事国内电商的朋友都知道&#xff0c;要把网店做好&#xff0c;首先要做好店铺信誉&#xff0c;这样才能有更多的流量。尽管速卖通是一个重产品…

速卖通新手卖家入门知识问答

美国有亚马逊&#xff0c;中国有速卖通。我们都知道“十年一剑速卖通”&#xff0c;自2010年速卖通成立并高速发展&#xff0c;至今已覆盖全球220个国家和地区&#xff0c;支持18种语言&#xff0c;支持全球51个国家的当地支付方式&#xff0c;海外成交卖家突破1.5亿。速卖通已…

速卖通正式推出全托管,卖家竞争进入新阶段

全托管来了&#xff0c;卖家就能安心做甩手掌柜吗&#xff1f; 正式推出全托管 显而易见&#xff0c;越来越多的平台正在转向全托管模式。 近日&#xff0c;速卖通在2023年度商家峰会上&#xff0c;正式推出了全托管服务模式。官方表示&#xff0c;托管是对速卖通平台商家服…

【速卖通】 AliExpress(速卖通)关键词搜索结果采集

采集场景 在AliExpress(速卖通) 首页中 http://www.aliexpress.com 中输入关键词&#xff0c;采集关键词搜索后得到的商品列表信息。 采集字段 关键词、标题、商品id、商品图片地址、商品详情链接、价格、免费退送货、星级、已出售数量、店铺名 采集结果 采集结果可导出为E…

速卖通正在运营的店铺,流量突然下滑卖家该怎么做

现在速卖通卖家的生意多少都变差了&#xff0c;不管承不承认&#xff0c;这都是客观原因。人人都说速卖通正在转型&#xff0c;本来是打算给予精品店铺、风格化店铺一定的扶持&#xff0c;逐渐品牌化。而照现在看来之前的打算还没落实&#xff0c;又紧急推出大卖的天堂AE-MALL&…

121.Android 简单的人工智能聊天项目,chatAi,AI聊天项目,GPTAi

//首页xml布局代码&#xff1a; <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"mat…