+
目录
1. 从大语言模型到“智能体”
1.1 如何理解智能体(Agent)?
1.2 LLM-Based Agents的运行机制
2. LLM-Based Agent的应用与实践
2.1 单一智能体的部署——以AutoGPT为例
2.2 多智能体的交互部署
2.3 人与智能体的交互部署
3. 产业链梳理案例展示——以“华为供应链”主题为例
3.1 投资主题梳理结果展示
3.2 投资标的梳理结果展示
4. 总结
风险提示
摘要
■ 投资逻辑
本篇报告是国金证券金融工程团队围绕大语言模型开展的多项深度前瞻研究第八篇。在本报告中,我们借鉴智能体(Agent)这一概念,将大语言模型应用到产业链梳理任务中,并实现了对投资概念的拆解以及相关标的个股的推荐。
从大语言模型到“智能体”
OpenAI在首届开发者大会上推出GPTs功能,它们能自主寻找多步解决问题的方案并行动。我们将具有以上功能的模型称为“智能体”。智能体核心要素可以表示为“大语言模型+规划+工具+记忆”:大语言模型作为内核提供理解、推理与生成能力;规划给智能体带来问题逐步求解能力,实现从“一问一答”向“自主思考”转变;工具赋予智能体与环境交互的能力;记忆则帮助它完成多轮的思考与行动。
基于大语言模型的智能体决策逻辑可以简化为“感知→规划→行动”。其中,感知是指智能体收集信息并整合为模型输入,规划是指智能体做出具体决策并给出行动指令,行动则是按照规划行动的步骤。智能体观察到行动的反馈并放入记忆,成为下一轮感知的基础,构成完整的决策过程。
在此之前,AutoGPT与Langchain等项目已成功实现了单一智能体的部署并给出了智能体的设计蓝图,当前的研究前沿方向是多智能体交互部署。我们借鉴AutoGPT的思路构建了应用于产业链梳理的“产业链Agent”。
利用LLM-Based Agent进行产业链梳理
尽管大语言模型能掌握基础的产业链知识,但无法直接梳理完整产业链。我们为产业链Agent完善产业链推理的框架,包括上/下游供需关系的推理、末端产品判断以及产品重要性判断,让智能体自我迭代,最终完成对所有节点的推理与判断。以智能手机上游为例,产业链Agent梳理结果与Wind智能手机产业链二者整体结构一致。
我们还赋予产业链Agent新闻检索的能力,增强模型对专业知识的掌握。智能体可以综合新闻信息与自有知识进行回答,给出的答案更加细致且贴近市场实际情况;挂载不同时间范围的新闻还可以观察出产业链随时间变化的趋势。
更进一步,我们以产业链梳理为核心,给出了对相关投资标的进行筛选以及对投资主题进行拆解的解决方案。最终,我们可以完整分析给定投资主题对应的细分产业链结构以及相关的投资标的。我们以“华为供应链”为例,对比展示了基于GPT4模型以及基于GPT3.5叠加新闻两种模型的结果,并给出相关投资标的推荐,对各功能进行完整展示。
总结
使用大语言模型来实现产业链梳理以及标的推荐等功能,一方面是为了能更好利用大数据优势,从量化视角给出产业链的归纳结果,以期能够为主观投资带来增量信息;另一方面,在面对全新的投资主题或产业结构出现变化时,模型能够更快地给出回答,帮助投资者们及时做出反应。
从结果上来看,目前产业链梳理以及个股推荐的等功能虽已有雏形,但仍可能存在一定问题,包括:产业链结果不稳定、结构可能存在冗余、叠加新闻效果不稳定。整体来说,本篇在产业链梳理主题上对Agent技术做了充分的尝试,不过与应用实际落地之间仍有一定差距。当前大语言模型及其相关技术依旧在快速发展中,伴随能力更强大的模型登场,在可预见的未来智能体将真正为金融投资领域带来新的视野。
风险提示
大语言模型输出结果具有一定随机性的风险;模型迭代升级、新功能开发可能会导致结论不同的风险;人工智能模型得出的结论仅供参考,可能出现错误答案的风险。
正文
从大语言模型到“智能体”
OpenAI的首届开发者大会上公布了一系列新成果,但其中给人们带来最大冲击的不是全新的大语言模型,而在于一个新的功能:GPTs和GPT商店。自ChatGPT推出以来,人们一直在寻找方法让它成为适应特定使用目标的定制化产品,而GPTs正是为此而来。简单来说,在GPTs中任何人都可以创建自己想要的定制功能,从而让GPT进行“角色扮演”。当前GPT Store也已正式上线,包含超300万个用户设计的GPTs。
OpenAI官方也推出了一些调试好的GPTs供大家体验。以Data Analysis为例,它能使用本地上传的数据进行较复杂的计算。从下图的回答中我们可以看出GPTs会将复杂任务拆解为小的步骤,同时调用代码工具辅助运算,经过多轮的运算思考之后给出最终答案。
我们也可以创建自己的GPTs,通过给出Instructions指定GPTs的具体行动内容,还可以在Knowledge中上传需要给模型补充的相关信息,再通过Capabilities赋予GPTs调用代码或其他接口的能力,GPTs将其结合为一体以实现更复杂的功能。我们尝试构建了“数学老师”GPT并提问,它会自主地调用编程软件并求解,直到它认为我们给出的问题已得到解答。
实际上,类似的思路早已有雏形。之前火爆一时的AutoGPT项目可以实现用户提问后大模型自主寻找解决方案,包括由模型规划解决问题的步骤、使用哪些工具、以及得到反馈后自动进行下一步思考,在这一框架下模型获得了一定的自主能力,并能够独立实现被赋予的目标。我们称这样的模型为智能体(Agent)。
1.1如何理解智能体(Agent)?
人工智能领域的“智能”概念与传统理解有所不同,它更强调的是行使意志、做出选择和采取行动的能力,强调物体不是单纯被动地受外部刺激而做出反应。智能体则是泛指满足上述行动要求的实体。
历史上的智能体实践经历了多轮迭代。最初智能体仅停留在概念的层面,强调符号逻辑与反应速度。伴随深度强化学习的发展,基于深度学习的智能体(RL-Based Agents)开始发展,AlphaGo等广为人知的项目获得成功标志着智能体开始进入实际应用环境。不过,强化学习作为核心也带来训练时间长、采样效率低以及稳定性问题。大语言模型快速兴起为智能体的发展也带来了丰富想象,越来越多的人开始尝试将大语言模型作为内核,来构建LLM-Based Agent。大语言模型天生自带的多模态感知、推理能力以及强大的泛化能力,为智能体带来了丰富的应用场景。
在大语言模型背景下,智能体概念可以理解为:
智能体 = 大语言模型 + 规划 + 工具 + 记忆
大语言模型作为模型内核,为智能体提供理解、推理与生成能力,也是其他所有功能的实现基础。规划步骤帮助智能体获得对问题求解步骤进行拆分的能力,实现从“一问一答”向“自主思考”转变,其本质上依赖于大语言模型的推理能力。工具赋予智能体与环境交互的能力,是智能体行动的载体;记忆则记录智能体每一轮的思考、行动以及获取的反馈,帮助它在多轮迭代中保持思考的连贯。以下我们对这类基于大语言模型的智能体进行更详细的介绍。
1.2 LLM-Based Agents的运行机制
我们使用一个例子来说明LLM-Based Agents的运行机制。当人类询问“明天这里是否会下雨?”时,下图展现了一种可能的LLM-Based Agent“思考流程”:
感知模块将指令转换为大语言模型可以理解的表示形式;然后大脑模块开始根据天气的图片、地理位置或是其他天气相关的数据进行推理和行动规划;最后由行动端做出响应并将雨伞递给人类。以上只是大致的运作流程,实际上该流程内部可能存在多轮迭代,譬如:
第一轮,智能体识别出需要对下雨的概率进行估计,那么会规划对天气相关的数据进行实时收集,行为模块就会执行联网的查询或是数据库调取这类操作;
第二轮,模型读取收集到的数据,再决定是基于自有知识或是直接调用天气预测模型,来给出下雨的概率;……
最终,智能体在重复上述过程中不断与环境交互并获得反馈,最后得出结论。
总结来说,智能体的运行流程可以简化为:感知(Perception)、规划(Planning)、行动(Action)。
感知的核心目的是将数据统一化为模型可以操作的向量形式,当然在实践层面它还负责Prompt的编写等工作。规划模块则负责进行推理和决策,主要是基于模型自身的参数来给出回答。在大语言模型的加持下,它能获得“记忆”能力,结合自身过去的观察、思考和行动进行规划。行动模块接收规划给出的行动安排,并与环境产生互动,这也是让智能体拥有自主性的最关键部分。工具一般以API或函数的形式提供,丰富的工具选择可以大大拓宽智能体的能力范围,补足大语言模型不擅长的方面。例如模型并不擅长数学运算,在需要涉及运算时我们允许模型调用代码(Code interpreter)进行辅助,这样可以明显提升模型运算的准确度。
大语言模型为智能体带来如下的具体优势:
1)大语言模型的多模态感知扩展了智能体接受的信息范围。除了基本的文本输入外,感知模块也能添加图像编码器,在编码器与大语言模型之间增添中间层的方式将LLM-Based Agent的感知域扩展到视觉输入层面;听觉输入方面,智能体可以以级联方式调用现有工具集或模型库来处理音频信息,将感知空间从纯文字领域扩展到包括文字、听觉和视觉模式在内的多模态领域。
2)大语言模型自身具备强大的推理能力以及丰富的知识,能提升规划模块的效率。除此之外,针对复杂问题,我们还可以使用思维链(CoT)等技术有效提升智能体的推理能力。
3)大语言模型拥有强大的zero-shot learning和few-shot learning能力,允许我们通过描述工具功能或进行少量演示的提示方法来帮助智能体理解工具,这有助于模型进行复杂任务的拆分规划;大语言模型还能够按照指定的格式进行输出,便于行动模块准确读取规划的结果,这为智能体带来更灵活且广泛的工具调用能力。实践中,我们一般要求模型以JSON格式给出选择的工具名称以及参数信息。
4)“记忆”功能帮助智能体从反馈中学习,与环境互动的能力帮助其在多轮推理中不断接近目标。反馈包括环境反馈与人类反馈,智能体会识别自身行为给环境带来的所有改变,包括任务是否完成等;在人类提供反馈时,智能体也会从人类给出的显性评价或隐性行为中读取反馈信息。
5)在大规模语料库中进行预训练后展现出的泛化能力,使构建的智能体能快速应用于各类场景;除此之外,大语言模型还可以随时补充专业领域的知识,以在特定任务上有更好的表现。目前在扩展模型的专业知识方面也有较多研究,主流的方法包括基于FAISS的知识库搭载和微调(Fine Tuning),前者实际上是在Prompt层面告诉模型一些专业知识来提升能力,而后者直接从参数层面对模型进行专业知识方向的提升。
此外,若底层的大语言模型具有足够的智能,LLM-Based Agent还能通过生成可执行程序或将现有工具进行集成来创建工具,甚至在多个智能体的系统中为其他智能体制作软件包。推测未来,智能体可能会变得自给自足,在工具方面表现出高度的自主性。LLM-Based Agent的优秀能力已被初步应用于各种现实场景,如软件开发和科学研究等,但距离全方位的推广还有一定距离。
LLM-Based Agent的应用与实践
目前,LLM-Based Agent应用实例的发展十分活跃,各类项目层出不穷。它们大致可以分为三种应用场景:单一智能体部署、多智能体交互部署和人与智能体交互部署。单个智能体拥有多种能力,在各种应用方向上都能表现出出色的任务解决能力。当多智能体互动时,它们可以通过合作或对抗性互动取得进步。目前单一智能体部署方面已有许多大胆尝试,例如AutoGPT、Langchain等,此外还包括最近推出的GPTs。多智能体交互部署是未来的重点发展方向。
2.1 单一智能体的部署——以 AutoGPT 为例
AutoGPT是目前非常流行的开源项目之一,旨在实现完全自主的问题解决系统。除了GPT-4等大型语言模型的基本功能外,AutoGPT框架还集成了各种实用的外部工具和长短期内存管理。理论上,用户在输入目标后就可以解放双手,等待AutoGPT自动生成想法并执行特定任务,所有这些都不需要用户的额外提示。
AutoGPT是将用户的多目标复杂任务进行分步执行,每一步使用何种工具以完成何种命令,都是通过调用大语言模型的返回结果决定的,从而极大程度上提升决策透明度,实现自我推理决策。此外,调用大语言模型时会将前几轮推理结果的历史信息一同传给模型,从而强化模型的对话记忆性,让LLM综合全局的信息给出下一步要执行的命令。其逻辑流程与模块调用关系大致如下:
从功能上来看,整个AutoGPT执行可以分为四个步骤:任务构建、LLM调用与结果解析、命令执行、缓存处理四个部分。任务构建是整个项目的核心所在,包括用户的输入以及Prompt生成两大部分。用户可以在最初的配置文件中指定任务目标、智能体角色和可使用的工具等。之后AutoGPT会对用户的输入进行整合与标准化形成Prompt文本,这也是该项目中最具特色的部分。
目前阶段,大语言模型的回答结果对Prompt依赖程度依旧较高,很可能使用了某些词汇或句式可以大幅提升模型表现。因此,智能体的表现好坏与否很大程度上取决于其底层维护的Prompt模板。AutoGPT设计了一份较为完备的模板,主要包括命令、约束、表现评估和输出格式。我们从模板上就可以看出AutoGPT的整个流程是在不断地推理、行动与反思的循环中接近最终答案。
1. 命令(Commands):通俗来说就是允许智能体调用的工具,包括执行代码、浏览网页等。模板对所有工具进行命名与功能说明,便于大语言模型理解与使用。每一轮行动时需要大语言模型思考如何挑选命令来辅助完成任务。
2. 约束(Constraints):约束主要给定一些输入信息上的限制,防止多轮对话后智能体的“记忆”超出大语言模型的输入上限。AutoGPT通过缓存来处理此前的行动与结果,为智能体赋予“记忆”的特性,但受限于当前大语言模型的输入文本存在一定上限,智能体必须对记忆进行取舍。
3. 表现评估(Performance Evaluations):要求AutoGPT在每轮回答中对自己给出的回答进行反思,持续判断思考的方向是否准确;同时要求后续求解步骤要尽可能精简,以减少资源消耗。
4. 输出格式(Response Dict):要求大语言模型每轮回复必须包含思考与命令,其中思考的内容要有推理、计划等,并以JSON格式输出内容。使用统一化的格式是为了方便后续调用命令时能读取到具体的参数传递,提升智能体运行的稳健性。
随后,大脑模块进行新一轮思考并输出标准化结果,同时判断是否得到最终答案;若未获得答案,行动模块将开始解析输出内容并具体执行命令;执行得到的结果则进入记忆模块,在下一轮流程开始时再导入模型。
记忆模块也是项目的一大特点,是由大语言模型向智能体迈进中不可或缺的功能。记忆性确保了思考的连续,可以将历史信息一起喂给模型,以便得到更优、更全局思考的结果,同时也可以避免重复执行而浪费计算资源。
不过,这些功能能否按预期实现都依赖于大语言模型自身的能力是否足够。AutoGPT在实际使用中经常会陷入对某几轮思考的循环中,这实际上就是受到了大语言模型输入Token长度的限制导致智能体难以保留长期记忆;另一个现实问题就是成本,多轮思考通常会带来较高的费用。不过这些问题在可预见的未来内都将基本获得解决。
2.2 多智能体的交互部署
强化学习算法与深度学习结合催生出的RL-Based Agent已展现出强大能力,且由于模型应用场景的固定化导致其实现多智能体的互动非常方便,例如擅长下围棋的智能体之间进行对弈等。相比之下,LLM-Based Agent之间基于文本进行交流则更容易出现信息的丢失,这天生限制了它们从多轮反馈中学习以提高性能的潜力。不过伴随参数量的上升,大语言模型展现出强大的文本理解和生成能力,从而大大提高了交互效率。这也是当前LLM-Based Agent的发展趋势之一。
如下图所示,基于大语言模型的多智能体交互模式可以大致分为:取长补短的合作式交互以及互利共赢的对抗式交互。在合作互动中,智能体以无序或有序的方式进行协作,以实现共同目标;在对抗式交互中,智能体以针锋相对的方式展开竞争,以提高各自的性能。
具体来说,基于大语言模型的多智能体系统可以提供专业分工的优势。具备专业技能和领域知识的单个智能体可以从事特定的任务。同时,将复杂任务分解为多个子任务,可以省去在不同流程之间切换的时间。最终,多个智能体之间的高效分工可以完成比没有专业化分工时大得多的工作量,从而大大提高整个系统的效率和产出质量。
2.3 人与智能体的交互部署
人类能对LLM-Based Agent进行最有效的指导和监督,确保它们符合人类的要求和目标。人类的参与可以作为弥补数据不足的重要手段,从而促进更顺利、更安全的协作过程。因此,智能体不应该完全依赖于用预先标注的数据集训练出来的模型;相反,它们应该通过在线互动和参与来发展。实际上,目前我们使用ChatGPT等产品都是在进行这样的交互,这也是最自然的交互形式之一。
产业链梳理案例展示——以“华为供应链”主题为例
3.1 投资主题梳理结果展示
我们以“华为供应链”为例,梳理这一投资主题的上下游结构。前文产业链Agent已总结出与该投资主题关联最强的三个产品为:智能手机、5G基站设备、云服务。在此基础上我们分别梳理各自的产业链信息,并进行汇总。
我们首先使用GPT4为内核的产业链Agent对“华为供应链”投资主题进行梳理。结果如下:
从结果上来看,智能手机梳理出的上游节点非常多,相比之下5G基站设备的梳理结果偏少。我们认为原因在于智能手机相关信息在整个互联网上更易得,因此GPT4的训练集中必然包含了较多的智能手机知识;而5G基站设备本身专业程度更高,网络相关讨论量也更少,这导致GPT4对这部分的掌握较少。
随后,我们使用GPT3.5作为内核,同时给Agent提供新闻检索的能力来增强生成结果。
可以看出,5G基站设备与云服务的上下游节点明显更加细节,同时也做出了一些结构上的调整。譬如基于GPT4的智能体先将云服务拆解成硬件、软件等大类,再做上游划分,结构冗余且实际上并不合理;而叠加新闻数据的GPT3.5模型在划分上游时,其分类依据更加贴近于业务或功能,同时也能给出的节点产品更加细节化。整体来看,叠加新闻数据能对智能体的回答效果带来明显增益。
不过,基于GPT3.5模型构建的智能体可能在末端节点判断与重要性判断上效果不佳,可能需要人工对末端判断等进行干预。条件允许也可以在GPT3.5模型给出节点信息后,再调用GPT4进行补充,实现类似多智能体协同的部署环境。
3.2 投资标的梳理结果展示
最后,我们给出产业链Agent检索得到的个股推荐结果。在筛选过程中,我们仅保留每只个股及其同时出现次数最多的产品节点,同时剔除掉了部分末端节点对应的个股。最终保留板块股数量在72只。
我们与万得整理的“万得华为平台概念指数”的成份股进行对比,该指数成份股主要包括华为各战略业务领域的合作商以及华为直接或间接投资的公司,成份股数量为205只。我们筛选出的“华为供应链”投资标的中,约有60%的个股出现在华为平台概念的成份股中,已与人工筛选得到的结果有较高相似度。偏差部分可能在于我们仅挂载了有限时间范围的新闻进行筛选,补充的知识质量有限;若对关联度有更高的要求,可以在检索新闻的范围上再筛选关键词“华为”出现的文本,以及选取文本相关性更高的文本等方法实现。
总结
本文主要介绍了智能体(Agent)的概念,并以此为切入点详细介绍当前主流LLM-based Agent的运行逻辑框架。我们参考已有框架,将智能体技术应用于金融投资领域,搭建了专门用于产业链梳理的“产业链Agent”,并通过RAG方法挂载新闻数据扩充了智能体的专业知识,能够输出更加精确的产业链节点;更进一步,我们提供了使用“产业链Agent”推荐具体投资标的以及梳理投资主题的解决方案。最终,我们以“华为供应链”为对象,进行投资主题梳理以及投资标的推荐的展示。
使用大语言模型来实现这样的功能,一方面是为了能更好利用大数据优势,从量化视角给出产业链的归纳结果,以期能够为主观投资带来增量信息;另一方面,在面对全新的投资主题或产业结构出现变化时,模型能够更快地给出回答,帮助投资者们及时做出反应。
当然从示例结果上来看,产业链梳理以及个股推荐的等功能虽然已有雏形,但仍可能存在一定问题:
1、产业链结果不稳定。大语言模型天然带有随机性,尽管我们已通过参数设置将模型随机性降到最低,依旧无法避免多次回答结果不同。这在梳理层数较多时会更为明显。当然,不同人类专家梳理的产业链也会存在一定差别,能保持大致框架正确。
2、结构可能存在冗余。GPT有时不会从业务或供需角度出发梳理上下游,会反复给出例如“软件设备”、“硬件设施”、“人力资源”等较笼统的节点,容易导致结构冗杂,也可能出现反复。叠加新闻数据提升模型对业务的理解程度可以一定程度缓解这一问题。
3、叠加新闻效果不稳定。在对比是否叠加新闻的结果时,我们发现模型可能过度依赖于检索到的新闻内容,最终结果退化成对新闻的归纳整理,这要求我们提供高质量的挂载数据。另一种应对方案是,我们通过主观判断给出大致的产业链“骨架”,再由大语言模型检索新闻来丰富其“血肉”,这也是后续可能进一步探索的方向。
整体来说,本篇在产业链梳理主题上对Agent技术做了充分的尝试,不过与应用实际落地之间仍有一定差距。当前大语言模型及其相关技术依旧在快速发展中,伴随能力更强大的模型登场,在可预见的未来智能体将真正为金融投资领域带来新的视野。
风险提示
1、大语言模型输出结果具有一定随机性的风险;
2、模型迭代升级、新功能开发可能会导致结论不同的风险;
3、人工智能模型得出的结论仅供参考,可能出现错误答案的风险。
往期报告
主动量化系列
Alpha掘金系列
Beta猎手系列
1.《Beta猎手系列之六:基于宏观量价信号叠加的微盘股茅指数择时轮动策略》
2.《Beta猎手系列之五:Beta猎手系列之五:基于机构调研热度和广度视角的行业配置策略》
3.《Beta猎手系列之四:如何利用ChatGPT解析卖方策略观点并构建行业轮动策略?》
4.《Beta猎手系列之三:行业超预期的全方位识别与轮动策略》
5.《Beta猎手系列之二:熵池模型:如何将纯主动观点纳入量化配置模型》
6.《Beta猎手系列:基于动态宏观事件因子的股债轮动策略》
智能化选基系列
量化漫谈系列
量化掘基系列
CTA金点子系列
年度投资策略
+
报告信息
证券研究报告:《Beta猎手系列之七:追上投资热点——基于LLM的产业链图谱智能化生成》
对外发布时间:2024年1月15日
报告发布机构:国金证券股份有限公司
证券分析师:高智威
SAC执业编号:S1130522110003
邮箱:gaozhiw@gjzq.com.cn
联系人:胡正阳
邮箱:huzhengyang1@gjzq.com.cn