徐康敏:数据科学家视角下的AI应用实践!

徐康敏:数据科学家视角下的AI应用实践!
2021年11月19日 08:59 DataFunTalk

分享嘉宾:徐康敏 三菱电机 数据科学家

编辑整理:王吉东 昆仑数据

出品平台:DataFunTalk

导读:借助DataFunTalk平台,结合笔者多年的世界500强制造业从业经验,今天将主要从“流”与“融”这两个视角,以工业场景为例,谈谈笔者对AI落地的一些感想,也就是工业智能。

今天的分享会围绕下面四点展开:

工业智能的现状

人才与技能

需求与痛点

探索与思考

01

工业智能的现状——工业智能在现实中前行

首先和大家介绍下工业智能的现状。

1. 构建工业智能时所听到

在构建工业智能的过程中,实际的情况和老板的期待往往存在较大差别。

在实际的项目进展过程中,可获取到的有效数据有限,不同时段的数据清晰逻辑可能存在差别;另一方面,由于模型的局限性,工艺流程的改进可能会使原有模型失去意义。以上是工业AI推进过程中遇到的现实的情况,总结起来就是:现实中的工业智能,有效数据难,模型构建难,应用效果难;最重要的是,得到能一起前行的伙伴更难!

2. 制造业业务的理解

① 制造业的业务理解

制造业的业务模式,和普通AI工程师的理解和思考的方式可能有所不同。从业务角度理解,制造业包括三条核心主线:

产品链:

产品链,推进企业创新

从产品与服务研发、制造流程设计、生产工艺设计到制造

产品链主要实现新功能、深价值,可引领市场

价值链:

价值链,从业务领域推进业务管理

从产品营销、计划生产、材料供应,到制造,再到物流交货、售后支持,以及附加价值的提供

价值链主要实现快响应、易直观,满足客户需求

管理链:

管理链,走企业经营之路

从投资经营企划、市场分析、成本资金管理、人力设备资源管理、合规风险管理,最终到信息系统建设

价值链主要实现低成本、高效率,可长期发展

以上三条链,在各个制造型企业中不断循环发生,由各自部门承担各自相关的责任。

② 制造业老板的日常焦虑

然而制造业老板关心的重点并不是AI的功能强大,他们关心的重点主要体现在安全、环保、成本、产品、质量、效率、盈利能力等方面。

基于这个角度可以带来一个思考:制造业人工智能的意义在什么地方?

③ 制造业人工智能的意义

人工智能本质是人类决策/判断的效率提升工具;如何帮助解决制造业的问题,是制造业人工智能的核心价值。

3. 现实中AI工程师所讨论的

然而,在现实生活中,AI工程师们所关注的更多是图中展示的各种各样的算法。这些算法有些非常复杂,耗费很多科学家毕生心血去研究。

这些算法包括监督学习、非监督学习,包括回归模型、分类模型,包括集成学习、深度学习、强化学习等,各种各样的算法。

如前文所述,AI工程师关注点和制造业的关注重点是有所不同的;如何将两者有机地进行结合,是一个重要的话题。

4. 智能的源头DIKW模型

接下来介绍DIKW模型:其中,D代表data,包括设备传感器数据、摄像头图像数据等;I代表Information,表示对于人或机器易于提炼的信息,例如是谁(Who)、什么时间(When)、在哪里(Where)、发生了什么(What)等信息;K代表Knowledge,是Information信息的进一步提炼,例如Know How;W代表Wisdom,主要包括Why,类似于人类的举一反三。

从某种意义上来说,这一系列信息的变化是一个升级的过程,也是对信息意义的提炼。

智慧是从数据开始逐渐抽象的过程,目的是对未来进行判定和决定,是人类所独有的能力。DIKW模型可以很好地解释智能的产生。

5. AI应用构建的一般流程

基于DIKW模型分为以下几个阶段

数据阶段:

包含各类非结构化数据,如图像、声音、时序数据等

信息阶段:

原始数据经过BI处理,进行信息化处理

人类通过非结构化的数据进行认知,并加上自己认为的意义

将提炼信息存入信息系统,抽取原始数据的价值

知识阶段:

对信息系统中的内容进行分析

将分析结果进行推理成为经验

智慧阶段:

将经验进行总结

研究发生了什么、为何发生等,并可举一反三

对于一般AI的处理过程,更多地是从数据层进行切入,具体如下:

开发探讨:需求探讨、KPI设定、导入方针制作

试行:样例数据收集、模型设计和训练、适用性评估

模型构建:数据收集、模型训练和评估、模型应用

系统集成:模型使用、应用构建、系统化

使用:新数据应用、AI运行、反馈结果

维护:AI精度监控、模型再训练、模型更新

可以看出,我们常规的AI应用,其实更多地还是和数据本身打交道(可能会包含部分的信息作为标签),基于数据以抓取核心价值。

6. 工业智能的现状

国家统计局数据显示,2019年中国国内生产总值990865亿元,比上年增长6.1%。其中,第一产业增加值70467亿元,增长3.1%,占国内生产总值比重为7.1%;第二产业增加值386165亿元,增长5.7%,占国内生产总值比重为39.0%;第三产业增加值534233亿元,增长6.9%,占国内生产总值比重为53.9%。中国第二和第三产业产值已超过GDP的90%,约为93%。

然而,人工智能在工业领域的占比不到4%;因为落地存在较大难度,同时也有较大发展空间,值得期待。

工业智能主要体现在优化制造周期和生产效率,改善产品质量,降低成本等。典型应用场景包括智能产品与装备;智能工厂,车间与产线;智能管理与服务;智能供应链与物流;智能监控与决策等。

对于人工智能的现状,从流的角度来看,人工智能技术不断创新,不断变化;从融的角度来看,如何将AI技术用制造业追求的方式体现出来,这才是工业智能所追求的。

02

人才与技能——工业智能的核心是人才

1. 人才与知识体系

① 知识体系角度

工业人工智能的知识体系,可以形象地从上图的左上角看出:

算法开发:在工业体系中,这一领域对人数要求并不多,但是要求人才的算法能力非常专精

AI算法的应用、系统集成及课题定义:这一方面需要广泛的复合型人才

数据理解,数据收集,数据处理,数据初步分析

② 产品经理角度

从AI产品经理的角度看,产品经理会进行多方协调

衔接客户经营层进行交流,进行问题定义

与现场业务人员进行沟通,明确需求

和外部服务商进行沟通,达成项目整体一致性

与内部算法团队和数据处理团队进行沟通,保障产品的顺利运转

总体上,工业智能需要非常复合型的人才。

③ 知识领域角度

从知识领域来看,可以细分成3个维度:

业务能力维度:

在理解课题的基础上,对业务问题进行整理,并着力解决

行业专家的能力要求主要在于业务方面

包括业务逻辑、项目管理、业务应用、知识产权等方面

从数据方面看,包括现场数据获取方式、数据意思理解、数据意思抽取和洞察,主要目的是基于数据解决问题

基础能力在于逻辑思考能力和行为管理能力

数据科学维度:

信息处理,人工智能,统计学等进行理解,并有效使用

数据科学家的能力要求主要体现在问题解决的能力

包括流程分析、数据理解、物理世界意义洞察抽取等

技术方面包括机器学习、深度学习、时间序列分析等,以及仿真、模拟、最优化,以及动态可视化等

对于非结构化数据(语言、图像、声音等)的理解和应用

基础技能是统计数理基础,包括线性代数、概率论等

数据工程师维度:

从数据科学的角度来进行工程化的实装和使用

数据工程师的能力要求体现在项目落地的能力

包括数据收集、数据导入、数据加工、数据处理等技能,以及数据安全意识

作为基础技能,数据工程师需具备较强的编程能力

④ 人才加入到项目的阶段

可以看出,在项目的不同阶段,不同类型的人才参与的侧重点是不同的:

项目前期启动阶段,行业专家参与项目目的和主题的设定,负责与客户和现场人员进行沟通

随后,数据科学家会逐步参与,进行问题的定义,并对推进方式进行设计

至此,项目逐步推进到数据工程师的角度,对项目进行实际的推进,并进行处理分析

处理分析阶段,需要数据工程师和数据科学家以及行业专家共同协作以解决问题

最终由行业专家对问题进行收尾

⑤ 总结

对于工业智能人才,从流的角度来看,更专注于专业领域;从融的角度来看,将专业领域的知识和应用进行高度融合,这一点是非常困难但却是非常重要的。

2. 人工智能的发展

人工智能从上个世纪50年代开始发展,主要学派包括下列三家:

行为主义(actionism),又称为进化主义或控制论学派,其原理为控制论及感知-动作型控制系统。

符号主义(symbolicism),又称为逻辑主义、心理学派或计算机学派,其原理主要为物理符号系统(即符号操作系统)假设和有限合理性原理。

连接主义(connectionism),又称为仿生学派或生理学派,其主要原理为神经网络及神经网络间的连接机制与学习算法。

3. 机器学习应用过程

早在1999年,欧盟机构曾联合起草了一套“跨行业数据挖掘标准流程”(即CRISP-DM, cross-industry standard process for data mining这一KDD (Knowledge Discovery in Database)过程模型。通过近几年的发展,CRISP-DM 模型在各种KDD过程模型中占据领先位置,2014年统计表明,采用量达到43%。

这套方法论主要包括以下6个阶段:

① 商业理解(business understanding)

② 数据理解(data understanding)

③ 数据准备(data preparation)

④ 数据建模(modeling)

⑤ 评估(evaluation)

⑥ 部署(deployment)

在2015年AlphaGo对世界产生重大影响之前,行业界更多地使用的是DataMining(数据挖掘)。数据挖掘与机器学习、深度神经网络等有所不同,主要区别在于:前者更关注分析问题,后者关注对新数据的处理

03

需求与痛点——工业智能的需求与特点

1. 工业智能中的端边云的作用

工业智能存在“端边云”这样一个概念。

端侧:

工业现场通过现场总线协议来通信,主要包括:EtherNetIP,PROFINET,CC-LINK等

工业现场对于通信速度与通信可靠性有很高的要求,一般信息速度在0.1ms~100ms(网络调查结果)

边缘侧:

边缘侧主要作用包括数据聚合,微服务等。

起到端与云中承上启下的作用。

需要对端侧的数据聚合与处理,做到近实时的效果。

一般端边打通后,通讯速度在100ms~10s(个人实验结果)。

可以尝试一些近实时的人工智能技术。

云侧:

数据分析,模型构建等。

主要提供高效的算力,可以快速的构建模型。

由于跨网络专用,公有网络不通,速度会完全不同。

端云打通可能:1s~5min(个人公网测试结果)。

2. 人工智能应用领域

从人工智能在工业场景的实际应用来看,整体上存在两种思路:

绕过机理通过计算得出结论:传统的机器学习、模式识别,以及深度学习

通过规则与关系创建知识链接:专家系统以及知识图谱等

基于上述两种思路,可以将现场的需求大致进行图中的分类(参考资料:信通院工业智能白皮书-2020)

3. 工业智能在不同的行业

前文所述是从人工智能角度切入到工业,本节从工业需求角度进行切入。

从工业角度,主要包括3种行业:流程行业、小品种大批量离散制造、小品种大批量离散制造等。

流程行业:安全风险大,设备价值高,环境影响大,能耗高,流程管控要求高;

多品种小批量离散制造:产品结构复杂,调度复杂,工序分散,人工因素多;

小品种大批量离散制造:个性化需求高,产品更新要求,同质化问题,增值服务扩展。

以上这3种行业,细分需求往往是不同的。不过还是存在很多共通点,例如:质量检测,供应链管理,现场监控,决策支撑,市场对应,操作培训等;然而在工艺问题和产品的设计、运维等问题方面往往是不同的,有各自独特的业务需求,这也是人工智能围绕解决的问题。

4. 工业智能的特性

综上所述,工业智能的特性包括4点:时效性、可靠性、可解释性、适用性。

时效性:

工业角度的要求一般是毫秒级到秒级

人工智能目前可以做到亚秒级到分钟级

因此,流式处理的作用至关重要

可靠性:

工业角度的可靠性要求一般要求100%

人工智能由于存在欠拟合和过拟合,可靠性很难达到100%

人工智能和人类的比较,即如何使得人工智能的可靠性高于人类,这是个有意思、值得探讨的话题

可解释性:

工业上对可解释性的要求非常高,要求追求根本的原因

深度学习的可解释性较低;根据不同的方法,解释性截然不同

工业领域,类似于知识图谱这里可解释性较强的工具较多;算法模型方面,决策树、贝叶斯这类可解释性较强的模型用的相对较

适用性:

对于工业智能的应用落地来说,适用性非常重要,即常说的泛化问题

直观地举例来看,对于相同工艺的A、B两条产线,适用于A产线的模型在B产线表现可能很差,可能是由于产品、工艺参数等因素所致,最终导致泛化失败

因此,人工智能在工业领域最大的问题在于泛化问题

对于泛化问题,可借助迁移学习等框架,也可通过降低研发周期等措施,以提高模型的泛化能力

综上所述,工业领域不是不能智能化,而是很多项目实现了AI后带来的经济价值反而更低;因此也带来了工业智能领域一系列值得探讨和深思的话题。

从结论角度来看,工业人工智能的流动性特性主要体现在需求阶段,领域、目的、特性等往往都是不同的;从融合角度来看,最终目的是为了满足安心安全有效的生产,生产过程中的识别与推理会一直存在

04

需求与痛点——探索与思考之路

1. 探索之路

笔者自行搭建了边缘侧实验室进行探索,开发了一种基于边缘计算的实时的多传感器深度学习时序分析模型。

实验对象:通过对温度,大气压,紫外光线。来分析温度的变化。

数据采集:RaspberryPI3x2

实时计算处理与容器管理:PCx1,RaspberryPI4x1

深度学习建模与推理:PCx1,Jetson Nanox2

用到的开源软件:Apache ActiveMQ,Kafka,Flink,Redis,Influxdb,ElasticSearch,Grafana,Docker,K3S

通过Jetson、树莓派等边缘设备,可以快速获取大气压、温度等传感器时序数据;图中黄色的线是通过人工智能模型预测生成的温度曲线,可以与真实测量数据进行对比。

2. 计算资源

① RaspberryPI

Raspberry PI4(树莓派)拥有非常不错的计算能力,同时可以选配高版本的内存与千兆网络;可以使用Ubntu通过K3S容器安装,同时它还可以支持64bit。

② Nvidia Jetson

Jetson Nano拥有128GPU核心,0.5GPS,对于非视觉方面的推理部分性能是不错的;对于图像方面,也具备1~10帧的推理能力。对于工业常用的时序方面,具有性价比较高的算力。同时Nivida提供Tensorflow,Pytorch等的容器镜像;此外Nivida还提供了非常好的设备状态监控展示功能——Jtop。

③ Rancher K3S

在Arm领域主要的软件有K3s与MicroK8s(x86同样可以使用);这里选择K3S容器,其安装部署非常方便,可以大大简化RaspberryPI与Jetson的容器化部署。总的来说,k3S有如下优点:

完美造配边缘环:k3s是一个高可用的、经过CNCF认证的 Kubernetes发行版,专为无人值守、资源受限、偏地区或物联网设备内部的生产工作负载而设计。

简单且安全:k3s被打包成单个小于60MB的二进制文件,从而减少了运行安装、运行和自动更新生产Kubernetes集群所需的依赖性和步骤

针对ARM进行优化:ARM64和CARM7支持二进制文件和多源镜像。k3s在小到树莓派或大到AWS a1.4xlarge 32GiB服务器的环境中均能出色工作。

3. 数据采集

对于数据采集来说,除了可以使用树莓派来采集传感器数据,更多的工艺现场包含人、机、料、法、环这样的制造过程,可以采用采用OPC UA这样的工具进行数据收集,最终通过MQTT进行数据发送。

① OPC UA

OPC UA可以从PLC、GOT等设备中抽取需要的数据,从而简化现场设备数据获取的复杂性。

OPC UA信息模型(Information model)

OPC UA 使用了对象(objects)作为过程系统表示数据和活动的基础。

对象包含了变量,事件和方法,它们通过引用(reference)来互相连接;

这个概念和面向对象程序设计方法非常相似。

OPC UA 信息模型是节点的网络(Network of Node,),或者称为结构化图(graph),由节点(node)和引用(References)组成,这种结构图称之为OPC UA 的地址空间。这种图形结构可以描述各种各样的结构化信息(对象)。共计有8种节点(对象,对象类型,变量,变量类型,视图,方法,引用,数据类型) 。

② MQTT

MQTT是一种轻量级的发布/订阅的消息传输协议,设计思想是开放、简单、轻量。此外,我们一直也在寻找其他的轻量级数据传输工具,欢迎大家一起探讨。

4. 实时计算

① Kafka

Kafka是处理实时数据提供一个统一、高吞吐、低延迟的平台,是一种分布式发布-订阅消息系统,是一个分布式的、可划分的、冗余备份的持久性的日志服务。

Kafka与MQTT:

相同点:kafka与MQTT都是一种消息发布订阅的系统

不同点:

Kafka主要面向数据集成,有较高的吞吐与冗余性;

MQTT则主要面向物联网场景。有Qos等通信方面的设定。

MQTT与Kafka的接口:

MQTT → Kafka:

两者没有直接的链接接口,需要写自己用的Connect;

可以对于MQTT读取的数据做一些轻量级的数据处理, 如数据的去Null,数据的特征转换等。

Kafka → MQTT:

同理,需要自己定制开发Connect;

可以做一些根据MQTT来触发的设备控制。

② Flink

Flink是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算;能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。Flink支持K8S,可大大降低现场的部署门槛;在我们的系统中,Flink是核心中的核心。

Flink的主要应用场景包括:

事件驱动的应用:制造的过程本身就是一系列事件的集合,如:品质检测,制造工艺优化,设备故障预防等;

数据分析应用:制造过程需要对于现有状态或情况进行统计与分析,如:生产环境,生产节拍的统计与分析等;

数据的管道应用:制造现场的数据其实格式各样不同,任何时候都有ETL的需求。

Flink另一个优点是,和很多常用工具都有很友好的API:

DataStream,DataSet API可以提供非常灵活的数据处理逻辑,但是需要掌握Java或Scala语法。对于开发者的综合能力有一定要求。

Table API可以结合SQL给传统数据处理现有SQL代码资产,有非常好的通用性。

Python API(Pyflink)可以使用python来进行Flink数据处理编程,对于搞人工智能的同学有非常好的友好。

PyFlink是 Apache Flirk的 Python API,你可以使用它构建可扩展的批处理和流处理任务,例如实时数据处理管道、大规模探索性数据分析、机器学习(ML)管道和ETL处理。如果你对 Python和 Pandas等库已经比较熟悉,那么 PyFlink可以让你更轻松地利用 Flink生态系统的全部功能,根据你需要的抽象级别的不同,有两种不同的API可以在 PyFink中使用:

• PyFlink Table API,允许你使用类似于SQL或者 Python在中处理表格数据的方式编写强大的关系查询

• 与此同时,PyFlink DataStream API允许你对Flink的核心组件 state和time进行细粒度的控制,以便构建更复杂的流处理应用。

PyAlink 包含一些基本的人工智能算法。可以在Flink之快速的构建人工智能的应用。同时也可以结合pyflink进行开发。

Apache Zeppelin 可以做跨语言SQL, Scala等的可视化编程。

总之,Flink为流式、批式处理应用程序的开发提供了不同级别的抽象。

5. 数据存储——时间序列库

在工业领域,和我们打交道最多的数据就是时序数据。

从数据角度来看,时序数据除了最基本的时间信息外,还包括环境数据、人的行为数据、因人而发生的设备数据等;连接以上这几个维度的数据的关键就是——时间戳,这就是时间非常重要的地方。因此会借助时序数据库实现以上的功能。

时间序列库有以下的主要特性:

对于Nosql的支持,便于各种数据源的输入。

可以应对海量的写操作。

对于时间序列的高压缩。

注:关于时序方面,强烈推荐观看孙金城老师的文章!

Time series场景需求

写入:如何支持每秒钟上千万上亿数据点的写入;GoldWind场景是峰值5亿/秒

读取:如何支持在秒级对上亿数据的分组聚合,同时支持降采样等特性查询

成本:由海量数据存储带来的是成本问题;低成本存储是时序数据库的重中之重

Time Series Data存储到关系数据库有很多弊端,如下:

存储成本大:对于时序数据压缩不佳,需占用大量机器资源;

维护成本高:单机系统,需要在上层人工的分库分表,维护成本高;

写入吞吐低:单机写入吞吐低,很难满足时序数据千万级的写入压力;

查询性能差:适用于交易处理,海量数据的聚合分析性能差。

目前我们正在对国内主打时间序列库的Apache IOTDB进行探索:

6. 服务应用——DDD & 微服务

人工智能的开发非常复杂,如何对其进行抽象,可借助类似DDD这样的工具对子领域进行切割。

DDD:Domain-Driven- Design(领域驱动设计)

DDD是一种处理高度复杂领域的设计思想,试图分离技术与实现的复杂性,并围绕业务概念构建领域模型用来控制业务的复杂性,以解决软件难以解决的演进问题。

DDD不是架构,而是一种架构的设计方法论;通过划分业务边界,从而容易的让微服务落地。它的出现,让微服务的拆分和设计变得有指导性。

DDD包括战略设计与战术设计两部分;从不同角度出发,完成领域建模和微服务设计。

对于AI模型,可以理解成(算法+算力)*领域模型(包括目的、方法、数据等)。这种模型构建的方法,和DDD的构建思想是不谋而合的;因此AI的构建是有边界的,通过DDD可以有效地分解AI的边界。

7. 服务应用——Restful API & RPC

对于微服务的应用,我们使用了Restful API和RPC这两种。

Restful API是一种比较边界的边缘侧微服务应用;是一种REST风格的(GET、POST、PUT、DELETE)规范的Http访问方式,主要为第三方提供调用本系统的一种方法。

RPC(Remote Procedure Calls)是远程过程调用 (RPC) 是一种协议,程序可使用这种协议向网络中的另一台计算机上的程序请求服务,主要用本系统之间的互相调用。

对比gRPC 和 Restful API:

相同点:

gRPC和restful API都提供了一套通信机制,用于server/client模型通信;

都使用http作为底层的传输协议。

不同点:

gRPC可以通过protobuf来定义接口,从而可以有更加严格的接口约束条件;

通过protobuf可以将数据序列化为二进制编码,大幅减少需要传输的数据量,从而大幅提高性能;

gRPC可以方便地支持流式通信。

8. 数据展示——Grafana & Matplotlib

关于数据部分的展示,我们使用最多的是Grafana和Matplotlib这两款工具。

① Grafana

Grafana是一款非常便捷,高效的可视化工具,有着非常多的数据库接口,非常容易构建报表;同时,对于时间序列的图标建模,变得非常简便。另外,可在树莓派上通过Docker容器进行安装。

② Matplotlib

Matplotlib是数据分析领域最常用的图表构建工具,通过plt.ion()可以将图标动画化,达成实时分析的作用。

05

总结

工业智能应该姓“工”,通过智能来解决工业中的无法解决的问题,或优化生产过程等。

工业智能的“流”主要体现在需求的变化、数据的变化、人员的变化。

工业智能的“融”主要体现在需要与制造过程涉及的方方面面打交道,需要融会贯通。

工业智能的探索最值得借鉴的话:

“实事求是”,探索需要具有实事求是的精神;

“摸着石头过河”,一步一步往前走,不怕失败;

“顶层设计”,从更高的高度去思考,而不是局限于其中的某个技术点。

以上是我对工业智能整体的总结和思考,欢迎各位来探讨工业中的智能创造。

今天的分享就到这里,谢谢大家。

0条评论|0人参与网友评论
最热评论

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部