精品项目

基于 AI 的投资研究助手,利用多模态数据:亚马逊 Bedrock Agents 的应用 机器学习博

多模态数据的投资研究AI助手:亚马逊Bedrock代理的应用

由Omar Ashton、Jia (Vivian) Li、Jose Rojas、Mohan Musti、Sovik Nath和Uchenna Egbe于2024年6月26日发布于 先进级博客, 亚马逊Bedrock, 人工智能, 金融服务, 生成式AI, 技术指南 永久链接 评论 分享

关键要点

本文强调了通过人工智能AI驱动的助手如何利用多模态数据来增强投资研究的效率,特别是在金融行业中的应用。投资分析师利用这些技术来整合和分析来自多种来源的财务和非财务数据,从而提出洞见和建议。亚马逊Bedrock代理在优化分析师的工作和提高生产力方面发挥了重要角色。

本文为生成式AI及AWS中的多模态代理:解锁金融市场新价值的关键的后续文章,属于生成式AI与资本市场及金融服务系列。

在资本市场中,金融分析师和研究分析师通过各种工具从财务和非财务数据如公开文件、财报会议记录、市场研究文献和经济报告中提炼商业洞见。他们面临许多挑战,例如工具的多样性和数据量的增加。分析师需要在压力下快速思考,并尽快完成任务,以跟上市场的节奏。

投资研究是成功投资的基石,它涉及收集和分析潜在投资机会的相关信息。通过深入研究,分析师能够形成假设,并用数据进行验证,在投资组合经理做出投资决策前理解可能的影响,同时降低投资风险。AI助手可以通过自动化许多任务,提高金融分析师、研究分析师和量化交易员的生产力,使他们能更专注于高价值的创造性工作。AI助手可以通过搜索客户自身数据库以及在线内容,进行结构化和非结构化数据的定性与定量分析,从而帮助分析师更快、更准确地工作。

在本文中,我们介绍了一种使用亚马逊Bedrock代理和亚马逊Bedrock知识库的解决方案,它帮助金融分析师利用多种来源的多元化金融数据文本、音频和数据库和多种工具检测短语、投资组合优化、情感分析和股票查询来获取金融洞见。互动展示了AI助手如何识别用户的提示并制定计划,从数据存储中提取上下文,并通过不同的工具和LLM获取响应。

AI助手的投资研究

AI助手是什么 AI助手是先进的AI系统,结合生成式AI和大语言模型LLMs,利用AI技术从自然语言提示中理解目标、制定计划和任务,完成这些任务,并协调结果以达到目标。作为AI助手的核心,生成式AI代理能够协调基础模型、数据源、软件应用和用户之间的互动。随着AI技术的发展,生成式AI代理的能力预计将进一步增强,提供获得竞争优势的更多机会。

亚马逊Bedrock是这一演变的先锋,它是一个完全托管的服务,提供来自像AI21 Labs、Anthropic、Cohere、Meta、Stability AI和亚马逊等领先AI公司的高性能基础模型的选择,并通过单个API提供构建和扩展生成式AI应用程序所需的广泛能力,同时确保安全性、隐私和负责任的AI。

您现在可以使用亚马逊Bedrock代理和亚马逊Bedrock知识库构建专门的代理和AI助手,根据自然语言输入提示和您组织的数据执行操作。这些托管代理充当智能指挥者,协调基础模型、API集成、用户问题和指令,以及加载您专有数据的知识源。在运行时,代理智能处理并协调用户输入,涵盖多个动态步骤。

以下视频展示了亚马逊Bedrock代理中AI助手的实际应用。

解决方案概述

AI助手的一个关键组成部分是亚马逊Bedrock代理。一个代理包括以下组件:

基础模型 代理调用FM以解读用户输入,生成后续提示并在其协调过程中生成响应。指令 告诉代理设计目标及如何执行的说明。操作组 代理与不同底层组件如API和数据库互动的接口。代理使用操作组执行操作,例如调用另一个工具的API。知识库 知识库是链接到现有知识库的连接,包含客户的文档如PDF文件和文本文件,允许代理查询额外的上下文信息。

操作组和知识库都是可选的,并非代理本身所必需的。

在本文中,针对投资研究的AI助手可以利用结构化和非结构化数据,通过检索增强生成RAG架构为LLM提供上下文,如下图所示。

小熊npv加速器

对于AI助手,以下是关联的操作组:

检测短语 有助于在财务报告中检测关键短语投资组合优化 有助于使用Python函数从一系列股票符号中构建最优配置投资组合情感分析 用于分析财务报告摘要中的情感股票查询 用于回答历史股价的任何问题

取决于提示,投资研究的AI助手使用不同类型的结构化和非结构化数据。代理可以从不同形式的财务数据中提取洞见:

非结构化数据 包括年度10K和季度10Q财报,这些数据使用Amazon Titan嵌入模型转换为向量,并存储为向量在亚马逊OpenSearch Serverless向量数据库中,所有这些都由知识库协调。结构化数据 包括存储在亚马逊简单存储服务Amazon S3中的表格股票数据,使用亚马逊Athena进行查询。其他数据形式 包括季度业绩会议的音频文件,这些数据通过亚马逊Textract和亚马逊Transcribe转化为非结构化数据。

当AI助手接收到来自业务用户的提示时,它会按照以下步骤进行协调:

使用Amazon Bedrock中的LLM将提示拆分成多个步骤。遵循思维链推理和指令,并使用适当的操作组完成步骤。根据提示,搜索并识别RAG的相关上下文。将结果与提示一起传递给Amazon Bedrock中的LLM。生成最终响应,并用相关数据用英语回应用户。

以下图示展示了该工作流。

技术架构与关键步骤

多模态代理根据来自业务用户的自然语言提示协调各种步骤以生成洞见。针对非结构化数据,代理使用AWS Lambda函数结合AI服务,例如亚马逊Comprehend进行自然语言处理NLP。针对结构化数据,代理使用SQL连接器和SQLAlchemy通过Athena分析数据库。代理还使用选定的LLM进行计算和定量建模,同时上下文会话为代理配备对话记录。多模态代理使用亚马逊Bedrock代理实现,协调基于业务用户通过AWS管理控制台的提示的不同操作和知识库,尽管它也可以通过AWS API调用。

以下图示展示了技术架构。

技术架构的关键组件如下:

数据存储与分析 每季度的财务业绩录音作为音频文件,财务年报作为PDF文件,以及SampP股票数据作为CSV文件,均托管在Amazon S3上。股票数据的探查使用Athena进行。大型语言模型 可由亚马逊Bedrock代理使用的LLMs包括Anthropic Claude Instant v1、v20及v21。代理 我们使用亚马逊Bedrock代理构建和配置自主代理。代理协调基础模型、数据源、软件应用和用户对话之间的互动。根据用户输入,代理决定调用哪个操作或知识库来回答问题。我们创建了以下为我们场景量身定制的代理操作,使用Lambda和亚马逊Bedrock代理实现:股票查询 使用Athena和SQLAlchemy查询SampP股票数据。投资组合优化 基于选择的股票构建投资组合。情感分析 使用亚马逊Comprehend识别主题的情感并进行评分。检测短语 使用亚马逊Comprehend在最新季度报告中查找关键短语。知识库 为了搜索存储在多页PDF文件中的财务业绩信息,我们使用知识库结合OpenSearch Serverless向量存储。

欲深入了解解决方案及所有步骤的代码,请访问GitHub仓库。

从LangChain代理迁移到亚马逊Bedrock代理的好处和经验教训

亚马逊Bedrock代理和LangChain代理都使用LLM来解读用户输入和提示。在其协调过程中,LLM作为推理引擎来决定后续操作。实施基于代理的解决方案时,亚马逊Bedrock代理提供了一些优点。

无服务器架构

亚马逊Bedrock代理是无服务器的,这意味着您可以构建代理而无需管理任何基础设施。

对话历史和会话管理

默认情况下,LangChain代理是无状态的,这意味着它们不能记住先前的互动或保存对话历史。它支持简单记忆系统来回忆最近的对话,或复杂记忆结构来分析历史消息以返回最相关的结果。在我们之前的文章,我们部署了使用亚马逊DynamoDB的持久存储解决方案。

亚马逊Bedrock代理通过默认提供短期对话记忆,允许用户在会话期间与代理进行持续互动。

RAG支持

亚马逊Bedrock知识库提供即用的RAG解决方案。通过抽象构建管道的繁重工作,它可以加快上市速度,并为将大量数据作为向量嵌入保存在向量数据库提供持久解决方案,从而降低RAG系统的延迟。

基于 AI 的投资研究助手,利用多模态数据:亚马逊 Bedrock Agents 的应用 机器学习博

知识库通过自动化该过程中的多个步骤,简化了RAG的设置和实现:

数据预处理 将文档拆分为可管理的块,以便于高效检索。这些块随后转化为嵌入,并写入向量索引,同时保持与原始文档的映射。运行时处理 将用户查询嵌入转化为向量。比较用户查询与文档块的向量嵌入,以查找语义相近的匹配项。用匹配块的上下文增强用户提示。

亚马逊Bedrock知识库支持流行的向量存储数据库,包括OpenSearch Serverless、Pinecone、Redis Enterprise Cloud、亚马逊Aurora即将推出和MongoDB即将推出。

兼容性

我们之前的多模态代理中的大多数功能工具可以使用操作组迁移到亚马逊Bedrock。操作组通过提供OpenAPI架构来定义可调用的API,并提供指定输入和输出的Lambda函数,从而定义代理操作。Lambda本机支持Java、Go、PowerShell、Nodejs、C#、Python和Ruby代码。LangChain的支持语言并不包括PowerShell和Nodejs。

简单提示

在我们的LangChain代理中获得最佳结果的一个关键因素是使用良好且清晰的提示。在我们之前的多模态代理中,我们使用了如下提示:

你是一个具有工具的最小化解决方案专家。您将面临一个问题。首先理解问题并制定解决问题的计划。请输出计划,标题为计划:,然后附上有序步骤列表。确保计划包含解决问题所需的最少步骤。不要包括不必要的步骤。lt说明gt这些是有关何时使用工具来完成任务的指导,请严格遵循:1 对于专注于股价数据的工具,使用“股票查询工具”。2lt/说明gtnn助手:“

该提示提供了详细信息,以便为代理提供尽可能多的指导来回应问题。

使用亚马逊Bedrock代理时,我们用了对代理简单的说明,以获得相似的结果。通过更简短的提示“您是一个具备工具的金融分析师”,我们能够以相同的质量回答相同的问题。

基础提示的可编辑性

亚马逊Bedrock代理还暴露了用于预处理、协调、知识库响应生成和后处理的四个默认基础提示模板。您可以选择编辑这些基础提示模板来自定义代理在其序列的每一步中的行为。

可追溯性

来自亚马逊Bedrock代理的每个响应都附带一个追踪,详细说明了代理正在协调的步骤。该追踪提供了有关代理调用的操作组的输入和查询的知识库的信息。此外,追踪还提供了操作组和知识库返回的输出的信息。

安全性

您可以通过亚马逊Bedrock代理安全地将LLM连接到您的公司数据源。借助知识库,您可以使用代理使亚马逊Bedrock中的LLM获取额外数据,从而帮助模型生成更相关、上下文特定和准确的响应,而不必不断地重新训练LLM。

深入了解解决方案

欲深入了解本帖展示的