当前位置: 首页 > ai >正文

Datawhale 科大讯飞AI大赛(模型蒸馏)

文章目录

  • 目标
  • 实现过程
    • 数据集构建
    • 模型微调
  • 参考任务

目标

使用教师模型蒸馏学生模型(小模型),使得学生模型尽可能在数学推理任务中表现更好,评分标准由4个指标组成:Overall Score=0.4×AS+0.3×CQS+0.2×ES+0.1×MLS

  • AS(答案准确率):正确答案比例,映射至 0–100;
  • CQS(CoT推理质量):推理链逻辑性与合理性;
  • ES(解题效率):每条题目推理所用 token 数,token数量越小越好;
  • MLS(模型轻量化):模型整体文件大小,模型文件越小越好。

实现过程

数据集构建

这里构建的数据集包含3个部分,分别是:

  • 任务一中的微调数据集200条
  • 任务二中的训练数据集
  • 任务二中的测试数据集,使用教师模型进行批量推理(参考星火平台的批量推理功能),得到包含思考过程的输出,作为测试数据集

这里需要注意存在以下几个问题:

  • 任务一中的微调数据集包含<think></think>内容,考虑到模型中评分标准包含推理所用token数量,这里将think标签中的内容删除,减少token生成数量
  • 各个数据集中,有存在output结果为空的情况,此时删除该条数据
  • 微调数据时,需要符合包含instruction、input和output字段,这里将系统提示词放在instruction中,input为问题,output为结果
  • 为了保证模型针对英文和中文有不同的提示词,这里分别设置了对应语言的系统提示词
english_prompt = "Please think through the following math problem step by step and generate the answer. The problem is as follows:"
chinese_prompt = "请你一步一步思考下面的数学问题并生成答案,问题如下:"def remove_think_tags(text):return re.sub(r'<think>.*?</think>', '', text, flags=re.DOTALL)if input_text.isascii():data["instruction"] = english_prompt
else:data["instruction"] = chinese_promptif len(data["output"]) == 0:continue

通过上述方法构建了3个对应的数据集,目前想要对最终的模型使用的数据集进行消融实验,训练及评分过程较慢。三个数据集合并后共包含2126条数据。

模型微调

使用星火平台上传数据集后,构建微调任务,对应的部分微调参数如下:

参数参数
学习率8e-5训练次数3
LoRA秩8Dropout0.1
LoRA 缩放系数16

微调中间过程的loss指标:
请添加图片描述
模型微调后,创建应用,发布服务即可提交赛题,目前赛题评分中,待更新最后分数。。。

参考任务

  • Datawhale科大讯飞AI大赛(模型蒸馏)
  • 讯飞星火平台
  • 讯飞开放平台模型蒸馏比赛
http://www.xdnf.cn/news/16344.html

相关文章:

  • 电科金仓 KingbaseES 深度解码:技术突破・行业实践・沙龙邀约 -- 融合数据库的变革之力
  • i节点学习
  • 7月27日星期日今日早报简报微语报早读
  • 从0开始学linux韦东山教程Linux驱动入门实验班(6)
  • Flink2.0学习笔记:Stream API 常用转换算子
  • Java面试实战:电商高并发与分布式事务处理
  • QT开发---网络编程下
  • JVM工具
  • Item16:成对使用new和delete时要采取相同形式
  • Milvus 实战全流程
  • 【重学数据结构】堆 Heap - 最小堆最大堆
  • Qt GUI缓存实现
  • SpringIoCDI
  • Adobe Animate中文版 v2024.24.0.10.14
  • python---类型转换
  • Flink窗口:解锁流计算的秘密武器
  • 9.SpringBoot Web请求参数绑定方法
  • RTSP|RTMP播放器 in Unity:开源不够用?从工程视角重新定义播放器选型
  • 【优选算法】BFS解决最短路问题(单源)
  • LeetCode 1577.数的平方等于两数乘积的方法数
  • Spring 解析 XML 配置文件的过程(从读取 XML 到生成 BeanDefinition)
  • HarmonyOS NEXT 系列之规范开发三方共享包
  • Java学习-------序列化与反序列化
  • MGRE综合实验
  • 【Linux | 网络】传输层(UDP和TCP)
  • 笔记本键盘的启用和禁用
  • Rust实战:高效开发技巧
  • 强连通分量:Kosaraju算法
  • 使用Python绘制动态樱花
  • CentOS 镜像源配置与 EOL 后的应对策略