PIXIU
首个开源金融大模型基准:136K指令数据+FinMA模型+FinBen评测闭环
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
首个开源金融大模型基准:136K指令数据+FinMA模型+FinBen评测闭环
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:PIXIU 官方 Logo — 金融AI开源标志
想象一个场景:一位基金经理每天要处理上百份财报、年报公告、Twitter 财经推文和 FOMC 会议纪要。传统 NLP 模型每次只能处理一种任务——做情感分析就不能同时做实体识别,做问答就无法做股票涨跌预测。这种「单任务专家」的局限性,恰恰是金融 AI 应用落地的最大痛点。
PIXIU(拼音:皮修)正是为了解决这个问题而生。它由 FinAI 团队联合武汉大学、曼彻斯特大学、佛罗里达大学、哥伦比亚大学等 13 所顶尖学术机构共同开发,是一个集金融大模型、指令微调数据和评估基准于一体的全栈式金融 AI 开源项目。2023 年 6 月发布至今,已在 GitHub 获得 868 颗星,成为金融 NLP 领域最具影响力的开源基准之一。
从项目名称也能读出作者的雄心——PIXIU 是中国神话中的瑞兽,象征祥瑞与财富。项目 logo 即以该神兽为原型设计,寓意用 AI 技术为金融领域带来「神兽级」的能力提升。
PIXIU 的技术体系分为三大支柱:FinMA 金融大模型、FIT 指令微调数据集和 FinBen 评测基准。三者相互支撑,构成了一个完整的金融 NLP 研究闭环。
FinMA(Financial Language Model Assistant)是 PIXIU 推出的首个开源金融大模型系列,包含三个规格:
FinMA-7B 已发布至 HuggingFace 公开下载,可直接通过 transformers 加载使用,推理最低仅需 16GB 显存。FinMA 的核心能力来源于 FIT 数据集中丰富的金融领域指令数据,而非模型结构的创新——它本质上是 LLaMA 在金融领域的指令微调版本。
FIT(Finance Instruction Tuning)是 PIXIU 构建的大规模金融指令数据集,共包含约 136,000 条指令微调样本,涵盖七类主流金融 NLP 任务:
| 数据集 | 任务类型 | 原始样本 | 指令样本 | 数据模态 |
|---|---|---|---|---|
| FPB | 金融情感分析 | 4,845 | 48,450 | 金融新闻 |
| FiQA-SA | 金融情感分析 | 1,173 | 11,730 | 新闻标题/Twitter |
| Headline | 新闻分类 | 11,412 | 11,412 | 新闻标题 |
| NER | 命名实体识别 | 1,366 | 13,660 | 金融合同 |
| FinQA | 数值问答 | 8,281 | 8,281 | 财报(文本+表格) |
| ConvFinQA | 对话式问答 | 3,892 | 3,892 | 财报(文本+表格) |
| BigData22 | 股价预测 | 7,164 | 7,164 | Twitter 文本 |
其中 FPB 数据集通过数据增强技术,将 4,845 条原始样本扩展至 48,450 条指令样本(10 倍扩增),这使得 FinMA 能够充分学习金融情感分析任务的细微表达差异。
FinBen(Financial Benchmark)是 PIXIU 的评测基准模块,最新版本 FinBen 2.0 扩展了更多任务类型,包括:
评测基于 lm-eval-harness 框架(Stanford 著名的大模型评测框架),支持调用 HuggingFace 模型、vLLM 推理引擎或 OpenAI API。评测结果已在 HuggingFace Leaderboard 公开。
PIXIU 的代码结构并不复杂,核心基于 lm-eval-harness 扩展而来:
PIXIU/
├── src/
│ ├── evaluator.py # 核心评测引擎(复用 lm_eval)
│ ├── eval.py # 命令行评测入口
│ ├── interface.py # Gradio Web 界面
│ ├── chatlm.py # OpenAI API 适配器
│ ├── model_prompt.py # 模型 prompt 模板映射
│ ├── utils.py # Gradio 多客户端并发工具
│ ├── tasks/ # 评测任务定义(含 flare.py 4.5万字符)
│ └── metrics/ # 评测指标(含 BARTScore)
├── docker/
│ └── DOCKERFILE # 容器化构建
├── notebooks/ # Jupyter 评测示例
├── scripts/ # 评测/界面启动脚本
└── requirements.txt
核心调用链路:
eval.py 解析命令行参数,调用 evaluator.simple_evaluate()evaluator.py 基于 lm_eval 框架,对指定任务执行评测循环chatlm.py 中的 ChatLM 类封装 OpenAI API 调用,支持带退避重试的并发请求interface.py 基于 Gradio 提供 Web UI,支持通过浏览器与 FinMA 模型交互值得注意的是,src/tasks/flare.py 是整个评测框架的核心,定义了所有金融评测任务的数据加载、prompt 构建和指标计算逻辑。该文件体积达 4.5 万字符,是项目中最大的单个源文件。
PIXIU 的依赖栈非常明确:
依赖中一个值得注意的细节:Dockerfile 手动通过 pip install git+... 安装 Tiiiger/bert_score 而非从 PyPI 安装,这是为了获取 BARTScore 评测指标的完整实现。
PIXIU 提供了两种部署路径:
# 拉取预构建镜像
docker run --gpus all --ipc=host --network host \
-e HF_HOME=/path/to/hf_home \
-e https_proxy=$https_proxy \
-it --rm --name pixiu \
tothemoon/pixiu:latest
# 容器内运行评测
bash scripts/run_evaluation.sh
Dockerfile 基于 tothemoon/llm 镜像(一个预装了 CUDA + Python + 主流 ML 库的基础镜像),减少了环境配置的复杂度,但模型权重和数据集需要额外下载。
python src/interface.py \
--model_name_or_path TheFinAI/finma-7b-nlp \
--llama
Gradio 界面支持温度、top_p、top_k 等生成参数调节,可以直接在浏览器中与 FinMA-7B 对话。适合快速体验模型能力,但推理速度取决于本地 GPU 规格。
图2:FinAI 组织机构头像
PIXIU 作为一个研究基准项目,并非没有局限:
模型规格偏小:FinMA-30B 是最大版本,但相比 BloombergGPT(500亿参数)和 GPT-4、Claude 等商业大模型,FinMA 的参数规模仍属轻量级,在复杂推理任务上存在明显差距。
数据时效性:FIT 数据集中的财报和新闻数据具有时间戳,模型在训练截止日期之后的金融事件上泛化能力未知。
中文支持有限:虽然项目包含 README.zh.md 中文文档,但评测基准主要针对英文金融语料,中文金融 NLP 任务的覆盖不足。
vLLM 版本锁定:requirements.txt 固定 vLLM==0.2.7,这是一个较老的版本,新硬件(如 H100)和新版 CUDA 可能存在兼容性问题。
PIXIU 的核心价值不在于 FinMA 模型本身有多强大,而在于它第一次系统性地为金融 NLP 领域提供了可复现的评测基准和指令微调数据。在此之前,研究者评估金融大模型能力缺乏统一标准;在此之后,无论是 BloombergGPT、FinMA 还是其他金融模型,都可以在 FinBen 榜单上一较高下。
从发展趋势看,FinAI 团队已从单纯的评测基准扩展到 LLM 驱动金融交易代理(FinMem 项目),探索大模型在量化投资决策中的应用。PIXIU 作为一个起点,证明了开源社区在金融 AI 领域可以从基准建设走向实际应用。
对于开发者而言,PIXIU 的上手路径清晰:下载模型 → 运行 Gradio 对话 Demo → 在 FinBen 上跑自己的模型 → 对比分析结果。整个流程无需自建基础设施,是入门金融 NLP 研究的优秀起点。