Files
Qwen2.5-7B-RLRefine/README.md
ModelHub XC a11a6a6bd6 初始化项目,由ModelHub XC社区提供模型
Model: xinyuran/Qwen2.5-7B-RLRefine
Source: Original Platform
2026-06-03 22:34:23 +08:00

148 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
language:
- zh
license: mit
tags:
- 7b
- chinese
- rlhf
pipeline_tag: text-generation
base_model:
- Qwen/Qwen2.5-7B-Instruct
---
# Qwen2.5-7B-RLRefine
**基于 SFT → DPO → GRPO 三阶段 RL 训练的中文电商评论关键词提取模型**
该模型由 [RLRefine](https://github.com/xinyuran/RLRefine) 项目产出,以 Qwen2.5-7B-Instruct 为基座,经过完整的强化学习训练流水线微调,专注于从中文电商评论中提取结构化关键词。
---
## 模型简介
| 项目 | 详情 |
|------|------|
| 基座模型 | Qwen/Qwen2.5-7B-Instruct |
| 训练阶段 | SFT → DPO → GRPO |
| 主要任务 | 中文电商评论关键词提取 |
| 输出格式 | 结构化 JSON含推理过程 |
| 语言 | 中文 |
| 许可证 | MIT |
---
## 训练方案
### 三阶段训练流程
```
Qwen2.5-7B-Instruct基座
▼ SFT ── 3329 条示范数据5 epochslr=1e-5LoRA rank=16
│ 训练时长 ~1h 9min2× H100 80GBtoken_acc=79%
▼ DPO ── ~3697 条偏好对1 epochlr=5e-7LoRA rank=8
│ 教会模型区分原子化正确提取 vs. 粗糙提取
▼ GRPO ── Schema 驱动奖励函数F1 50% + 格式 20% + Schema 20% + 推理 10%
924 steps训练时长 ~4h 35min最终 reward=0.9375KL=0.00045
```
### 硬件环境
- GPU2× NVIDIA H100 80GB HBM3
- 框架ms-swift 3.11.2 + vLLM 0.13.0
- 分布式DeepSpeed Zero2GRPO 阶段)
---
## 模型能力
相比原始 Qwen2.5-7B-InstructZero-shot本模型的提升
| 维度 | 原始模型 | 本模型 |
|------|---------|--------|
| 推理结构 | 简单 Markdown 列表 | 系统化五步分析 |
| 关键词原子化 | 常含多词短语 | 严格≤4字原子级 |
| 置信度类型 | 字符串 `"0.95"`(类型错误) | 数字 `0.95`(正确) |
| 覆盖率 | 易遗漏核心词 | 系统性覆盖 |
| 幻觉率 | 较高 | 受奖励函数约束,显著降低 |
---
## 使用方法
### 直接推理vLLM
```bash
vllm serve xinyuran/Qwen2.5-7B-RLRefine --port 8000
```
### 配合 RLRefine 框架使用
```python
from core.processor import RLRefineProcessor
from prompts.prompt_builder import PromptBuilder
from core.config import Config
from core.schema import ExtractionTask
# 使用项目内置关键词提取配置
prompt_builder = PromptBuilder.create_keyword_extraction_builder()
config = Config(...)
processor = RLRefineProcessor(config=config, task=task, prompt_builder=prompt_builder)
results = processor.process_batch([
{"id": "001", "describe": "电视非常好,画面清晰,系统很智能,更多功能还在摸索中"}
])
```
### 输出格式示例
```json
{
"keywords": [
["核心商品主体,评论围绕电视展开", "电视", 0.95],
["电视的关键视觉属性,被明确评价为清晰", "画面", 0.85],
["直接描述画面质量的正面评价词", "清晰", 0.80],
["电视的操作系统,被描述为智能", "系统", 0.85],
["直接描述系统特性的正面评价词", "智能", 0.80],
["提及但未评价的具体属性", "功能", 0.70]
]
}
```
---
## 提取规则
模型经过训练后遵循以下关键词提取规范:
1. **忠于原文**:关键词必须逐字对齐原文,不得改写或归纳
2. **原子化**:每个关键词 ≤ 4 个汉字,对象词和描述词分别输出
3. **先推理再提取**:输出包含完整推理过程后跟 JSON 结果
4. **幻觉抑制**:关键词必须在原文中出现,不得编造
5. **数量上限**:最多输出 15 个关键词,按重要性降序
---
## 局限性
- 当前训练数据聚焦于**中文电商评论**领域,其他领域(新闻、医疗等)效果未经验证
- 关键词提取任务存在一定主观性,不同场景下规则可能需要调整
- GRPO 训练时 `frac_reward_zero_std=0.75`,存在一定程度的奖励饱和,详见 [reward_design.md](https://github.com/xinyuran/RLRefine/blob/main/docs/reward_design.md)
---
## 引用
如果本模型对你的工作有帮助,欢迎 Star 项目仓库:
- GitHub: [xinyuran/RLRefine](https://github.com/xinyuran/RLRefine)
- HuggingFace: [xinyuran/Qwen2.5-7B-RLRefine](https://huggingface.co/xinyuran/Qwen2.5-7B-RLRefine)
---
## License
MIT License — Copyright (c) 2026 xinyuran