Update README.md
Browse files
README.md
CHANGED
|
@@ -11,19 +11,16 @@ language:
|
|
| 11 |
---
|
| 12 |
|
| 13 |
|
| 14 |
-
- **Developed by:**
|
| 15 |
- It is a test that uses GRPO.
|
| 16 |
|
| 17 |
-
**gpt-oss-120b-Distill-Phi-4-14B** 是一个基于 `microsoft/phi-4` (14B)
|
| 18 |
|
| 19 |
-
- 该模型的核心方法论源于 **"Phi-4-reasoning" (arXiv:2504.21318)**
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
* **训练架构**:采用 **SFT → RLHF → SFT** 训练管线,结合监督学习与强化学习的优势,尝试引导Instruct模型产生推理能力。
|
| 23 |
-
* **文本**:支持 **8192 tokens** 的上下文长度,为推理的任务而设计。
|
| 24 |
-
|
| 25 |
-
## 3. 训练流程 (Training Procedure)
|
| 26 |
|
|
|
|
| 27 |
### 阶段一:基础监督微调 (Foundational SFT)
|
| 28 |
|
| 29 |
* **冷启动 (Cold Start):**
|
|
@@ -36,7 +33,7 @@ language:
|
|
| 36 |
|
| 37 |
具体来说,这个冷启动阶段旨在:
|
| 38 |
|
| 39 |
-
1. **提升可读性与对齐人类偏好:** 纯 RL 训练出的
|
| 40 |
|
| 41 |
2. **为后续 RL 阶段打下基础:** 这一步相当于对模型进行一次“校准”,使其在保持强大推理能力的同时,也能遵循人类期望的语言和格式规范。这为后续融合了更复杂任务(如通用对话、写作等)的强化学习阶段铺平了道路,确保最终模型(`DeepSeek-R1`)不仅推理能力强,而且通用性好、用户体验更佳。
|
| 42 |
|
|
@@ -68,31 +65,30 @@ language:
|
|
| 68 |
4. **策略更新 (Policy Update):** 模型根据计算出的相对优势来更新策略网络。奖励高于组平均水平的输出会得到正向激励,而低于平均水平的则会受到抑制。这使得策略梯度更新更稳定,并且与奖励模型基于比较的训练方式天然对齐。
|
| 69 |
|
| 70 |
* **数据集:** 为了引导模型的推理能力,本阶段构建了一个混合数据集,结合了经典的英文基准和高质量的中文蒸馏数据。
|
| 71 |
-
* **`openai/gsm8k`**:
|
| 72 |
* **`open-r1/DAPO-Math-17k-Processed`**: 一个高质量的高难度数学推理偏好数据集。: 数据集中的 prompt 作为作“用户问题”,而 solution 列则被视为“标准答案”。并且进行里长度过滤,确保所有训练样本都能被模型完整处理,计算了所有提示分词后的长度分布,并筛选出长度在90%分位数以下的样本,避免了因超长序列导致的截断问题。check_answer & check_numbers 函数负责评估模型在 <answer> 标签内给出的最终答案的质量。
|
| 73 |
* **`Jackrong/Chinese-Qwen3-235B-Thinking-2507-Distill-100k`(辅助,我只用来做防止过拟合数学格式)**: 一个包含中文思维链的蒸馏数据集。代码中从此数据集的 `train` 集中20250924随机种子抽样 2000 条样本。其 `Answer_content` 字段提供了完整的参考答案,不仅用于评估内容相似度,还作为长度、风格和格式对齐的参照标准,为多个奖励函数(`content_alignment_reward_func`, `zh_quality_reward_func`)提供指导。
|
| 74 |
这三个数据集经过预处理、过滤和合并后,形成一个打乱的问题-答案对的训练集,供 `GRPOTrainer` 在每个训练周期中使用。
|
| 75 |
|
| 76 |
* **奖励系统 (Reward System):** 为了从多个维度精细地引导模型优化,代码实现了一套复杂且全面的奖励函数体系(按理来说应该在SFT之后再进行第四步的RL进行偏好对其,资源有限理解万岁各位),将多个奖励和惩罚信号加权组合,共同塑造模型的行为。该系统可分为以下几个模块:
|
| 77 |
1. **核心目标奖励:**
|
| 78 |
-
* `correctness_reward_func`: 基于 `gsm8k`和`DAPO-Math-17k-Processed`
|
| 79 |
* `strict_format_reward_func`: 严格执行`<think>...</think>`的推理输出格式,将答案放到<answer>与</answer>标签内,方便奖励答案函数核对。对格式错误(如标签缺失、重复或乱序)进行直接扣分,保证了推理过程的可解析性。
|
| 80 |
|
| 81 |
2. **质量与对齐奖励:**
|
| 82 |
* **内容与长度对齐:** 通过 `content_alignment_reward_func` (基于 unigram F1 分数) 和 `ref_length_alignment_reward_func`,鼓励模型生成在内容和长度上都与高质量参考答案相似的回答。
|
| 83 |
-
* **风格与格式对齐:** 通过 `md_style_reward_func`, `style_match_to_ref_reward_func` 和 `math_layout_reward_func`,激励模型使用更具可读性的 Markdown
|
| 84 |
-
*
|
| 85 |
|
| 86 |
3. **行为正则化与惩罚:**
|
| 87 |
* **反冗余与短视:** `anti_redundancy_penalty_func` 惩罚思维链中的重复性短语和填充词。`min_answer_penalty_func` 则惩罚那些推理看似详尽但最终答案过于简短的行为。统计了蒸馏数据集中思维链中的一些推理词语比如:因为,所以,那么,不对,检查,再次检查,核实..等中英文词汇。
|
| 88 |
-
* **长度控制:** `length_reward_func` 和 `think_soft_cap_penalty_func` 共同作用,有个函数会判断题目内容,根据问题类型(数学题 vs. 通用长文)为推理和答案设定了理想的长度区间,并对超过
|
| 89 |
|
| 90 |
4. **探索与多样性激励:**
|
| 91 |
* `intra_sample_style_diversity_reward_func` & `intra_sample_reasoning_diversity_reward_func`: 这是一组新的奖励函数,用于评估同一问题生成的多个候选答案之间的差异性。通过奖励风格和推理路径更多样的输出,主动激励模型跳出单一的最优路径,探索更广阔的解题策略空间,从而提升模型的鲁棒性 (Maj@K performance)。
|
| 92 |
|
| 93 |
|
| 94 |
|
| 95 |
-
|
| 96 |
### 阶段三:对齐与能力巩固 (Post-RL SFT)
|
| 97 |
|
| 98 |
* **参考论文:** **"Phi-4-reasoning Technical Report" (arXiv:2504.21318)**
|
|
@@ -116,13 +112,39 @@ language:
|
|
| 116 |
|
| 117 |
|
| 118 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 119 |
|
| 120 |
|
| 121 |
|
|
|
|
| 122 |
|
| 123 |
|
|
|
|
|
|
|
| 124 |
|
| 125 |
|
| 126 |
|
|
|
|
| 127 |
|
| 128 |
|
|
|
|
|
|
| 11 |
---
|
| 12 |
|
| 13 |
|
| 14 |
+
- **Developed by:** Soren
|
| 15 |
- It is a test that uses GRPO.
|
| 16 |
|
| 17 |
+
**gpt-oss-120b-Distill-Phi-4-14B** 是一个基于 `microsoft/phi-4` (14B) 基座模型的GRPO推理测试模型。测试设计了**8192**的上下文窗口,并通过一个三阶段训练流程——**SFT(冷启动)→ RLHF (GRPO) → SFT**——进行微调,旨在实现卓越的多步骤推理能力。
|
| 18 |
|
| 19 |
+
- 该模型的核心方法论源于 **DeepSeek-R1 (Nature, vol. 645)** ,**DeepSeekMath" (arXiv:2402.03300v3)**,**"Phi-4-reasoning" (arXiv:2504.21318)** 三篇论文。
|
| 20 |
+
- 但与Phi4论文不同的是我将强化学习的推理引导部分到了前面,通过**SFT + GRPO + SFT** 的方法,生成显式“思维链”(Chain-of-Thought, CoT),尝试引导**Instruct模型**通过强化学习和监督学习产生推理能力。
|
| 21 |
+
- 与论文中的教师o3-mini模型的标准微调不同,本模型采用了开源模型**gpt-oss120b** 的蒸馏数据集作为微调知识库,从而继承其深厚的推理风格和知识体系。
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
|
| 23 |
+
|
| 24 |
### 阶段一:基础监督微调 (Foundational SFT)
|
| 25 |
|
| 26 |
* **冷启动 (Cold Start):**
|
|
|
|
| 33 |
|
| 34 |
具体来说,这个冷启动阶段旨在:
|
| 35 |
|
| 36 |
+
1. **提升可读性与对齐人类偏好:** 纯 RL 训练出的 **DeepSeek-R1-Zero** 虽然推理能力强,但其输出存在“可读性差”和“语言混用”(例如中英文混合)的问题。冷启动阶段通过使用数千条“展示了对话式、与人类思维过程对齐的”高质量数据进行微调,旨在让模型的表达方式和思考过程更符合人类的习惯和偏好。
|
| 37 |
|
| 38 |
2. **为后续 RL 阶段打下基础:** 这一步相当于对模型进行一次“校准”,使其在保持强大推理能力的同时,也能遵循人类期望的语言和格式规范。这为后续融合了更复杂任务(如通用对话、写作等)的强化学习阶段铺平了道路,确保最终模型(`DeepSeek-R1`)不仅推理能力强,而且通用性好、用户体验更佳。
|
| 39 |
|
|
|
|
| 65 |
4. **策略更新 (Policy Update):** 模型根据计算出的相对优势来更新策略网络。奖励高于组平均水平的输出会得到正向激励,而低于平均水平的则会受到抑制。这使得策略梯度更新更稳定,并且与奖励模型基于比较的训练方式天然对齐。
|
| 66 |
|
| 67 |
* **数据集:** 为了引导模型的推理能力,本阶段构建了一个混合数据集,结合了经典的英文基准和高质量的中文蒸馏数据。
|
| 68 |
+
* **`openai/gsm8k`**: 一个广泛使用的英文小学数学应用题数据集。代码中从此数据集的中随机抽样 2800 条样本。其标准答案(以 `#### 123` 格式结尾)被提取出来,作为评估最终答案正确性的标准 (Ground Truth),直接用于 `correctness_reward_func` 奖励函数的计算。
|
| 69 |
* **`open-r1/DAPO-Math-17k-Processed`**: 一个高质量的高难度数学推理偏好数据集。: 数据集中的 prompt 作为作“用户问题”,而 solution 列则被视为“标准答案”。并且进行里长度过滤,确保所有训练样本都能被模型完整处理,计算了所有提示分词后的长度分布,并筛选出长度在90%分位数以下的样本,避免了因超长序列导致的截断问题。check_answer & check_numbers 函数负责评估模型在 <answer> 标签内给出的最终答案的质量。
|
| 70 |
* **`Jackrong/Chinese-Qwen3-235B-Thinking-2507-Distill-100k`(辅助,我只用来做防止过拟合数学格式)**: 一个包含中文思维链的蒸馏数据集。代码中从此数据集的 `train` 集中20250924随机种子抽样 2000 条样本。其 `Answer_content` 字段提供了完整的参考答案,不仅用于评估内容相似度,还作为长度、风格和格式对齐的参照标准,为多个奖励函数(`content_alignment_reward_func`, `zh_quality_reward_func`)提供指导。
|
| 71 |
这三个数据集经过预处理、过滤和合并后,形成一个打乱的问题-答案对的训练集,供 `GRPOTrainer` 在每个训练周期中使用。
|
| 72 |
|
| 73 |
* **奖励系统 (Reward System):** 为了从多个维度精细地引导模型优化,代码实现了一套复杂且全面的奖励函数体系(按理来说应该在SFT之后再进行第四步的RL进行偏好对其,资源有限理解万岁各位),将多个奖励和惩罚信号加权组合,共同塑造模型的行为。该系统可分为以下几个模块:
|
| 74 |
1. **核心目标奖励:**
|
| 75 |
+
* `correctness_reward_func`: 基于 `gsm8k`和`DAPO-Math-17k-Processed` 的参考答案,对最终数值计算的正确性给予最高的正向奖励,是确保模型学习解决问题的核心信号。
|
| 76 |
* `strict_format_reward_func`: 严格执行`<think>...</think>`的推理输出格式,将答案放到<answer>与</answer>标签内,方便奖励答案函数核对。对格式错误(如标签缺失、重复或乱序)进行直接扣分,保证了推理过程的可解析性。
|
| 77 |
|
| 78 |
2. **质量与对齐奖励:**
|
| 79 |
* **内容与长度对齐:** 通过 `content_alignment_reward_func` (基于 unigram F1 分数) 和 `ref_length_alignment_reward_func`,鼓励模型生成在内容和长度上都与高质量参考答案相似的回答。
|
| 80 |
+
* **风格与格式对齐:** 通过 `md_style_reward_func`, `style_match_to_ref_reward_func` 和 `math_layout_reward_func`,激励模型使用更具可读性的 Markdown 格式(标题、列表)、在数学问题中正确使用 LaTeX 排版,并学习参考答案中的优秀格式(表格、代码块)。
|
| 81 |
+
* **中文质量与语言一致性:** `zh_quality_reward_func` 专门针对中文内容,综合评估中文占比、内容F1分数和Markdown结构相似度。
|
| 82 |
|
| 83 |
3. **行为正则化与惩罚:**
|
| 84 |
* **反冗余与短视:** `anti_redundancy_penalty_func` 惩罚思维链中的重复性短语和填充词。`min_answer_penalty_func` 则惩罚那些推理看似详尽但最终答案过于简短的行为。统计了蒸馏数据集中思维链中的一些推理词语比如:因为,所以,那么,不对,检查,再次检查,核实..等中英文词汇。
|
| 85 |
+
* **长度控制:** `length_reward_func` 和 `think_soft_cap_penalty_func` 共同作用,有个函数会判断题目内容,根据问题类型(数学题 vs. 通用长文)为推理和答案设定了理想的长度区间,并对超过2000个字符的超长“思考”过程施加软性惩罚,这与研究中观察到RL会自发增长CoT长度的现象相呼应。
|
| 86 |
|
| 87 |
4. **探索与多样性激励:**
|
| 88 |
* `intra_sample_style_diversity_reward_func` & `intra_sample_reasoning_diversity_reward_func`: 这是一组新的奖励函数,用于评估同一问题生成的多个候选答案之间的差异性。通过奖励风格和推理路径更多样的输出,主动激励模型跳出单一的最优路径,探索更广阔的解题策略空间,从而提升模型的鲁棒性 (Maj@K performance)。
|
| 89 |
|
| 90 |
|
| 91 |
|
|
|
|
| 92 |
### 阶段三:对齐与能力巩固 (Post-RL SFT)
|
| 93 |
|
| 94 |
* **参考论文:** **"Phi-4-reasoning Technical Report" (arXiv:2504.21318)**
|
|
|
|
| 112 |
|
| 113 |
|
| 114 |
|
| 115 |
+
### 模型实际表现:
|
| 116 |
+
|
| 117 |
+
- 测试问题:
|
| 118 |
+
-
|
| 119 |
+

|
| 120 |
+
|
| 121 |
+
-模型的思维链:
|
| 122 |
+

|
| 123 |
+
|
| 124 |
+
|
| 125 |
+
-模型的回答:
|
| 126 |
+
]()
|
| 127 |
+
|
| 128 |
+
|
| 129 |
+
|
| 130 |
+
|
| 131 |
+
-但是
|
| 132 |
+
|
| 133 |
+

|
| 134 |
+
|
| 135 |
+

|
| 136 |
|
| 137 |
|
| 138 |
|
| 139 |
+

|
| 140 |
|
| 141 |
|
| 142 |
+
-孟德尔
|
| 143 |
+

|
| 144 |
|
| 145 |
|
| 146 |
|
| 147 |
+
…]()
|
| 148 |
|
| 149 |
|
| 150 |
+

|