我的编程空间,编程开发者的网络收藏夹
学习永远不晚

人工智能应用架构的思考

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

人工智能应用架构的思考

一、Paddle Lite 和 PaddleSlim

目前在深度学习领域分类两个派别,一派为学院派,研究强大、复杂的模型网络和实验方法,为了追求更高的性能;另一派为工程派,旨在将算法更稳定、高效的落地在硬件平台上,效率是其追求的目标。复杂的模型固然具有更好的性能,但是高额的存储空间、计算资源消耗是使其难以有效的应用在各硬件平台上的重要原因。所以,卷积神经网络日益增长的深度和尺寸为深度学习在移动端的部署带来了巨大的挑战,深度学习模型压缩与加速成为了学术界和工业界都重点关注的研究领域之一。

1. 端侧推理引擎的背景

随着深度学习的快速发展、特别是小型网络模型的不断成熟,原本应用到云端的深度学习推理,就可以放到终端上来做,比如手机、手表、摄像头、传感器、音响,也就是端智能。此外,可用于深度学习计算的硬件也有井喷之势,从 Intel 到 Nvidia、ARM、Mali、寒武纪等等。相比服务端智能,端智能具有延时低、节省资源、保护数据隐私等优势。目前已经在 AI 摄像、视觉特效等场景广泛应用。

然而,深度学习推理场景中,多样的平台、不同的芯片对推理库的能力提出了更高的要求。端侧模型的推理经常面临算力和内存的限制,加上日趋异构化的硬件平台和复杂的端侧使用状况,导致端侧推理引擎的架构能力颇受挑战。端侧推理引擎是端智能应用的核心模块,需要在有限算力、有限内存等限制下,高效地利用资源,快速完成推理。因此,飞桨期望提供面向不同业务算法场景、不同训练框架、不同部署环境, 简单、高效、安全的端侧推理引擎。

2. Paddlelite 的特色

为了能够完整地支持众多的硬件架构,实现在这些硬件之上的各种人工智能应用的性能优化,飞桨提供端侧推理引擎 Paddle Lite。截止到现在,Paddle Lite 已广泛应用于搜索广告、手机百度、百度地图、全民小视频等多个重要业务。

Paddle Lite 具备如下产品特色:

1) 移动端和嵌入端的模型部署工具,可使用其部署 PaddlePaddle、TensorFlow、Caffe、ONNX 等多种平台的主流模型格式,包括 MobileNetV1、YoloV3、UNet、SqueezeNet 等主流模型。

2)多种语言的 API 接口:C++/Java/Python,便于嵌入各种业务程序。

3)丰富的端侧模型:resnet、effcientnet、shufflenet、mobilenet、unet、facedetection、unet、ocr_attention 等。

4)支持丰富的移动和嵌入端芯片:ARM CPU、Mali GPU、Adreno GPU,昇腾 &麒麟 NPU,MTK NeuroPilot,RK NPU,寒武纪 NPU,X86 CPU,NVIDIA GPU,FPGA 等多种硬件平台。

5)除了 Lite 本身提供的性能优化策略外,还可以结合 PaddleSlim 可以对模型进行压缩和量化,以达到更好的性能。

3. 架构设计

架构图如上所示,Paddle-Lite 架构侧重多硬件、高性能的支持,其主要设计思想如下:

1)引入 Type system,强化多硬件、量化方法、data layout 的混合调度能力。

2)硬件细节隔离,通过不同编译开关,对支持的任何硬件可以自由插拔。

3)引入 MIR(Machine IR) 的概念,强化待执行环境下的优化支持。

4)图优化模块和执行引擎实现了良好的解耦拆分,保证预测执行阶段的轻量和高效率。

二、AIOps 的思考

1. 背景

AIOps,最初的定义是 Algorithm IT Operations,是利用运维算法来实现运维的自动化,最终走向无人化运维。随着技术成熟,逐步确定为 Artificial Intelligence for IT Operations——智能运维,将人工智能应用于运维领域,基于已有的运维数据(日志、监控信息、应用信息等),通过机器学习的方式来进一步解决自动化运维无法解决的问题。

早期的运维工作大部分是由运维人员手工完成的,手工运维在互联网业务快速扩张、人力成本高企的时代,难以维系。于是,自动化运维应运而生,它主要通过可被自动触发、预定义规则的脚本,来执行常见、重复性的运维工作,从而减少人力成本,提高运维的效率。总的来说,自动化运维可以认为是一种基于行业领域知识和运维场景领域知识的专家系统。随着整个互联网业务急剧膨胀,以及服务类型的复杂多样,“基于人为指定规则”的专家系统逐渐变得力不从心,自动化运维的不足,日益凸显。

DevOps 的出现,部分解决了上述问题,它强调从价值交付的全局视角,但 DevOps 更强调横向融合及打通,AIOps 则是 DevOps 在运维(技术运营)侧的高阶实现,两者并不冲突。AIOps 不依赖于人为指定规则,主张由机器学习算法自动地从海量运维数据(包括事件本身以及运维人员的人工处理日志)中不断地学习,不断提炼并总结规则。AIOps 在自动化运维的基础上,增加了一个基于机器学习的大脑,指挥监测系统采集大脑决策所需的数据,做出分析、决策,并指挥自动化脚本去执行大脑的决策,从而达到运维系统的整体目标。

下图是百度运维发展历程:

从 2014 年开始,从最开始的行业领域知识加上运维专家经验,到之后加上人工智能算法,演进成 AIOps,从数据建设和智能监控场景入手,逐渐覆盖到智能故障管理,变更管理,容量管理和服务咨询。

综上看,自动化运维水平是 AIOps 的重要基石,而 AIOps 将基于自动化运维,将 AI 和运维很好地结合起来,这个过程需要三方面的知识:

1)行业、业务领域知识,跟业务特点相关的知识经验积累,熟悉生产实践中的难题。

2)运维领域知识,如指标监控、异常检测、故障发现、故障止损、成本优化、容量规划和性能调优等。

3)算法、机器学习知识,把实际问题转化为算法问题,常用算法包括如聚类、决策树、卷积神经网络等。

百度的故障管理场景如图所示,主要包括故障发现,故障止损,故障诊断智能预警等。

2. 故障发现

运维的黄金指标有请求数(流入状态),成功率(流出状态),响应时间(用户相应感受),系统容量(系统并发负载)等。其预测难点在于基线预测算法在遇到节假日这种不规律的情况时不准确,另外在于配置上的,忙闲时间机器需求差异很大,容易造成资源浪费。

2.1 基线预测算法

基线预测算法主要采用鲁棒回归+周期数据多模式挖掘相结合的算法。鲁棒回归算法的思想是假设较小窗口内符合线性趋势变化,即局部符合线性。周期数据多模式的思想是对于不同的节假日,春节等特殊时期采用多种基线模型进行匹配。

3. 故障自愈

出现故障第一时间的原则是故障止损,而不是查明原因,甚至解决问题。先将损失止住,再进行分析。

传统的人工故障止损有以下三个不足:相应可能不够迅速,决策可能不够准确,操作可能出现失误。AIOps 中的故障止损叫做故障自愈,相对人工智障止损的不足,它可以 7*24 小时快速相应,全局一致性信息决策,程序自动化准确操作。

故障自愈的场景和止损方法如下:

4. 故障诊断

如下图所示,为一个系统的运行流图,G 节点此时出现故障。

人工故障针对的做法通常从两个方向出发,一是找出 A 上的某故障跟 G 节点的关系,二是追查 G 节点异常的原因。这很大程度依赖人工历史经验,不易准确快速定位原因。AIOps 的智能故障诊断方法的做法是利用黄金指标综合进行,做法如下所示:

5. 智能预警

一个很重要的运维手段就是在故障发生之前进行预警,从而减少实际损失。人工的预警方法通常是根据经验,考虑的指标覆盖范围小,且阈值的设置较为困难,容易产生误报和漏报。AIOps 的智能预警可以覆盖上万个指标,且通过机器学习自动学习到相应阈值,而无需人工干预。智能预警如下图所示:

三、快手推荐系统 Dragonfly 架构启发

1. 背景

以推荐系统为例,通常在线推荐系统包括召回,排序,重排三个模块。召回是利用如 ANN 检索,倒排检索算法,将候选项从千万降到十万的数量级;排序是利用 CTR,LTR 等指标,将候选项从十万降到千的数量级;最后重排是利用多样性打散,强插,混排技术将候选项从千降到十的数量级。

为了快速复用,采用的如上图的分离的系统架构,算法人员和架构人员的代码交织在一起,那幺如何将业务代码和架构代码进行解耦呢?David Wheeler 说过,所有的计算机问题都可以通过增加一层抽象来解决。

2. 实现方法

快手架构的基本思想是构建了一种 DSL 语言 Dragonfly,让算法人员用类 python 方式开发,而不用关注底层的实现,架构人员专注于用 c++实现底层架构。下图右侧的图就是一个算法人员实现的例子,就是纯 python 代码,容易实现,易于阅读。

具体解决方案是将算法都细分成算子的粒度,如下图所示,所有的人工智能算法都是由各种算子进行组合搭建而成,架构人员负责开发这些算子的实现,算法人员在封装好的算子基础上进行运用。因此算法人员不关注底层实现,专心关注与上层逻辑,去编写 DSL 语言,然后提交配置即可;架构人员不关注上层逻辑,只负责编写底层算子。

在实现这种改进之后,最大的优点就是新场景的接入成本从 7 人日缩减到 1 人日。这种利用算子话粒度解耦的思想是我们是可以借鉴的,我们在做算法开发时,很多代码都交织在一起,不能抽取出来,导致很多重复性的工作。如果把这些算法进行一步步的切分,分成很小的算子粒度,就能够方便进行解耦,是的算法人员可以任意组合拼接算子,实现业务算法。

参考文献:

[1]《Paddle Lite 端侧部署》作者:吴建明

https://www.cnblogs.com/wujianming-110117/p/14398502.html

[2]《架构设计》Paddle-Lite

https://paddlepaddle.github.io/Paddle-Lite/v2.2.0/architecture/

[3]《故障管理场景 AIOps 实践与探索》 作者:陈云

https://ppt.infoq.cn/slide/show?cid=83&pid=3355

[4]《Dragonfly 快手通用策略 DSL 在推荐系统架构的应用和演进》作者:方剑冰

https://ppt.infoq.cn/slide/show?cid=83&pid=3295

[5]《百度飞浆轻量化推理引擎 Paddle Lite 的实现和应用》作者:严春伟

https://ppt.infoq.cn/slide/show?cid=83&pid=3273

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

人工智能应用架构的思考

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

人工智能应用架构的思考

卷积神经网络日益增长的深度和尺寸为深度学习在移动端的部署带来了巨大的挑战,深度学习模型压缩与加速成为了学术界和工业界都重点关注的研究领域之一。

如何构建人工智能存储架构

如今,人们越来越关注数据的处理和存储:产生了多少数据、在哪里创建数据、利用数据所需的工具、管理数据所需的技能人才短缺等等。这改变了组织在数据中心和云平台中的运营方式,并决定了技术供应商正在开发的许多产品路线图。

使用移动人工智能构建更智能的应用程序

2020 年,移动人工智能领域估值达到 21.4 亿美元,预计到 2026 年这一数字将增长 4.5 倍。

人工智能赋能下的养老服务思考

当前,大数据、人工智能等信息技术已深刻融入社会生活的方方面面。伴随着“数智时代”的到来,人工智能通过与养老行业的深度融合,推动着、变革着传统的养老服务。

学习Python人工智能库的核心技能,构建智能应用

打造智能应用:掌握Python人工智能库的核心技能,需要具体代码示例摘要:本文旨在介绍如何使用Python人工智能库开发智能应用。首先,我们将简要介绍Python人工智能库的重要性和应用领域。接下来,我们将重点介绍四个核心技能,包括数据处理
学习Python人工智能库的核心技能,构建智能应用
2023-12-23

人工智能改变架构的五种方式

对话人工智能和物联网(IoT)的集成正在彻底改变架构领域。在建筑设计中使用对话人工智能可以创建更智能的建筑,这些建筑可以与居住者交流、调整环境控制并增强整体用户体验。
人工智能AI2024-11-30

2021年以后人工智能的几点思考?

现在人工智能时代到来了,出现了深度神经网络和许多具有代表性的产业英雄。

人工智能的十大应用

人工智能已经逐渐走进我们的生活,并应用于各个领域,它不仅给许多行业带来了巨大的经济效益,也为我们的生活带来了许多改变和便利。下面,我们将分别介绍人工智能的一些主要应用场景。
人工智能AI2024-12-03

人工智能能取代云计算架构师吗?

人工智能不太可能在不久的将来完全取代云计算架构师,因为虽然人工智能可以帮助云架构师完成自动供应、监控和资源扩展等任务,但它仍然需要人工监督和决策,以确保系统正确配置,并确保人工智能按预期工作。

人工智能,什么时候才能真正思考?

我们经常看到“人类过于依赖人工智能”的话题,但在我看来,现状应该是“人工智能太过依赖于人类”。
人工智能2024-12-03

每个人工智能工程师都应该了解的十大人工智能工具和框架

作为一名经过认证的人工智能工程师,了解2023 年最佳人工智能工具和框架对于保持竞争力和提供高效的人工智能解决方案至关重要。通过利用上述人工智能工具和框架的功能,人工智能工程师可以简化其开发流程,构建强大的模型,并释放人工智能在各个领域的潜

使用正确的技术架构管理人工智能威胁

选择最佳方案还是平台取决于多种因素,例如公司特定的安全要求、预算、内部专业知识和长期战略。虽然最佳方案提供了更大的灵活性和专业功能,但平台方案可以实现无缝集成并降低复杂性。

人工智能与人类思维的异同

关于人的思维(包括理性与心灵)究竟是什么的问题,一直是困扰哲学巨匠与科学大师的难题。虽然哲学两千年来对此有过很多推测,但都不能自圆其说,最终都只能去拜神或变相拜神了。科学对人脑的探索,目前也还希望渺茫。

人工智能在智能手机应用中的作用

在不断发展的技术世界中,人工智能(AI)已经成为一股革命性的力量,改变着各个行业和领域。其中,将人工智能集成到智能手机应用中,极大地影响了我们与移动设备的交互方式。人工智能凭借其模仿人类智能和学习能力的能力,开启了可能性,增强了用户体验,优
人工智能AI2024-11-30

人工智能的应用有哪些

这篇文章主要讲解了“人工智能的应用有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“人工智能的应用有哪些”吧!人类和计算机产生的数据量之庞大,已远远超出人类可以吸收、解释并据此做出复杂决策
2023-06-26

人工智能在农业的应用

人工智能正在颠覆农业领域,这并不是夸大其词,我们所熟知的农业正在被重新定义。

人工智能的未来:通用人工智能

通用机器人离我们到底还有多远?

人工智能的十大应用场景

今天这里整理了自己看好的、未来人工智能大有可为的十大应用场景,或许因为各种各样的原因,目前还没能完全实现,但是也正因如此,才给了广大从业者机会。

针对俄罗斯国家人工智能战略的思考

针对未来十年俄罗斯在人工智能领域如何保持竞争优势进行了设计,但是相关资金的来源和制度的推进仍然让各方对其目标的实现存在怀疑。

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录