---
title: COM_FinInd
canonical_url: "https://www.modelscope.cn/models/BAAI_Industry_Competition_FinEcon_dev/COM_FinInd"
md_url: "https://www.modelscope.cn/models/BAAI_Industry_Competition_FinEcon_dev/COM_FinInd.md"
repository: BAAI_Industry_Competition_FinEcon_dev/COM_FinInd
last_updated: 2025-01-01
parameters: 60.6M
tensor_type:
  - BF16
library_name:
  - safetensors
  - pytorch
frameworks:
  - pytorch
downloads: 138
stars: 0
---

# COM_FinInd

> COM_FinInd - BAAI_Industry_Competition_FinEcon_dev 在 ModelScope 开源的模型。整体思路：将官方提供的SFT数据划分为中文和英文，再利用rw\score>0筛选出高质量数据，随机将中文数据和英文数据都各自分为三份，分别训练三个中文Lora模型和三个英文Lora模型，最后通过模型融合得出最终结果。模型融合的具体说明：对于主观题，利用原始的qwen2.5-7B-Instruct模型对三个Lora模型的推理结果进行汇总，对于客观题，则直接对三个Lora模型的推…

- **Repository**: BAAI_Industry_Competition_FinEcon_dev/COM_FinInd
- **Parameters**: 60.6M
- **Downloads**: 138
- **Stars**: 0
- **Last updated**: 2025-01-01

Source: https://www.modelscope.cn/models/BAAI_Industry_Competition_FinEcon_dev/COM_FinInd

---

# COM团队解决方案

## 整体方案流程

![整体方案流程](整体方案流程.png)

整体思路：将官方提供的SFT数据划分为中文和英文，再利用rw\_score>0筛选出高质量数据，随机将中文数据和英文数据都各自分为三份，分别训练三个中文Lora模型和三个英文Lora模型，最后通过模型融合得出最终结果。模型融合的具体说明：对于主观题，利用原始的qwen2.5-7B-Instruct模型对三个Lora模型的推理结果进行汇总，对于客观题，则直接对三个Lora模型的推理结果进行投票。

## 一、 文件结构说明

```yaml
COM_FinInd/
├── COM_FinInd_1208175914.jsonl             # 最优成绩模型推理结果文件
├── train_loss_img                          # 训练损失曲线
├── COM_FinInd_report.pdf                   # 报告
├── code                                    # 方案代码，包括数据处理、训练代码、推理代码
│   ├── ds_zero2_no_offload.json            # deepspeed配置文件
│   ├── en_qwen_all.sh                      # 三个英文Lora模型训练启动脚本
│   ├── en_rw_p1_sft_zero2_qlora_qwen.sh    # 第一个英文Lora模型训练启动脚本
│   ├── en_rw_p2_sft_zero2_qlora_qwen.sh    # 第二个英文Lora模型训练启动脚本
│   ├── en_rw_p3_sft_zero2_qlora_qwen.sh    # 第三个英文Lora模型训练启动脚本
│   ├── eval                                # 测试文件，将原始测试文件分为中文和英文
│   │   ├── eval_en.jsonl
│   │   ├── eval_id.jsonl
│   │   └── eval_zh.jsonl
│   ├── eval_only_query.jsonl               # 原始测试文件
│   ├── infer                               # 推理代码
│   │   ├── en_qwen_infer.sh                # 英文题目推理脚本
│   │   ├── infer_en_汇总.ipynb              # 英文题目模型融合
│   │   ├── infer_logs                      # 推理结果文件和日志文件
│   │   │   ├── model_logits_all.jsonl
│   │   │   ├── model_logits_en.jsonl
│   │   │   ├── model_logits_zh.jsonl
│   │   │   ├── run_log_en.jsonl
│   │   │   └── run_log_zh.jsonl
│   │   ├── infer_zh_汇总.ipynb              # 中文题目模型融合
│   │   ├── zh_infer.sh                      # 中文题目推理脚本
│   │   └── 中英文题目合并.ipynb               # 中英文推理结果合并，生成最终提交结果jsonl文件
│   ├── infer_en                            # 英文题目推理代码
│   │   ├── en_qwen_infer_rw_p1.py
│   │   ├── en_qwen_infer_rw_p2.py
│   │   ├── en_qwen_infer_rw_p3.py
│   │   └── infer_logs                      # 推理结果文件和日志文件
│   │       ├── rw_p1
│   │       │   ├── model_logits.jsonl
│   │       │   └── run_log.jsonl
│   │       ├── rw_p2
│   │       │   ├── model_logits.jsonl
│   │       │   └── run_log.jsonl
│   │       └── rw_p3
│   │           ├── model_logits.jsonl
│   │           └── run_log.jsonl
│   ├── infer_zh                            # 中文题目推理代码
│   │   ├── infer_logs                      # 推理结果文件和日志文件
│   │   │   ├── rw_p1  
│   │   │   │   ├── model_logits.jsonl
│   │   │   │   └── run_log.jsonl
│   │   │   ├── rw_p2
│   │   │   │   ├── model_logits.jsonl
│   │   │   │   └── run_log.jsonl
│   │   │   └── rw_p3
│   │   │       ├── model_logits.jsonl
│   │   │       └── run_log.jsonl
│   │   ├── infer_rw_p1.py
│   │   ├── infer_rw_p2.py
│   │   └── infer_rw_p3.py
│   ├── qwen_qlora.py                      # qwen模型sft代码
│   ├── requirements.txt                   # 训练和推理过程使用的python包
│   ├── zh_all.sh                          # 三个中文文Lora模型训练启动脚本
│   ├── zh_en_qwen.sh                      # 中文+英文模型微调启动脚本
│   ├── zh_rw_p1_sft_zero2_qlora_qwen.sh   # 第一个中文Lora模型训练启动脚本
│   ├── zh_rw_p2_sft_zero2_qlora_qwen.sh   # 第二个中文Lora模型训练启动脚本
│   ├── zh_rw_p3_sft_zero2_qlora_qwen.sh   # 第三个中文Lora模型训练启动脚本
│   ├── 测试数据中英文划分.ipynb              # 将原始测试文件进行中英文划分
│   └── 训练数据处理.ipynb                   # 训练数据处理代码
├── data                                    # 官方提供的原始SFT数据
├── log                                    # 训练过程的日志文件
├── lora_models                            # Lora模型存放处
│   ├── en_qwen_qlora_1205_1               # 英文Lora模型              
│   │   ├── rw_p1
│   │   ├── rw_p2
│   │   └── rw_p3
│   └── qwen_qlora_1205_1                  # 中文Lora模型
│       ├── rw_p1
│       ├── rw_p2
│       └── rw_p3
├── model                                  # 基座模型存放处
│   ├── Qwen
│   └── 模型下载.ipynb                      # 基座模型下载
├── submit                                 # 最终提交文件
│   └── model_logits_all.jsonl             # 初赛最优结果文件
├── tmp_data                               # 中间数据存放
│   ├── en
│   └── zh
└── train_data                             # 训练数据
    ├── en
    │   ├── rw_p1
    │   │   └── en_rw_0_p1.json
    │   ├── rw_p2
    │   │   └── en_rw_0_p2.json
    │   └── rw_p3
    │       └── en_rw_0_p3.json
    └── zh
        ├── rw_p1
        │   └── zh_rw_0_p1.json
        ├── rw_p2
        │   └── zh_rw_0_p2.json
        └── rw_p3
            └── zh_rw_0_p3.json
```



## 二、复现流程

### 2.1 复现准备工作

- **运行环境说明**
  ```yaml
  python版本： python3.12.3
  cuda版本： 12.1
  训练环境：1台 NVIDIA 3090 24GB
  推理环境：1台 NVIDIA L20 48GB
  ```
- **python包环境安装**

  代码所使用的python包以及版本都已放到code/requirements.txt中
  ```bash
  cd code
  pip install -r requirements.txt
  ```
- **基座大模型准备**
  - 本方案使用的基座模型是qwen2.5-7B-instruct。模型下载地址为：[https://www.modelscope.cn/models/Qwen/Qwen2.5-7B-Instruct](https://www.modelscope.cn/models/Qwen/Qwen2.5-7B-Instruct "https://www.modelscope.cn/models/Qwen/Qwen2.5-7B-Instruct")

    复现时将qwen2.5-7B-instruct下载到model/Qwen下

### 2.2 训练流程复现

训练流程通过运行code/zh\_en\_qwen.sh即可复现6个Lora模型的训练过程：

```bash
cd code
bash zh_en_qwen.sh
```

运行后，代码将读取data/train\_data目录下相应的json文件并加载model目录下的基座模型，运行过程中的日志保存在log文件夹下，运行后训练好的lora模型将保存到lora\_models目录下。

### 2.3 推理流程复现

- 三个中文Lora模型推理
  ```bash
  cd code/infer
  zh_infer.sh
  ```
- 三个英文Lora模型推理
  ```bash
  cd code/infer
  en_qwen_infer.sh
  ```
- 中文推理结果融合

  需要进入infer文件夹，手动运行infer\_zh\_汇总.ipynb
- 英文推理结果融合

  需要进入infer文件夹，手动运行infer\_en\_汇总.ipynb
- 中英文结果合并

  需要进入infer文件夹，手动运行中英文题目合并.ipynb

  运行后，最终的model\_logits\_all.jsonl结果文件会保存到code/infer/infer\_logs文件夹下
