写点什么

SAP 人工智能解决方案的演进史 - 从 SAP Leonardo 到 SAP Data Intelligence

作者:Jerry Wang
  • 2022 年 8 月 04 日
  • 本文字数:2093 字

    阅读完需:约 7 分钟

SAP 人工智能解决方案的演进史 - 从 SAP Leonardo 到 SAP Data Intelligence

笔者之前的文章介绍过,我所在的工作团队曾经用 SAP Leonardo 上的机器学习服务,开发了一系列消费这些服务的原型应用:


  • 如何在 Web 应用里消费 SAP Leonardo 的机器学习 API

  • 如何对 SAP Leonardo 上的机器学习模型进行重新训练

  • SAP Leonardo 图片处理相关的机器学习服务在 SAP 智能服务场景中的应用


最近笔者参与了一个原型应用的开发项目,包含了微信小程序,SAP Conversation AI 同 SAP Cloud for Customer 的集成,需要把用户在微信小程序里同 SAP Conversation AI 的对话记录里的关键词提取出来。



在开发过程中,我发现位于 SAP Leonardo Machine Learning Foundation 这个包里的 Machine Learning API,全部被标注成 Deprecated 状态:



这些 API 在 2020 年的 6 月 30 日之后将停止使用。



在 SAP 官网和 SAP 社区上,我进行了一番搜索,得知这些处于 Deprecated 状态的 API,将被一个新的 SAP 产品所替代:SAP Data Intelligence.https://api.sap.com/package/SAPLeonardoMLFunctionalServices?section=OVERVIEW




在官网能够下载的 SAP AI 发展路线图上,我们能看到这样一张示意图:



处于示意图中人形图示的头部地位的 SAP Data Intelligence,是 SAP 推出的机器学习相关领域的模型开发,运行和生命周期管理的云端工具和平台。



新的 SAP Data Intelligence 位于 SAP 云平台的 Kubernetes 基础设施上,之前 SAP Leonardo Machine Learning Foundation 里的机器学习 API,将会以 Operator 的形式,供机器学习场景建模的从业者使用。



在 SAP 官网上有对 SAP Data Intelligence 的概要介绍:



这里笔者简单介绍下 SAP Data Intelligence 在 SAP Cloud Platform 上的操作界面和用法。


SAP 云平台上打开 Data Intelligence 实例的控制台:



登入之后,是一个类似 SAP Fiori Launchpad 风格的界面。对于笔者来说,我需要将之前原型开发里,所有调用已经处于 Deprecated 状态的 Machine Learning API 的地方,全部替换成调用 SAP Data Intelligence 暴露出的 Machine Learning 服务,因此我首先进入的是 Modeler 这个 tile.



进入 Modeler 之后,在左边的 Operator 标签页里浏览:



这个名叫 MLF Functional Services Interence 的 Operator,从功能上说,就是 SAP Leonardo Machine Learning Foundation 里处于 Deprecated 状态 API 的继任者。



如何使用 SAP Data Intelligence Modeler 里提供的这些标准 Operator 呢?按照 Jerry 学习新东西的惯例,我们还是先来看个 Hello World 的例子。


在 Graph 标签页里,新建一个 Graph. 从这个编辑页面能发现,这个 Graph 由若干节点和彼此之间的连线组成,每个节点是一个 Operator,实现各种操作,而连线表示将一个 Operator 产生的输出传送到下一个 Operator 接收的输入去。因此,从视觉效果上说,这种模型非常形象地被称为 Graph;从运行时的行为上讲,SAP 也将 Graph 模型称之为 Pipeline(管道),这个命令的由来和 Linux 系统里的管道理念一致。



我新建了一个 Graph,命名为 jerrytest,从 Graph 编辑页面里拖拽了两个 Operator,分别是 Data Generator 和 Terminal. 前者会每隔一段时间生成一批随机数,该输出直接重定向到第二个 Operator 里。因此我一旦运行这个 Graph,查看 Terminal Operatpor 的控制台,就能看到随机数发生器生成的随机数打印。


笔者之前分享过 SAP Cloud Integration 里的 iFlow 建模和 SAP 云平台上的 Low Code Development(低代码开发)解决方案里的 Microflow,加上本文正在介绍的 SAP Data Intelligence Graph,这三者的建模都是在编辑器里,通过拖拽的方式来完成的。


在随机数发生器上点右键,选择 Open Script,能查看用 JavaScript 实现的随机数生成代码:



从 JavaScript 代码能看出,这个 Data Generator 以 500 毫秒的时间间隔,生成随机数。



直接运行这个 Graph,等其状态处于 Running 之后,查看 Terminal Operator 的控制台:



就能看到 Data Generator 产生的随机数不断打印出来了:



下载 Graph 的 Diagnostic 信息,能查看到更多 Graph 的运行时明细:



比如其使用的容器和容器镜像的名称:


SAP Data Intelligence Modeler 里的 Kafka Producer 和 Kafka Consumer

首先本地将 kafka 的 docker 容器镜像下载到本地并运行:


docker search kafka



docker pull spotify/kafka



docker run --name kafka3 spotify/kafka



docker ps 命令,查看 tcp 端口号:



新建一个 graph,使用典型的生产者-消费者模型:将 Data Generator 生成的数据交给 kafka Producer operator;


而 Kafka Consumer 从 kafka producer 里读取出 data Generator 生成的数据,通过 ToString converter,输出到 Terminal Operator 上。




kafka producer 和 consumer 使用的 broker 和 topic 必须一致:




运行 graph,可以看到




在 SAP Data Intelligence Modeler 里创建新的 pipeline

新建一个 graph:



保存:



将 Processing 下面的 Data Generator 这个 Operator 拖拽到 graph 的编辑区域,点击<>符号开始编辑脚本:



可以查看自动生成的 JavaScript 代码:



这个 Generator 生成的随机数需要一个输出,这里我们选择 terminal operator:



将 data Generator 的 outport 绑定到 terminal 的 inport:




执行:



在终端上看到打印的输出:



总结

本文详细介绍了 SAP 人工智能解决方案的演进史,以及促成这些产品迭代方向的幕后驱动因素,并且用一个实际例子,详细介绍了 SAP Data Intelligence 的一个使用案例。


发布于: 刚刚阅读数: 3
用户头像

Jerry Wang

关注

🏆InfoQ写作平台-签约作者🏆 2017.12.03 加入

SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使。2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。工作中使用 ABAP, Java, JavaScript 和 TypeScript 进行开发。

评论

发布
暂无评论
SAP 人工智能解决方案的演进史 - 从 SAP Leonardo 到 SAP Data Intelligence_人工智能_Jerry Wang_InfoQ写作社区