Datawhale AI 夏令营

62 阅读3分钟

Datawhale AI 夏令营·笔记

主题:基于 CoT 的 DeepSeek 数学推理蒸馏实践
整理日期:2025-07-26


1 任务目标回顾

关键词含义交付物
教师模型DeepSeek-R1(满血版)高质量 CoT 推理数据
学生模型deepseek_r1_qwen_7b / 14b / 32bLoRA 微调后的轻量模型
核心任务把教师模型在测试题上的推理能力蒸馏给学生模型一个 resourceId 用于评测

2 赛题拆解

2.1 数据链路

graph LR
A[官方训练集 JSONL] -->|可选清洗| B[训练集 v2]
B -->|微调| C[教师模型更强]
C -->|批量推理测试集| D[CoT 微调集]
D -->|LoRA 微调| E[学生模型]
E -->|部署| F[resourceId 提交]
  • 训练集格式:{input, output},其中 output 已含完整 CoT。
  • 测试集格式:仅 input,需教师模型补全推理链。

2.2 评分公式

Overall Score = 0.4×AS + 0.3×CQS + 0.2×ES + 0.1×MLS

  • AS:答案准确率;CQS:推理链质量;ES:token 效率;MLS:模型大小。
  • CQS & ES 只在答案正确时计算 → 先保对,再谈省。

3 五步工作流

步骤关键动作工具/平台技巧要点
① 数据准备清洗/扩增训练集Python / Pandas统一格式、剔除无效样本
② 教师推理批量生成测试集 CoT星辰 MaaS「批量推理」Prompt 工程:加“请一步步思考”前缀
③ 蒸馏训练LoRA 微调学生模型星辰 MaaS「微调」lr=2e-4, rank=64, epoch=3 起步
④ 评估调优本地脚本+平台自动打分自写 eval + 平台指标先跑 50 题快速验证,再全量
⑤ 提交部署→获取 resourceId星辰 MaaS「部署」每日 2 次机会,留一次兜底

4 上分秘籍

  1. 教师再升级

    • 用官方训练集 + 自采高数题对 DeepSeek-R1 再微调 1-2 epoch。
    • 微调后务必在验证集上测 AS,确保 >95% 再进入蒸馏。
  2. Prompt 三板斧

    请你一步一步思考下面的数学问题并生成答案,问题如下:
    {{题目}}
    要求:给出详细推导,最后答案用 \boxed{} 包围。
    
    • 加角色:“你是一名资深数学助教”;
    • 加格式约束:每一步用“Step i:”开头;
    • Temperature 0.2 → 稳定输出。
  3. 学生模型选择

    模型参数量MLS 权重推荐显存
    7b最小1×A100 40G
    14b折中2×A100 40G
    32b最大4×A100 40G

    想冲榜选 14b;想卷轻量选 7b。

  4. 训练加速

    • 使用 flash-attn + deepspeed zero2
    • LoRA 只训 q_proj,v_proj,减少参数 30%。

5 星辰 MaaS 关键按钮速查

功能入口常用配置
批量推理「模型服务」-「批量推理」模型=DeepSeek-R1, 数据=测试集 JSONL
微调「模型中心」-「创建微调」数据=CoT 微调集, 学生模型=7b/14b/32b
部署「模型中心」-「部署」选择 LoRA 权重 → 生成 resourceId

6 我的心得 & 下一步

  • 耗时:数据清洗 1h → 教师推理 3h → 7b LoRA 微调 1.5h(8×A100)→ 本地 eval 30 min。
  • 收获:Prompt 里加“Step i”格式后 CQS 从 78 → 89;下一步尝试 14b + 教师再微调冲击 Top10。