PIXIU
PIXIU 是一个开源项目,专注于金融领域的人工智能技术,提供了首个金融大语言模型、指令调优数据集以及评估基准,旨在全面评估金融领域的语言模型。它解决了金融领域AI模型缺乏统一标准和高质量训练数据的问题,帮助研究人员和开发者提升模型在金融场景中的表现。适合金融研究者、AI开发者以及对金融科技感兴趣的专业人士使用。PIXIU 在金融文本理解、数据分析和自动化处理等方面具有独特优势,是推动金融AI开放发展的有力工具。
使用场景
某金融科技公司正在开发一款智能投顾系统,需要对大量金融文本进行理解和分析,以提供个性化的投资建议。团队在训练和评估金融大模型时面临诸多挑战。
没有 PIXIU 时
- 缺乏专门针对金融领域的大型语言模型,导致模型理解能力有限
- 没有统一的指令调优数据集,难以有效提升模型在具体任务上的表现
- 评估标准不明确,无法准确衡量模型在金融场景中的实际效果
- 数据和模型资源分散,团队需要花费大量时间自行收集和整理
使用 PIXIU 后
- 直接使用 PIXIU 提供的金融大模型,显著提升对金融文本的理解和生成能力
- 利用内置的指令调优数据集,快速优化模型在投资建议等任务上的表现
- 通过标准化的评估基准,精准衡量模型在不同金融场景下的性能
- 节省大量数据准备时间,使团队能够更专注于算法优化和产品开发
PIXIU 为金融 AI 开发者提供了从模型、数据到评估的一站式解决方案,极大提升了研发效率和模型质量。
运行环境要求
- Linux
- macOS
- Windows
需要 NVIDIA GPU,显存 8GB+,CUDA 11.7+
16GB+

快速开始
免责声明
本仓库及其内容仅用于学术和教育目的。其中任何材料均不构成财务、法律或投资建议。对于内容的准确性、完整性或实用性,不提供任何明示或暗示的保证。作者及贡献者对因使用本仓库信息而产生的任何错误、遗漏或后果概不负责。用户在做出任何财务、法律或投资决策前,应自行判断并咨询专业人士。使用本仓库中的软件和信息,完全由用户自行承担风险。
通过使用或访问本仓库中的信息,您即表示同意赔偿、保护并使作者、贡献者以及任何关联组织或人员免受任何索赔或损害的影响。
📢 更新(日期:2023年9月22日)
🚀 我们非常高兴地宣布,我们的论文《PIXIU:面向金融领域的综合基准、指令数据集与大型语言模型》已被NeurIPS 2023数据集与基准赛道接收!
📢 更新(日期:2023年10月8日)
🌏 我们自豪地宣布,FinBen的增强版本现已支持中文和西班牙语!
📢 更新(日期:2024年2月20日)
🌏 我们很高兴地宣布,我们的论文《The FinBen:大型语言模型的综合性金融基准》现已发表在FinBen上。
📢 更新(日期:2024年5月2日)
🌏 我们诚挚邀请您参加IJCAI2024挑战赛“大型语言模型中的金融挑战——FinLLM”,入门指南可在Starter-kit中找到。
检查点:
语言
论文
- PIXIU:面向金融领域的综合基准、指令数据集与大型语言模型
- The FinBen:大型语言模型的综合性金融基准
- 没有一种语言是孤岛:在金融领域大型语言模型、指令数据和基准中统一中文与英文
- Dólares还是Dollars?解析金融LLM在西班牙语与英语之间的双语能力
评估:
情感分析
分类
- 新闻标题 (flare_headlines)
- FinArg ECC Task1 (flare_finarg_ecc_auc)
- FinArg ECC Task2 (flare_finarg_ecc_arc)
- CFA (flare_cfa)
- MultiFin EN (flare_multifin_en)
- 并购 (flare_ma)
- MLESG EN (flare_mlesg)
知识抽取
- NER (flare_ner)
- Finer Ord (flare_finer_ord)
- FinRED (flare_finred)
- FinCausal20 Task1 (flare_causal20_sc)
- FinCausal20 Task2 (flare_cd)
数字理解
文本摘要
信用评分
- 德国数据集 (flare_german)
- 澳大利亚数据集 (flare_australian)
- Lendingclub数据集 (flare_cra_lendingclub)
- 信用卡欺诈数据集 (flare_cra_ccf)
- ccFraud数据集 (flare_cra_ccfraud)
- 波兰数据集 (flare_cra_polish)
- 台湾经济期刊数据集 (flare_cra_taiwan)
- PortoSeguro数据集 (flare_cra_portoseguro)
- 旅行保险数据集 (flare_cra_travelinsurance)
预测
概述
欢迎来到PIXIU项目!本项目旨在支持金融领域大型语言模型(LLMs)的开发、微调及评估。PIXIU是迈向理解和利用LLMs在金融领域潜力的重要一步。
仓库结构
仓库被组织成几个关键组件,每个组件都在金融NLP流程中发挥独特作用:
FinBen:我们的金融语言理解与预测评估基准。FinBen作为金融LLMs的评估套件,专注于各类金融情境下的理解和预测任务。
FIT:我们的金融指令数据集。FIT是一个多任务、多模态的指令数据集,专为金融任务设计,是微调LLMs以完成这些任务的训练基础。
FinMA:我们的金融大型语言模型(LLM)。FinMA是我们项目的核心,为各项金融任务提供学习与预测能力。
主要特点
开放资源:PIXIU公开提供金融LLM、指令微调数据以及评估基准中包含的数据集,以促进开放研究与透明度。
多任务性:PIXIU中的指令微调数据和基准涵盖了多样化的金融任务,包括四项金融NLP任务和一项金融预测任务。
多模态性:PIXIU的指令微调数据和基准由多模态金融数据组成,其中包括用于股票走势预测任务的时间序列数据。它覆盖了各种类型的金融文本,如报告、新闻文章、推文和监管文件。
多样性:与以往主要关注金融NLP任务的基准不同,PIXIU的评估基准包含了与现实场景紧密相关的关键金融预测任务,使其更具挑战性。
FinBen 2.0:金融语言理解与预测评估基准
在这一部分,我们提供了FinMA与其他领先模型(包括ChatGPT、GPT-4、BloombergGPT等)的详细性能对比分析。为了进行这项分析,我们选取了一系列涵盖金融自然语言处理和金融预测各个方面的任务和指标。FinBen的所有模型结果都可以在我们的排行榜上找到!
任务
| 数据集 | 任务 | 样本数量 | 数据类型 | 模态 | 许可证 | 论文 |
|---|---|---|---|---|---|---|
| FPB | 情感分析 | 4,845 | 新闻 | 文本 | CC BY-SA 3.0 | [1] |
| FiQA-SA | 情感分析 | 1,173 | 新闻标题、推文 | 文本 | 公开 | [2] |
| TSA | 情感分析 | 561 | 新闻标题 | 文本 | CC BY-NC-SA 4.0 | [3] |
| FOMC | 鹰派-鸽派分类 | 496 | FOMC会议记录 | 文本 | CC BY-NC 4.0 | [4] |
| Headlines | 新闻标题分类 | 11,412 | 新闻标题 | 文本 | CC BY-SA 3.0 | [5] |
| FinArg-ECC-Task1 | 论证单元分类 | 969 | 盈利电话会议 | 文本 | CC BY-NC-SA 4.0 | [6] |
| FinArg-ECC-Task2 | 论证关系分类 | 690 | 盈利电话会议 | 文本 | CC BY-NC-SA 4.0 | [6] |
| Multifin EN | 多分类 | 546 | 文章标题 | 文本 | 公开 | [7] |
| M&A | 交易完整性分类 | 500 | 新闻文章、推文 | 文本 | 公开 | [8] |
| MLESG EN | ESG议题识别 | 300 | 新闻文章 | 文本 | CC BY-NC-ND | [9] |
| NER | 命名实体识别 | 1,366 | 金融协议 | 文本 | CC BY-SA 3.0 | [10] |
| Finer Ord | 命名实体识别 | 1,080 | 新闻文章 | 文本 | CC BY-NC 4.0 | [11] |
| FinRED | 关系抽取 | 1,070 | 盈利电话会议记录 | 文本 | 公开 | [12] |
| FinCausual 2020 Task1 | 因果分类 | 8,630 | 新闻文章、SEC文件 | 文本 | CC BY 4.0 | [13] |
| FinCausual 2020 Task2 | 因果检测 | 226 | 新闻文章、SEC文件 | 文本 | CC BY 4.0 | [13] |
| FinQA | 问答 | 8,281 | 盈利报告 | 文本、表格 | MIT许可证 | [14] |
| TatQA | 问答 | 1,670 | 财务报告 | 文本、表格 | MIT许可证 | [15] |
| FNXL | 数值标注 | 318 | SEC文件 | 文本 | 公开 | [16] |
| FSRL | 分词分类 | 97 | 新闻文章 | 文本 | MIT许可证 | [17] |
| ECTSUM | 文本摘要 | 495 | 盈利电话会议记录 | 文本 | 公开 | [18] |
| EDTSUM | 文本摘要 | 2000 | 新闻文章 | 文本 | 公开 | [19] |
| German | 信用评分 | 1000 | 信用记录 | 表格 | CC BY 4.0 | [20] |
| Australian | 信用评分 | 690 | 信用记录 | 表格 | CC BY 4.0 | [21] |
| Lending Club | 信用评分 | 1,3453 | 财务信息 | 表格 | CC0 1.0 | [22] |
| BigData22 | 股票走势预测 | 7,164 | 推文、历史价格 | 文本、时间序列 | 公开 | [23] |
| ACL18 | 股票走势预测 | 27,053 | 推文、历史价格 | 文本、时间序列 | MIT许可证 | [24] |
| CIKM18 | 股票走势预测 | 4,967 | 推文、历史价格 | 文本、时间序列 | 公开 | [25] |
| ConvFinQA | 多轮问答 | 1,490 | 盈利报告 | 文本、表格 | MIT许可证 | [26] |
| 信用卡欺诈 | 欺诈检测 | 11,392 | 财务信息 | 表格 | (DbCL) v1.0 | [22] |
| ccFraud | 欺诈检测 | 10,485 | 财务信息 | 表格 | 公开 | [22] |
| Polish | 财务困境识别 | 8,681 | 财务状况特征 | 表格 | CC BY 4.0 | [22] |
| 台湾经济期刊 | 财务困境识别 | 6,819 | 财务状况特征 | 表格 | CC BY 4.0 | [22] |
| PortoSeguro | 理赔分析 | 11,904 | 理赔及财务信息 | 表格 | 公开 | [22] |
| 旅行保险 | 理赔分析 | 12,665 | 理赔及财务信息 | 表格 | (ODbL) v1.0 | [22] |
1. 佩卡·马洛、安库尔·辛哈、佩卡·科尔霍宁、于尔基·瓦莱纽斯和皮里·塔卡拉。2014年。好债务还是坏债务:检测经济文本中的语义倾向。信息科学与技术协会期刊,第65卷,第4期(2014年),782–796页。
2. 马塞多·迈亚、西格弗里德·汉德舒、安德烈·弗雷塔斯、布莱恩·戴维斯、罗斯·麦克德莫特、马内尔·扎鲁克和亚历山德拉·巴拉胡尔。2018年。Www’18开放挑战:金融观点挖掘与问答。载于2018年万维网大会配套论文集。1941–1942页。
3. 凯斯·科蒂斯、安德烈·弗雷塔斯、托比亚斯·道尔特、曼努埃拉·许尔利曼、马内尔·扎鲁克、西格弗里德·汉德舒和布莱恩·戴维斯。2017年。SemEval-2017任务5:金融微博和新闻的细粒度情感分析。载于《第11届国际语义评估研讨会(SemEval-2017)论文集》,第519–535页,加拿大温哥华。计算语言学协会出版。
4. 阿甘·沙阿、苏万·帕图里和苏迪尔·查瓦。2023年。万亿美元之词:一个新的金融数据集、任务与市场分析。载于《第61届计算语言学协会年会论文集(第一卷:长篇论文)》,第6664–6679页,加拿大多伦多。计算语言学协会出版。
5. 安库尔·辛哈和坦迈·坎代特。2021年。新闻对商品市场的影响:数据集与结果。载于《信息与通信进展:2021未来信息与通信大会(FICC)论文集》,第二卷。施普林格出版社,589–601页。
6. 陈昌成、林承毅、邱崇杰等。NTCIR-17 FinArg-1 任务概述:金融分析中的细粒度论点理解[C]//第17届NTCIR信息获取技术评估会议论文集,日本东京,2023年。
7. 拉斯穆斯·约根森、奥利弗·布兰特、马赖克·哈特曼、戴翔、克里斯蒂安·伊格尔和德斯蒙德·埃利奥特。2023年。MultiFin:多语言金融NLP数据集。载于《计算语言学协会成果:EACL 2023》,第894–909页,克罗地亚杜布罗夫尼克。计算语言学协会。
8. 杨、肯尼、吴、杨、史密斯和董。(2020)。为金融文本分类中的深度变换器生成合理反事实解释。 国际计算语言学会议。
9. 陈中奇、曾宇民、姜柔妍、安娜伊斯·吕西耶、戴敏育、涂腾蔡和陈信希。2023年。多语言ESG议题识别。载于《第五届金融科技与自然语言处理研讨会(FinNLP)及第二届多模态人工智能金融预测研讨会(Muffin)》论文集。
10. 胡里奥·塞萨尔·萨利纳斯·阿尔瓦拉多、卡琳·韦尔斯普尔和蒂莫西·鲍德温。2015年。命名实体识别的领域适应,以支持信用风险评估。载于2015年澳大拉西亚语言技术协会研讨会论文集,第84–90页。
11. 沙阿、维塔尼、古拉帕利等。Finer:金融命名实体识别数据集及弱监督模型[J]。arXiv预印本arXiv:2302.11157,2023年。
12. 沙尔马、索米娅等。“FinRED:金融领域关系抽取数据集。” 2022年网络大会配套论文集(2022):无页码。
13. 多米尼克·马里科、汉娜·阿比-阿克尔、埃斯特尔·拉比迪里、斯蒂芬·杜福尔、于格·德·马赞库尔和马哈茂德·埃尔-哈吉。2020年。金融文档因果关系检测共享任务(FinCausal 2020)。载于《第一届金融叙事处理与多语言金融摘要联合研讨会》论文集,第23–32页,西班牙巴塞罗那(线上)。COLING。
14. 陈志宇、陈文虎、查瑞丝·斯迈利、萨米娜·沙赫、伊安娜·博罗娃、迪伦·兰登、丽玛·穆萨、马特·比恩、黄廷浩、布莱恩·R·鲁特莱奇等。2021年。FinQA:金融数据上的数值推理数据集。载于2021年自然语言处理经验方法会议论文集,第3697–3711页。
15. 朱峰斌、雷文强、黄友诚、王超、张硕、吕建程、冯福利和蔡达生。“TAT-QA:金融领域表格与文本混合内容上的问答基准。” ArXiv abs/2105.07624(2021):无页码。
16. 索米娅·沙尔马、苏班杜·卡图亚、曼朱纳特·黑格德、阿芙琳·谢赫、考斯图夫·达斯古普塔、帕万·戈亚尔和尼洛伊·甘古利。2023年。金融数值极端标注:数据集与基准测试。载于《计算语言学协会成果:ACL 2023》,第3550–3561页,加拿大多伦多。计算语言学协会。
17. 马修·拉姆、阿伦·查甘蒂、克里斯托弗·D·曼宁、丹·朱拉夫斯基和珀西·梁。2018年。文本类比解析:类比事实中哪些是共有的,哪些是被比较的。载于《2018年自然语言处理经验方法会议论文集》,第82–92页,比利时布鲁塞尔。计算语言学协会。
18. 拉杰迪普·穆克吉、阿比纳夫·博拉、阿卡什·班纳吉、索米娅·沙尔马、曼朱纳特·黑格德、阿芙琳·谢赫、希瓦尼·施里瓦斯塔瓦、考斯图夫·达斯古普塔、尼洛伊·甘古利、萨普塔尔希·戈什和帕万·戈亚尔。2022年。ECTSum:长篇财报电话会议记录要点摘要的新基准数据集。载于《2022年自然语言处理经验方法会议论文集》,第10893–10906页,阿拉伯联合酋长国阿布扎比。计算语言学协会。
19. 周志涵、马立谦和刘瀚。2021年。交易事件:基于新闻的事件驱动交易中的企业事件检测。载于《计算语言学协会成果:ACL-IJCNLP 2021》,第2114–2124页,线上。计算语言学协会。
20. 霍夫曼,汉斯。(1994)。Statlog(德国信用数据)。UCI机器学习资源库。https://doi.org/10.24432/C5NC77。
21. 昆兰,罗斯。Statlog(澳大利亚信贷审批)。UCI机器学习资源库。https://doi.org/10.24432/C59012。
22. 冯端宇、戴永富、黄继明、张怡芳、谢倩倩、韩伟光、亚历杭德罗·洛佩斯-利拉和王浩。2023年。赋能多数,偏袒少数:通过大型语言模型进行通用信用评分。ArXiv abs/2310.00566(2023):无页码。
23. 孙艺俊、柳在民、赵珉勇、全智亨和姜宇。2022年。利用自监督学习从稀疏且嘈杂的推文中准确预测股票走势。载于2022年IEEE大数据国际会议(Big Data)。IEEE,第1691–1700页。
24. 徐宇墨和谢伊·B·科恩。2018年。根据推文和历史价格预测股票走势。载于《第56届计算语言学协会年会论文集》(第1卷:长篇论文),第1970–1979页。
25. 吴慧哲、张伟、沈伟伟和王军。2018年。社交文本驱动的混合深度序列建模用于股票预测。载于《第27届ACM国际信息与知识管理会议论文集》,第1627–1630页。
26. 陈志宇、李世扬、查瑞丝·斯迈利、马志强、萨米娜·沙赫和威廉·杨旺。2022年。ConvFinQA:探索对话式金融问答中的数值推理链。载于《2022年自然语言处理经验方法会议论文集》,第6279–6292页,阿拉伯联合酋长国阿布扎比。计算语言学协会。
评估
准备工作
本地安装
git clone https://github.com/The-FinAI/PIXIU.git --recursive
cd PIXIU
pip install -r requirements.txt
cd src/financial-evaluation
pip install -e .[multilingual]
Docker 镜像
sudo bash scripts/docker_run.sh
上述命令会启动一个 Docker 容器,您可以根据自己的环境修改 docker_run.sh。我们还提供了预构建的镜像,运行以下命令即可拉取最新版本:sudo docker pull tothemoon/pixiu:latest
docker run --gpus all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 \
--network host \
--env https_proxy=$https_proxy \
--env http_proxy=$http_proxy \
--env all_proxy=$all_proxy \
--env HF_HOME=$hf_home \
-it [--rm] \
--name pixiu \
-v $pixiu_path:$pixiu_path \
-v $hf_home:$hf_home \
-v $ssh_pub_key:/root/.ssh/authorized_keys \
-w $workdir \
$docker_user/pixiu:$tag \
[--sshd_port 2201 --cmd "echo 'Hello, world!' && /bin/bash"]
参数说明:
[]表示可选参数HF_HOME:Hugging Face 缓存目录sshd_port:容器内的 SSH 服务端口,默认为 22001,可通过ssh -i private_key -p $sshd_port root@$ip连接到容器--rm:退出容器时(如按CTRL + D)自动删除容器
自动化任务评估
在进行评估之前,请先下载 BART 检查点 并放置到 src/metrics/BARTScore/bart_score.pth。
自动化评估步骤如下:
- Hugging Face Transformer
若要评估托管在 Hugging Face Hub 上的模型(例如 finma-7b-full),可使用以下命令:
python eval.py \
--model "hf-causal-llama" \
--model_args "use_accelerate=True,pretrained=TheFinAI/finma-7b-full,tokenizer=TheFinAI/finma-7b-full,use_fast=False" \
--tasks "flare_ner,flare_sm_acl,flare_fpb"
更多详细信息请参阅 lm_eval 文档。
- 商业 API
请注意,对于 NER 等任务,自动化评估基于特定模式,这可能导致在零样本场景下无法提取相关信息,从而使得评估结果相对低于人工标注的结果。
export OPENAI_API_SECRET_KEY=YOUR_KEY_HERE
python eval.py \
--model gpt-4 \
--tasks flare_ner,flare_sm_acl,flare_fpb
- 自行部署评估
运行推理后端:
bash scripts/run_interface.sh
请根据您的环境需求调整 run_interface.sh。
进行评估:
python data/*/evaluate.py
创建新任务
为 FinBen 创建新任务需要先创建一个 Hugging Face 数据集,并在 Python 文件中实现该任务。本指南将引导您逐步完成使用 FinBen 框架设置新任务的过程。
在 Hugging Face 上创建数据集
您的数据集应按照以下格式创建:
{
"query": "...",
"answer": "...",
"text": "..."
}
其中:
query:提示与文本的组合answer:标签
对于多轮对话任务(如 )
对于分类任务(如 FPB (FinBen_fpb)),还需定义以下键值:
choices:标签集合gold:正确标签在choices中的索引(从 0 开始)
对于序列标注任务(如 Finer Ord (FinBen_finer_ord)),还需定义以下键值:
label:标记标签列表token:标记列表
对于抽取式摘要任务(如 ECTSUM (FinBen_ectsum)),还需定义以下键值:
label:句子标签列表
对于生成式摘要和问答任务(如 EDTSUM (FinBen_edtsum)),则无需额外定义键值。
实现任务
数据集准备好后,即可开始实现任务。您的任务应在 flare.py 或任务目录下的其他 Python 文件中定义在一个新类中。
为了支持多种任务类型,我们提供了多个专用基类,包括 Classification、SequentialLabeling、RelationExtraction、ExtractiveSummarization、AbstractiveSummarization 和 QA。
例如,如果您正在开发一个分类任务,可以直接使用我们的 Classification 基类。该基类能够帮助您高效且直观地创建任务。下面以使用 Classification 基类创建名为 FinBen-FPB 的任务为例:
class flareFPB(Classification):
DATASET_PATH = "flare-fpb"
仅此而已!创建好任务类后,下一步是在 src/tasks/__init__.py 文件中注册该任务。添加一行,格式为 "task_name": module.ClassName。例如:
TASK_REGISTRY = {
"flare_fpb": flare.FPB,
"your_new_task": your_module.YourTask, # 在此处添加您的任务
}
预定义的任务指标
| 任务 | 指标 | 说明 |
|---|---|---|
| 分类 | 准确率 | 该指标表示正确预测的样本数占总样本数的比例。计算公式为:(真正例 + 真负例) / 总样本数。 |
| 分类 | F1 分数 | F1 分数是精确率和召回率的调和平均值,能够在两者之间取得平衡。在某一指标比另一指标更重要的场景中尤为有用。分数范围为0到1,1表示精确率和召回率都达到完美,0则表示最差情况。此外,我们还提供加权和宏平均两种版本的F1分数。 |
| 分类 | 缺失率 | 该指标计算的是在任务中给出的选项均未被返回的响应所占比例。 |
| 分类 | 马修斯相关系数 (MCC) | MCC是一种用于评估二分类质量的指标,取值范围为-1到+1。+1表示完美预测,0表示预测效果与随机猜测无异,-1则表示完全相反的预测。 |
| 序列标注 | F1 分数 | 在序列标注任务中,我们使用由 seqeval 库计算的F1分数,这是一种强大的实体级评估指标。该指标要求预测实体与真实实体在实体范围和类型上完全匹配才能算作正确。真正例 (TP) 表示正确预测的实体,假正例 (FP) 表示错误预测的实体或实体范围/类型不匹配的情况,假负例 (FN) 则表示遗漏了真实实体。基于这些量,可以计算出精确率、召回率和F1分数,其中F1分数是精确率和召回率的调和平均值。 |
| 序列标注 | 标签 F1 分数 | 该指标仅根据预测标签的正确性来评估模型性能,而不考虑实体范围。 |
| 关系抽取 | 精确率 | 精确率衡量的是所有预测关系中正确预测的关系所占比例。计算公式为:真正例 (TP) 数量除以真正例与假正例 (FP) 数量之和。 |
| 关系抽取 | 召回率 | 召回率衡量的是所有实际关系中正确预测的关系所占比例。计算公式为:真正例 (TP) 数量除以真正例与假负例 (FN) 数量之和。 |
| 关系抽取 | F1 分数 | F1 分数是精确率和召回率的调和平均值,能够在两者之间取得平衡。F1分数的最佳值为1(精确率和召回率都达到完美),最差值为0。 |
| 抽取式与摘要式文本摘要 | Rouge-N | 该指标衡量系统生成摘要与参考摘要之间N-gram(文本中连续的N个词)的重叠程度。“N”可以是1、2或更多,其中ROUGE-1和ROUGE-2常用于分别评估一元组和二元组的重叠情况。 |
| 抽取式与摘要式文本摘要 | Rouge-L | 该指标评估系统摘要与参考摘要之间的最长公共子序列 (LCS)。LCS能够自然地考虑句子层面的结构相似性,并自动识别最长的连续共现N-gram。 |
| 问答 | EmACC | EmACC评估模型生成的回答与参考答案是否完全一致。换言之,只有当模型生成的答案与参考答案逐字逐句完全匹配时,才被视为正确。 |
此外,您可以通过在类定义中指定
LOWER_CASE来决定匹配过程中是否应将标签转换为小写。这一点很重要,因为标签是根据其在生成输出中的形式进行匹配的。对于考试等任务,如果标签是一组特定的大写字母,如“A”、“B”、“C”,通常应将其设置为False。
FIT:金融指令数据集
我们的指令数据集专为领域特定的大语言模型 FinMA 定制。该数据集经过精心构建,旨在对我们的模型进行多样的金融任务微调。它包含了来自多个公开发布的金融数据集的多任务、多模态公开数据。
该数据集内容丰富,涵盖情感分析、新闻标题分类、命名实体识别、问答以及股票走势预测等多种任务。数据模态既包括文本数据,也包括时间序列数据,提供了丰富的金融数据资源。每个任务的具体指令提示均由领域专家精心设计。
模态与提示
下表总结了不同任务、其对应的模态、文本类型以及每项任务所使用的指令示例:
| 任务 | 模态 | 文本类型 | 指令示例 |
|---|---|---|---|
| 情感分析 | 文本 | 新闻标题、推文 | “请分析这段摘自财经新闻的语句的情感倾向。请以‘负面’、‘正面’或‘中性’作答。例如,‘该公司股票在丑闻曝光后暴跌。’应被归类为负面。” |
| 新闻标题分类 | 文本 | 新闻标题 | “请判断该标题是否提及黄金价格。新闻标题中是否暗示了黄金商品市场的价格变动?请回答‘是’或‘否’。” |
| 命名实体识别 | 文本 | 金融协议 | “请从美国证券交易委员会文件中的金融协议段落中,识别出代表人物(‘PER’)、组织(‘ORG’)或地点(‘LOC’)的命名实体。答案格式为:‘实体名称, 实体类型’。例如,在‘SpaceX首席执行官埃隆·马斯克宣布从卡纳维拉尔角发射’这句话中,实体应为:‘埃隆·马斯克, PER;SpaceX, ORG;卡纳维拉尔角, LOC’。” |
| 问答任务 | 文本 | 盈利报告 | “基于这一系列相互关联的金融相关问题,以及前置文本、表格数据和公司财务报表中的附加信息,请回答最后一个问题。这可能需要从上下文中提取信息并进行数学计算。请在作答时考虑前面问题及其答案所提供的信息:” |
| 股票走势预测 | 文本、时间序列 | 推文、股票价格 | “请分析相关信息和社交媒体帖子,判断*{tid}的收盘价将在{point}*时上涨还是下跌。请以‘上涨’或‘下跌’作答。” |
数据集统计信息
该数据集包含大量指令数据样本(136K),使FinMA能够捕捉到多样化金融任务的细微差别。下表提供了指令数据集的统计详情:
| 数据 | 任务 | 原始 | 指令 | 数据类型 | 模态 | 许可证 | 原始论文 |
|---|---|---|---|---|---|---|---|
| FPB | 情感分析 | 4,845 | 48,450 | 新闻 | 文本 | CC BY-SA 3.0 | [1] |
| FiQA-SA | 情感分析 | 1,173 | 11,730 | 新闻标题、推文 | 文本 | 公有领域 | [2] |
| Headline | 新闻标题分类 | 11,412 | 11,412 | 新闻标题 | 文本 | CC BY-SA 3.0 | [3] |
| NER | 命名实体识别 | 1,366 | 13,660 | 金融协议 | 文本 | CC BY-SA 3.0 | [4] |
| FinQA | 问答任务 | 8,281 | 8,281 | 盈利报告 | 文本、表格 | MIT许可证 | [5] |
| ConvFinQA | 问答任务 | 3,892 | 3,892 | 盈利报告 | 文本、表格 | MIT许可证 | [6] |
| BigData22 | 股票走势预测 | 7,164 | 7,164 | 推文、历史价格 | 文本、时间序列 | 公有领域 | [7] |
| ACL18 | 股票走势预测 | 27,053 | 27,053 | 推文、历史价格 | 文本、时间序列 | MIT许可证 | [8] |
| CIKM18 | 股票走势预测 | 4,967 | 4,967 | 推文、历史价格 | 文本、时间序列 | 公有领域 | [9] |
- 佩卡·马洛、安库尔·辛哈、佩卡·科尔霍宁、于尔基·瓦莱纽斯和皮里·塔卡拉。2014年。好债务还是坏债务:检测经济文本中的语义倾向。信息科学与技术协会期刊,第65卷第4期(2014年),782–796页。
- 马塞多·迈亚、西格弗里德·汉施胡、安德烈·弗雷塔斯、布莱恩·戴维斯、罗斯·麦克德莫特、马内尔·扎鲁克和亚历山德拉·巴拉胡尔。2018年。Www’18开放挑战:金融观点挖掘与问答。2018年网络大会配套论文集,1941–1942页。
- 安库尔·辛哈和坦迈·坎代特。2021年。新闻对商品市场的影响:数据集与结果。信息与通信进展:2021年信息与通信未来大会(FICC)论文集,第2卷。施普林格出版社,589–601页。
- 胡里奥·塞萨尔·萨利纳斯·阿尔瓦拉多、卡琳·费尔斯波尔和蒂莫西·鲍德温。2015年。用于支持信用风险评估的命名实体识别领域适应。2015年澳大利亚语言技术协会研讨会论文集,84–90页。
- 陈志宇、陈文虎、查瑞丝·斯迈利、萨米娜·沙赫、伊安娜·博罗娃、迪伦·兰登、丽玛·穆萨、马特·比恩、黄廷浩、布莱恩·R·劳特利奇等。2021年。FinQA:金融数据上的数值推理数据集。2021年自然语言处理经验方法会议论文集,3697–3711页。
- 陈志宇、李世阳、查瑞丝·斯迈利、智强·马、萨米娜·沙赫和威廉·杨·王。2022年。Convfinqa:探索会话式金融问答中的数值推理链条。arXiv预印本arXiv:2210.03849(2022年)。
- 叶俊·孙、赵在民、曹敏勇、全智亨和U·康。2022年。利用来自稀疏且嘈杂推文的自监督学习实现精准的股票走势预测。2022年IEEE国际大数据会议(Big Data)。IEEE出版,1691–1700页。
- 徐宇墨和谢伊·B·科恩。2018年。基于推文和历史价格的股票走势预测。第56届计算语言学协会年会论文集(第1卷:长篇论文),1970–1979页。
- 吴慧哲、张伟、沈伟伟和王军。2018年。结合深度序列模型的社会文本驱动股票预测。第27届ACM国际信息与知识管理会议论文集,1627–1630页。
为 FIT 生成数据集
在使用金融指令数据集(FIT)时,遵循规定的格式来训练和测试模型至关重要。
格式应如下所示:
{
"id": "唯一标识符",
"conversations": [
{
"from": "human",
"value": "您的提示和文本"
},
{
"from": "agent",
"value": "您的回答"
}
],
"text": "待分类的文本",
"label": "您的标签"
}
各字段含义如下:
- “id”:数据集中每个样本的唯一标识符。
- “conversations”:对话轮次列表。每一轮次用一个字典表示,其中“from”表示发言者,“value”表示该轮次中的文本。
- “text”:待分类的文本。
- “label”:该文本的真实标签。
“conversations”列表中的第一轮必须来自“human”,包含您的提示和文本。第二轮则应来自“agent”,包含您的答案。
FinMA v0.1:金融大型语言模型
我们很高兴推出 FinMA 的第一个版本,包括三个模型:FinMA-7B、FinMA-7B-full 和 FinMA-30B,它们分别基于 LLaMA 7B 和 LLaMA-30B 进行微调。FinMA-7B 和 FinMA-30B 使用 NLP 指令数据进行训练,而 FinMA-7B-full 则使用涵盖 NLP 和预测任务的完整 FIT 指令数据进行训练。
FinMA v0.1 现已在 Huggingface 上公开发布,供公众使用。我们期待这一初始版本能为金融 NLP 领域带来宝贵贡献,并鼓励用户将其应用于各种金融任务和场景。我们也欢迎反馈和经验分享,以帮助改进未来的版本。
如何基于 FIT 使用 PIXIU 微调一个新的大型语言模型?
敬请期待。
FinMem:性能增强型 LLM 交易代理
FinMem 是一种新颖的基于 LLM 的代理框架,专为金融决策设计,包含三个核心模块:Profile 模块,用于描绘代理的特征;Memory 模块,采用分层处理方式,帮助代理吸收真实的分层金融数据;以及 Decision-making 模块,将从记忆中获得的洞察转化为投资决策。目前,经过简单的模式预热后,FinMem 已能实现高收益的单只股票交易。以下是基于 Docker 的快速入门框架,以 TSLA 作为示例输入。
步骤 1:设置环境变量
在 .env 文件中根据需要添加 HUGGINGFACE TOKEN 和 OPENAI API KEY。
OPENAI_API_KEY = "<您的 OpenAI 密钥>"
HF_TOKEN = "<您的 HF 令牌>"
步骤 2:在 config.toml 中设置端点 URL
根据所选模型(OPENAI、Gemini、HuggingFace 上的开源模型等)使用端点 URL 部署模型。对于 HuggingFace 上的开源模型,可以通过 RunPod 生成 TGI 端点。
[chat]
model = "tgi"
end_point = "<设置您的端点地址>"
tokenization_model_name = "<模型名称>"
...
步骤 3:构建 Docker 镜像和容器
docker build -t test-finmem .devcontainer/.
启动容器:
docker run -it --rm -v $(pwd):/finmem test-finmem bash
步骤 4:开始模拟!
用法:run.py sim [选项]
开始模拟
╭─ 选项 ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --market-data-path -mdp TEXT 环境数据 pickle 路径 [默认:data/06_input/subset_symbols.pkl] │
│ --start-time -st TEXT 训练或测试开始时间 [默认:2022-06-30 对于 Ticker 'TSLA'] │
│ --end-time -et TEXT 训练或测试结束时间 [默认:2022-10-11] │
│ --run-model -rm TEXT 运行模式:train 或 test [默认:train] │
│ --config-path -cp TEXT 配置文件路径 [默认:config/config.toml] │
│ --checkpoint-path -ckp TEXT 检查点保存路径 [默认:data/10_checkpoint_test] │
│ --result-path -rp TEXT 结果保存路径 [默认:data/11_train_result] │
│ --trained-agent-path -tap TEXT 仅在测试模式下使用,已训练代理的路径 [默认:无。可更改为 data/05_train_model_output 或 data/06_train_checkpoint] │
│ --help 显示此消息并退出。 │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
使用示例:
python run.py sim --market-data-path data/03_model_input/tsla.pkl --start-time 2022-06-30 --end-time 2022-10-11 --run-model train --config-path config/tsla_tgi_config.toml --checkpoint-path data/06_train_checkpoint --result-path data/05_train_model_output
此外,还提供了检查点功能。更多详情请直接访问 FinMem 仓库。
引用
如果您在工作中使用了 PIXIU,请引用我们的论文。
@misc{xie2023pixiu,
title={PIXIU:面向金融领域的大型语言模型、指令数据集及评估基准},
author={谢倩倩、韩伟光、张晓、赖延昭、彭敏、亚历杭德罗·洛佩斯-利拉、黄继民},
year={2023},
eprint={2306.05443},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
@misc{xie2024FinBen,
title={FinBen:面向大型语言模型的综合性金融基准测试集},
author={谢倩倩、韩伟光、陈正宇、向若愚、张晓、何悦如、肖梦溪、李东、戴永福、冯端宇、徐艺静、康浩强、匡子言、袁晨瀚、杨凯来、罗哲恒、张天林、刘志伟、熊国俊、邓志阳、蒋岳辰、姚志远、李浩航、于洋洋、胡刚、黄佳佳、刘晓阳、亚历杭德罗·洛佩斯-利拉、王本友、赖延昭、王浩、彭敏、索菲娅·阿纳尼亚杜、黄继民},
year={2024},
eprint={2402.12659},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
许可协议
PIXIU 采用 [MIT] 许可协议授权。更多详情请参阅 MIT 文件。
星标历史
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
