“An Agent Framework for Real-Time Financial Information Searching with Large Language Models”
获取准确及时的信息对金融决策至关重要,金融数据动态变化且相互依赖复杂,传统搜索引擎难以捕捉这些关系。用户在表达复杂分析需求时面临困难,需多次迭代查询,导致信息获取延迟,可能错过重要市场信号。
本文提出FinSearch,一个专为金融应用设计的代理搜索框架,连接多种金融数据源。为了评估FinSearch,本文还开发了FinSearchBench-24基准测试。实验结果显示,FinSearch在多个测试上均优于Perplexity Pro,提升幅度在14.06%至21.6%之间。
论文地址:https://arxiv.org/pdf/2502.15684
摘要
金融决策需处理大量实时信息及其复杂时间关系。传统搜索引擎在理解用户意图和上下文方面存在不足。大型语言模型(LLMs)具备推理和交互能力,但缺乏实时数据支持,可能产生不可靠输出。现有LLMs与搜索结合的尝试存在三个主要问题:
-
专业金融数据访问受限
-
查询结构静态,无法适应动态市场
-
结果生成缺乏时间意识
本文提出FinSearch,一个专为金融应用设计的代理搜索框架,连接多种金融数据源。FinSearch包含四个组件:
-
LLM基础的多步骤搜索预规划器
-
LLM基础的自适应查询重写器
-
时间加权机制
-
LLM基础的响应生成器
为了评估FinSearch,本文还开发了FinSearchBench-24基准测试,包含1500个四选一问题,涵盖股市、利率变化、货币政策和行业发展。实验结果显示,FinSearch在多个测试上均优于Perplexity Pro,提升幅度在14.06%至21.6%之间。
简介
获取准确及时的信息对金融决策至关重要,金融数据动态变化且相互依赖复杂,传统搜索引擎难以捕捉这些关系。用户在表达复杂分析需求时面临困难,需多次迭代查询,导致信息获取延迟,可能错过重要市场信号。新的搜索会话探索相关概念,造成分析过程碎片化,影响对市场动态的全面理解。大语言模型(LLMs)具备自然语言理解和生成能力,能更好地理解用户意图和上下文,改善传统搜索功能。然而,LLMs基于静态训练数据,无法访问实时信息,可能导致分析过时和错误。现有的MindSearch在处理金融查询时存在三大局限:缺乏专门的金融数据源整合、查询结构静态且不适应动态市场信息、未采用复杂的时间加权机制。
FinSearch是针对金融应用的新型搜索代理框架,采用LLM基础的多步骤搜索预规划,能够将复杂查询分解为结构化子查询,并映射到特定金融API。FinSearch的搜索执行器包含LLM基础的自适应查询重写器,能够根据中间搜索结果动态调整子查询,增强对新兴市场信息的响应能力。引入时间加权机制,根据用户查询的时间上下文优先考虑信息相关性。开发了FinSearchBench-24基准,包含1500个涵盖多样金融主题的多项选择题。
方法
概述
FinSearch是一个专为金融设计的搜索代理框架,能够生成文本分析和可视化输出(如K线图)。采用有向无环图(DAG)结构,称为搜索图,表示多步骤搜索过程并存储中间结果。每个节点代表一个子查询,针对原始复杂查询的特定方面,映射到指定的金融数据源API。节点之间的有向边表示逻辑依赖和时间关系,形成结构化的分析路径。搜索执行器按顺序处理子查询,并根据累积结果动态优化后续查询。时间加权机制为每个节点应用时间相关权重,确保信息按时间相关性优先级排序。最终响应生成器将收集的信息综合成全面的分析响应。
搜索预规划器
搜索预规划器将复杂的金融查询分解为结构化的可执行子查询,首先通过语义解析提取关键元素(时间、公司实体、金融事件)。特别关注时间表达,将相对时间(如“昨天”)转换为精确日期,确保时间一致性。通过人类启发的推理过程,将复杂查询分解为子查询,例如分析公司表现时生成的子查询包括历史股价、最新财报、市场情绪和行业趋势。每个子查询映射到三种专用API:新闻API、搜索API和金融API。构建搜索图(DAG G(Vi, Eij)),根节点为原始查询,后续节点为逻辑顺序的子查询,优化信息收集和分析。每个节点Vi的特征xi包含五个组件:子查询、API来源、时间权重占位符、时间上下文编码和响应保留。有向边Eij定义节点间的执行依赖关系。
具有动态查询重写器的搜索执行器
搜索执行器处理预规划生成的搜索图,动态优化搜索轨迹。执行器依次遍历搜索图中的每个节点,生成API调用代码。API执行过程返回搜索结果及其时间信息。动态查询重写器模仿人类分析过程,优化后续子查询。重写过程基于当前子查询和获取的结果,采用马尔可夫链方法持续调整搜索策略。
时间加权机制
时间加权机制确保近期信息得到重视,同时保留历史背景的可访问性。对于搜索图中的每个节点,基于与查询时间戳的接近度计算时间权重。时间权重通过时间衰减函数计算,考虑信息时间戳与查询时间戳之间的时间距离。实施72小时的时间窗口,反映金融市场信息的快速变化,超过三天的信息可能不再相关。在此窗口内,权重随时间距离线性下降,确保近期信息在分析中优先考虑。时间权重在图遍历过程中动态计算和更新,存储在节点的特征向量中。
响应生成器
响应生成器通过时间加权搜索图汇总信息,结合文本分析与视觉表现。内容根据时间相关性加权,去除冗余信息,保留独特的时间和分析背景。文本部分遵循严格的引用规范,确保信息来源明确。生成的内容按时间顺序组织,强调最新和最相关的发展。对于金融数据,使用交互式可视化(如K线图)展示交易信息。最终输出为结构化分析报告,文本与视觉元素相结合,确保时间背景清晰。
实验
基准构建
本文开发了FinSearchBench-24基准,包含1,500道多项选择题,涵盖2024年6月至10月的金融主题。采用四个阶段构建过程,确保问题质量、时效性和现实适用性。
- 收集权威来源的最新金融数据,反映市场动态和监管变化。
- 针对每个金融事件或政策变化,设计问题以评估数据检索准确性、信息提取和分析理解能力。
- 利用大型语言模型(LLMs)生成问题,基于精心策划的金融信息。
- 由金融领域专家进行人类验证,确保问题的技术准确性、时间一致性和现实相关性。
实现细节
实验使用Python 3.10.4实现FinSearch,评估五种LLM模型(GPT-4o、Llama3.1-405B、Claude3.5-Sonnet、Deepseek、Gemini-1.5-Flash)性能。所有模型通过API访问,使用相同的提示模板,确保公平比较。集成三类API:
- Yahoo Finance API(市场数据、历史价格、公司基本面)
- NewsAPI(实时金融新闻)
- GoogleSearch API(网页搜索)。
Yahoo Finance API配置为每分钟采样实时数据。图节点设计为Python对象。
结果
FinSearch在多种LLM架构中表现优于现有搜索代理方法,准确率显著提升。在GPT-4o上,FinSearch准确率为76.20%,比Perplexity Pro高15.93%,比MindSearch高23.80%。使用Llama3.1-405B时,FinSearch达到75.53%准确率,Claude3.5-Sonnet时为78.27%。对于Deepseek和Gemini-1.5-Flash,FinSearch分别取得72.33%和74.87%准确率,Perplexity Pro无对比数据。FinSearch处理时间为14.55至29.31秒,虽然较长,但相较于准确率提升是合理的。基线LLM实现的准确率在34.07%至38.60%之间,强调了实时搜索能力在金融分析中的重要性。
消融分析
进行了消融研究,评估FinSearch核心组件的贡献,重点分析时间加权机制和动态查询重写器的影响。时间加权机制对性能影响显著,GPT-4o的准确率从58.67%提升至72.87%,提高了14.20%。动态查询重写器单独使用时,准确率提升3.66%(从58.67%到62.33%),表明其在搜索过程中有助于捕捉相关信息。两个组件结合使用时,表现最佳,Claude3.5-Sonnet的准确率达到78.27%,较基线提高17.47%。完整配置在计算效率上优于部分实现,Claude3.5-Sonnet的平均处理时间为18.15秒,基线为26.64秒,显示出更有效的搜索过程。
总结
FinSearch是一个针对金融信息检索与分析的搜索代理框架,解决了特定挑战。主要创新包括:
- 基于LLM的多步骤搜索预规划,通过图表示分解复杂金融查询。
- 动态查询重写器,根据中间结果自适应优化搜索。
- 时间加权机制,优先处理时间敏感的金融信息。
在新开发的FinSearchBench-24数据集上,FinSearch在多种LLM架构下表现优越。
未来研究方向包括扩展支持更多金融数据源和分析类型,优化时间加权机制以适应不同时间范围和市场条件。FinSearch展示了将LLM能力与领域特定需求结合的潜力,显著提升搜索准确性和相关性。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。