---
title: FinEX
canonical_url: "https://www.modelscope.cn/models/Madness977/FinEX"
md_url: "https://www.modelscope.cn/models/Madness977/FinEX.md"
repository: Madness977/FinEX
chinese_name: "FinEX（小金豆）"
last_updated: 2025-12-01
pipeline_tag: relation-extraction
tasks:
  - relation-extraction
model_type:
  - qwen
architectures:
  - QWenLMHeadModel
parameters: 14.2B
tensor_type:
  - F16
library_name:
  - safetensors
  - pytorch
frameworks:
  - Pytorch
inference_backends:
  - "deploy_task text/emb"
  - "lmdeploy 0.9.1"
  - "lmdeploy_turbomind 0.9.1"
  - "sglang 0.5.2"
  - "vllm 0.9.2"
downloads: 26
stars: 1
---

# FinEX

> FinEX - Madness977 在 ModelScope 开源的模型。FinEX 是一个面向金融文本的结构化知识抽取模型，基于大型语言模型（LLM）采用监督微调，能够从新闻、公告、研报等金融文本中自动识别事件、实体与关系，并生成可直接用于知识图谱、量化模型和智能投研系统的结构化信息。

Madness977/FinEX 是 ModelScope 魔搭社区上的 14.2B 参数relation-extraction模型，可用 deploy_task text/emb、lmdeploy 0.9.1、lmdeploy_turbomind 0.9.1 部署。

- **Repository**: Madness977/FinEX
- **Tasks**: relation-extraction
- **Parameters**: 14.2B
- **Inference backends**: deploy_task text/emb, lmdeploy 0.9.1, lmdeploy_turbomind 0.9.1, sglang 0.5.2, vllm 0.9.2
- **Downloads**: 26
- **Stars**: 1
- **Last updated**: 2025-12-01

Source: https://www.modelscope.cn/models/Madness977/FinEX

---

# **FinEX：金融知识抽取智能体**

FinEX 是一个面向金融文本的结构化知识抽取模型，基于大型语言模型（LLM）采用监督微调，能够从新闻、公告、研报等金融文本中自动识别事件、实体与关系，并生成可直接用于知识图谱、量化模型和智能投研系统的结构化信息。

⭐️后续将出8bit量化版，以便快速部署推理
⭐️更多信息详见 https://github.com/CUEB-QF-ZQS/YiJinJing

---

## **1. 模型概述**

FinEX 旨在解决金融文本信息分散、结构化成本高的问题，为投研、风控与智能投资提供高质量的结构化金融知识。主要能力包括：

- 金融事件抽取（并购、投融资、监管处罚、产业链关系等）
- 实体与关系识别（公司、行业、产品、人物等）
- JSON / 三元组 / 事件槽位输出
- 支持时序多模态知识图谱构建

模型基于 Qwen 系列进行语义对齐与 LoRA 微调，具备较强的金融语义理解能力和格式稳定性。

---

## **2. 模型介绍**

FinEX 的模型架构由三部分组成：

### (1) Base LLM（Qwen-14B 系列）

负责解析金融文本中复杂的句法结构与专业金融语义。


### (2) FinEX-LoRA Adapter

增强模型对金融专业表达、术语体系、事件模板的适应能力，提高金融场景下的结构化效果。负责事件抽取、槽位填充、三元组生成、实体识别等结构化任务。

---

## **3. 模型训练**

### 3.1 数据来源

训练数据主要包括：

- 专家标注的金融事件数据
- 大规模新闻 / 公告清洗语料
- AIGC 生成的金融文本扩增数据
- 统一规范的 JSON 模板与三元组结构

### 3.2 训练流程

- SFT（有监督微调）
- LoRA Adapter 精调
- 格式鲁棒性训练（保证 JSON 格式稳定）
- 多轮指令优化提升事件覆盖面

### 3.3 训练资源

- GPU：A100 80GB*2


### 3.4 训练脚本

示例训练命令：

    deepspeed --num_gpus=2  src/train_bash.py --deepspeed script/ds_configs/ds_config_st3.json \
        --stage sft \
        --do_train \
        --model_name_or_path /home/QFRC/ZQS/Projects/LLM_models/Tongyi-Finance-14B \
        --dataset feature_mix_80 \
        --cutoff_len 18000 \
        --template default \
        --finetuning_type lora \
        --lora_target c_attn \
        --output_dir /home/QFRC/ZQS/Projects/LLaMA-Factory-main/script/TF-14B/Exports/export_event80_175_18000_save \
        --overwrite_cache \
        --per_device_train_batch_size 1 \
        --gradient_accumulation_steps 16 \
        --lr_scheduler_type cosine \
        --logging_steps 10 \
        --save_steps 50 \
        --learning_rate 5e-5 \
        --num_train_epochs 475 \
        --plot_loss \
        --fp16

---

## **4. 模型推理**

### 文本输入示例

    假如你是一名资深的金融分析师，提取该文本中你认为对股市及上市公司股价影响较大的金融事件，并以方便构建金融知识图谱的三元组(实体一动作一实体)或二元组(实体一动作)的形式列出

### 结构化输出示例

    {\"events\": {\"event1\": {\"total\": \"赛力斯AITO问界M912月26日上市\", \"entity1\": \"赛力斯\", \"relationship\": \"12月26日上市\", \"entity2\": \"AITO问界M9\"}, \"event2\": {\"total\": \"AITO问界M9盲订数量超过3.3万\", \"entity1\": \"AITO问界M9\", \"relationship\": \"被盲订超过3.3万辆\"}, \"event3\": {\"total\": \"博俊科技/恒勃股份/雅创电子为AITO问界M9提供零部件\", \"entity1\": \"博俊科技/恒勃股份/雅创电子\", \"relationship\": \"供应\", \"entity2\": \"AITO问界M9\"}, \"event4\": {\"total\": \"赛力斯与华为深度合作\", \"entity1\": \"赛力斯\", \"relationship\": \"深度合作\", \"entity2\": \"华为\"}}, \"sentiment\": \"积极\"}

### Python 推理示例

    import sys
    sys.path.append('/home/QFRC/ZQS/Projects/LLaMA-Factory-main/src')
    import llmtuner
    from llmtuner.data.template import get_template_and_fix_tokenizer
    from llmtuner.extras.misc import get_logits_processor

    template1=get_template_and_fix_tokenizer("default",tokenizer)
    instruction='xxx'
    input ='xxx'
    inputs=instruction+input
    prompt,_=template1.encode_oneturn(tokenizer,inputs,"")
    prompt_length = len(prompt)
    #print(prompt)
    input_ids = torch.tensor([prompt], device=model.device)
    #print(input_ids)
    gen_kwargs = dict(
                inputs=input_ids,
                generation_config=GenerationConfig(**config_dict),
                logits_processor=get_logits_processor()
            )


    generate_output = model.generate(**gen_kwargs)
    response_ids = generate_output[:, prompt_length:]
    response = tokenizer.batch_decode(
                response_ids, skip_special_tokens=True, clean_up_tokenization_spaces=True
            )
    results = []


    print(response)

---

## **5. 模型效果**

在多个金融结构化任务中表现稳定（示意）：

- 金融事件抽取 F1：约 90%+
- 实体 / 关系识别 F1：约 88%+
- JSON 输出格式稳定率：约 99%+

主要优势：

- 金融语义理解能力强
- 结构化输出格式稳定，可直接对接下游系统
- 对知识图谱与量化模型友好

---

## **6. 应用场景**

FinEX 可用于：

- 金融知识库自动构建
- 金融事件监测与分析
- 智能投研系统信息增强
- 新闻与公告信息抽取
- 时序多模态知识图谱（如 MEHGT）的数据底座
- 企业动态监测与风险分析


---

## **7. 项目结构（示例）**

    FinEX/
    │── finex_lora/         # LoRA 权重
    │── src/                # 训练与推理代码
    │── quant/              # 量化模型
    │── web_demo/           # 演示界面
    │── README.md           # 本说明文档

---

## **8. 未来规划**

- 扩展更多金融事件类型与模板
- 融合表格、财报、图像等多模态数据
- 支持实时流式事件抽取
- 与 MEHGT 深度集成，强化智能投研全链路
- 支持企业级部署与 API 服务化

---
