• 全文共8336字,预计学习时长24分钟来源:PexelsApache Kafka机器学习的关系很微妙。本文旨在讨论建立机器学习框架的一个特定部分:在Kafka应用程序中部署一个分析模型...


    全文共8336字,预计学习时长24分钟

    来源:Pexels

    Apache Kafka和机器学习的关系很微妙。

    本文旨在讨论建立机器学习框架的一个特定部分:在Kafka应用程序中部署一个分析模型来进行实时预测。

     

    模式训练和模型部署可以是两个独立的过程。但是相同的步骤也可应用于数据集成和数据预处理,因为模型训练和模型推导需要呈现同样的数据集成、过滤、充实和聚合。

     

    本文将讨论和比较两种模型部署的不同选择:有RPC的服务端模型(RPCs)和本地嵌入Kafka客户端应用的模型。本文的例子特地使用了TensorFlow,但是相关原则对其他机器学习/深度学习框架或者产品同样适用。这些框架和产品包括H2O.ai,Deeplearning4j,谷歌云端机器学习引擎和统计分析系统(SAS)。

     

    TensorFlow — 机器学习/深度学习的开源软件库

     

    Tensorflow是一个为高效计算打造的开源软件库.它灵活的架构让多个平台(cpu、gpu、TPUs等)间的计算部署变得更加容易,应用范围从桌面到服务器集群再到移动和边缘设备。该软件由谷歌人工智能组织的研发团队研究员和工程师开发,作为机器学习和深度学习的强力支持,Tensorflow应用于多个领域,是一个完整的生态系统而不是一个孤立的元件。

     

    鉴于本文聚焦于模型服务,主要对保存和加载模型感兴趣。保存和加载模型就是存储训练模型,并将Tensorflow作为模型服务器。

     

     

    存储模型本质上是一个二进制文件,使用协议缓冲区(Protobuf)序列化。接着模型在C,Python,Java等软件中分类数据、加载数据、存储和处理数据。文件格式是可读的文本格式(.pbtxt)或压缩的二进制协议缓冲区(.pb)。图表对象是在TensorFlow中进行计算的基础。权重保存在单独的TensorFlow检查点文件中。

     

    由于本文关注的是TensorFlow的模型部署,因此如何预训练模型并不重要。可以利用云端服务和像云端机器学习引擎和其谷歌云端平台(GCP)的集成管线,或者建立自己的模型训练途径。Kafka不但在模型部署方面很重要,在数据集成、数据预处理和数据监控方面也扮演重要角色。

     

    使用模型服务器和RPC进行流处理

     

    模型服务器可以自我管理,也可以由分析或者云端供应商托管。模型服务器并不仅为模型推导部署和存储模型,而且还提供诸如版本控制或A/B测试之类的附加功能。从应用程序到模型服务器的交流经常通过请求-响应协议(HTTP)或者谷歌RPC(gRPC)等RPC框架来完成。每次项目运行,都会发生这种介于Kafka应用和模型服务器之间的请求-响应式交流,

     

    有很多模型服务器可供选择。可以从像Seldon Server,PredictionIO,Hydrosphere.io等开源模型服务器中选择或者从H2O.ai,DataRobot,国际商业机器公司(IBM),统计分析系统(SAS)等分析供应商中利用模型服务器。

     

    本文使用TensorFlow提供的服务,即来自TensorFlow的模型服务器。该模型服务器可以实现自我管理,也可以使用云端机器学习引擎服务。TensorFlow服务拥有以下特征。

     

    ·包含谷歌RPC(gRPC)和请求-响应协议终端(HTTP)

    ·呈现模型版本,无需改变客户端代码

    ·将单个模型推导请求分组,以便联合执行请求

    ·优化模型推导时间以便最小化延迟

    ·支持许多可服务项(可服务项是一个模型或者是一个和模型一起提供数据的任务)

     

    o  TensorFlow 模型

    o  嵌入函数

    o  词汇查找表格

    o  特征转换

    o  不基于TensorFlow的模型

     

    ·有能力开展金丝雀发布及A/B测试

     

    下图是Kafka应用和模型服务器的交流过程

     

    执行Kafka应用的过程是直接的。下面是Kafka应用数据流的代码片段以及TensorFlow服务端的RPC。

     

    1.输入Kafka以及TensorFlow服务API

    import org.apache.kafka.common.serialization.Serdes;import org.apache.kafka.streams.KafkaStreams;import org.apache.kafka.streams.StreamsBuilder;import org.apache.kafka.streams.StreamsConfig;import org.apache.kafka.streams.kstream.KStream;
    import com.github.megachucky.kafka.streams.machinelearning.TensorflowObjectRecogniser;
    

    2.配置Kafka数据流应用

     

    // Configure Kafka Streams ApplicationfinalString bootstrapServers = args.length > 0 ? args[0] : "localhost:9092";final Properties streamsConfiguration = new Properties();// Give the Streams application a unique name. The name must be unique// in the Kafka cluster against which the application is run.streamsConfiguration.put(StreamsConfig.APPLICATION_ID_CONFIG, "kafka-streams-tensorflow-serving-gRPC-example");// Where to find Kafka broker(s).streamsConfiguration.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
    

    3.向TensorFlow服务端呈现RPC(如果RPC失败,则报备异常情况)

    
    
    KStream<String, Object> transformedMessage = imageInputLines.mapValues(value -> {
    
                System.out.println("Image path: " + value);            imagePath = value;            TensorflowObjectRecogniser recogniser = new TensorflowObjectRecogniser(server, port);            System.out.println("Image = " + imagePath);            InputStream jpegStream;            try {                jpegStream = new FileInputStream(imagePath);                // Prediction of the TensorFlow Image Recognition model:                List<Map.Entry<String, Double>> list = recogniser.recognise(jpegStream);                String prediction = list.toString();                System.out.println("Prediction: " + prediction);                recogniser.close();                jpegStream.close();                              return prediction;            } catch (Exception e) {                e.printStackTrace();
                                     return Collections.emptyList().toString();            }        });
    

    4.启动Kafka应用

    // Start Kafka Streams Application to process new incoming images from the Input Topicfinal KafkaStreams streams = new KafkaStreams(builder.build(), streamsConfiguration);streams.start();
    

    嵌入式模型的流处理

     

    可以不用模型服务器和RPC交流,直接将模型嵌入Kafka应用。嵌入模型可以通过Kafka本地处理的数据流应用,以Kafka数据流为杠杆。该模型还可以通过KSQL(一种SQL方言)或者Java、Scala、Python、Go.等Kafka客户端应用程序接口。

     

    在这种情况下,Kafka应用无法依赖外部模型服务器。该模型在Kafka应用内加载,例如在Kafka数据流应用内使用TensorFlow的JavaAPI。

     

     

    同样,执行Kafka应用很简单。这里是在Kafka数据流应用里嵌入TensorFlow模型的代码片段,作为实时预测:

     

    1.输入Kafka和TensorFlowAPI

    import org.apache.kafka.streams.KafkaStreams;import org.apache.kafka.streams.KeyValue;import org.apache.kafka.streams.StreamsBuilder;import org.apache.kafka.streams.StreamsConfig;import org.apache.kafka.streams.integration.utils.EmbeddedKafkaCluster;import org.apache.kafka.streams.integration.utils.IntegrationTestUtils;import org.apache.kafka.streams.kstream.KStream;import org.deeplearning4j.nn.modelimport.keras.KerasModelImport;import org.deeplearning4j.nn.multilayer.MultiLayerNetwork;
    

    2.从数据存储(例如亚马逊S3链接)或者数据记忆(例如接受一个Kafkatopic级别参数)中加载TensorFlow模型。

    // Step 1: Load Keras TensorFlow Model using DeepLearning4J APIString simpleMlp = new ClassPathResource("generatedModels/Keras/simple_mlp.h5").getFile().getPath();System.out.println(simpleMlp.toString());MultiLayerNetwork model = KerasModelImport.importKerasSequentialModelAndWeights(simpleMlp);
    

    3.配置Kafka数据流应用

    // Configure Kafka Streams ApplicationProperties streamsConfiguration = new Properties();streamsConfiguration.put(StreamsConfig.APPLICATION_ID_CONFIG, "kafka-streams-tensorflow-keras-integration-test");streamsConfiguration.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, CLUSTER.bootstrapServers());// Specify default (de)serializers for record keys and for record valuesstreamsConfiguration.put(StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG, Serdes.String().getClass().getName());streamsConfiguration.put(StreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG, Serdes.String().getClass().getName());
    

    4.在数据流中应用TensorFlow模型

    final KStream<String, String> inputEvents = builder.stream(inputTopic);inputEvents.foreach((key, value) -> {// Transform input values (list of Strings) to expected DL4J parameters (two Integer values):String[] valuesAsArray = value.split(",");INDArray input = Nd4j.create(Integer.parseInt(valuesAsArray[0]), Integer.parseInt(valuesAsArray[1]));// Model inference in real time:output = model.output(input);prediction = output.toString();});
    

    5.启动Kafka应用

    final KafkaStreams streams = new TestKafkaStreams(builder.build(), streamsConfiguration);streams.cleanUp();streams.start();
    

     

    其他有关TensorFlow,H2O和深度学习4j在Kafka数据流中的应用实例详见GitHub。

     

    甚至可以通过使用知名的测试库编写单元测试框架(unit test),如JUnit和Kafka数据流测试库使用的单元测试框架。

     

    以下是KSQL自定义函数使用的模型部署示例:

     

     

    需要做的是执行KSQL 自定义函数的Java界面,并且将自定义函数部署到KSQL服务端。过去的博客文章有详细介绍如何建立自己的KSQL自定义函数通过这种方法,终端用户编写SQL语言查询用来实时应用分析模型。

     

    在应用中直接嵌入何种模型?

     

    并不是所有模型都是嵌入应用的理想模型。考虑模型是否应该嵌入时需要包含以下几点:

     

    ·模型性能:越快越好

    ·模型二进制格式:最好是Java字节码

    ·模型大小:字节少,存储少为佳

    ·模型服务器特征:加载即用vs.自己安装vs.不必要

     

    写在Python中的代码之所以运行缓慢是因为动态语言在运行时需要翻译很多变量和请求。

     

    H2O Java分类(例如决策树)可以运行很快。运行时间以微秒计算。

    一个只有几兆字节,内存少的TensorFlow Protobuf协议神经网络可以加载得很快。

     

    一个庞大的TensorFlow Protobuf协议神经网络(约100兆字节)需要很大内存,运行相对缓慢。

     

    基于标准的模型(例如 XML/JSON格式数据就是基于预测模型标记语言或者开放神经网络交换)包括除了模型处理(例如数据预处理)的其他步骤。该模型呈现了使用这些标准的组织挑战和技术局限,性能远次于像TensorFlow的Saved Model模型等本地加载模型

     

    最终,不管模型是否直接嵌入应用,这取决于模型本身、硬件设施和项目要求。

     

    在 Kafka应用中重建模型服务器的特征并不难

     

    在应用中嵌入模型并不意味着能即刻使用模型特征。用户必须亲自执行模型。先问自己第一个问题:我需要模型服务器的特征吗?我需要动态更新模型吗?模型版本?A/B测试?金丝雀测试?

     

    好消息是执行模型特征并不困难。这取决于用户的要求和工具配置,你可以:

     

    ·启动新版本应用(例如Kubernetes pod容器)

    ·通过Kafka主题发送并使用模型或权重

    ·利用服务网络(比如像Envoy,Linkerd, 或者 Istio服务器)

     

    下面来评估权衡各种在Kafka应用里利用分析模型的方法

     

    来源:Pexels

    权衡---模型服务器vs嵌入模型

     

    可以在模型服务器部署一个分析模型并且使用RPC进行交流。或者可以直接在应用里嵌入模型。这里没有最佳选项因为这取决于用户的设施、要求和能力。

     

    为什么和事件流应用一起使用模型服务器和RPC?

     

    ·如果你对事件流一无所知,该模型便于理解

    ·可以让之后迁移到实时流变得可能

    ·将不同模型,版本和A/B测试放到内置模型管理

    ·内置监控

     

    为什么在事件流应用中嵌入模型?

     

    ·借助本地推理实现更好的延迟,而无需进行远程呼叫

    ·脱机推断(设备,边缘处理等)

    ·Kafka Streams应用程序的可用性,可伸缩性和延迟/吞吐量与RPC接口的SLA之间没有耦合

    ·无副作用(比如失败的风险)- Kafka应用处理包含了各种因素(例如具体一次)

     

    两个选项各有利弊,根据不同场合推荐使用。

     

    Kubernetes(K8s)云原生模型部署

     

    在云原生框架中,两种方法都可以获得好处。即使其他的云原生技术有相似的特征,下面仍用Kubernetes作为云原生环境。

     

    将模型嵌入到Kafka应用中,可以获得独立pod数据结构的所有优势。独立的pod数据结构是流式数据处理和模型推导的容器,不依赖外部的模型服务器。

     

    在以下示例中,可以独立测量嵌入模型的Kafka数据流应用,启动新版本,加入A/B测试或者其他路径,用像Envoy或者Linkerd的云原生代理服务器处理异常。

     

     

    如果仍然想获取模型服务器的优点及特性,可以使用边车设计模式。Kubernetes支持将具有特定任务的其他容器添加到Pod中。在以下示例中,将Kafka Streams应用程序部署在一个容器中,而模型服务器作为边车部署在同一pod内的另一个容器中。

     

     

    这样就可以利用模型服务器的功能以及单个容器的坚固性和可扩展性。它仍然具有在每个容器之间使用RPC的缺点。通过将两个容器部署在同一容器中,可以最大程度地减少等待时间和潜在错误。

     

    边缘模型部

     

    模型也不是经常部署在云端或者是数据中心。在某些情况下,模型可以部署在边缘,边缘部署意味着:

     

    ·边缘数据中心或者边缘设备/机器

    ·边缘有一个Kafka应用集群,一个中介和一个Kafka应用客户端。

    ·一个强大的客户端(比如KSQL或者Java)或者一个轻量级的客户端(比如C或者JavaScript)

    ·一个嵌入模型或者RPC模型推导

    ·本地或者远程训练

    ·对法律和法规的影响

     

    对于某些电信提供商来说,边缘计算的定义是超低延迟,端与端之间的通信时间不到100毫秒。这是通过诸如开源云基础架构软件堆栈StarlingX之类的框架实现的,该框架需要完整的OpenStack和Kubernetes集群以及对象存储。对于其他对象来说,“边缘”意味着移动设备、轻量级板或传感器,可以在其中部署非常小的轻量级C应用程序和模型的移动设备。

     

    从Kafka的角度来看,有很多选择。可以使用librdkafka(本机Kafka C / C ++客户端库)完全构建轻量级的边缘应用程序,该库由Confluent完全支持。还可以使用JavaScript并利用REST代理或WebSocket集成进行 Kafka通信,将模型嵌入移动应用程序中。

     

    Kafka的独立技术模型部署

     

    模型部署在过程和技术上可以与模型训练完全分开。部署基础架构可以处理不同的模型,甚至可以使用不同的机器学习框架训练模型。Kafka还为构建机器学习监控提供了良好的基础,包括基础设施的技术监控和特定于模型的监控,例如性能或模型准确性。

     

    无论是否要使用Kafka实施所有功能,包括数据集成,预处理,模型部署和监视,或者是否仅使用Kafka客户将模型嵌入到实时的Kafka客户端,Kafka都是适用于机器学习基础设施的补充工具(与数据预处理和模型训练完全分开)Kafka。

     

    对于模型部署,有两种选择:模型服务器(RPC)和嵌入式模型。了解每种方法的利弊将有助于为项目做出正确决定。实际上,将分析模型嵌入到Kafka应用程序中很简单,而且非常实用。

    来源:Pexels


    推荐阅读专题

    留言点赞发个朋友圈

    我们一起分享AI学习与发展的干货

    编译组:顾家彤、殷睿宣

    相关链接:

    https://dzone.com/articles/machine-learning-and-real-time-analytics-in-apache

    如转载,请后台留言,遵守转载规范

    推荐文章阅读

    ACL2018论文集50篇解读

    EMNLP2017论文集28篇论文解读

    2018年AI三大顶会中国学术成果全链接

    ACL2017论文集:34篇解读干货全在这里

    10篇AAAI2017经典论文回顾

    长按识别二维码可添加关注

    读芯君爱你

    展开全文
  • 生产环境中使用Apache Kafka的可扩展的机器学习智能实时应用程序是任何行业的游戏规则改变者。机器学习及其子课题深度学习正在获得动力,因为机器学习使计算机能够在没有明确程序设计的情况下找到隐藏的见解。分析非...
        

    640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

    生产环境中使用Apache Kafka的可扩展的机器学习

    智能实时应用程序是任何行业的游戏规则改变者。机器学习及其子课题深度学习正在获得动力,因为机器学习使计算机能够在没有明确程序设计的情况下找到隐藏的见解。分析非结构化数据,图像识别,语音识别和智能决策需要此功能。这与使用Java,.NET或Python的传统编程有很大的不同。


    虽然机器学习背后的概念并不新鲜,但大数据集和处理能力的可用性使得每个企业都可以构建强大的分析模型。任何行业都有大量的使用案例,通过在企业应用程序和微服务中应用分析模型来增加收入,降低成本或改善客户体验。


    本文讨论关键任务实时应用程序中机器学习的潜在用例,利用Apache Kafka作为中央可扩展的关键任务神经系统以及Apache Kafka的Streams API构建智能流应用程序。


    可扩展的关键任务实时应用程序

    互联网,智能手机和永远在线思想的出现改变了人们今天的行为方式。这包括人们对设备,产品和服务如何与它们互动的期望:人们现在期望实时信息。企业面临的挑战是在太迟之前采取行动应对关键业务时刻。批处理已经不够了。你需要立即采取行动,甚至更好:积极主动。


    传统企业可以为其日常业务实施非常强大的实时处理。通常情况下,需要了解该领域的知识,并构建新的流分析以增加业务价值。流处理用例存在于每个行业中,例如:

          .欺诈检测:将支付信息与其他历史数据或已知模式相关联,以在发生欺诈之前检测欺诈。这通常需要非常快速的处理,因为您在决定库存移动,共享信息或运送物品之前必须拒绝交易。

          .交叉销售:在客户离开商店之前,关联客户大数据以制定特定于上下文的个人定制优惠或折扣。您可以利用实时信息(如基于位置的数据,支付数据),还可以利用历史数据(如CRM或Loyalty平台的信息)为每位客户提供最佳报价。

          .预测性维护:关联机器大数据以预测故障发生之前。这允许在零件破裂之前更换零件。根据行业和用例,这可以节省大量资金(例如制造),增加收入(例如自动售货机)或增加客户体验(例如,电信网络故障预测)。


    所有这些用例的关键在于您处理运行中的大数据。您需要处理事件才能采取行动。积极主动,不被动!在客户离开商店之前,您的系统应该在发生欺诈性交易之前做出决定,而不是在机器发生故障之前。


    但这并不意味着您需要毫秒响应时间。在几种使用情况下,即使批处理事件也很好。例如,在大多数制造业或物联网(IoT)用例进行预测性维护时,您会监控几小时甚至几天的时间窗口,以检测基础设施或设备中的问题。一天或一周内更换有缺陷的部件就足够了。这是一个巨大的商业案例,并节省了大量资金,因为您可以检测问题并在问题发生之前解决问题,甚至还可以销毁环境中的其他部分。


    利用机器学习的智能实时应用程序

    如上所述的关键任务实时应用程序已经建造多年了 - 无需机器学习。为什么机器学习是游戏的改变者? 如果您了解机器学习及其子课题和深度学习,您经常会看到类似这样的例子:

          .图像识别。将图片上传到您的Facebook时间线上,并分析您的朋友,背景或手中的啤酒等物品。       .语音翻译。这使聊天机器人可以通过生成的文本或语音与人交流。       .类人的行为。 IBM Watson击败了最好的Jeopardy玩家; Google的AlphaGo击败了专业的Go玩家。


    这些例子对希望建立创新型应用程序并与竞争对手脱颖而出的企业越来越相关。以同样的方式,您可以将机器学习应用于更多“传统方案”,如欺诈检测,交叉销售或预测性维护,以增强现有业务流程并制定更好的数据驱动决策。现有的业务流程可以保持原样。您只需通过分析模型替换更简单的定制代码业务逻辑和规则,以改进自动化决策。


    以下部分将展示如何利用Apache Kafka作为流媒体平台,以可扩展的关键任务方式构建,操作和监控分析模型。


    机器学习 - 部署分析模型的开发生命周期


    我们首先考虑分析模型的开发生命周期:


    1.构建:使用机器学习算法,如GLM,朴素贝叶斯,随机森林,梯度提升,神经网络或其他来分析历史数据以找到见解。 这一步包括收集,准备或数据转换等任务。

    2.验证:使用交叉验证等技术来仔细检查构建的分析模型是否适用于新的输入数据。

    3.操作:将构建的分析模型部署到生产环境中,以实时将其应用于新的传入事件。

    4.监控:观察应用模型的结果。 这包含两部分:如果达到阈值(业务监控),发送警报。 确保准确性和其他指标足够好(分析模型监控)。

    5.持续循环:通过连续执行上述所有步骤来改进分析模型。 这可以通过手动批处理模式(例如每周一次)或在线进行,其中模型针对每个传入事件进行更新。


    整个项目团队必须从一开始就一起工作来讨论如下问题:


          .它如何在生产中执行? 

          .生产系统使用或支持哪些技术?

          .我们将如何监测模型推断和性能?

          .我们是否建立了覆盖整个生命周期的完整机器学习基础设施,或者使用现有的框架将模型训练与模型推断分开?

    例如,一位数据科学家可以创建一个Python程序,创建一个精度很高的模型。 但是这并不能解决问题,因为您无法将其部署到生产环境中,因为它无法根据需要进行扩展或执行。


    我怀疑你已经可以想象为什么Apache Kafka非常适合生产分析模型。 以下部分将解释Apache Kafka作为流平台与机器学习/深度学习框架(认为Apache Spark)结合使用来构建,操作和监控分析模型。


    使用Apache Kafka进行机器学习的参考架构

    在了解机器学习开发生命周期之后,让我们看看使用Kafka构建,操作和监控分析模型的参考架构:

    640?wx_fmt=png

    这种体系结构的实质在于它使用Kafka作为收集特征数据的各种数据源,适合模型的模型构建环境以及服务于预测的生产应用程序之间的代理。


    功能数据从托管它的各种应用程序和数据库中提取到Kafka中。这些数据用于构建模型。这种环境会根据团队的技能和首选工具集而变化。模型构建可以是数据仓库,Apache Spark或Hadoop等大数据环境,也可以是运行python脚本的简单服务器。可以发布该模型,其中获取相同模型参数的生产应用程序可将其应用于传入示例(可能使用Kafka Streams帮助索引要素数据以方便按需使用)。生产应用程序可以从Kafka接收数据作为管道,甚至可以是Kafka Streams应用程序本身。


    Kafka成为ML架构中的中枢神经系统,用于喂养,构建,应用和监测分析模型。这确立了巨大的好处:

           .数据管道被简化

           .构建分析模块与提供服务分离

           .根据需要使用实时或批处理

           .分析模型可以部署在高性能,可扩展和关键任务环境中

    除了利用Kafka作为可扩展的分布式消息代理外,您还可以添加Kafka生态系统的可选开源组件,如Kafka Connect,Kafka Streams,Confluent REST代理,Confluent模式注册或KSQL,而不是依赖Kafka Producer和Consumer APIs:


    640?wx_fmt=png

    接下来的两节将介绍如何利用Kafka的Streams API轻松地将分析模型部署到生产环境。


    机器学习开发生命周期示例

    现在让我们深入一个围绕Kafka设计的ML架构的更具体的例子:

    640?wx_fmt=png

    用绿色表示要构建和验证分析模型的组件。在橙色中,您会看到部署分析模型的流式处理平台,推断新事件和监控。


    数据生产者不断发送消息。分析平台可以批量或实时接收这些数据。它使用机器学习算法来构建分析模型。分析模型被部署到流式传输平台。流式传输平台将分析模型应用于新事件以推断结果(即进行预测)。结果发送给数据使用者。


    在这个例子中,我们将模型训练与模型推理分开,这是我在当今大多数机器学习项目中看到的典型设置:


    模型训练

    大数据通过Kafka被摄入到Hadoop集群中。 H2O.ai用于分析Hadoop中的历史数据以构建神经网络。数据科学家可以使用它的首选接口-R,Python,Scala,Web UI Notebook等。模型构建和验证在处理静态数据的Hadoop集群上运行。其结果是由H2O.ai以Java代码生成的训练分析模型。这已准备好用于生产部署。


    模型推断

    然后将神经网络部署到Kafka Streams应用程序。 Kafka Streams应用程序可以在任何地方运行,无论它是独立的Java进程,Docker容器还是Kubernetes集群。在这里,它被实时应用于每一个新事件来进行预测。 Kafka Streams利用Kafka集群提供分析模型和性能模型推断的可扩展的关键任务操作。


    在线模型训练

    我们可以建立完整的在线模型训练基础设施,而不是分离模型训练和模型推理。许多像Linkedin这样的科技巨头在过去利用Apache Kafka进行模型输入,训练,推理和输出。这种选择有几个折衷。大多数传统公司都使用第一种方法,这对于今天的大多数用例都适用。


    模型监测和警报

    将分析模型部署到生产只是第一步。监控模型的准确性,分数,SLA和其他指标,并实时提供自动警报,同样重要。指标通过Kafka反馈给机器学习工具以改进或替换模型。


    用H2O.ai开发一个分析模型

    以下显示了使用H2O构建分析模型的示例:一个开源机器学习框架,它利用Apache Spark或TensorFlow等其他框架。 数据科学家可以使用他或她最喜欢的编程语言,如R,Python或Scala。 最大的好处是H2O引擎的输出:Java代码。 生成的代码通常表现非常好,可以使用Kafka Streams轻松缩放。


    以下是H2O.ai Flow(网络用户界面/笔记本)的截图以及构建分析模型的替代R代码:

    640?wx_fmt=png

    用H2O Flow Web UI构建分析模型

    640?wx_fmt=png

    用H2O的R库建立分析模型

    他的输出是一个分析模型,生成为Java代码。 这可以在关键任务生产环境中无需重新开发的情况下使用。 因此,您不必考虑如何将Python或R模型“迁移”到基于Java平台的生产系统。


    虽然这个例子使用H2O的功能来生成Java代码,但您可以使用其他框架(如TensorFlow,Apache MXNet或DeepLearning4J)执行类似的操作。


    使用Apache Kafka的Streams API部署分析模型

    Kafka Streams可轻松部署分析模型。 简单地将模型添加到流处理应用程序中 - 回想一下,它只是一个Java应用程序 - 将其应用于新的传入事件:

    640?wx_fmt=png

    Apache Kafka的Streams API将H2O.ai模型嵌入到Kafka流中

    由于Kafka Streams应用程序利用了底层的所有Kafka功能,因此这款新应用程序已准备好进行扩展和关键任务使用。 鉴于生产环境的考虑,不需要额外调整模型。


    你可以找到正在运行的例子。 只需复制该项目,运行Maven构建,并查看Kafka Streams应用程序中如何使用H2O模型。 


    这种将机器学习应用于流处理的实现可以轻松地集成到任何自动化的持续集成工作流中,使用您最喜爱的CI / CD环境工具堆栈,例如Maven,Gradle,Chef,Puppet或Jenkins。


    用开放标准共享训练与推理之间的分析模型

    如前所述,您需要使用适当的技术来构建分析模型。否则,您将无法以关键任务,性能和可扩展的方式将其部署到生产环境中。在数据科学家之间共享和更新模型以开发和改进模型和DevOps团队来嵌入和生产模型的一些替代方案:


           .原生模型:直接将模型部署到流处理引擎,例如在Java应用程序中通过JNI部署Python模型

           .生成的代码:独立于用于构建模型的语言,生成的二进制代码或源代码可以部署到流处理引擎,该引擎对性能进行了优化。例如,即使数据科学家使用R或Python来训练模型,该模型也会生成Java字节码。

           .外部服务器:使用SAS,MATLAB,KNIME或H2O等分析工具,通过请求响应调用外部分析服务器。这通常是通过REST接口完成的。

           .PMML(Predictive Model Markup Language,预测模型标记语言):一种较旧的XML标准,具有一些限制和缺点,但在某些分析工具中得到支持。

           .PFA(便携式格式分析):一种现代标准,除模型外还包括预处理。 PFA利用并支持JSON和Apache Avro。它在大多数分析工具中尚不支持即用型。


    这些替代方案之间有各种权衡。 例如,使用像PFA这样的标准会产生额外的开销和限制,但增加了独立性和可移植性。 从Kafka的角度来看,您通常在这里大量部署关键任务,而现在的首选项通常是生成的Java代码,这些代码性能高,扩展性好,可以轻松嵌入到Kafka Streams应用程序中。 它还避免了与外部REST服务器进行通信以进行模型推断。


    结论:使用Streaming Platform将分析模型部署到关键任务部署中

    机器学习可以在任何行业创造价值。此外,Apache Kafka正迅速成为许多企业的中枢神经系统。机器学习是一个奇妙的用例!您可以利用Kafka进行以下操作:


            .实时推断分析模型

            .监控和警报

            .模型的在线训练

            .进入批处理层/分析群集以在那里训练分析模型

    在本文中,您已经看到了一些代码示例,了解如何利用Apache Kafka及其Streams API构建用于应用和监控分析模型的可扩展的、高性能的、关键任务基础架构。


    公众号推荐:

    公众号:VOA英语每日一听

    微信号: voahk01

    可长按扫码关注,谢谢

    640?wx_fmt=jpeg

    展开全文
  • 原文链接:点击打开链接摘要: 让我们来研究下U`ber和Netflix上的KSQL,ONNX,AutoML和机器学习平台,看看它们之间是如何相互关联的。 在2018慕尼黑OOP会议上,我展示了使用Apache Kafka生态系统和深度学习框架...

    原文链接:点击打开链接

    摘要: 让我们来研究下U`ber和Netflix上的KSQL,ONNX,AutoML和机器学习平台,看看它们之间是如何相互关联的。

        2018慕尼黑OOP会议上,我展示了使用Apache Kafka生态系统和深度学习框架(如TensorFlowDeepLearning4J)构建可扩展关键型(mission- critical)任务微服务的最新版本。本文中,我想分享出最新的幻灯片并讨论最新趋势。

    本博文的主要内容与我在Confluent Blog中写的关于Apache Kafka生态系统和机器学习文章一样,但这里我更关注深度学习/神经网络。我还讨论了Apache Kafka生态系统中的一些创新以及机器学习最近几个月的趋势:UberNetflix上的KSQLONNXAutoML和机器学习平台。下面,让我们来看看这些有趣的平台以及它们之间是如何相互关联的。

    KSQLApache Kafka上的流式SQL语言

    根据这篇文章可知:

    KSQLApache Kafka上的流式SQL引擎,KSQL降低了流处理领域的门槛,为Kafka中的数据处理提供了一个简单且完全交互的SQL接口,并且不再需要用诸如JavaPython编程语言编写代码!KSQL是一个开放源码(Apache 2.0 licensed),具有分布式,可扩展,可靠和实时等特性。它支持大量的流处理操作,包括聚合,连接,窗口化,会话等等

    你可以编写类似SQL查询的语句来部署可伸缩的关键型流处理app(利用Kafka Streams底层技术)——这绝对是Kafka开源生态系统中的一大亮点。

    KSQL和机器学习

    KSQL是在Kafka Streams基础之上构建的,因此允许构建可扩展的关键型服务,它还包括神经网络在内的机器学习模型可通过构建用户自定义函数(UDF轻松的嵌入。这些天我正在准备一个例子:将一个神经网络(更确切地说是一个自动编码器)用于传感器分析对异常进行检测,例如:实时检测病人健康检查中的健康临界值,以便向医生发送警报。

    现在我们来谈谈机器学习生态系统中一些比较有意思的新发展。

    ONNX:代表深度学习模式的开放版本

    根据ONNX官网可知:

    ONNX代表着深度学习模式的开放版本,采用ONNXAI开发人员可以更轻松地在各种最先进的工具之间对模型进行迁移,并选择最适合他们的组合。

    这听起来与PMML(预测模型标记语言,更多细节请参阅本文)和PFA(便携式格式分析)类似,这两个标准用于定义和共享机器学习模型。然而,ONNX在几个方面有所不同:

    1.ONNX专注于深度学习。

    2.ONNX有几家巨型科技公司(AWS,微软,Facebook)和硬件厂商(AMDNVidiaIntelQualcomm)在使用。

    3.ONNX已经支持许多较为领先的开源框架(TensorFlowPytorchMXNet)。

    4.ONNX已经是GA版本1.0,并且可以在生产环境中使用(201712月由亚马逊,微软和Facebook声明)。对于不同的框架来说是一个很好的入门指南

    ONNXApache Kafka生态系统

    不幸的是,ONNX还不支持Java 因此,目前还不支持将它嵌入到Kafka Streams Java API本地——只能通过一种解决方法:执行REST调用或嵌入JNI绑定。但我相信这只是时间问题,因为Java平台对许多企业部署关键任务应用程序来说非常重要。

    现在,你可以使用KafkaJava API或其他Kafka客户端。Confluent Blog为多种编程语言提供了官方客户端,如PythonGo,这两种编程语言都适用于机器学习应用程序。

    自动机器学习(AKA AutoML 

    此处所述:

    自动机器学习(AutoML)是一个炙手可热的新领域,旨在使您轻松选择不同的机器学习算法,其参数设置和预处理方法提高了在大数据中检测复杂模式的能力。

    使用AutoML,你不需要学习任何关于机器学习的知识就可以构建分析模型。 AutoML使用决策树、聚类、神经网络等不同的实现方式来构建和比较不同模型,AutoML支持即开即用。你只需要上传或连接历史数据集,然后单击几个按钮即可启动该过程——不一定对于每种用例来说都是完美的,但是你可以很轻松的改进许多现有的流程,而无需使用罕见且昂贵的数据科学家。

    DataRobotGoogle AutoML是这个领域众多知名云产品中的两个。H2O AutoML被集成到其开源的机器学习框架中,同时它们也提供了一个非常好的基于UI的商业产品,称为无人驾驶汽车AI。我强烈建议在任何一个AutoML工具上花费30分钟的时间来研究下,来看看现在的人工智能工具如何发展,这真的很吸引人。

    AutoMLApache Kafka生态系统

    大多数AutoML工具都提供了模型的部署。你可以访问分析模型,即通过一个REST接口,而不是像Kafka可扩展的事件驱动架构这样的的完美解决方案。 有一个好消息就是:许多AutoML解决方案还允许导出其生成的模型,以便将它们部署到你的应用程序中。例如,在H2O开源框架中的AutoML只是众多选择之一。您只需在你选择的编程语言(RPythonScalaWeb UI)中使用另外一个操作:

    d4e38edba441cd223dfa7fedbb0e9f461f2ac6f8

    这和构建线性回归方法、决策树或神经网络比较类似。其结果是生成的Java代码,你可以很轻松地将其嵌入到Kafka Streams微服务或任何其他的Kafka应用程序中去。借助AutoML,你无需对机器学习有特别深入的了解,同样也可以构建和部署高度可扩展的机器学习。

    ML平台:UberMichelangelo平台; NetflixMeson平台

    科技巨头通常比“传统企业”早几年,他们早在几年前就已经建立了你今天或明天想要建造的东西。同样,ML平台也不例外。编写一个来训练分析模型的机器学习源代码只是真实世界ML基础设施中非常小的一部分。你需要考虑整个开发过程,下图显示了ML系统中隐藏的技术结构

    1dc5cbc51d59ced28596e77d2b686bd28fb11dfc

    你可能会用不同的技术来构建几个分析模型,并非所有内容都将在你的SparkFlink聚类或单个云基础架构中构建。你可以在公共云中的一些大而昂贵的GPU上运行TensorFlow来构建强大的神经网络。又或者你可以使用H2O构建立一些小的,但非常有效率和高性能的决策树,它能在几微秒内做出推断。 ML有许多应用用例。

    这就是为什么许多科技巨头已经建立了自己的ML平台,如UberMichelangeloNetflixMeson。这些ML平台允许他们构建和监控强大的可扩展分析模型,同时也能够灵活地为每个用例选择正确的ML技术。

    应用于ML平台的Apache Kafka生态系统

    Apache Kafka能够取得如此成功的原因之一就是它被很多科技巨头广泛使用。几乎所有伟大的硅谷公司,如LinkedInNetflixUbereBay都在谈论他们将Kafka作为其关键任务应用的中枢神经系统。许多人专注于分布式信息流平台,但是我们也看到越来越多的附加组件被采用,如Kafka ConnectKafka StreamsREST ProxySchema Registry以及KSQL

    再看看上面的图片,想一想:Kafka不适合ML平台吗?它可以进行训练,监控,部署,推理,配置,A / B测试等。这也许就是UberNetflix和其他许多公司已经将Kafka作为ML基础设施核心组件的原因。

    176f6be2c651989e8f64e9e655501df3d5373efa

    这一次,你不会被迫只使用一种特定的技术。Kafka最棒的设计理念之一就是:你可以一次又一次地从它的分布式提交日志中重新处理数据,这就意味着可以使用一种技术构建不同的模型作为Kafka接收器(比如Apache FlinkSpark),或者连接不同的技术,如:用于本地测试的scikit-learn,运行在Google Cloud GPU上实现强大的深度学习的TensorFlow,用于AutoMLH2O节点的部署安装,以及其它的部署在Docker容器或KubernetesKafka Streams ML的一些应用程序。所有这些ML应用程序都会按照自己的步调并行地使用数据,不过他们经常性的必须这么做。

    这个例子很好的说明了如何使用KafkaKafka Streams来自动训练以及对可扩展ML微服务的部署。它没有必要再添加另一个大数据集群,这就是在你的ML应用程序上使用Kafka StreamsKSQL代替其他流处理框架的主要区别之一。

    Apache Kafka和深度学习:OOP会议上的幻灯片

    在对Apache Kafka生态系统和机器学习/深度学习的新趋势的所有讨论的同时,也展示了作者在OOP 2018会议上的演讲中展示幻灯片幻灯片请点击原文观看。

    我还使用了Apache KafkaKafka Streams以及不同的开源ML框架(H2OTensorFlowDeepLearning4jDL4J)构建了一些示例。GitHub项目显示了将分析模型部署到高度可扩展的容错任务关键型Kafka微服务上是一件很容易的事。我们也很快将会推出一个KSQL演示。

    本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

    文章原标题《5 Machine Learning Trends for 2018 Combined With Apache Kafka Ecosystem》,译者:Mags,审校:袁虎。

    文章为简译,更为详细的内容,请查看原文


    展开全文
  • Apache Kafka机器学习(ML)之间的关系是一个有趣的话题,我在如何使用Apache Kafka在生产中构建和部署可伸缩机器学习以及使用Apache Kafka推动尖端机器学习方面写了很多。 这篇文章介绍了构建机器学习基础架构的...

    在优锐课的java学习分享中,这篇文章探讨了构建ML基础结构的特定部分:在Kafka应用程序中部署分析模型以进行实时预测。

    Apache Kafka与机器学习(ML)之间的关系是一个有趣的话题,我在如何使用Apache Kafka在生产中构建和部署可伸缩机器学习以及使用Apache Kafka推动尖端机器学习方面写了很多。

    这篇文章介绍了构建机器学习基础架构的特定部分:在Kafka应用程序中部署分析模型以进行实时预测。

    模型训练和模型部署可以是两个单独的过程。但是,你还可以使用许多相同的步骤进行集成和数据预处理,因为你经常需要对模型训练和模型推理执行相同的数据集成,过滤,扩充和聚合。

    我们将讨论和比较两种不同的模型部署选项:具有远程过程调用(RPC)的模型服务器以及将模型本地嵌入到Kafka客户端应用程序中。我们的示例专门使用TensorFlow,但基本原理也适用于其他机器学习/深度学习框架或产品,例如H2O.ai,Deeplearning4j,Google的云机器学习引擎和SAS。

    TensorFlow —一个用于机器学习/深度学习的开源库
    TensorFlow是一个用于高性能数值计算的开源软件库。 其灵活的体系结构允许在从台式机到服务器集群到移动和边缘设备的各种平台(CPU,GPU,TPU等)上轻松部署计算。 它最初由Google的AI组织中的Google Brain团队的研究人员和工程师开发,为机器学习和深度学习提供了强大的支持,并在许多领域中得到使用。 TensorFlow是一个完整的生态系统,而不仅仅是一个组件。

    鉴于此博文专注于模型服务,我们主要对SavedModel对象感兴趣,该对象存储了经过训练的模型,并且TensorFlow Serving作为模型服务器:

    SavedModel本质上是一个二进制文件,已使用协议缓冲区(Protobuf)进行了序列化。 用C,Python,Java等生成的类可以加载,保存和访问数据。 文件格式是人类可读的TextFormat(.pbtxt)或压缩的二进制协议缓冲区(.pb)。 图对象是TensorFlow中计算的基础。 权重保存在单独的检查点文件中。

    由于我们专注于TensorFlow模型的部署,因此预先训练模型的方式并不重要。 你可以利用Cloud ML Engine及其Google Cloud Platform(GCP)生态系统等云服务和集成管道,也可以构建自己的管道进行模型训练。 Kafka不仅可以在模型部署中发挥重要作用,而且在数据集成,预处理和监视中也可以发挥关键作用。

    使用模型服务器和RPC进行流处理

    模型服务器可以自我管理,也可以由分析供应商或云提供商托管。 模型服务器不仅为模型推理部署和缓存模型,而且还提供附加功能,例如版本控制或A / B测试。 从应用程序到模型服务器的通信通常是通过RPC通过HTTP或gRPC完成的。 对于每一个事件,Kafka应用程序与模型服务器之间都会进行这种请求-响应通信。

    有许多型号服务器可用。 你可以从Seldon Server,PredictionIO和Hydrosphere.io等开源模型服务器中进行选择,也可以利用H2O.ai,DataRobot,IBM或SAS等分析供应商的模型服务器。

    本文使用TensorFlow Serving,即TensorFlow的模型服务器。 它可以是自托管的,也可以使用Cloud ML Engine服务。 TensorFlow Serving具有以下特征:

    包含gRPC和HTTP端点
    执行模型版本控制而无需更改任何客户端代码
    计划将单个推理请求分组为批,以便联合执行
    优化推理时间以最小化延迟
    支持许多可服务项(可服务项是模型或用于提供与模型一起提供的数据的任务):
    TensorFlow模型
    嵌入
    词汇查询表
    功能转换
    非基于TensorFlow的模型
    能够canarying和A / B测试的

    以下是Kafka应用程序与模型服务器之间的通信方式:

    The process for implementing a Kafka application is straightforward. 实施Kafka应用程序的过程非常简单。 以下是Kafka Streams应用程序和RPC到TensorFlow服务的代码段:

    1.导入Kafka和TensorFlow服务API:
    Java

    import org.apache.kafka.common.serialization.Serdes;
    import org.apache.kafka.streams.KafkaStreams;
    import org.apache.kafka.streams.StreamsBuilder;
    import org.apache.kafka.streams.StreamsConfig;
    import org.apache.kafka.streams.kstream.KStream;
    import com.github.megachucky.kafka.streams.machinelearning.TensorflowObjectRecogniser;
    

    2.配置Kafka Streams应用程序:
    Java

    // Configure Kafka Streams Application
    final String bootstrapServers = args.length > 0 ? args[0] : "localhost:9092";
    final Properties streamsConfiguration = new Properties();
    // Give the Streams application a unique name. The name must be unique
    // in the Kafka cluster against which the application is run.
    streamsConfiguration.put(StreamsConfig.APPLICATION_ID_CONFIG, "kafka-streams-tensorflow-serving-gRPC-example");
    // Where to find Kafka broker(s).
    streamsConfiguration.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
    

    3.执行RPC进行TensorFlow服务(如果RPC失败,则捕获异常)
    Java

    KStream<String, Object> transformedMessage = imageInputLines.mapValues(value -> {
    
                System.out.println("Image path: " + value);
    
    
                imagePath = value;
    
    
                TensorflowObjectRecogniser recogniser = new TensorflowObjectRecogniser(server, port);
    
    
                System.out.println("Image = " + imagePath);
    
                InputStream jpegStream;
    
                try {
    
                    jpegStream = new FileInputStream(imagePath);
    
                    
    
                    // Prediction of the TensorFlow Image Recognition model:
    
                    List<Map.Entry<String, Double>> list = recogniser.recognise(jpegStream);
    
                    String prediction = list.toString();
    
                    System.out.println("Prediction: " + prediction);
    
                    recogniser.close();
    
                    jpegStream.close();
    
       
    
                                     return prediction;
    
                } catch (Exception e) {
    
                    e.printStackTrace();
    
          
    
                                     return Collections.emptyList().toString();
    
                }
    
    
            });
    

    4.启动Kafka应用程序:
    Java

    // Start Kafka Streams Application to process new incoming images from the Input Topic
    final KafkaStreams streams = new KafkaStreams(builder.build(), streamsConfiguration);
    streams.start();
    

    文章写到这里,下次再更新第二章节。

    喜欢这篇文章的可以点个赞,欢迎大家留言评论,记得关注我,每天持续更新技术干货、职场趣事、海量面试资料等等
    如果你对java技术很感兴趣也可以加入我的java学习群 V–(ddmsiqi)来交流学习,里面都是同行,验证【CSDN2】有资源共享。
    不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代
    在这里插入图片描述

    展开全文
  • 使用Apache Kafka在生产环境构建大规模机器学习智能实时应用为所有行业带来了革命性变化。机器学习及其分支深度学习正蓬勃发展,因为机器学习让计算机能够在无人指引的情况下挖掘深藏的洞见。这种能力正是多种领域所...
    
      
        

    使用Apache Kafka在生产环境构建大规模机器学习

    智能实时应用为所有行业带来了革命性变化。机器学习及其分支深度学习正蓬勃发展,因为机器学习让计算机能够在无人指引的情况下挖掘深藏的洞见。这种能力正是多种领域所需要的,如非结构化数据分析、图像识别、语音识别和智能决策,这完全不同于传统的编程方式(如Java、.NET或Python)。

    机器学习并非新生事物,大数据集的出现和处理能力的进步让每一个企业都具备了构建分析模型的能力。各行各业都在将分析模型应用在企业应用和微服务上,用以增长利润、降低成本,或者改善用户体验。

    这篇文章将介绍机器学习在任务关键型实时系统中的应用,将Apache Kafka作为中心化的、可伸缩的任务关键型系统,同时还将介绍使用Kafka Streams API来构建智能流式应用。

    可伸缩的任务关键型实时系统

    互联网、智能手机和持续在线思维的出现改变了人们的行为方式。其中就包括人们对与设备、产品和服务交互方式的期待:人们希望能够实时地获得信息。这也给企业带来了巨大挑战:如何快速地采取行动才能把握先机。批处理系统已经无法满足需求,取而代之的应该是实时系统。

    传统企业可以实现非常强大的实时处理机制来满足日常的业务需求。这通常需要借助领域知识来理解各种应用场景,并构建新的流式分析模型来增加业务价值。流式处理已经存在于各个行业中。

    • 欺诈检测。将支付信息与历史数据或已知的模式关联起来,在欺诈发生之前将其检测出来。这对处理速度提出了很高的要求,因为你必须在交易发生之前将其取消掉。

    • 交叉销售。利用客户数据为客户提供定制化的销售方案或折扣,争取让客户在离开商店之前成交订单。这种情况下,你需要利用实时数据(比如位置数据、支付数据)和历史数据(来自你的CRM系统或Loyalty平台)为每个客户提供最合适的销售方案。

    • 预测性维护。使用机器数据来预测机器故障,在发生故障之前将旧的部件更换掉。从实际情况来看,这可以节省大量的金钱(制造)、增加利润(自动售卖机)或提升用户体验(电信网络故障预测)。

    所有这些场景都有一个共同点,那就是在数据产生的同时处理数据。你必须尽快地处理已经发生的事件,是主动处理,而不是被动处理。你的系统需要在欺诈发生之前,或在顾客离开商店之前,或在机器发生故障之前做出决策。

    当然,这并不是说一定要求毫秒级别的响应时间。在某些情况下,即使是批处理也是没有问题的。比如,大部分制造行业或物联网场景中,预测性维护可以允许几个小时甚至几天的时间间隔,更换部件可以在当天或当周内完成。这样可以节省大量的金钱,因为你可以在问题发生之前检测出它们,避免造成更大范围的损失。

    在智能实时系统中应用机器学习

    任务关键型实时应用系统在不使用机器学习的情况下已经存在多年,那为什么说机器学习将给这一领域带来革命性的变化?

    如果你读过有关机器学习及其分支深度学习的资料,你经常会看到如下的一些场景。

    • 图像识别。上传一张图片到Facebook上,图像中的物体——比如你的朋友、背景或你手中的啤酒——就会被分析出来。

    • 语音翻译。机器人因此可以通过生成的文本或声音与人类进行互动。

    • 仿人类行为。IBM Watson击败了最强大的Jeopardy选手;Google的AlphaGo战胜了最专业的Go选手。

    上述的例子与那些想要构建创新型应用系统并从竞争当中脱颖而出的企业有着越来越紧密的联系。类似的,我们可以将机器学习应用在“传统场景”里,比如欺诈检测、交叉销售或预测性维护,以此来增强业务流程,基于数据驱动做出更好的决策。已有的业务流程可以保持原样,你只需要将业务逻辑和规则替换成分析模型来改进自动化决策即可。

    下面将介绍如何将Kafka作为流式平台来构建、运营和监控大规模、任务关键型的分析模型。

    机器学习——分析模型的开发生命周期

    先让我们了解一下分析模型的开发生命周期:

    1. 构建:使用机器学习算法(如GLM、Naive Bayes、Random Forest、Gradient Boosting、Neural Networks等)分析历史数据,挖掘洞见。在这一步需要进行数据的收集、准备和转换。

    2. 验证:使用一些验证技术(如交叉验证)再次确认分析模型能够处理新的输入数据。

    3. 运营:将分析模型部署到生产环境。

    4. 监控:观察分析模型的输出。这里包含了两部分内容:在达到某个阈值时发送告警(业务层面的监控);保持结果的准确性和度量指标的质量(分析模型的监控)。

    5. 持续循环:重复上述步骤来改进分析模型,可以通过手动批次的方式来完成,也可以在线完成,在新事件达到时更新模型。

    整个团队在一开始就要在一起工作,并考虑如下问题:

    • 它需要在生产环境有怎样的表现?

    • 生产环境系统支持哪些技术?

    • 如何监控模型的推理和性能?

    • 是构建一个完整的机器学习基础设施还是使用已有的框架来分离模型训练和模型推理?

    例如,一个数据科学家开发出一个Python程序,创建了一个精确度非常高的模型,但如果你无法将它部署到生产环境(因为它无法伸缩也无法表现得如预期一样),它就毫无用处。这个时候,或许你已经可以意识到为什么Apache Kafka如此适合用在生产环境的分析模型上。下面的章节将介绍使用Apache Kafka作为流式平台以及结合机器学习或深度学习框架来构建、运营和监控分析模型。

    机器学习和Apache Kafka架构参考

    在了解了机器学习开发生命周期之后,接下来我们来看一个用于构建、营运和监控分析模型的架构参考:

    该架构的核心之处在于它使用Kafka作为各种数据源、模型构建环境以及生产环境应用程序之间的媒介。

    用于构建模型的特征数据从各个应用程序和数据库流入Kafka。模型构建环境可以是一个数据仓库、一个大数据环境(如Spark或Hadoop)或者一个运行Python脚本的服务器。模型可以被部署在某个地方,只要生产环境的应用程序能够访问到它们,并把它们应用在输入样本数据上。生产环境的应用程序可以从Kafka数据管道接收数据,或者使用Kafka Streams API。

    Kafka成为整个系统的中枢神经,这也带来了如下好处:

    • 数据管道变得更简单的了。

    • 分析模型的构建和服务之间不再耦合。

    • 根据具体情况使用实时模式或批处理模式。

    • 分析模型可以被部署到高性能、可伸缩的任务关键型环境里。

    除了Kafka本身,还可以加入Kafka生态系统的其他开源组件,如Kafka Connect、Kafka Streams、Confluent REST Proxy、Confluent Schema Registry或者KSQL,而不仅仅是使用Kafka Producer和Consumer API。

    下面两个章节将介绍如何使用Kafka Steams API来部署分析模型。

    机器学习开发生命周期示例

    现在我们来深入了解一个围绕Kafka构建的机器学习架构示例:

    (点击放大图像)

    在绿色区域,我们可以看到用于构建和验证分析模型的组件。在橙色区域,我们可以看到流式平台,分析模型就部署在该平台上,用于对新事件做出推理以及执行监控。

    数据生产者持续地发送事件,分析平台以批次或实时的方式接收这些数据,然后使用机器学习算法来构建分析模型。分析模型被部署在流式平台上,流式平台将分析模型应用在事件上,从而推理出结果(也就是预测),最后结果被发送给数据消费者。

    在这个例子里,我们将模型训练和模型推理分离开,这在当今的大部分机器学习项目中是很常见的做法。

    模型训练

    数据经由Kafka集中到Hadoop集群上,进而使用H2O.ai分析这些历史数据,构建出神经网络。数据科学家可以使用各种接口来完成这项工作——R语言、Python、Scala、Web UI Notebook等。模型的构建和验证就发生在Hadoop集群上,最后得到一个Java字节码形式的分析模型,接下来就可以将它们部署到生产环境。

    模型推理

    神经网络被部署到Kafka Streams应用程序里。Streams应用程序可以运行在任何地方,它可以作为单独的Java进程运行,也可以运行在Docker容器里或Kubernetes集群上。模型被实时地应用在每一个新生成的事件上。Kafka Streams借助Kafka集群为我们提供了可伸缩、任务关键型的分析模型操作以及高性能的模型推理。

    在线模型训练

    除了分离模型训练和模型推理,我们也可以为在线模型训练构建一个完整的基础设施。很多巨头科技公司(比如LinkedIn)在过去就将Apache Kafka作为模型的输入、训练、推理和输出的基础。当然,这种做法存在一些权衡。大部分传统的公司会使用第一种方案,它可以满足现今大部分的使用场景。

    模型监控和告警

    将分析模型部署到生产环境只是第一步,对模型的准确性、分数、SLA和其他度量指标进行监控并自动实时地发出告警也同样重要。度量指标可以通过Kafka反馈给机器学习工具,用于改进模型。

    使用H2O.ai开发分析模型

    以下是使用H2O来构建分析模型的例子。H2O是一个开源的机器学习框架,它在内部使用了其他框架,如Apache Spark或TensorFlow。数据科学家可以在上面使用他们喜欢的编程语言,如R语言、Python或Scala。H2O引擎会生成Java字节码,可以很方便地通过Streams进行伸缩。

    下面是使用H2O.ai Flow(Web UI或Notebook)和R语言构建分析模型的截图:

    (点击放大图像)

    输出的是一个字节码形式的分析模型,它可以直接部署到任务关键型的生产环境里。因此,我们就不再需要花时间去考虑如何将Python或R生成的模型“移植”到基于Java平台的生产系统里。

    这个例子使用H2O来产生Java字节码,当然,你也可以使用其他框架(如TensorFlow、Apache MXNet或DeepLearning4J)完成类似的工作。

    使用Kafka Steams API部署分析模型

    使用Kafka Streams来部署分析模型非常简单,只要将模型添加到基于Streams构建的应用程序里就可以了,然后将其应用在新生成的事件上。

    (点击放大图像)

    因为Kafka Streams应用程序实际上用到了Kafka的特性,所以已经具备了伸缩性和任务关键型用途,不需要对模型做出任何调整。

    例子的代码可以在GitHub上找到:https://github.com/kaiwaehner/ kafka-streams-machine-learning-examples。拉取项目代码,运行maven构建命令,就可以看到H2O模型是如何与Kafka Streams应用集成在一起的。后续我们会不断扩充这个例子,加入更多复杂的应用场景,不仅使用H2O,还会加入TensorFlow和DeepLearning4J。

    借助一些CI/CD工具,如Maven、Gradle、Chef、Puppet、Jenkins,机器学习与流式处理相结合的方式可以很容易地被集成到自动化持续集成工作流当中。

    使用开放标准在训练和推理之间共享分析模型

    以下是其他一些用于在数据科学家之间共享和更新模型以及DevOps团队部署模型的方式。

    • 原生模型(Native Model):直接将模型部署到流式处理引擎里,比如通过JNI将Python模型部署到Java应用程序里

    • 字节码生成(Generated Code):不管使用哪一种编程语言来构建模型,都可以通过生成二进制库或源代码的方式将它们部署到流式处理应用里。它们经过优化,可以获得更好的性能。例如,数据科学家使用R语言或Python训练的模型可以转成Java字节码的形式。

    • 外部服务器(External Server):以请求和响应的方式调用外部的分析服务器。外部调用可以通过SAS、MATLAB、KNIME或H2O这类分析工具来完成,它们一般会提供REST接口。

    • PMML(预测模型标记语言):这是一种比较古老的XML标准,尽管还存在一些局限和不足,一些分析工具仍然在支持它。

    • PFA(可移植分析格式):一种新标准,可以为模型提供预处理,利用了JSON、Apache Avro,并支持Hadrian。不过大部分分析工具并没有为它提供开箱即用的支持。

    以上这些方案之间存在权衡的关系。例如,PFA带来了独立性和可移植性,但同时也存在一些限制。从Kafka角度来看,如果要部署大规模的任务关键型系统,使用Java字节码生成的方式会更加合适,因为这种方式具有更高的性能、更容易伸缩,并且更容易嵌入到Kafka Streams应用中。同时,在进行模型预测时,它免去了与外部REST服务器交互的成本。

    结论

    机器学习为行业带来了价值,Kafka迅速成为很多企业的中枢神经系统。我们可以借助Kafka来:

    • 进行实时的模型推理

    • 监控和告警

    • 在线训练模型

    • 将数据摄取到批次层或分析集群上进行分析模型的训练




    福布斯重磅预测:机器学习之火愈烧愈烈,开发者甩开膀子干!

     来源: AI前线 Louis Columbus  


    作者|Louis Columbus
    译者|Sambodhi
    编辑|Debra,Emily



    • 2013 年到 2017 年,机器学习专利的复合年增长率(Compound Annual Growth Rate,CAGR) 为 34%,是所有授予专利的第三大增长类别。


    • International Data Corporation(IDC)预测,人工智能和机器学习的支出将从 2017 年的 12 亿美元增长至 2021 年的 57.6 亿美元。


    • Deloitte Global 预测,与 2017 年相比,2018 年机器学习试点和实施的数量将翻一番,到 2020 年再翻一番。

    这些有趣的见解来自 Forbes 最新的机器学习市场预测、市场估计和预测的最新系列。机器学习对全球许多最重要的数据产业的潜在影响,继续推动风险投资、私募股权(PE)融资、并购和收购,这些都集中在赢得这一领域知识产权(IP)和专利的竞赛。

    机器学习 IP 发展最快的领域之一是定制芯片组的研发。Deloitte Global 预测今年全球数据中心将使用高达 80 万块机器学习芯片。企业将在 2018 年加大对机器学习项目的研究、投资和试点。尽管这些方法在各种预测、市场估计和预测方面有所不同,但都反映了机器学习如何提高企业的敏锐度和洞察力,使它们能够更快、更有利地增长。

    从机器学习市场预测、市场估计和预测的收集中得出的关键结论如下:

    • 在商业智能(BI)和分析市场中,支持机器学习的数据科学平台预计到 2021 年将以 13% 的复合年增长率增长。 数据科学平台的表现将超过更广泛的商业智能和分析市场,该市场预计在同一时期将以 8% 的复合年增长率增长。数据科学平台的价值将从 2017 年的 3 亿美元增长到 2021 年的 4.8 亿美元。

    资料来源:An Investors' Guide to Artificial Intelligence,J.P. Morgan 著,2017 年 11 月 27 日。(110 pp., PDF, no opt-in).

    https://flamingo.ai/wp-content/uploads/2017/11/JPMorganAnInvestorsGuideToArtificialIntelligencev2.pdf


    • 2013 年至 2017 年,机器学习专利的复合年增长率为 34%,是所有授予专利的第三大增长类别。 IBM、Microsoft、Google、LinkedIn、Facebook、Intel 以及 Fujitsu 是 2017 年最大的七家机器学习专利生产商。


       资料来源:IFI Claims Patent Services (Patent Analytics):8 Fastest Grow       ing Technologies SlideShare Presentation


     https://www.ificlaims.com/rankings-8-fast-growing.htm

    • 61% 的机构最经常选择机器学习 / 人工智能作为公司明年最重要的数据计划。 在这些表示积极使用机器学习和人工智能的受访机构中,58% 的受访者表示他们在生产中使用了模型。

    资料来源:2018 Outlook: Machine Learning and Artificial Intelligence, A Survey of 1,600+ Data Professionals (14 pp., PDF, no opt-in).

    http://blog.memsql.com/2018-outlook-machine-learning-and-artificial-intelligence/


    • 包括 Amazon、Apple、Google、Tesla 和 Microsoft 在内的科技市场领军企业,在机器学习和人工智能投资领域处于领先地位。 每家企业都将机器学习设计成未来新一代的产品,并使用机器学习和人工智能来改善客户体验并提高销售渠道的效率。

    资料来源:Will You Embrace AI Fast Enough? AT Kearney 著,2018 年 1 月。

    https://www.atkearney.com/operations-performance-transformation/article?/a/will-you-embrace-ai-fast-enough


    • 根据 Forrester 在 2017 年对 23 家企业应用的 14 项评估标准,SAS、IBM 和 SAP 在预测分析和机器学习市场占领先地位。 Forrester 预测,预测分析和机器学习(Predictive Analytics & Machine Learning ,PAML)市场将在 2021 年以 21% 的复合年增长率增长,这点体现在客户咨询和客户采购活动的增加。

    资料来源:Data Science Association, Predictive Analytics & Machine Learning Vendors, 2017 and The Forrester Wave™: Predictive Analytics And Machine Learning Solutions, Q1 2017 courtesy of SAP.

    http://www.datascienceassn.org/content/predictive-analytics-machine-learning-vendors-2017

    https://assets.cdn.sap.com/sapcom/docs/2017/03/6cd842e0-ac7c-0010-82c7-eda71af511fa.pdf


    • Deloitte Global 预测,与 2017 年相比,2018 年的机器学习试点和实施的数量将翻一番。 推动机器学习试验人员发展步伐的因素,包括对应用程序接口(Application Program Interfaces,API)的更为广泛的部署、数据科学任务的自动化、减少训练数据的需求、加速训练以及更深入的解释结果。

    资料来源: Deloitte Global Predictions 2018 Infographics.

    https://www2.deloitte.com/global/en/pages/technology-media-and-telecommunications/articles/tmt-predictions.html


    • 60% 处于采用机器学习不同阶段的机构中,其中有近一半(45%)认为,这门技术已经引起了更为广泛的数据分析和预测。 35% 的受访者还发现,机器学习正在增强其下一代产品的研发能力。

    资料来源: Google & MIT Technology Review study: Machine Learning: The New Proving Ground for Competitive Advantage (10 pp., PDF, no opt-in)

    https://s3.amazonaws.com/files.technologyreview.com/whitepapers/MITTR_GoogleforWork_Survey.pdf


    • Mckinsey 估计,2016 年人工智能的年度外部投资总额在 8 亿~12 亿美元之间,机器学习吸引了近 60% 的投资。 机器人和语音识别是两个最受欢迎的投资领域。由于基于代码的创业可以快速扩展从而包含新功能,因此投资者最青睐机器学习初创公司。基于软件的机器学习初创公司比那些成本更高、基于机器的机器人技术同行公司更受青睐,而后者通常没有所对应的软件机构。由于这些因素,这一领域中企业并购活动激增。下图显示了研究中按类别划分的外部投资分布情况。

    资料来源:McKinsey Global Institute Study, Artificial Intelligence, The Next Digital Frontier (80 pp., PDF, free, no opt-in).

    https://www.mckinsey.com/mgi/overview

    http://www.mckinsey.com/~/media/McKinsey/Industries/Advanced%20Electronics/Our%20Insights/How%20artificial%20intelligence%20can%20deliver%20real%20value%20to%20companies/MGI-Artificial-Intelligence-Discussion-paper.ashx


    • Deloitte Global 预测,数据中心使用的机器学习芯片将从 2016 年的 10~20 万块增长至今年的 80 万块。 其中至少 25% 是现场可编程门阵列(Field Programmable Gate Arrays,FPGA)和专用集成电路(Application Specific Integrated Circuits,ASIC)。Deloitte 发现,到 2020 年,机器学习加速技术的总可用市场(Total Available Market ,TAM)有望达到 26 亿美元。

    资料来源: Deloitte Global Predictions 2018.

    https://www2.deloitte.com/global/en/pages/technology-media-and-telecommunications/articles/tmt-predictions.html


    • Amazon 依靠机器学习来提高客户在其关键业务领域的体验,包括产品推荐、替代产品预测、欺诈检测、元数据验证和知识获取。 如欲了解更多详情,请参阅 Amazon Web Services 发布的 Machine Learning At Amazon(47 pp., PDF no opt-in).

    http://www.wsdm-conference.org/2017/wp-content/uploads/2017/02/Machine-Learning-@-Amazon.pdf


    • International Data Corporation (IDC) 预测,人工智能和机器学习的支出将从 2017 年的 12 亿美元增长到 2021 年的 57.6 亿美元。

    资料来源:Machine learning: things are getting intense. Deloitte (6 pp., PDF. No opt-in)

    https://www2.deloitte.com/content/dam/Deloitte/global/Images/infographics/technologymediatelecommunications/gx-deloitte-tmt-2018-intense-machine-learning-report.pdf


    • 预计到 2022 年,全球机器学习市场将从 2017 年 1.41 亿美元增长到 8.81 亿美元,达到 44.1% 的复合年增长率。 促进市场全球快速增长的因素包括在数据聚合、集成和分析以及更具可扩展性的云平台上表现出色的新技术。

    资料来源: Machine Learning Market - Global Forecast to 2022 - Market Overview & Industry Trends.

    https://www.prnewswire.com/news-releases/machine-learning-market---global-forecast-to-2022---market-overview--industry-trends-300531729.html


    • 全球认知和人工智能系统的收入将从 2017 年的 12.5 亿美元增长至 2020 年的逾 46 亿美元。

    资料来源:Worldwide Spending on Cognitive and Artificial Intelligence Systems Forecast to Reach $12.5 Billion This Year, According to New IDC Spending Guide.

    https://www.idc.com/getdoc.jsp?containerId=prUS42439617

    • 机器学习市场数据来源:

    2018 Outlook: Machine Learning and Artificial Intelligence, A Survey of 1,600+ Data Professionals. MEMSQL. (14 pp., PDF, no opt-in)

    http://blog.memsql.com/2018-outlook-machine-learning-and-artificial-intelligence/

    Advice for applying Machine Learning, Andrew Ng, Stanford University. (30 pp., PDF, no opt-in) >

    http://cs229.stanford.edu/materials/ML-advice.pdf

    An Executive’s Guide to Machine Learning, McKinsey Quarterly. June 2015

    https://www.mckinsey.com/industries/high-tech/our-insights/an-executives-guide-to-machine-learning

    An Investors' Guide to Artificial Intelligence, J.P. Morgan. November 27, 2017 (110 pp., PDF, no opt-in)

    https://flamingo.ai/wp-content/uploads/2017/11/JPMorganAnInvestorsGuideToArtificialIntelligencev2.pdf

    Artificial intelligence and machine learning in financial services Market developments and financial stability implications, Financial Stability Board. (45 pp., PDF, no opt-in)

    http://www.fsb.org/wp-content/uploads/P011117.pdf

    Big Data and AI Strategies Machine Learning and Alternative Data Approach to Investing, J.P. Morgan. (280 pp., PDF. No opt-in).

    http://valuesimplex.com/articles/JPM.pdf

    Google & MIT Technology Review study: Machine Learning: The New Proving Ground for Competitive Advantage (10 pp., PDF, no opt-in).

    https://s3.amazonaws.com/files.technologyreview.com/whitepapers/MITTR_GoogleforWork_Survey.pdf

    Hitting the accelerator: the next generation of machine-learning chips, Deloitte. (6 pp., PDF, no opt-in).

    https://www2.deloitte.com/content/dam/Deloitte/global/Images/infographics/technologymediatelecommunications/gx-deloitte-tmt-2018-nextgen-machine-learning-report.pdf

    How Do Machines Learn? Algorithms are the Key to Machine Learning. Booz Allen Hamilton. (Infographic)

    https://www.boozallen.com/s/insight/blog/how-do-machines-learn.html

    IBM Predicts Demand For Data Scientists Will Soar 28% By 2020, Forbes. May 13, 2017

    https://www.forbes.com/sites/louiscolumbus/2017/05/13/ibm-predicts-demand-for-data-scientists-will-soar-28-by-2020/?utm_content=buffer91f1f&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer#18f2160c7e3b

    Machine Learning At Amazon, Amazon Web Services (47 pp., PDF no opt-in).

    http://www.wsdm-conference.org/2017/wp-content/uploads/2017/02/Machine-Learning-@-Amazon.pdf

    Machine Learning Evolution (infographic). PwC. April 17, 2017

    http://usblogs.pwc.com/emerging-technology/machine-learning-evolution-infographic/

    Machine learning: things are getting intense. Deloitte (6 pp., PDF. No opt-in)

    https://www2.deloitte.com/content/dam/Deloitte/global/Images/infographics/technologymediatelecommunications/gx-deloitte-tmt-2018-intense-machine-learning-report.pdf

    Machine Learning: The Power and Promise Of Computers That Learn By Example. The Royal Society’s Machine Learning Project (128 pp., PDF, no opt-in)

    https://royalsociety.org/~/media/policy/projects/machine-learning/publications/machine-learning-report.pdf

    McKinsey Global Institute Study, Artificial Intelligence, The Next Digital Frontier (80 pp., PDF, free, no opt-in).

    https://www.mckinsey.com/mgi/overview

    McKinsey's State Of Machine Learning And AI, 2017, Forbes, July 9, 2017.

    https://www.forbes.com/sites/louiscolumbus/2017/07/09/mckinseys-state-of-machine-learning-and-ai-2017/#5118a2575b64

    Predictions 2017: Artificial Intelligence Will Drive The Insights Revolution. Forrester, November 2, 2016 (9 pp., PDF, no opt-in).

    https://go.forrester.com/wp-content/uploads/Forrester_Predictions_2017_-Artificial_Intelligence_Will_Drive_The_Insights_Revolution.pdf

    Risks And Rewards: Scenarios around the economic impact of machine learning, The Economist Intelligence Unit. (80 pp., PDF, no opt-in).

    http://eiuperspectives.economist.com/sites/default/files/Risks_and_rewards_2018.2.7.pdf

    Smartening up with Artificial Intelligence (AI) - What’s in it for Germany and its Industrial Sector? Digital/McKinsey & Company. (52 pp., PDF, no opt-in).

    https://www.mckinsey.de/files/170419_mckinsey_ki_final_m.pdf

    So What Is Machine Learning Anyway? Business Insider. Nov. 23, 2017

    http://www.businessinsider.com/what-is-machine-learning-quick-explainer-2017-11

    The 10 Most Innovative Companies In AI/Machine Learning 2017, Wired.

    https://www.fastcompany.com/3069025/the-10-most-innovative-companies-in-ai-machine-learning-2017

    The Business Impact and Use Cases for Artificial Intelligence. Gartner (28 pp., PDF, no opt-in).

    https://www.gartnerinfo.com/apacemergingtechtaipei/TheBusinessImpactandUseCasesforAI_TracyTsai.pdf

    The Build-Or-Buy Dilemma In AI, Boston Consulting Group. January 4, 2018.

    https://www.bcg.com/publications/2018/build-buy-dilemma-artificial-intelligence.aspx?linkId=47806407

    The Next Generation of Medicine: Artificial Intelligence and Machine Learning, TM Capital (25 pp., PDF, free, opt-in).

    https://www.tmcapital.com/wp-content/uploads/2017/11/TMCC20AI20Spotlight20-202017.10.2420vF.PDF

    The Roadmap to Enterprise AI, Rage Networks Brief based on Gartner research. (17 pp., PDF, no opt-in).

    https://www.gartner.com/imagesrv/media-products/pdf/rage_frameworks/rage-frameworks-1-34JHQ0K.pdf

    Will You Embrace AI Fast Enough? AT Kearney. January 2018

    https://www.atkearney.com/operations-performance-transformation/article?/a/will-you-embrace-ai-fast-enough




    人工智能赛博物理操作系统

    AI-CPS OS

    人工智能赛博物理操作系统新一代技术+商业操作系统“AI-CPS OS:云计算+大数据+物联网+区块链+人工智能)分支用来的今天,企业领导者必须了解如何将“技术”全面渗入整个公司、产品等“商业”场景中,利用AI-CPS OS形成数字化+智能化力量,实现行业的重新布局、企业的重新构建和自我的焕然新生。


    AI-CPS OS的真正价值并不来自构成技术或功能,而是要以一种传递独特竞争优势的方式将自动化+信息化、智造+产品+服务数据+分析一体化,这种整合方式能够释放新的业务和运营模式。如果不能实现跨功能的更大规模融合,没有颠覆现状的意愿,这些将不可能实现。


    领导者无法依靠某种单一战略方法来应对多维度的数字化变革。面对新一代技术+商业操作系统AI-CPS OS颠覆性的数字化+智能化力量,领导者必须在行业、企业与个人这三个层面都保持领先地位:

    1. 重新行业布局:你的世界观要怎样改变才算足够?你必须对行业典范进行怎样的反思?

    2. 重新构建企业:你的企业需要做出什么样的变化?你准备如何重新定义你的公司?

    3. 重新打造自己:你需要成为怎样的人?要重塑自己并在数字化+智能化时代保有领先地位,你必须如何去做?

    AI-CPS OS是数字化智能化创新平台,设计思路是将大数据、物联网、区块链和人工智能等无缝整合在云端,可以帮助企业将创新成果融入自身业务体系,实现各个前沿技术在云端的优势协同。AI-CPS OS形成的字化+智能化力量与行业、企业及个人三个层面的交叉,形成了领导力模式,使数字化融入到领导者所在企业与领导方式的核心位置:

    1. 精细种力量能够使人在更加真实、细致的层面观察与感知现实世界和数字化世界正在发生的一切,进而理解和更加精细地进行产品个性化控制、微观业务场景事件和结果控制。

    2. 智能:模型随着时间(数据)的变化而变化,整个系统就具备了智能(自学习)的能力。

    3. 高效:企业需要建立实时或者准实时的数据采集传输、模型预测和响应决策能力,这样智能就从批量性、阶段性的行为变成一个可以实时触达的行为。

    4. 不确定性:数字化变更颠覆和改变了领导者曾经仰仗的思维方式、结构和实践经验,其结果就是形成了复合不确定性这种颠覆性力量。主要的不确定性蕴含于三个领域:技术、文化、制度。

    5. 边界模糊:数字世界与现实世界的不断融合成CPS不仅让人们所知行业的核心产品、经济学定理和可能性都产生了变化,还模糊了不同行业间的界限。这种效应正在向生态系统、企业、客户、产品快速蔓延。

    AI-CPS OS形成的数字化+智能化力量通过三个方式激发经济增长:

    1. 创造虚拟劳动力,承担需要适应性和敏捷性的复杂任务,即“智能自动化”,以区别于传统的自动化解决方案;

    2. 对现有劳动力和实物资产进行有利的补充和提升,提高资本效率

    3. 人工智能的普及,将推动多行业的相关创新,开辟崭新的经济增长空间


    给决策制定者和商业领袖的建议:

    1. 超越自动化,开启新创新模式:利用具有自主学习和自我控制能力的动态机器智能,为企业创造新商机;

    2. 迎接新一代信息技术,迎接人工智能:无缝整合人类智慧与机器智能,重新

      评估未来的知识和技能类型;

    3. 制定道德规范:切实为人工智能生态系统制定道德准则,并在智能机器的开

      发过程中确定更加明晰的标准和最佳实践;

    4. 重视再分配效应:对人工智能可能带来的冲击做好准备,制定战略帮助面临

      较高失业风险的人群;

    5. 开发数字化+智能化企业所需新能力:员工团队需要积极掌握判断、沟通及想象力和创造力等人类所特有的重要能力。对于中国企业来说,创造兼具包容性和多样性的文化也非常重要。


    子曰:“君子和而不同,小人同而不和。”  《论语·子路》云计算、大数据、物联网、区块链和 人工智能,像君子一般融合,一起体现科技就是生产力。


    如果说上一次哥伦布地理大发现,拓展的是人类的物理空间。那么这一次地理大发现,拓展的就是人们的数字空间。在数学空间,建立新的商业文明,从而发现新的创富模式,为人类社会带来新的财富空间。云计算,大数据、物联网和区块链,是进入这个数字空间的船,而人工智能就是那船上的帆,哥伦布之帆!


    新一代技术+商业的人工智能赛博物理操作系统AI-CPS OS作为新一轮产业变革的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎。重构生产、分配、交换、消费等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生新技术、新产品、新产业、新业态、新模式。引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。



    产业智能官  AI-CPS


    用“人工智能赛博物理操作系统新一代技术+商业操作系统“AI-CPS OS”:云计算+大数据+物联网+区块链+人工智能)在场景中构建状态感知-实时分析-自主决策-精准执行-学习提升的认知计算和机器智能;实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链


    长按上方二维码关注微信公众号: AI-CPS,更多信息回复:


    新技术“云计算”、“大数据”、“物联网”、“区块链”、“人工智能新产业:智能制造”、智能金融”、“智能零售”、“智能驾驶”、智能城市新模式:“财富空间“工业互联网”、“数据科学家”、“赛博物理系统CPS”、“供应链金融”


    官方网站:AI-CPS.NET


    本文系“产业智能官”(公众号ID:AI-CPS)收集整理,转载请注明出处!



    版权声明产业智能官(公众号ID:AI-CPS推荐的文章,除非确实无法确认,我们都会注明作者和来源。部分文章推送时未能与原作者取得联系。若涉及版权问题,烦请原作者联系我们,与您共同协商解决。联系、投稿邮箱:erp_vip@hotmail.com




    展开全文
  • 11月异步小编带来了9本新书,关键词分别是:kafka、TensorFlow、机器学习、Python、Linux、Unix等,票选你心中最喜欢的图书,即有机会获得异步新书一本! 开奖日期:12月8日 活动规则: 1.投票你喜欢的...
  • 敲重点:  活动规则:试读样章,评论区留言说一下你对本书的一些感想,同时关注异步社区博客,并留言你想要得到的图书。  活动时间:即日起-11月30日(活动奖项公告在12月1日)  赠书数量:10本(每个品种1本) ...
  • kafka主要是用来做日志收集,可以收集用户的流量,点击行为,kafka目前版本是1.0的,其0.9的版本坑特别多,推荐大家使用0.8.2.1版本,正是spark1.6.2集成的kafka版本  大家可以去大象在线分享看看夜行侠老师的...
  • 假设每台 Kafka 服务器都是安装在专属的机器上,也就是说每台 Kafka 机器上没有混布其他服务。 通常情况下你只能假设 Kafka 会用到 70% 的带宽资源,因为总要为其他应用或进程留一些资源。 根据实际使用经验,...
  • kafka学习之路(一)——入门Kafka学习之路...一、入门..1、 简介2、 主题(Topics)、日志(Logs)3、 分布式(Distribution)4、 生产者(Producers)5、 消费者(Consumers) 一、入门1、简介Kafka 是...
  • Kafka学习和使用

    2020-06-24 17:05:09
    Kafka学习和使用 本文是基于CentOS 7.3系统环境,进行Kafka学习和使用 CentOS 7.3 一、Kafka的简介 1.1 Kafka基本概念 (1) 什么是Kafka Kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据...
  • spark + kafka实时流机器学习视频教程。感兴趣的朋友可以下载下来看看,学习学习,里面还有配套资料。
  • kafka学习心得

    2018-07-18 23:44:07
    最近项目开始使用kafka作为消息中间件,理由是支持更高的吞吐量和轻量级(相对传统的mq,如rabbit)。 与rabbitmq的不同 重broker与重consumer kafka跟rabbit的设计上有很多不同,rabbit上存在exchange、...
  • Kafka学习心得及总结

    2019-08-16 20:04:11
    Kafka 1.kafka是什么?使用场景? kafka是一个高吞吐的分布式消息队列系统。特点是生产者消费者模式,先进先出(FIFO)保证顺序,自己不丢数据,默认每隔7天清理数据。消息列队常见场景:系统之间解耦合、峰值...
  • 初始Kafka Kafka是一个分布式的发布-订阅消息系统,能够支撑海量数据的数据传递。在离线和实时的消 息处理业务系统中,Kafka都有广泛的应用。Kafka将消息持久化到磁盘中,并对消息创建了备份保证了 数据的安全。...
  • Kafka学习笔记总结

    2019-04-23 02:43:25
    Kafka Kafka相关概念 Topic Producer Consumer Consumer Group Broker Partition Replica Kafka数据流概览 Kafka本质 Kafka 使用 Kafka为开发者提供了四类API: 3kafka生产者客户端实现 Produc...
  • Kafka基础概念Kafka中包含以下基础概念 1. Topic(话题):Kafka中用于区分不同类别信息的类别名称。由producer指定 2. Producer(生产者):将消息发布到Kafka特定的Topic的对象(过程) 3. Consumers(消费者):订阅并...
  • https://blog.csdn.net/tangdong3415/article/details/53432166一、基本概念介绍Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有...将向Kafka topic发布消息的程序成为produ...
  • Apache Kafka应用程序中的机器学习和实时分析(第一部分) 嵌入式模型的流处理 除了使用模型服务器和RPC通信之外,你还可以将模型直接嵌入到Kafka应用程序中。 这可以是利用Kafka Streams或K...
1 2 3 4 5 ... 20
收藏数 20,645
精华内容 8,258
热门标签