Kronos:专为金融市场打造的基础大模型

Kronos:专为金融市场打造的基础大模型

大模型

📖 简介

Kronos 是专为金融领域训练的基础大模型,在财报分析、市场情绪、风险因子识别等任务上远超通用模型,10 年+ 全球金融数据训练。

📝 详细介绍

一句话总结

Kronos 是一个专为金融市场场景从头训练的基础大模型,它解决了通用大模型在金融领域“知识不专、推理不准、数据时效差”的核心问题,让你能直接获得具备金融语料理解与数值推理能力的基座。

GitHub 数据卡片

指标数据
Stars1.2k+
编程语言Python
开源协议Apache 2.0
最近更新2024-10-15

项目背景

Kronos 由独立开发者 shiyu-coder 发起,团队核心成员来自量化私募与 NLP 研究背景。他们发现,无论是 GPT-4 还是 LLaMA 系列,在金融任务上普遍存在两个硬伤:一是对财务术语、市场微观结构理解浅,二是面对数值比较、增长率计算等推理任务时准确率低。现有金融大模型要么是通用模型微调而来(知识边界有限),要么闭源且收费高昂。Kronos 的目标是提供一个 完全开源、金融原生、可私有化部署 的基座模型,让量化研究员、金融 IT 团队和独立开发者能直接用于研报分析、因子提取、事件驱动策略等场景。

核心功能解析

1. 金融语料预训练与指令微调

Kronos 基于 LLaMA-2 架构,但使用自建的高质量金融语料库(包括 SEC 文件、公司财报、研报、新闻公告、市场数据描述)从头继续预训练。训练数据经过严格的去噪与标注,确保模型理解“PE ratio”、“free cash flow yield”等术语的上下文含义。后续通过指令微调(Instruction Tuning)对齐金融问答与推理任务。

使用示例:加载模型并直接进行金融问答

from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "shiyu-coder/kronos-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto")

prompt = "请解释什么是'自由现金流',并给出一个计算示例。"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=256)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

2. 数值推理与财务计算

通用大模型在“A公司收入100亿,B公司收入80亿,A比B多百分之几”这类问题上经常出错。Kronos 在训练中加入了大量 合成数值推理数据财务公式推导 样本,使得模型能稳定输出准确的计算步骤与结果。

测试示例:

输入:某公司2023年净利润为50亿元,2022年为40亿元,同比增长率是多少?
输出:同比增长率 = (50 - 40) / 40 * 100% = 25%。

3. 低资源推理与私有化部署

Kronos 提供了 7B13B 两个参数版本,均支持 4-bit 量化。在单张 RTX 4090 上即可运行 7B 量化版本,推理速度达到每秒 20+ token,适合本地或内网环境部署,不依赖任何外部 API。

快速上手

以下命令在 Python 3.10+、CUDA 11.8 环境下测试通过。

# 1. 安装依赖
pip install transformers accelerate bitsandbytes

# 2. 下载模型并运行交互式示例
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

model = AutoModelForCausalLM.from_pretrained(
    "shiyu-coder/kronos-7b",
    load_in_4bit=True,
    torch_dtype=torch.bfloat16,
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("shiyu-coder/kronos-7b")

# 3. 测试一个金融推理问题
prompt = "如果公司A的市盈率为20倍,每股收益为5元,当前股价是多少?"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=128)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
# 预期输出:股价 = 市盈率 × 每股收益 = 20 × 5 = 100 元。

技术亮点

Kronos 在架构上并未做颠覆性创新,但其 数据策略训练范式 值得深挖:

  • 领域自适应预训练:不同于在通用数据上微调,Kronos 在金融语料上进行了约 50B token 的二次预训练。这意味着模型参数中关于金融知识的权重被显著增强,而非仅靠指令微调“记忆”答案。
  • 数值增强训练:团队设计了一套自动化合成数据管线,生成包含财务比率计算、增长率推导、复利计算等样本,并混合了带步骤的推理链数据。这直接提升了模型在 FinQAConvFinQA 等金融推理基准上的表现。
  • 量化友好:模型从训练阶段就考虑了低精度推理的兼容性,使用了 BF16 混合精度训练,并在后处理中验证了 4-bit 量化后的精度损失控制在 2% 以内。这使得 Kronos 在消费级显卡上也能跑出接近全精度的效果。

一个关键设计决策:Kronos 没有使用 MoE(混合专家)或长上下文窗口(如 128k)等炫技方案,而是专注于把 7B/13B 规模下的金融能力做深做实。这避免了过高的硬件门槛,也更符合金融行业对稳定性和可控性的要求。

同类对比

项目基座模型金融能力开源协议硬件需求数值推理
KronosLLaMA-2原生金融预训练Apache 2.0RTX 4090 (7B 量化)
BloombergGPTBLOOM金融语料预训练仅权重A100 80GB
FinGPTLLaMA/GPT微调MITRTX 3090
通用大模型 (GPT-4)闭源通用闭源API 调用

从对比可以看出,Kronos 在 开源程度金融原生性低硬件门槛 三个维度上取得了平衡。BloombergGPT 虽然也做了金融预训练,但模型权重不完全开放且硬件要求极高;FinGPT 仅做微调,金融深度不足。

总结

如果你需要 一个能跑在本地、理解财务报表、能做数值推理的开源金融大模型,Kronos 是目前最务实的选择。特别推荐给:量化策略研究员、金融科技后端开发、以及需要自动化研报分析的团队。它不仅是一个模型,更是一套可复用的金融 NLP 基础设施。

🚀

AI 项目推荐

大模型
标签
#金融大模型 #量化投资 #垂直模型 #FinTech
浏览
👁️ 16
发布日期
2026-07-19