功能存储已成为组织跨任何行业领域开发预测服务的重要单位。大规模部署ML解决方案时遇到的一些早期挑战包括:由个别团队在很少或根本没有协调的情况下开发和维护定制系统;没有用于共享相似类型ML模型的功能共享的协作系统;没有适当的可扩展范围,会增加认知负担;与大数据生态系统的有限集成;模型再培训,比较,模型治理和可追溯性的范围有限,从而限制了敏捷开发生命周期;难以展示季节性的t型货架和再培训模型。
为了克服以上限制,建筑师。数据科学家,大数据和分析专家认为,有必要采用一个统一的框架在一个屋顶下行走,以促进更轻松的协作,数据,结果,报告的共享。
部门,团队和组织共享功能工程的一些相似概念:
·特征工程非常昂贵,并且随着时间的推移和模型之间的摊销会发生
·随着特征数量的增加,成本的增加是非线性的/指数的
·由于添加/删除功能而导致的触发器/警报很高
·大多数情况下,没有记录/跟踪依赖项,这导致随着时间的推移增加了隐式和显式依赖项的增加
在分享相似观点的同时,聚在一起创建名为FeatureStore的统一框架变得更加容易。这将加快ML模型部署生命周期的速度,并创建适当的文档,所需的版本分析和模型性能,以节省时间和精力。
在此,我们重点介绍了由不同的FeatureStore框架支持的功能,这些框架主要由不同的领先行业巨头开发。
特色商店的优势
·能够重用和发现组织中各个团队之间的功能
·特点应该管辖加入类似的功能的访问控制和版本
·能够进行预先计算和自动回填的功能-包括在线计算和离线聚合
·帮助在数据科学家和大数据工程师之间创建协作环境
·通过不仅共享功能,而且还共享从这些功能开发的模型的相关工件,文档和营销见解,从而节省了工作量和成本
·使培训和服务之间保持一致
Michaelangelo-由Uber开发的框架,允许在离线和在线管道中进行功能集成/合并。在此,Hive和Cassandra充当原始/转换要素的主要存储单元。它为具有适当缩放和监视功能的多个模型提供了可水平扩展的多租户架构。可以通过Jupyter笔记本通过WebUI或API配置和管理培训作业。
它还提供了用于定义分层分区方案的选项,以训练每个分区的模型,可以将其部署为单个逻辑模型。当需要基于数据的层次结构来训练几个模型时,这提供了容易的引导,并有助于克服挑战。
在服务期间的运行时,它将为每个节点找到最佳模型的根。以支持持续学习,与AutoML集成以及支持分布式深度学习的能力而闻名。
盛宴特色商店
Google发布了Feast,它主要围绕GoogleCloud服务构建:BigQuery和BigTable和Redis,而ApacheBeam用于功能工程。它可以将大数据与模型开发区分开来。这种在线预测服务允许团队之间共享功能,并在模型训练和服务之间保持高度一致性。
进一步的盛宴带有集中式功能管理,发现,功能验证和功能聚合。功能列位于宽实体表内。此外,复合实体将各个要素分开。
Wix功能商店
Wix为批处理和实时数据集提供了跨不同ML模型进行特征共享的平台。它支持在站点和用户级别上针对培训和服务模型预先配置的一组功能族。上图中标记并显示了数据管理,模型训练和部署的不同阶段。它还使用S3存储实时提取的特征。
Comcast的FeatureStore
由Comcast开发的FeatureStore帮助数据科学家重用版本化的功能,在线实时/流式传输数据以及按模型查看功能指标。该产品可在多个可插拔功能存储组件中使用。内置的模型存储库包含与数据预处理规范化,缩放相关的工件,这些工件显示所需的映射到执行模型所需的功能。此外,该架构是在Alluxio上使用Spark构建的开源数据编排层,使数据接近计算,适用于云中的大数据和AI/ML工作负载,S3,HDFS,RDBMS,Kafka,Kinesis。使用Kubeflow进行模型部署通过支持速率限制,影子部署和自动缩放,有助于构建弹性,高可用性的分布式系统。
与具有适当API的DataLake集成有助于数据科学家使用SQL并创建可以版本化并集成到完整模型管道中的培训/验证/测试数据集。此外,该框架还附带了用于A/B测试,合奏,多臂土匪,自定义组合的Seldon推理图的支持。端到端系统不仅提供了从用例,模型,特征,模型到特征映射,版本化数据集,模型训练代码库,模型部署容器以及预测/结果接收器的可追溯性,而且还与Feature-Store集成,容器存储库和Git,以集成数据,代码和运行时工件以实现CI/CD集成。
与其他任何体系结构一样,它在流数据和按需功能上具有连续的功能聚合。在线功能商店在给出预测之前使用以下顺序:
·有效载荷仅包含型号名称和帐号
·模型元数据可告知模型需要哪些功能
·按帐号要求的功能拉取
·传递全套组合特征以执行模型
HopWorksEnterpriseEdition是一个多租户架构,集成了AWSSagemaker,Databricks,Kubernetes和JupyterNotebook。它还支持与LDAP,Kerberos和Oauth2等身份验证框架的集成。
ApacheBeam,ApacheFlink和ApacheSpark促进了批处理/实时流功能,而模型管理和监视管道是使用Kafka和Spark流构建的。
该架构由几个构建块组成,即
·FeatureStoreAPI-用于从FeatureStore读取/写入
·FeatureStore注册表-用于发现功能的用户界面
·功能元数据-文档,分析和版本控制
·特征工程工作-用于计算存储层-用于特征存储
Netflix功能商店
Netflix开发的功能部件商店支持在线和离线模型培训和开发。在线微服务使框架能够收集模型中功能编码器所需的数据元素。它将进一步传递给下游,以供离线预测将来使用。Netflix的事实日志记录服务将用户相关,视频相关和计算特定的功能以序列化格式记录在适当的存储单元中。
该体系结构的独特之处在于组件的存在有助于:
·开发/创建上下文以进行快照
·所选上下文的各种微服务的快照数据
·构建API以在过去的给定时间坐标中提供此数据
由于所有上下文的快照数据都会产生开销和成本,因此Netflix依靠选择上下文样本来定期进行快照,尽管算法不同。它通过Spark,通过训练不同分布上的数据以及基于诸如查看模式,设备,在服务上花费的时间,区域等属性的分层样本来实现此目的。
Netflix为基于云的部署模型采用了细粒度的面向服务的体系结构。
Facebook设计的FBLearner是带有模型管理和部署的AIWorkFlow框架。它主要由3个组件组成-FBLearnerFeatureStore,FBLearnerFlow和FBLearnerPredicto。它支持构建各种深度学习模型,并且模型可以ONNX格式存储,支持跨不同硬件/软件平台。
上面的大类可以看作是创建从硬件到应用软件的逻辑单元。
·创建,迁移和训练模型所需的框架
·用于模型部署和管理的平台
·计算工作量和存储数据所需的基础结构
Facebook还使用一种原理来划分开发和部署环境。
Pinterest功能商店
Pinterest的大数据机器学习是可扩展,可靠且安全的高速和高质量的经典示例。这个元数据驱动的框架是使用开放源代码技术构建的,具有单独的构建基块,有助于重用。它还提供治理:执法和跟踪。
这种架构的谎言中的独特捕获关系和互动之间的引脚。
通过创建的Airbnb的预测系统溜索依靠得分服务基于功能聚集在因牛逼IME和空间。计分日志每天进行计算/更新,以确保在训练ML模型期间以及在生产环境中部署它们时都具有特征一致性和单个特征定义。此外,它还可以确保数据质量监控,功能回填以及使功能可搜索和可共享。
与数据源集成的体系结构-HiveTable,数据库和Jitney的事件总线,除了以Lambda为服务点的ApacheSpark和Flink。这个平台的独特之处在于:
·减少定制管道的创建
·减少自定义聚合中的数据泄漏
·功能分布可观察性改进的模型迭代工作流程
特效
基于TensorFlow的通用机器学习平台TensorFlowExtended(TFX)提供了许多组件的编排,即一个学习者,用于基于训练数据生成模型,用于分析和验证数据以及模型的模块以及用于在模型中服务模型的基础架构生产。该平台以训练,验证,可视化和在生产中连续不断地对新近训练的新模型进行部署而著称。各个组件可以共享实用程序,使它们可以通信和共享资产。通过快速培训,数据和反序列化团队和社区可以共享其数据,模型,工具,可视化,优化和其他技术。
部件被用于收集在特征值进行统计进一步已知的:为连续的特性,所述统计信息包括位数,等宽的直方图,平均和标准偏差,而对于离散特征它们包括顶-K值由频率。另外,这些组件支持在数据切片上和跨特征统计的模型度量的计算。这些统计信息为用户提供了有关每个数据集形状的见解。
此外,该体系结构还为所有用户提供了无需配置的验证设置,多租户以同时服务于多个机器学习的模型,软模型隔离以提高模型性能。
阿帕奇气流
ApacheAirflow的整个体系结构基于DAG的概念,该概念考虑了其中的依赖性。确保所有事情在正确的时间和正确的顺序发生的主要责任。该DAG小号定义一个单一的逻辑流程,他们都是用Python文件中定义。
ApacheAirflow保证了幂等性,原子性和元数据交换。使用提供小型元数据交换的XCOM,可以促进此分布式体系结构的不同组件之间的数据交换。但是,对于大量数据,它支持共享网络存储,数据湖或通过XCOM进行的基于URI的交换。
操作员的参数化表示形式帮助DAG运行在特定时间生成TaskInstance的任务。此外,ApacheAirFlowDAG中的实例被分组为DagRun。
Zomato功能商店
Zomato的餐厅业务在很大程度上依赖流数据处理来计算餐厅在任何给定时间点的运行订单。该体系结构使用ApacheFlink,它为每个ML模型提供了工作级别隔离,因为每个ML模型的功能都保持它们各自的空间用于研究,分析,记录,并且不与其他ML模型的功能进行交互。
除了流和在线特征提取外,MLFlow还提供了ML模型的生命周期管理。在ML车型投放到通过外部世界API网关借助AWSSagemaker端点。
苹果公司的Overton
通过提供一组新颖的高级声明式抽象,Overton使模型构建,部署和监视的生命周期自动化。它支持多任务学习,以在实时和后端生产应用程序中同时预测多个ML模型。
此外,该体系结构允许在模型和数据之间进行分离,其中包含两个组件:任务和代表数据源的有效负载。
模型训练由架构文件控制,该文件充当编译TensorFlow模型并描述其输出以供下游使用的指南。Overton还将原始数据嵌入到有效负载中,然后将其用作任务或另一个有效负载的输入。有效载荷是单例,序列和集合。
StreamSQL功能存储
StreamSQLFeatureStore是一个基于低延迟的模型开发框架,具有高吞吐量服务。它允许轻松轻松地通过版本控制可靠地部署新模型功能。通过使用功能定义,可以确保整个培训,服务和生产过程中一致的功能部署。
该体系结构还通过集成第三者的功能来提高模型性能而闻名。它将批处理和流处理与不可变分类帐相结合,每个事件都附加到分类帐的末尾,修改或创建一组新功能,甚至从功能注册表中分析/发现功能。
Tecton的功能部件商店
Tecton提出了一个统一的体系结构,用于开发,部署,管理/管理和监视一个平台,该平台旨在标准化生产中ML模型的高质量功能,标签和数据集,从而确保模型随着时间的推移安全运行。适当的可重复性,沿袭和记录。
Tecton平台包括:
功能管道,用于将原始数据转换为功能或标签
·一个功能存储用于存储历史特征和标签数据
·一个功能服务器为生产服务的最新特征值
·用于检索训练数据和处理特征管线的SDK
·一个WebUI,用于管理和跟踪功能,标签和数据集
·一个监视引擎,用于检测数据质量或漂移问题并发出警报
混合功能商店
使用ApacheAirflow的BI平台,S3,Hopsworks功能存储和Cloudera的DataLakes的混合功能存储。该平台能够在输入处提取原始数据,事件或SQL数据。
涂鸦数据中的功能存储
ScribbleData提供的功能存储对输入数据的正确性和完整性施加了很大的压力,因为众所周知这会对ML模型的预测产生影响。因此,建议使用连续检查/清晨系统,以防止质量差的数据进入系统。在反应方面,系统会进行连续的过程以随着时间的流逝改善机器学习的操作。
在这里,我们讨论了使用大数据,机器学习模型训练和服务工具以及业务流程层的不同架构框架。每个组件都同等重要,它们齐头并进,以创建一个实时的端到端预测系统。
好了,关于数据科学家和大数据工程师的基本架构的内容,介绍到这里就结束了,想了解更多关于数据科学和大数据的信息,请继续关注。