模型介绍
中文整理FinGPT:开源金融大模型
论文
[论文地址] Blueprint of FinGPT
[huggingface预训练模型下载地址]
为什么 FinGPT?
1). 金融是高度动态的。 BloombergGPT 使用金融数据和通用数据混合训练 LLM,耗时约 53 天,成本约 300 万美元)。每月或每周重新训练一个像 BloombergGPT 这样的 LLM 模型成本很高,因此轻量级适应性非常有利。FinGPT 可以根据新数据迅速进行微调(成本大幅下降,每次微调成本不到 300 美元)。
2). 互联网规模的金融数据民主化至关重要,例如可以利用自动数据整理管道及时更新模型(每月或每周更新)。BloombergGPT 拥有特权数据访问权和应用程序接口,而 FinGPT 则是一种更易访问的替代方案。它优先考虑轻量级适配,利用现有最好的开源 LLM。
3). 其关键技术是 “RLHF(从人类反馈中强化学习)”,这是 BloombergGPT 所缺少的。RLHF 使 LLM 模型能够学习个人偏好(风险厌恶程度、投资习惯、个性化机器人顾问等),而这正是 ChatGPT 和 GPT4 的 “秘诀 ”所在。
模型结构
### 多任务 LLMs 模型:
Models Description Function
- -------- --------------------- ----------------
fingpt-mt llama2-7b lora Fine-tuned Llama2-7b model with LoRA Multi-Task
fingpt-mt falcon-7b lora Fine-tuned falcon-7b model with LoRA Multi-Task
fingpt-mt bloom-7b1 lora Fine-tuned bloom-7b1 model with LoRA Multi-Task
fingpt-mt mpt-7b lora Fine-tuned mpt-7b model with LoRA Multi-Task
fingpt-mt chatglm2-6b lora Fine-tuned chatglm-6b model with LoRA Multi-Task
fingpt-mt qwen-7b lora Fine-tuned qwen-7b model with LoRA Multi-Task
fingpt-sentiment llama2-13b lora Fine-tuned llama2-13b model with LoRA Single-Task
fingpt-forecaster dow30 llama2-7b lora Fine-tuned llama2-7b model with LoRA Single-Task
FinGPT 生态系统
FinGPT 为 FinLLM 提供了一个包含五个层次的全栈框架:
- **数据源层**: 这一层确保了全面的市场覆盖,通过实时信息捕捉解决了财务数据的时间敏感性问题。
- **数据工程层**: 该层适用于实时 NLP 数据处理,可应对金融数据中的高时间敏感性和低信噪比等固有挑战。
- **LLMs 层**: 该层侧重于一系列微调方法(如 LoRA),可减轻财务数据的高度动态性,确保模型的相关性和准确性。
- **任务层**: 这一层负责执行基本任务。这些任务是 FinLLM 性能评估和交叉比较的基准。
- **应用层**: 这一层展示了实际应用和演示,突出了 FinGPT 在金融领域的潜在能力。
FinGPT 框架: 开源金融大型语言模型
FinGPT-RAG: 我们提出了一个专门用于金融情感分析的检索增强大型语言模型框架,通过外部知识检索优化信息深度和上下文,从而确保做出细致入微的预测。
FinGPT-FinNLP: FinNLP为所有对金融领域的法学硕士和NLP感兴趣的人提供了一个平台。在这里,我们为金融领域的 LLM 培训和微调提供了完整的管道。完整架构如下图所示。详细的代码和介绍可以在这里找到. 或者您可以参考 wiki。
FinGPT-Benchmark: 我们引入了一种针对金融领域开源大型语言模型(LLM)进行优化的新型指令调整范式,增强了这些模型对各种金融数据集的适应性,同时还有助于从特定任务、多任务和零次指令调整任务中进行经济高效的系统基准测试。
FinGPT的 LLMs 层使用的开源基础模型
欢迎为各种特定语言的金融市场提供更多开源基础模型。
Base Model Pretraining Tokens Context Length Model Advantages Model Size Experiment Results Applications
- --- ---- ---- ---- ---- ---- ----
Llama-2 2 Trillion 4096 Llama-2 excels on English-based market data llama-2-7b and Llama-2-13b llama-2 consistently shows superior fine-tuning results Financial Sentiment Analysis, Robo-Advisor
Falcon 1,500B 2048 Maintains high-quality results while being more resource-efficient falcon-7b Good for English market data Financial Sentiment Analysis
MPT 1T 2048 MPT models can be trained with high throughput efficiency and stable convergence mpt-7b Good for English market data Financial Sentiment Analysis
Bloom 366B 2048 World’s largest open multilingual language model bloom-7b1 Good for English market data Financial Sentiment Analysis
ChatGLM2 1.4T 32K Exceptional capability for Chinese language expression chatglm2-6b Shows prowess for Chinese market data Financial Sentiment Analysis, Financial Report Summary
Qwen 2.2T 8k Fast response and high accuracy qwen-7b Effective for Chinese market data Financial Sentiment Analysis
InternLM 1.8T 8k Can flexibly and independently construct workflows internlm-7b Effective for Chinese market data Financial Sentiment Analysis
算法原理
模型基于 General Language Model (GLM) 架构,GLM是一种基于Transformer的语言模型,以自回归空白填充为训练目标,同时具备自回归和自编码能力。
ChatGLM**2**-6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,ChatGLM**2**-6B 引入了如下新特性:
- **更强大的性能**:基于 ChatGLM 初代模型的开发经验,我们全面升级了 ChatGLM2-6B 的基座模型。ChatGLM2-6B 使用了 GLM 的混合目标函数,经过了 1.4T 中英标识符的预训练与人类偏好对齐训练,评测结果显示,相比于初代模型,ChatGLM2-6B 在 MMLU(+23%)、CEval(+33%)、GSM8K(+571%) 、BBH(+60%)等数据集上的性能取得了大幅度的提升,在同尺寸开源模型中具有较强的竞争力。
- **更长的上下文**:基于 FlashAttention 技术,我们将基座模型的上下文长度(Context Length)由 ChatGLM-6B 的 2K 扩展到了 32K,并在对话阶段使用 8K 的上下文长度训练。对于更长的上下文,我们发布了 ChatGLM2-6B-32K 模型。LongBench 的测评结果表明,在等量级的开源模型中,ChatGLM2-6B-32K 有着较为明显的竞争优势。
- **更高效的推理**:基于 Multi-Query Attention 技术,ChatGLM2-6B 有更高效的推理速度和更低的显存占用:在官方的模型实现下,推理速度相比初代提升了 42%,INT4 量化下,6G 显存支持的对话长度由 1K 提升到了 8K。
- **更开放的协议**:ChatGLM2-6B 权重对学术研究**完全开放**,在填写问卷进行登记后**亦允许免费商业使用**。
ChatGLM2-6B 开源模型旨在与开源社区一起推动大模型技术发展,恳请开发者和大家遵守开源协议,勿将开源模型和代码及基于开源项目产生的衍生物用于任何可能给国家和社会带来危害的用途以及用于任何未经过安全评估和备案的服务。**目前,本项目团队未基于 ChatGLM2-6B 开发任何应用,包括网页端、安卓、苹果 iOS 及 Windows App 等应用。**
环境配置
Docker(方法一)
Dockerfile(方法二)
Anaconda(方法三)
关于本项目DCU显卡所需的特殊深度学习库可从光合开发者社区下载安装。
Tips:以上dtk驱动、python、torch、deepspeed等DCU相关工具版本需要严格一一对应
数据集
指令调整数据集和模型
Datasets Train Rows Test Rows Description
- -------- ----------------- ------------ ---------------------
fingpt-sentiment-train 76.8K N/A Sentiment Analysis Training Instructions
fingpt-finred 27.6k 5.11k Financial Relation Extraction Instructions
fingpt-headline 82.2k 20.5k Financial Headline Analysis Instructions
fingpt-ner 511 98 Financial Named-Entity Recognition Instructions
fingpt-fiqa qa 17.1k N/A Financial Q&A Instructions
fingpt-fineval 1.06k 265 Chinese Multiple-Choice Questions Instructions
[huggingface数据集下载地址] 网站提供12中不同任务的数据集用于训练
数据处理代码
需要训练数据转换为必要的json格式,数据格式为:
可以使用**data process.py**进行数据处理
项目中已提供用于试验训练的迷你数据集,训练数据目录结构如下,用于正常训练的完整数据集请按此目录结构进行制备:
训练
单机多卡
单机单卡
推理
结果
多任务英语推理
单任务中文推理
精度
测试数据:twitter-financial-news-sentiment,使用的加速卡:V100S/K100。
根据测试结果情况填写表格:
xxx train loss train runtime eval los eval runtime
:------: :------: :------: :------: :------:
V100s 0.371248 4445.348 0.06542 30.5495
K100 0.371148 4018.4874 0.06536 53.1593
应用场景
金融**,**教育**,**政府**,**科研**
算法类别
NLP
预训练权重
[huggingface预训练模型下载地址]
可下载带有lora后缀的预训练权重,使用本人编写的**merge model.py**文件进行模型合并。
参考资料
本项目gitlab地址FinGPT
参考项目教程网址Notebook教程
优先采用原作者提供的中文模型卡片;仅有英文说明时由闲社AI翻译整理。重要参数、许可证和商用范围请以原文为准。
你将获得什么
完整仓库方式包含该固定版本中的权重、配置、分词器及说明文件;指定版本方式只下载所选文件或整组分片。多模态模型的投影文件、配置等依赖,请按作者说明配齐。
完整仓库可能包含多个权重格式,因此需要的磁盘空间可能大于单一格式的模型大小。下载文件不等于完成模型部署。
使用前须知
运行模型需要的设备、工具与依赖,以原作者说明为准。
是否允许商用、修改和分发,请查看模型许可证。
闲社提供资料与镜像下载方法,不代表已运行模型或完成安全审计。下载的代码应先检查,再执行。
资料或下载有问题?
登录后可提交反馈。
