作者:Bowen Zhang,张博,云智慧 CTO。
随着 AI 的快速发展,各行业里面涌现出了许多质疑的声音,如“AI 仅是实验室的产品”,“AI无法真正落地”等。众所周知,一个算法从实验室到用户桌面会经历非常多的复杂过程,而这不仅仅靠的是纸上谈兵。因此,本篇文章中,Bowen Zhang 通过云智慧在 AI 领域的实践经历,详细讲解 AI 从实验室到用户桌面落地的整体思路与流程。
AIToB 行业综述
下图为人工智能投资数量统计图,由此可得,人工智能在 2017 年至 2018 年之间极其之火热,投资数量从 619 笔迅速涨到了 651 笔,而到 2019 年后,人工智能投资数量大幅度减少。
此外,根据下方行业论述,随着行业发展,AI 投资逐渐去泡沫化。因此,从投资者的角度来讲,我们可以得出这是“ AIToB 最坏的时代”。
“有三个 AI 专家就能估值7亿、靠 AI 概念忽悠投资人的时代已经过去了。”
“AI 公司最终还是要用商业逻辑来关注公司发展。AI 本质上是一个 TO B 赋能的工具,AI 公司往往是把AI在一个商业场景中的应用做实做深。”
——李开复 Rebuild 2020 科技全明星峰会上
“经过这两年的起起落落,现在大家更看重人工智能与行业应用的场景结合和落地。一方面要有领先的核心技术;另一方面要有落地的场景,实实在在解决行业所面临的痛点,这样的项目才有机会跑出来。”
——腾业创投合伙人、董事总经理孙敬伟
下图为2020年中型企业购买应用选择情况图,由图可得,我们可以看出人工智能应用占比54.10%,成为中型企业选购的热门应用。
此时,根据下方行业论述,随着AI逐渐进入应用期,企业界对 AI 也具备了强烈需求。因此,这也成为了“ AIToB 最好的时代”
行业将不再追求“纸面上”的算法数量和算法名词,切实可用的智能应用将成为用户的首选。
人工智能不应仅仅是实验室里的、PPT里的 ‘概念上的AI’,更是‘产业AI’
——阿里巴巴合伙人 胡晓明
中国企业对 AI 具备强烈需求,并且热衷用 AI 来提高生产率、改善客户体验和促进业务增长。这一市场需求决定了中国具有产业 AI 的肥沃土壤。
——Gartner,Lessons Learned From Chinese Companies‘AI
什么是 AIToB?
AIToB 指面向企业服务的 AI 应用与服务。与 AIToC 相比,提到 AIToB 了解更多的是智慧医疗、智能城市、智能运维等名词,而 AIToC 则是搜索广告和推荐三大件。此外,AIToB 往往没有清晰明确的定义,这也是AIToB 行业最大的挑战。
下图为 AI 在运维领域落地应用的演进历程。从左上角可以看出,在 2016 年至 2017 年之间,此时是 AIToB 行业概念的启蒙时代,Gatner 2016 也明确提出了 AIOps 的概念,无数行业内的研究员、工程师以及领域的参与者都对 AI 产生了浓厚的兴趣。2018年,人工智能到了市场预热和算法先行的阶段,行业内对“算法”极其追捧。2019年至2020年,人工智能回归到理性工程实践。2021年开始,人工智能领域逐渐有了非常多的应用场景落地。
总体来讲,人工智能是以数据为基础、以场景为导向、以算法为支撑。
下图为2022年2月份智能运维相关企业的市值报告,可以看出无论是 servicenow还是 DATADOG、splunk、dynatrace,以及作为国内全栈智能运维解决方案的独角兽公司云智慧均可以看出 AI 在相关产业的落地应用都是星辰大海。
AIToB算法挑战
首先通过一个比较抽象的模型来分析 AIToB 到底有哪些挑战。定义一个模型 y = f(x),ToC 场景下,基于近几年算法问题基本确定的情况下,大部分时间在讨论 f(函数)如何优化,另一部分时间则是在收集x(数据),但此时的 y(目标)往往是明确的;ToB 场景下,往往 x、f、y 都是不确定的,仅仅一句“智能XX”便作为整个行业的输入。基于以上分析,定义问题是 AIToB 的第一步,同时也是最具挑战的一步。
以智能运维场景为例,与人工智能、大数据、区块链等等技术体系不同,智能运维并不是一项“全新”的技术,而是一个以智能运维场景为基础的智能技术应用和融合,剥离开场景单谈“智能运维”不具有实际意义,智能运维的核心在于探索智能技术如何转化、服务、适配运维行业的发展、如何给运维行业带来解决问题的新思路。
运维场景分析
Peter Bourgon在2017 Distributed Tracing Summit对运维面对的Logging、Metrics、Tracing进行了系统性的阐述,根据其描述,我们将运维的场景分为“一元场景”、“二元场景”、“转化场景”三个大类。
- 一元场景: 指标、追踪、日志单一数据项下的场景,即下图中的三个圆。
-
指标:可聚合的逻辑计量单元。指标既可以是基础指标也可以是业务指标,如CPU使用率、硬盘容量、APP新增用户数等;
-
日志:对离散的不连续事件的一种记录。日志又分为系统日志、应用日志、自由日志等;
-
追踪:单次请求范围内的所有信息,即调用链信息。调用链可能在系统初始化时被定义,也可能在执行过程中被发掘。
- 转化场景: 一元场景存在着基于信息抽取或信息强化后的转化关系,即下图中的虚线。
-
日志→指标:通过日志获得指标数据。如:‘2021-01-2215:06:43- algorithm_lab.py[line:38]- INFO: User Cnt 1021’就包含着在2021-01-22 15:06:43时间,用户数(User Cnt)为1021这个指标数据;
-
日志→追踪:通过对日志的聚合和转化得到追踪。日志中往往可以挖掘出事件真实的调用链信息,例如银行在完成交易事件时要求每个处理逻辑都打印交易的唯一编号(UUID),因此一个交易事件的完整调用链可以通过日志信息获取;
-
追踪→指标:通过调用链的分析获得调用范围内的指标。如任务响应时间、任务资源消耗等指标需要通过一个完整调用链周期才能呈现;
-
指标、日志、追踪→告警: 多个源头产生的告警。这里所说的告警并不是一个运维的基本观测项,准确的说告警是一个派生观测项,指标、日志、追踪所产生的的异常和信息均可以通过告警来呈现。
- 二元场景: 通过两种基本观测项交叉所产生的场景,即上图中任意两圆的交集。
-
日志+指标:可聚合或分解的事件。在指标发生异常时,运维人员往往希望通过查询此时的日志来分解出指标出现问题的事件原因;
-
日志+追踪:一个调用周期内的事件。在一个调用周期中发生了哪些事件或有哪些信息,需要在追踪的范围内查找日志;
-
追踪+指标:一个调用周期内的指标。当调用链发生异常时,往往需要这个调用中的多个指标配合来综合解决运维问题。
智能技术分类
State-of-the-Art 网站将人工智能问题分为计算机视觉、自然语言处理、时序数据、知识图谱(图算法)等16个大类。下面仅摘取部分内容作为示例进行讲解。
-
计算机视觉类: 是一门研究如何使机器“看”的科学,进一步说,是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取“信息”的人工智能系统。其在人工智能领域应用最为广泛,包括人脸识别、目标检测、图像分类等多个细分算法研究领域;
-
自然语言处理类: 研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融汇语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分。其研究范畴包括命名实体识别、问答系统、情感分析、文本生成等;
-
时序数据类: 时间序列数据是通过统一指标按时间顺序记录的数据列。在同一数据列中的各个数据必须是同口径的,要求具有可比性。时序数据可以是时期数,也可以是点数。时间序列分析的目的是通过找出样本内时间序列的统计特性和发展规律性,构建时间序列模型,进行样本外预测。其研究范畴包括时序数据的预测、异常检测、数据分类等;
-
图算法: 指利用特制的线条算图求得答案的一种简便算法。无向图、有向图和网络能运用很多常用的图算法,这些算法包括:各种遍历算法(这些遍历类似于树的遍历)、寻找最短路径的算法、寻找网络中最低代价路径的算法、回答一些简单的相关问题(例如,图是否连通,图中两个顶点间的最短路径是什么等等)的算法。图算法可应用到多种场合,例如:优化管道、路由表、快递服务、通信网站等。为了方便描述,这里把知识图谱相关研究从建模角度分类为图算法。典型的研究场景包括:知识挖掘、知识表示、最短路、最大流等算法。
智能运维算法体系
基于上述运维场景,智能运维就是围绕着指标/日志/追踪/告警四要素及其转化的 AI 赋能。
- 一元场景下的智能运维算法赋能
-
指标+AI:应用时序数据类相关智能算法,赋能于指标计算,可以挖掘指标异常检测、容量预测、健康度检测等场景,实现指标场景智能化;
-
日志+AI:应用自然语言处理、分类聚类等智能算法于日志场景中,可以挖掘日志解析、日志实体识别、日志分类等场景,实现日志场景智能化;
-
追踪+AI:应用图算法等智能算法赋能于调用链场景中,可以挖掘路径曝光、调用链优化管理等场景,实现追踪场景智能化。
- 转化场景下的智能运维算法赋能
-
日志→指标+AI:应用自然语言处理算法中的命名实体识别技术,赋能于日志模式的识别过程中,可以精准、高效识别日志中的指标信息,实现从日志到指标的转化场景智能化;
-
日志→追踪+AI:应用知识图谱、概率图模型等智能算法可以在一次调用周期中挖掘指标信息,应用于调用链分析、过程挖掘等场景中,实现从追踪到指标的转化场景智能化;
-
指标、日志、追踪→告警 +AI:由于指标、日志、追踪均可以产生告警,反之,可以对统一事件下不同观测(指标、日志、追踪)的告警进行告警智能压缩、告警智能抑制并使用实体识别、语义识别等技术,实现从指标、日志、追踪到告警的转化场景智能化。
- 二元场景下的智能运维算法赋能
-
指标+追踪+AI:系统故障往往会影响指标数据并沿着调用链进行传播,因此应用图模型(随机游走、概率图模型)等技术可以有效进行基于指标的根因定位,实现指标和追踪场景的智能化;
-
指标+日志+AI:当指标发生异常时,日志往往能够更清晰地展现异常发生时的系统状态,实现指标异常分析;同时,通过识别日志模式,将模式变化情况使用时间序列异常检测相关算法进行检测,实现指标和日志场景的智能化;
-
追踪+日志+AI:当系统发生故障时,分析系统调用链上的节点的日志模式、内容变化情况往往能够有效进行基于日志的根因定位,实现追踪和日志场景的智能化。
GAIA 数据集
基于GAIA提供的AIOps领域的指标、日志、追踪三个原始数据及一元、二元、转移三种基本运维场景,云智慧根据十年实践经验发布了指标异常检测、日志解析、指标根因分析等六种算法问题。
-
指标异常检测: 及时告警,判断系统是否有故障,并且为后续的根因分析提供了宝贵的信息和时间。
-
指标预测: 可以让运维团队提前获知设备运行状态,例如CPU使用率、磁盘内存和网络响应时间等基本监控,并在未来的库存容量和销售收入中得到指示。
-
日志语义异常检测: 日志语义信息的使用有助于检测系统异常并定位系统的根本原因。
-
日志解析: 由于日志的非结构化性质,第一个关键步骤是将日志消息解析为结构化数据以供后续分析。
-
命名 实体识别 ( NER ): 从非结构化文本中识别和分类命名实体,或命名实体识别(NER),是自然语言处理中的一个核心问题,具有多种应用,如分类、意图分析等。
-
指标根因分析: 以便为系统故障提供补救措施,根因分析在AIOps中至关重要。在定位系统的根本原因后,运维人员将能够识别问题并进行修复。
至此,通过系统化的思考,我们将“智能运维”这一AIToB领域的基本问题进行了定义,事实上,这个定义的过程花费了非常多行业专家、研究员的心血。
AIToB工程化挑战
众所周知,算法并不仅仅存在于实验室,其着重点应在于如何赋能企业客户,接下来将详细讲解算法在赋能企业客户时应需要做哪些事情。
- 统一训练/推理框架: 在统一训练/推理框架中主要会有多模型的融合、离线训练/实时推理双态、数据源解耦/数据抽象层等一系列的挑战。
- 水平扩展: 在水平扩展时主要有以下几方面挑战:为了提升性能,将原本无状态的算法改造成有状态(本地数据缓存,例如实时指标异常检测,每次Batch输入是10080点(7天,分钟级),实时计算式需要缓存10079个点,以避免大量数据传输。另一方面,在引入一致性哈希环进行数据路由分配,对于有状态类算法进行唯一分配,对于无状态类算法进行随机分配。
- 效率: 在一定范围内性能甚至比准确率更重要。
行业实践与总结
- 智能运维算法平台助力某银行客户海量指标实时异常发现
-
变更自学习:业务变更时除变更点报异常外,能快速学习变更情况;趋势自适应:能够学习到数据内在趋势,不会误报符合趋势变化的数据。
-
周期自学习:能够学习数据内在周期;周期+趋势自适应:能够适应周期趋势叠加。
-
忙闲时自学习:对于定时任务,其分为忙时和闲时,需要算法自学习;扩展至物理世界指标:对物理世界指标如温度、压强等也具备处理能力。
- 智能运维算法平台助力某运营商日志异常发现
- 智能运维算法平台助力某银行客户交易业务根因分析
FlyFish开源福利
云智慧已开源数据可视化编排平台 FlyFish 。通过配置数据模型为用户提供上百种可视化图形组件,零编码即可实现符合自己业务需求的炫酷可视化大屏。 同时,飞鱼也提供了灵活的拓展能力,支持组件开发、自定义函数与全局事件等配置, 面向复杂需求场景能够保证高效开发与交付。
点击下方地址链接,欢迎大家给 FlyFish 点赞送 Star。参与组件开发,更有万元现金等你来拿。
GitHub 地址: https://github.com/CloudWise-OpenSource/FlyFish
Gitee 地址:https://gitee.com/CloudWise/fly-fish
微信扫描识别下方二维码,备注【飞鱼】加入AIOps社区飞鱼开发者交流群,与 FlyFish 项目 PMC 面对面交流~