随着金融机构和专业人士日益将大型语言模型(LLMs)整合到工作流程中,金融领域与AI社区之间存在重大障碍,包括专有数据和专业知识。这些挑战阻碍了AI社区有效增强金融任务的能力。
FinRobot,一个新颖的开源AI Agent平台,支持多种金融专业AI智能体,每个智能体都由LLM驱动。平台由四层组成:
FinRobot整体框架
-
金融AI Agnet层:通过将复杂的金融问题分解为逻辑序列来制定金融思维链(CoT)。
-
金融LLM算法层:动态配置适当的模型应用策略以适应特定任务。
-
LLMOps和DataOps层:通过应用训练/微调技术和使用与任务相关的数据来产生准确的模型。
-
多源LLM基础模型层:整合各种LLMs,并使上层能够直接访问它们。
FinRobot Agent工作流程
-
感知模块 (Perception): 该模块负责捕获和解释来自市场信息源、新闻和经济指标的多模态金融数据。它使用复杂的技术将数据结构化,以便于深入分析。
-
大脑模块 (Brain): 作为核心处理单元,该模块使用大型语言模型 (LLMs) 感知来自感知模块的数据,并运用金融思维链 (Financial Chain-of-Thought, CoT) 过程生成结构化指令。
-
行动模块 (Action): 该模块执行大脑模块的指令,应用工具将分析洞察转化为可操作的结果。行动包括交易、投资组合调整、生成报告或发送警报,从而积极影响金融环境
FinRobot智能调度器(Smart Scheduler)的结构布局
-
主管智能体(Director Agent): 作为任务分配过程的协调者,确保基于代理的性能指标和特定任务的适用性来分配任务。
-
智能体注册(Agent Registration): 管理系统中智能体的注册和可用性跟踪,以促进高效任务分配。
-
智能体适配器(Agent Adaptor): 为特定任务定制智能体功能,提高其在整体系统中的性能和集成度。
-
任务管理器(Task Manager): 管理和存储针对各种金融任务定制的通用和微调后的基于LLMs的智能体,定期更新以确保相关性和有效性。
FinRobot研报撰写示例
以公司的10-k报告、财务数据和市场数据作为输入,输出股票研究报告
import os``import autogen``from textwrap import dedent``from finrobot.utils import register_keys_from_json``from finrobot.agents.workflow import SingleAssistantShadow`` ``llm_config = {` `"config_list": autogen.config_list_from_json(` `"../OAI_CONFIG_LIST",` `filter_dict={` `"model": ["gpt-4-0125-preview"],` `},` `),` `"timeout": 120,` `"temperature": 0.5,``}``register_keys_from_json("../config_api_keys")`` ``# Intermediate strategy modules will be saved in this directory``work_dir = "../report"``os.makedirs(work_dir, exist_ok=True)`` ``assistant = SingleAssistantShadow(` `"Expert_Investor",` `llm_config,` `max_consecutive_auto_reply=None,` `human_input_mode="TERMINATE",``)`` ``company = "NVIDIA"``fyear = "2023"`` ``message = dedent(` `f"""` `With the tools you've been provided, write an annual report based on {company}'s {fyear} 10-k report, format it into a pdf.` `Pay attention to the followings:` `- Explicitly explain your working plan before you kick off.` `- Use tools one by one for clarity, especially when asking for instructions.`` - All your file operations should be done in "{work_dir}". `` - Display any image in the chat once generated.` `- All the paragraphs should combine between 400 and 450 words, don't generate the pdf until this is explicitly fulfilled.``"""``)`` ``assistant.chat(message, use_cache=True, max_turns=50,` `summary_method="last_msg")
NVIDIA公司研究报告
贵州茅台证券研究报告
FinRobot股票市场分析
以公司的股票代码、近期基本财务状况和市场新闻作为输入,并预测其股票市场走势。
import autogen``from finrobot.utils import get_current_date, register_keys_from_json``from finrobot.agents.workflow import SingleAssistant`` ``# Read OpenAI API keys from a JSON file``llm_config = {` `"config_list": autogen.config_list_from_json(` `"../OAI_CONFIG_LIST",` `filter_dict={"model": ["gpt-4-0125-preview"]},` `),` `"timeout": 120,` `"temperature": 0,``}`` ``# Register FINNHUB API keys``register_keys_from_json("../config_api_keys")`` ``company = "NVDA"`` ``assitant = SingleAssistant(` `"Market_Analyst",` `llm_config,` `# set to "ALWAYS" if you want to chat instead of simply receiving the prediciton` `human_input_mode="NEVER",``)``assitant.chat(` `f"Use all the tools provided to retrieve information available for {company} upon {get_current_date()}. Analyze the positive developments and potential concerns of {company} "` `"with 2-4 most important factors respectively and keep them concise. Most factors should be inferred from company related news. "` `f"Then make a rough prediction (e.g. up/down by 2-3%) of the {company} stock price movement for next week. Provide a summary analysis to support your prediction."``)
NVIDIA市场走势分析
贵州茅台市场走势分析
https://arxiv.org/abs/2405.14767``FinRobot: An Open-Source AI Agent Platform for Financial Applications using Large Language Models``https://github.com/AI4Finance-Foundation/FinRobot
如何学习大模型 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 的正确特征了。