使用 Refinitiv Data Library、AWS 服务和 Amazon SageMaker 丰富实时新闻流

使用 Refinitiv Data Library、AWS 服务和 Amazon SageMaker 丰富实时新闻流

这篇文章由来自 LSEG Business Refinitiv 的 Marios Skevofylakas、Jason Ramchandani 和 Haykaz Aramyan 共同撰写。

金融服务提供商通常需要识别相关新闻、对其进行分析、提取见解并实时采取行动,例如根据新闻项的附加信息或上下文交易特定工具(如商品、股票、基金)。 一条这样的附加信息(我们在本文中用作示例)是新闻的情绪。

Refinitiv Data (RD) Libraries 提供了一套全面的接口,用于统一访问 Refinitiv Data Catalogue。 该库提供多层抽象,提供适合所有开发人员的不同风格和编程技术,从低延迟、实时访问到批量摄取 Refinitiv 数据。

在这篇文章中,我们展示了一个原型 AWS 架构,它使用 RD 库提取我们的新闻提要,并使用机器学习 (ML) 模型预测来增强它们 亚马逊SageMaker,一种来自 AWS 的完全托管的 ML 服务。

为了设计可用于各种用例(如情感分析、命名实体识别等)的模块化架构,无论用于增强的 ML 模型如何,我们决定专注于实时空间。 做出此决定的原因是实时用例通常更复杂,并且也可以使用相同的架构,只需进行最少的调整,即可进行批量推理。 在我们的用例中,我们实施了一种架构,该架构可以摄取我们的实时新闻提要,使用 ML 计算每个新闻标题的情绪,并通过发布者/订阅者架构重新提供 AI 增强的提要。

此外,为了通过采用 MLOps 实践提供一种全面且可重用的方法来生产 ML 模型,我们在原型的整个 MLOps 生命周期中引入了基础架构即代码 (IaC) 的概念。 通过使用 Terraform 和单一入口点可配置脚本,我们能够在几分钟内在 AWS 上以生产模式实例化整个基础设施。

在此解决方案中,我们不解决单个模型的开发、训练和部署的 MLOps 方面。 如果您有兴趣了解更多这方面的信息,请参阅 使用 Amazon SageMaker 的企业的 MLOps 基础路线图,其中详细解释了遵循最佳实践的模型构建、训练和部署框架。

解决方案概述

在此原型中,我们遵循符合 IaC 的全自动供应方法 最佳实践. IaC 是使用自动化脚本而不是使用交互式配置工具以编程方式配置资源的过程。 资源可以是硬件,也可以是所需的软件。 在我们的案例中,我们使用 Terraform 来实现单个可配置入口点,该入口点可以自动启动我们需要的整个基础设施,包括安全和访问策略,以及自动监控。 通过这个触发一系列 Terraform 脚本的单一入口点,每个服务或资源实体一个,我们可以完全自动化架构的所有或部分组件的生命周期,允许我们在 DevOps 和MLOps 方面。 在 Terraform 正确安装并与 AWS 集成后,我们可以复制大多数可以在 AWS 服务仪表板上完成的操作。

下图说明了我们的解决方案体系结构。

利用 Refinitiv 数据库、AWS 服务和 Amazon SageMaker PlatoBlockchain 数据智能丰富实时新闻流。 垂直搜索。 人工智能。

该架构由三个阶段组成:摄取、丰富和发布。 在第一阶段,实时提要被摄取到 亚马逊弹性计算云 (Amazon EC2) 通过 Refinitiv Data Library 就绪 AMI 创建的实例。 该实例还通过以下方式连接到数据流 Amazon Kinesis数据流,这会触发 AWS Lambda 功能。

在第二阶段,从 Kinesis Data Streams 触发的 Lambda 函数连接到新闻标题并将其发送到 SageMaker 芬伯特 端点,返回新闻项的计算情绪。 这种计算出的情绪是实时数据的丰富,Lambda 函数随后将新闻项包装并存储在一个 Amazon DynamoDB 表。

在架构的第三阶段,DynamoDB 流在新项目插入时触发 Lambda 函数,该函数与 亚马逊 MQ 服务器 运行 RabbitMQ,它保留了 AI 增强流。

这个三阶段工程设计的决定,而不是第一个 Lambda 层直接与 Amazon MQ 服务器通信或在 EC2 实例中实现更多功能,是为了在未来探索更复杂、耦合度更低的 AI 设计架构。

构建和部署原型

我们在一系列的三个详细蓝图中展示了这个原型。 在每个蓝图和使用的每个服务中,您将找到有关其技术实现的概述和相关信息,以及允许您自动启动、配置服务并将其与结构的其余部分集成的 Terraform 脚本。 在每个蓝图的末尾,您将找到有关如何确保每个阶段的一切都按预期工作的说明。 图纸如下:

要开始实施此原型,我们建议创建一个专用于它的新 Python 环境,并与您可能拥有的其他环境分开安装必要的包和工具。 为此,请使用以下命令在 Anaconda 中创建并激活新环境:

conda create —name rd_news_aws_terraform python=3.7
conda activate rd_news_aws_terraform

我们现在准备安装 AWS命令行界面 (AWS CLI) 工具集,使我们能够在 AWS 服务中和之间构建所有必要的编程交互:

pip install awscli

现在已经安装了 AWS CLI,我们需要安装 Terraform。 HashiCorp 为 Terraform 提供了一个二进制安装程序,您可以 下载 并安装。

安装这两个工具后,请使用以下命令确保它们正常工作:

terraform -help
AWS – version

您现在已准备好遵循实施的三个阶段中每个阶段的详细蓝图。

该蓝图代表了允许我们获取实时新闻提要的架构的初始阶段。 它由以下组件组成:

  • Amazon EC2 准备您的实例以接收 RD 新闻 – 本节设置 EC2 实例,使其能够连接到 RD 库 API 和实时流。 我们还展示了如何保存创建实例的图像以确保其可重用性和可扩展性。
  • 从 Amazon EC2 获取实时新闻 – 使 Amazon EC2 能够连接 RD 库所需配置的详细实施以及启动摄取的脚本。
  • 从 AMI 创建和启动 Amazon EC2 – 通过同时将摄取文件传输到新创建的实例来启动新实例,所有这些都使用 Terraform 自动进行。
  • 创建 Kinesis 数据流 – 本节概述了 Kinesis Data Streams 以及如何在 AWS 上设置流。
  • 连接并将数据推送到 Kinesis – 一旦摄取代码开始工作,我们需要连接它并将数据发送到 Kinesis 流。
  • 到目前为止测试原型 - 我们用 亚马逊CloudWatch 和命令行工具来验证原型到目前为止是否正常工作,我们是否可以继续下一个蓝图。 摄取数据的日志应类似于以下屏幕截图。

利用 Refinitiv 数据库、AWS 服务和 Amazon SageMaker PlatoBlockchain 数据智能丰富实时新闻流。 垂直搜索。 人工智能。

在第二个蓝图中,我们关注架构的主要部分:Lambda 函数,它摄取和分析新闻项流,将 AI 推理附加到它,并将其存储以供进一步使用。 它包括以下组件:

  • LAMBDA – 定义一个 Terraform Lambda 配置,允许它连接到 SageMaker 端点。
  • Amazon S3 – 要实现 Lambda,我们需要将适当的代码上传到 亚马逊简单存储服务 (Amazon S3) 并允许 Lambda 函数在其环境中提取它。 本节介绍我们如何使用 Terraform 来实现这一点。
  • 实现 Lambda 函数:第 1 步,处理 Kinesis 事件 – 在本节中,我们开始构建 Lambda 函数。 在这里,我们只构建 Kinesis 数据流响应处理程序部分。
  • SageMaker – 在此原型中,我们使用存储在 SageMaker 端点中的预训练拥抱面模型。 在这里,我们介绍了如何使用 Terraform 脚本实现这一点,以及如何进行适当的集成以允许 SageMaker 端点和 Lambda 函数协同工作。
    • 此时,您可以改为使用您在 SageMaker 端点后面开发和部署的任何其他模型。 这样的模型可以根据您的需要为原始新闻数据提供不同的增强。 可选地,这可以外推到多个模型以进行多个增强(如果存在)。 由于架构的其余部分,任何此类模型都将实时丰富您的数据源。
  • 构建 Lambda 函数:第 2 步,调用 SageMaker 端点 – 在本节中,我们通过添加 SageMaker 块来构建我们的原始 Lambda 函数,以通过调用 SageMaker 端点获得情绪增强的新闻标题。
  • DynamoDB – 最后,当 AI 推理在 Lambda 函数的内存中时,它会重新捆绑该项目并将其发送到 DynamoDB 表进行存储。 在这里,我们讨论了实现该目标所需的适​​当 Python 代码,以及支持这些交互的必要 Terraform 脚本。
  • 构建 Lambda 函数:第 3 步,将增强数据推送到 DynamoDB – 在这里,我们通过添加在 Dynamo 表中创建条目的最后一部分来继续构建我们的 Lambda 函数。
  • 到目前为止测试原型 – 我们可以导航到 DynamoDB 控制台上的 DynamoDB 表,以验证我们的增强功能是否出现在表中。

利用 Refinitiv 数据库、AWS 服务和 Amazon SageMaker PlatoBlockchain 数据智能丰富实时新闻流。 垂直搜索。 人工智能。

第三个蓝图最终确定了这个原型。 它侧重于将新创建的 AI 增强数据项重新分发到 Amazon MQ 中的 RabbitMQ 服务器,允许消费者实时连接和检索增强的新闻项。 它包括以下组件:

  • DynamoDB流 – 当增强的新闻项在 DynamoDB 中时,我们设置一个事件被触发,然后可以从适当的 Lambda 函数中捕获该事件。
  • 编写 Lambda 生产者 – 此 Lambda 函数捕获事件并充当 RabbitMQ 流的生产者。 这个新函数引入了 Lambda 层的概念,因为它使用 Python 库来实现生产者功能。
  • Amazon MQ 和 RabbitMQ 消费者 – 原型的最后一步是设置 RabbitMQ 服务并实施一个示例消费者,该消费者将连接到消息流并接收 AI 增强新闻项。
  • 原型的最终测试 – 我们使用端到端流程来验证原型是否完全正常工作,从摄取到重新服务和消费新的 AI 增强流。

在此阶段,您可以通过导航到 RabbitMQ 仪表板来验证一切正常,如以下屏幕截图所示。

利用 Refinitiv 数据库、AWS 服务和 Amazon SageMaker PlatoBlockchain 数据智能丰富实时新闻流。 垂直搜索。 人工智能。

在最终蓝图中,您还可以找到详细的测试向量,以确保整个架构按计划运行。

结论

在这篇博文中,我们分享了一个在云上使用 ML 与 SageMaker (ML)、Lambda(无服务器)和 Kinesis Data Streams(流媒体)等 AWS 服务的解决方案,以丰富 Refinitiv Data Libraries 提供的流媒体新闻数据。 该解决方案实时为新闻项目添加情绪评分,并使用代码扩展基础设施。

这种模块化架构的好处是,您可以将其与您自己的模型一起重复使用,以无服务器、可扩展且经济高效的方式执行其他类型的数据扩充,这种方式可以应用于 Refinitiv Data Library。 这可以为交易/投资/风险管理工作流程增加价值。

如果您有任何意见或疑问,请将其留在评论部分。

相关信息


 作者简介

利用 Refinitiv 数据库、AWS 服务和 Amazon SageMaker PlatoBlockchain 数据智能丰富实时新闻流。 垂直搜索。 人工智能。马里奥斯·斯科沃菲拉卡斯 来自金融服务、投资银行和咨询技术背景。 他拥有工程博士学位。 在人工智能和理学硕士。 在机器视觉中。 在他的整个职业生涯中,他参与了许多跨学科的 AI 和 DLT 项目。 他目前是 LSEG 旗下企业 Refinitiv 的开发者倡导者,专注于金融服务中的 AI 和 Quantum 应用。

利用 Refinitiv 数据库、AWS 服务和 Amazon SageMaker PlatoBlockchain 数据智能丰富实时新闻流。 垂直搜索。 人工智能。杰森·拉姆钱达尼 曾在 LSEG 旗下企业 Refinitiv 工作 8 年,担任首席开发倡导者,帮助建立他们的开发者社区。 此前,他在金融市场工作超过 15 年,在 Okasan Securities、Sakura Finance 和 Jefferies LLC 的股票/股票相关领域拥有量化背景。 他的母校是UCL。

利用 Refinitiv 数据库、AWS 服务和 Amazon SageMaker PlatoBlockchain 数据智能丰富实时新闻流。 垂直搜索。 人工智能。哈伊卡兹阿拉米扬 来自金融和技术背景。 他拥有博士学位。 金融学硕士在金融,技术和政策方面。 通过 10 年的专业经验,Haykaz 参与了多个涉及养老金、风险投资基金和技术初创公司的跨学科项目。 他目前是 LSEG 企业 Refinitiv 的一名开发者倡导者,专注于金融服务中的 AI 应用。

利用 Refinitiv 数据库、AWS 服务和 Amazon SageMaker PlatoBlockchain 数据智能丰富实时新闻流。 垂直搜索。 人工智能。乔治·席纳斯 是 EMEA 地区 AI/ML 的高级专家解决方案架构师。 他常驻伦敦,与英国和爱尔兰的客户密切合作。 Georgios 帮助客户在 AWS 上的生产环境中设计和部署机器学习应用程序,特别关注 MLOps 实践并使客户能够大规模执行机器学习。 在业余时间,他喜欢旅行、烹饪以及与朋友和家人共度时光。

利用 Refinitiv 数据库、AWS 服务和 Amazon SageMaker PlatoBlockchain 数据智能丰富实时新闻流。 垂直搜索。 人工智能。穆图维兰·斯瓦米纳坦 是纽约的企业解决方案架构师。 他与企业客户合作,提供架构指导以构建有弹性、经济高效的创新解决方案,以满足他们的业务需求并帮助他们使用 AWS 产品和服务大规模执行。

利用 Refinitiv 数据库、AWS 服务和 Amazon SageMaker PlatoBlockchain 数据智能丰富实时新闻流。 垂直搜索。 人工智能。马尤尔·乌德纳尼 领导英国和爱尔兰商业企业的 AWS 人工智能和机器学习业务。 在他的职位上,Mayur 将大部分时间花在与客户和合作伙伴一起帮助创建有影响力的解决方案,以解决客户或更广泛的行业利用 AWS 云、AI 和 ML 服务的最紧迫需求。 Mayur住在伦敦地区。 他拥有印度管理学院的 MBA 学位和孟买大学的计算机工程学士学位。

时间戳记:

更多来自 AWS机器学习