本篇文章将主要关注基础结构,以提供整个生产生态系统的全貌。在后面的文章中,将讨论技术选择,并分享更详细的说明性内容。
首先,介绍一下数据和人工智能平台的构建模块。
通过端到端架构进行思考是一个极好的主意,因为这样可以避免快速完成工作的常见陷阱。毕竟,你的 ML 模型的输出与输入的数据一样好。而且,你也不想在数据安全性和完整性方面妥协。
1. 数据采集和输入
创建一个架构良好的 DataOps 框架对于整个数据集成过程至关重要。这在很大程度上取决于生成数据的来源(结构化与非结构化)以及接收数据的方式(批量、复制、近实时、实时)。
在获取数据的过程中,有不同的方法可以将数据集成到系统中:
特性工程师必须进一步组合数据以创建用于机器学习用例的特性(特性工程)。
2. 数据存储
选择最佳的数据存储至关重要,S3、GCS 或 Blob Storage 等对象存储桶是引入原始数据(主要是非结构化数据)的最佳选择。
对于纯粹的分析用例,再加上如果你带来的是 SQL 结构化数据,也可以将数据直接导入云数据仓库(Big Query 等)。许多工程团队也喜欢使用数据仓库存储(不同于对象存储)。你的选择取决于所涉及的使用案例和成本。请谨慎选择!
通常情况下,可以直接从内部和外部(第一方和第三方)来源获取数据,而无需任何中间步骤。
不过,在少数情况下,数据提供商需要访问你的环境进行数据交易。在 DMZ 设置中规划一个第三方登陆区,以防止将整个数据系统暴露给供应商。
此外,对于 PCI、PII 等合规相关数据以及 GDPR、MLPS、AAPI、CCPA 等受监管数据,应创建结构化存储区,以便从一开始就合理处理数据。
切记根据 ML 模型和分析报告的时间或历史背景要求,规划保留和备份策略。虽然存储很便宜,但随着时间的推移,数据的积累会成倍增加成本。
3. 数据管理
虽然大多数组织都善于收集和存储数据,但大多数工程团队都需要帮助才能让最终用户使用数据。
导致采用率低下的主要因素是
数据团队必须与法律、隐私和安全团队合作,了解国家和地区的数据法规和合规要求,以实现正确的数据管理。
可以采用以下几种方法实施数据管理:
如果不能妥善确保数据存储和访问的安全,组织可能会面临法律问题和相关处罚。
4. 数据消费模式
随着数据被转换为丰富的业务关键绩效指标(KPIs),数据的呈现和消费具有不同的方面。
对于纯粹的可视化和仪表板,只需简单访问存储数据和查询界面即可。
随着需求变得越来越复杂,如将数据呈现给机器学习模型,就必须实施和增强功能存储。这一领域需要成熟,而大多数云原生解决方案仍处于生产级准备的早期阶段。
此外,还要寻找一个横向数据层,在这个层中,可以通过应用程序接口(API)提供数据,供其他应用程序使用。GraphQL 是一个很好的解决方案,有助于创建微服务层,从而大大提高访问的便利性(数据即服务)。
随着这一领域的成熟,请将数据结构化为数据产品域,并在业务部门内寻找数据管理员,由他们担任该域的监护人。
5. 机器学习
数据处理后,机器学习分为两个步骤--模型开发和模型部署与管理。
在模型开发阶段,ML 工程师与数据科学家密切合作,直到模型打包并准备好部署。选择 ML 框架和功能以及与 DS 合作进行超参数调整和模型训练都是开发生命周期的一部分。
创建部署管道和选择技术堆栈来操作和服务模型属于 MLOps 的职责范围。MLOps 工程师还提供 ML 模型管理,包括监控、评分、漂移检测和启动再训练。
将 ML 模型生命周期中的所有这些步骤自动化有助于扩展。
不要忘记将所有训练好的模型存储在 ML 模型注册表中,并促进重复使用,以提高运营效率。
6. 生产运营
为模型输出提供服务需要与其他职能领域不断协作。提前规划和畅通的沟通渠道对于确保发布日程表保持一致至关重要。请务必做到这一点,以避免错过最后期限、技术选择冲突以及集成层的问题。
根据消费层和部署目标,你将通过 API 发布模型输出(模型端点),或让应用程序直接从存储中获取推论。将 GraphQL 与 API Gateway 结合使用是一种高效的方法。
7. 安全层
分离管理平面,创建共享服务层,这将是云账户的主要出入口。它也将是企业内部和外部公有云/私有云的会客室。
你的服务控制策略(AWS)或组织策略约束(GCP)应集中管理,防止在没有适当访问控制的情况下创建或托管资源。
8. 用户管理界面/消费层
提前选择云账户的结构是明智之举。可以根据业务线(LOB)或产品域或两者的混合来构建账户。此外,还要设计并隔离开发、暂存和生产环境。
最好还能集中管理 DevOps 工具链。我更喜欢云无关的工具集,以支持混合多云生态系统之间的无缝集成和过渡。
对于开发人员集成开发环境,可以混合使用单个和共享集成开发环境。确保开发人员经常将代码检查到代码库中;否则,他们将面临丢失工作的风险。
端到端数据科学流程
驾驭组织动态并将利益相关者聚集在一个共同的目标上,对于成功的生产部署和持续运营至关重要。
我正在分享跨功能的工作流程和过程,使这个复杂的引擎运行顺畅。
结论
希望这篇文章能引发你的思考,激发你的新想法,并帮助你直观地了解你的工作的全貌。这是一项复杂的任务,但只要有深思熟虑的设计、合理规划的执行以及大量的跨职能合作,就能轻松完成。
最后一点建议: 不要因为技术解决方案看起来很酷就去创造它。首先要了解业务问题,评估潜在的投资回报。