FinGPT 介绍
了解项目的详细信息和使用方法
FinGPT:开源金融大语言模型
由于金融科技机构的内部规定和政策,我们不应期待华尔街会开源大语言模型或开放API。
最新动态:
- [模型发布] 2023年11月:我们发布了FinGPT-Forecaster!🔥演示、Medium博客和模型已在Huggingface上线🤗!
- [论文录用] 2023年10月:"FinGPT: 开源大语言模型在金融数据集上的指令微调基准"被NeurIPS 2023指令研讨会录用🎉
- [论文录用] 2023年10月:"FinGPT: 为金融大语言模型民主化互联网规模数据"被NeurIPS 2023指令研讨会录用🎉
- [模型发布] 2023年10月:我们发布了在FinGPT-Benchmark上评估基础大语言模型时生成的金融多任务大语言模型🔥
- [论文录用] 2023年9月:"通过检索增强大语言模型提升金融情感分析"被ACM国际人工智能金融会议 (ICAIF-23)录用🎉
- [模型发布] 2023年8月:我们发布了金融情感分析模型🔥
- [论文录用] 2023年7月:"Instruct-FinGPT: 通过通用大语言模型的指令微调进行金融情感分析"被FinLLM 2023@IJCAI 2023录用🎉
- [论文录用] 2023年7月:"FinGPT: 开源金融大语言模型"被FinLLM 2023@IJCAI 2023录用🎉
- [Medium博客] 2023年6月:FinGPT: 用20个前沿应用推动金融未来
为什么选择FinGPT?
1). 金融领域变化迅速。BloombergGPT使用金融数据和通用数据的混合训练了一个大语言模型,耗时约53天,成本约为300万美元。像BloombergGPT这样的大语言模型每月或每周重新训练的成本非常高,因此轻量级的适应方式非常受欢迎。FinGPT可以快速微调以整合新数据(成本显著降低,每次微调不到300美元)。
2). 民主化互联网规模的金融数据至关重要,比如通过自动数据整理管道及时更新模型(每月或每周更新)。BloombergGPT拥有特权数据访问和API,而FinGPT提供了一个更易获取的替代方案。它优先考虑轻量级适应,利用最好的开源大语言模型。
3). 关键技术是“RLHF(基于人类反馈的强化学习)”,这是BloombergGPT所缺失的。RLHF使大语言模型能够学习个人偏好(风险厌恶水平、投资习惯、个性化机器人顾问等),这是ChatGPT和GPT4的“秘密”成分。
AI机器人顾问的里程碑:FinGPT-Forecaster
在我们的HuggingFace Space上尝试最新发布的FinGPT-Forecaster演示
FinGPT-Forecaster的数据集:https://huggingface.co/datasets/FinGPT/fingpt-forecaster-dow30-202305-202405
输入以下内容:
- 股票代码(例如AAPL、MSFT、NVDA)
- 你希望预测开始的日期(yyyy-mm-dd)
- 检索市场新闻的过去周数
- 是否添加最新的基本财务信息作为附加信息
点击提交!你将收到一份全面的公司分析和下周股价走势的预测!
有关详细和更定制的实现,请参考FinGPT-Forecaster
FinGPT演示:
当前金融情感分析的最新技术
-
-
新功能:在单个RTX 3090上可训练和推理的最佳FinGPT情感分析模型,甚至优于GPT-4和ChatGPT微调。
-
FinGPT v3系列是使用LoRA方法在新闻和推文情感分析数据集上微调的大语言模型,以低成本在大多数金融情感分析数据集上取得了最佳成绩。
-
FinGPT v3.3使用llama2-13b作为基础模型;FinGPT v3.2使用llama2-7b作为基础模型;FinGPT v3.1使用chatglm2-6B作为基础模型。
-
基准测试结果:
-
加权F1 FPB FiQA-SA TFNS NWGI 设备 时间 成本 FinGPT v3.3 0.882 0.874 0.903 0.643 1 × RTX 3090 17.25小时 $17.25 FinGPT v3.2 0.850 0.860 0.894 0.636 1 × A100 5.5小时 $ 22.55 FinGPT v3.1 0.855 0.850 0.875 0.642 1 × A100 5.5小时 $ 22.55 FinGPT (8bit) 0.855 0.847 0.879 0.632 1 × RTX 3090 6.47小时 $ 6.47 FinGPT (QLoRA) 0.777 0.752 0.828 0.583 1 × RTX 3090 4.15小时 $ 4.15 OpenAI微调 0.878 0.887 0.883 - - - - GPT-4 0.833 0.630 0.808 - - - - FinBERT 0.880 0.596 0.733 0.538 4 × NVIDIA K80 GPU - - Llama2-7B 0.390 0.800 0.296 0.503 2048 × A100 21天 $ 4.23百万 BloombergGPT 0.511 0.751 - - 512 × A100 53天 $ 2.67百万 每GPU小时成本。 对于A100 GPU,使用配备8个A100 GPU的AWS p4d.24xlarge实例作为基准来估算成本。请注意,BloombergGPT也使用了p4d.24xlarge。截至2023年7月11日,该实例的每小时费用为$32.773。因此,每GPU小时的估算成本为$32.77除以8,约为**$4.10**。以此作为参考单价(1 GPU小时)。BloombergGPT估算成本= 512 x 53 x 24 = 651,264 GPU小时 x $4.10 = $2,670,182.40。对于RTX 3090,我们假设其每小时成本约为**$1.0**,这实际上比vast.ai等平台上的可用GPU要高得多。
-
通过运行基准测试重现结果,详细教程即将推出。
-
使用LoRA方法在仅一个RTX 3090上微调你自己的FinGPT v3模型,使用这个笔记本进行8bit微调,或使用这个笔记本进行int4(QLoRA)微调。
-
-
- 通过LoRA微调ChatGLM2 / Llama2,使用中国市场标记数据进行FinGPT
指令微调数据集和模型
我们使用的数据集和多任务金融大语言模型模型可在https://huggingface.co/FinGPT获取
数据集 | 训练行数 | 测试行数 | 描述 |
---|---|---|---|
fingpt-sentiment-train | 76.8K | N/A | 情感分析训练指令 |
fingpt-finred | 27.6k | 5.11k | 金融关系提取指令 |
fingpt-headline | 82.2k | 20.5k | 金融头条分析指令 |
fingpt-ner | 511 | 98 | 金融命名实体识别指令 |
fingpt-fiqa_qa | 17.1k | N/A | 金融问答指令 |
fingpt-fineval | 1.06k | 265 | 中文多选题指令 |
多任务金融大语言模型:
python1 demo_tasks = [ 2 '金融情感分析', 3 '金融关系提取', 4 '金融头条分类', 5 '金融命名实体识别',] 6 demo_inputs = [ 7 "葛兰素史克的ViiV Healthcare与Desano签署中国制造协议", 8 "苹果公司首席执行官史蒂夫·乔布斯周一试图缓解投资者对其健康状况的担忧,称其体重下降是由一种相对容易治疗的激素失衡引起的。", 9 '黄金在早盘交易中走低;关注近期区间在28,300-28,600卢比', 10 '本贷款和担保协议于1999年1月27日由硅谷银行(“银行”)签订,该银行是一家加利福尼亚州特许银行,其主要营业地点位于加利福尼亚州圣克拉拉市塔斯曼大道3003号,贷款生产办公室位于威廉街40号,套房。',] 11 demo_instructions = [ 12 '这条新闻的情感是什么?请从{负面/中性/正面}中选择一个答案。', 13 '给定描述两个词/短语之间关系的选项,从输入文本中提取词/短语对及其对应的词汇关系。输出格式应为“关系1: 词1, 词2; 关系2: 词3, 词4”。选项:生产/生产的材料、制造商、分销商、行业、职位、原始广播公司、拥有者、创始人、分销格式、总部位置、证券交易所、货币、母公司、首席执行官、董事/经理、所有者、运营商、成员、雇主、主席、平台、子公司、法律形式、出版商、开发者、品牌、业务部门、成立地点、创作者。', 14 '新闻头条是否谈论价格上涨?请从{是/否}中选择一个答案。', 15 '请从输入句子中提取实体及其类型,实体类型应从{人/组织/地点}中选择。',]
模型 | 描述 | 功能 |
---|---|---|
fingpt-mt_llama2-7b_lora | 使用LoRA微调的Llama2-7b模型 | 多任务 |
fingpt-mt_falcon-7b_lora | 使用LoRA微调的falcon-7b模型 | 多任务 |
fingpt-mt_bloom-7b1_lora | 使用LoRA微调的bloom-7b1模型 | 多任务 |
fingpt-mt_mpt-7b_lora | 使用LoRA微调的mpt-7b模型 | 多任务 |
fingpt-mt_chatglm2-6b_lora | 使用LoRA微调的chatglm-6b模型 | 多任务 |
fingpt-mt_qwen-7b_lora | 使用LoRA微调的qwen-7b模型 | 多任务 |
fingpt-sentiment_llama2-13b_lora | 使用LoRA微调的llama2-13b模型 | 单任务 |
fingpt-forecaster_dow30_llama2-7b_lora | 使用LoRA微调的llama2-7b模型 | 单任务 |
教程
[训练] FinGPT初学者指南:使用LoRA和ChatGLM2–6B进行训练,一个笔记本,$10 GPU
理解FinGPT:教育博客系列
FinGPT生态系统
FinGPT采用了一个全栈框架,包含五个层次:
- 数据源层:该层确保全面的市场覆盖,通过实时信息捕捉解决金融数据的时间敏感性。
- 数据工程层:专为实时NLP数据处理设计,解决金融数据的高时间敏感性和低信噪比问题。
- 大语言模型层:专注于LoRA等微调方法,解决金融数据的高度动态性,确保模型的相关性和准确性。
- 任务层:负责执行基本任务。这些任务作为FinLLMs领域性能评估和交叉比较的基准。
- 应用层:展示实际应用和演示,突出FinGPT在金融领域的潜在能力。
- FinGPT框架:开源金融大语言模型

- FinGPT-RAG:我们提出了一个专门为金融情感分析设计的检索增强大语言模型框架,通过外部知识检索优化信息深度和上下文,从而确保细致的预测。

- FinGPT-FinNLP:FinNLP为所有对金融领域的大语言模型和自然语言处理感兴趣的人提供了一个游乐场。我们在这里提供了金融领域大语言模型训练和微调的完整流程。完整架构如下图所示。详细代码和介绍可以在这里找到。或者你可以参考wiki

- FinGPT-Benchmark:我们引入了一种新的指令微调范式,专为金融领域的开源大语言模型优化,增强了它们对多样化金融数据集的适应性,同时也促进了从任务特定、多任务和零样本指令微调任务中进行成本效益高、系统化的基准测试。

引用 FinGPT
@article{yang2023fingpt,
title={FinGPT:开源金融大语言模型},
author={杨宏阳 and 刘晓阳 and 王丹},
journal={IJCAI 2023 年 FinLLM 研讨会},
year={2023}
}
@article{zhang2023instructfingpt,
title={Instruct-FinGPT:通过指令微调通用大语言模型进行金融情感分析},
author={张博宇 and 杨宏阳 and 刘晓阳},
journal={IJCAI 2023 年 FinLLM 研讨会},
year={2023}
}
@article{zhang2023fingptrag,
title={通过检索增强大语言模型提升金融情感分析},
author={张博宇 and 杨宏阳 and 周天宇 and 巴巴尔·阿里 and 刘晓阳},
journal = {ACM 国际金融人工智能会议 (ICAIF)},
year={2023}
}
@article{wang2023fingptbenchmark,
title={FinGPT:开源大语言模型在金融数据集上的指令微调基准},
author={王能 and 杨宏阳 and 王丹},
journal={NeurIPS 指令微调与指令遵循研讨会},
year={2023}
}
@article{2023finnlp,
title={以数据为中心的 FinGPT:为金融大语言模型民主化互联网规模数据},
author={刘晓阳 and 王国轩 and 杨宏阳 and 查道琛},
journal={NeurIPS 指令微调与指令遵循研讨会},
year={2023}
}
许可证
MIT 许可证
免责声明:我们出于学术目的在 MIT 教育许可证下共享代码。本文内容不构成财务建议,也不推荐进行真实货币交易。请使用常识,并在交易或投资前务必咨询专业人士。