TASK02【Datawhale AI夏令营第二期】模型蒸馏 -思维链知识

发布于:2025-07-28 ⋅ 阅读:(14) ⋅ 点赞:(0)


我们可以将建模过程分为 5 步:

  1. 数据准备
  • 清洗官方提供的数据
  • 补充格式统一的公开数学题(可选)
  • 格式为:{"input": 题目, "output": 推理过程 + 答案}
  1. 教师模型生成推理链数据(CoT)
  • 使用 deepseek_r1 生成高质量思维链数据作为训练目标
  1. 蒸馏训练学生模型
  • 选择轻量模型 deepseek_r1_qwen_7b / 14b / 32b(支持 LoRA)
  • 使用步骤 2 中的数据进行模型精调
  • 控制训练方式避免资源浪费(选择 LoRA 精调)
  1. 模型评估与调优
  • 验证模型在测试题上的解答准确性与推理质量
  • 调整蒸馏数据比例、模型结构、训练参数等
  1. 模型发布与提交
  • 使用讯飞星辰平台部署模型,获得 resourceid
  • 提交用于评测并优化得分(准确率 + 逻辑性 + 效率 + 体积)

在这里插入图片描述


一个标准的prompt能显著提升模型生成回答的质量,一个标准的prompt通常包含任务说明、问题、上下文、输出格式等四个基本元素。
在这里插入图片描述

知识蒸馏(Knowledge Distillation)

教师模型

通常是一个复杂、参数量大、性能优异的模型,已经过充分训练,能对数据产生高质量的预测(包括对正确答案的高置信度,以及对错误选项的细微区分)

  • 结构复杂:可能是深层神经网络(如深层 ResNet)、集成模型(如多个模型的组合)或大语言模型(如 GPT 系列)。
  • 知识丰富:不仅能给出最终预测结果(“硬标签”,如分类任务中的类别),还能提供更细腻的 “软标签”(如对每个类别的概率分布,体现不同选项的相对可能性)。
  • 计算成本高:因参数多、结构复杂,推理速度慢,可能不适合资源受限的场景(如手机、嵌入式设备)。

学生模型

是一个结构简单、参数量小、计算高效的模型,通过学习教师模型的知识来提升自身性能,最终目标是在保持高精度的同时,实现快速推理和轻量化部署。

  • 结构简单:可能是浅层网络(如小型 CNN)、简化的 Transformer 或轻量级模型(如 MobileNet)。
  • 学习对象:不仅学习原始数据的 “硬标签”(与传统训练一致),更重要的是学习教师模型输出的 “软标签”(包含教师的推理逻辑和知识)。
  • 优势:参数少、速度快、占用资源少,适合部署在移动端、边缘设备等资源有限的场景。

知识蒸馏的过程

  • 教师模型预训练:先训练一个高性能的教师模型,使其在训练集上达到优异表现(如高准确率)。
  • 学生模型学习:用教师模型的输出(尤其是 “软标签”)作为指导,训练学生模型。例如:
    • 分类任务中,教师模型对一张猫的图片输出概率分布:猫(90%)、狗(8%)、其他(2%)(软标签),学生模型不仅要学会预测 “猫”,还要学习这种概率分布体现的 “猫与狗的相似性” 等隐含知识。

损失函数设计:学生模型的损失通常包含两部分 ——

  • 与原始硬标签的损失(保证基础正确性);
  • 与教师软标签的损失(学习教师的深层知识)。

教师模型(DeepSeek系列预训练模型)对训练集进行批量推理,获得包含完整CoT推理链的数学解题输出 微调集;

自由选择学生模型,使用 微调集 进行 LoRA 精调

提交学生模型resourceId,自动测评

一、大语言模型是什么?

大语言模型(Large Language Model, LLM)是基于Transformer架构、通过海量文本数据预训练的大规模神经网络模型。其核心特点是:

  • 参数规模庞大:通常包含数十亿至数万亿个参数(如GPT-3有1750亿参数,GPT-4参数规模更大);
  • 核心能力:通过学习人类语言的统计规律和语义关联,实现对自然语言的理解(如读懂文本、识别意图)、生成(如写文章、对话)、推理(如逻辑分析、问题求解)等功能;
  • 典型代表:GPT系列、LLaMA系列、PaLM、文心一言、讯飞星火等。

二、不同规模的大语言模型有什么区别?

大语言模型的“规模”主要指参数数量,不同规模的核心区别体现在能力、资源需求和适用场景上:

规模(参数) 核心能力特点 资源需求 适用场景
小规模(亿级,如1-10亿) 基础语言能力(简单问答、文本分类),复杂任务表现差 低(可在普通GPU运行) 特定场景轻量化部署(如客服机器人、简单文本处理)
中规模(十亿到百亿级,如100-500亿) 较强的语言理解和生成能力,可处理中等复杂度任务(如摘要、短对话) 中(需专业GPU集群) 企业级应用(如内容生成、智能助手)
大规模(千亿级以上,如1000亿+) 具备强推理、长上下文理解、跨领域知识整合能力,可处理复杂任务(如逻辑推理、多轮对话、代码生成) 极高(需超算级资源) 通用人工智能场景(如通用对话、复杂问题求解)

三、指令型模型和推理模型有什么区别?

两者的核心差异在于训练目标和核心能力

  • 指令型模型(Instruction-tuned Model)
    训练目标是“理解并遵循人类指令”,通过在“指令-输出”样本(如“写一封道歉信”→ 生成道歉信)上微调预训练模型,使其能响应各类用户指令(无论任务是否见过)。
    核心能力:适配多样化的自然语言指令,注重“任务执行的准确性”,典型代表如ChatGPT、LLaMA-2-70B-Chat。

  • 推理模型(Reasoning Model)
    训练目标是“增强逻辑推理能力”,专注于处理需要步骤性思考的任务(如数学题、逻辑题、因果分析)。
    核心能力:通过“拆解问题→逐步推导→得出结论”的过程解决复杂问题,更依赖对逻辑链的建模,典型代表如GPT-4、PaLM 2。

四、COT是什么?为什么要微调?为什么要基于COT微调?

思维链:构造思维prompt诱发大语言模型像人类一样思考,并输出中间思维步骤,增强推理能力。
system-1任务:system-1的思考过程就是快速、自动且无意识的。主要依靠直觉和经验进行判断,不需要你刻意思考,往往在瞬间完成。
system-2任务:思考过程缓慢,主要集中注意力和耗费精力,运用逻辑分析、计算和有意识的思考来解决问题。
伴随大模型参数量、算力开销、数据量协同增长,在标准提示下,其在system-1的任务上性能显著增强,然而在system-2上,大模型出线了模型规模增长未带来性能上的提升。
在这里插入图片描述
思维链通过在提示中嵌入一系列中间推理的步骤,引导大语言模型模拟人类解决问题的思考过程,以提升模型处理system2的处理任务的能力。

标准的CoT方法上,出线了许多扩展方法,按照推理模式分为按部就班、三思后行、集思广益。
三种思维链模式都是作用于模型推理侧
在这里插入图片描述
三思后行模式
为了解决按部就班模式不足,三思后行模式在决策过程中融入审慎和灵活性。这种模式下,模型在每一步会停下来评估当前状况,判断是否需要调整方向。
在这里插入图片描述
在这里插入图片描述
ToT:从拆解、衍生、评估、搜索四个角度构造思维树。

  1. 拆解:将复杂问题拆分成多个简单子问题,每个子问题解答过程过程对应一个思维过程。
  2. 衍生:模型需要根据当前子问题生成可能的下一步推理方向。衍生有两种模式:样本启发和命令提示。
  3. 评估:利用模型评估推理节点的合理性。根据任务是否便于量化评分,选择投票或打分模式。
  4. 搜索:从一个或多个当前状态出发,搜索通向问题解决方案的路径。

在这里插入图片描述
集思广益模式:强调通过汇集多种不同的观点和方法来优化决策过程。在这种模式下,模型不仅仅依赖于单一的推理路径,而是通过探索多种可能的解决方案,从中选择更优答案。
代表性方法:

  • self-consistency:引入多样性推理路径,从中提取并选择最一致的答案,从而提高了模型的推理准确性。self-consistency不依赖于特定的CoT形式,可以与其它cot方法兼容,共同作用于模型的推理过程。“针对单一推理任务的专项优化工具”:通过多路径生成 + 外部提取答案,提升特定任务的推理准确性,需配合答案提取逻辑。
  • Universal Self-consistency:利用LLMs自身选择最一致答案,支持更多种任务,无需答案提取过程。在多任务中性能良好并且输出的匹配度高、对顺序鲁棒。“跨任务的通用优化工具”:支持更多任务,无需单独提取答案,且对路径顺序、格式的鲁棒性更强,更适合多场景复用。
对比维度 Self-consistency Universal Self-consistency
核心目标 提升单一推理任务(如数学计算、逻辑推理)的准确性 支持多类任务(推理、分类、生成等),在跨任务场景中保持稳定性能
推理路径 生成多条多样性推理路径(依赖任务特定逻辑,如分步解题) 生成多条通用推理路径(不依赖任务格式,适配各类任务表述)
答案选择逻辑 从多条路径中提取答案,选择“出现次数最多的一致答案”(需额外答案提取步骤) 利用 LLM 自身能力直接判断,选择最一致答案(无需单独提取步骤,由模型自主完成)
任务适用范围 偏窄,主要优化需要“分步推理”的任务(如数学题、常识推理) 更广,可直接应用于问答、翻译、摘要等多种任务,无需任务适配
兼容性 兼容其他 CoT(Chain-of-Thought)方法,需配合任务特定的推理格式 兼容各类方法,无需针对任务调整逻辑,通用性更强
鲁棒性 对推理路径的格式、顺序较敏感(格式混乱可能影响结果) 对路径顺序、表述格式鲁棒(顺序不影响结果,输出匹配度更高)
核心优势 针对单一推理任务精度优化,效率较高 跨任务通用性强,无需额外适配,鲁棒性更优

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

GPT-o

三种思维链模式都是作用于模型推理侧,OpenAI尝试在训练推理时深度融合思维链技术,并提出了GPT-o1,包括o1,o1-preview和o1-mini三个版本,在回答问题前会花费更多时间思考,擅长科学、编程、数学等领域复杂问题。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
Zero-Shot CoT:标准CoT方法在提升模型推理能力方面取得了一定成功,但是需要费时费力写大量CoT示例,并且过度依赖于CoT的编写质量。通过简单提示,引导模型自行生成一条推理链。无需手工标注的CoT示例,减少对人工示例的依赖
标准CoT的推理任务上性能优越,但是需要手工编写推理链示例。zero-shot cot无需人工编写少样本样例,但是效果不如CoT。
Auto-CoT:引入与待解决问题相关的问题及其推理链作为示例,以继续提升CoT的效果。Auto-CoT无需人工标注成本,但是性能超越了CoT和Zero-Shot CoT。

在这里插入图片描述
问题聚类是一种将大量问题按照相似性进行分组归类的技术

  • 提高检索效率:通过对问题进行聚类,把相似问题归为一类。当用户进行问题检索时,系统能更快锁定相关问题组,快速呈现给用户相似问题的答案或解决方案, 比如在大型企业知识库中,员工查找技术问题解决方案时,能更便捷获取所需信息
  • 优化知识库结构:有助于梳理问题体系,清晰呈现问题类别和层次,便于管理员对知识库内容进行整理、更新和维护。例如,电商平台客服知识库,将客户咨询问题聚类后,能发现热门问题类别和需要补充完善的内容。
  1. COT是什么?
    COT是Chain-of-Thought(思维链) 的缩写,指模型在解决复杂问题时,生成“中间推理步骤”而非直接给出答案。例如,解数学题时,模型先输出“第一步:计算总量;第二步:减去已知量……”,再给出最终结果。

  2. 为什么要微调?
    预训练大模型虽具备通用语言能力,但在特定任务(如专业领域问答、格式严格的文本生成)或特定场景(如遵循企业规则的对话)中表现可能不佳。微调的目的是:

    • 让模型适配具体任务,提升任务性能(如医疗领域问答的准确性);
    • 对齐用户需求(如让模型输出更简洁、更符合格式要求的内容)。
  3. 为什么要基于COT微调?
    基于COT微调的核心目标是增强模型的推理能力

    • 预训练模型可能“知其然不知其所以然”(能给出答案但说不出理由),而复杂任务(如数学、逻辑、多步决策)需要明确的推理过程;
    • 通过在“问题+COT推理步骤+答案”的样本上微调,模型能学习到“如何拆解问题、如何逐步推导”,从而提升对复杂问题的求解能力(尤其在小样本场景下效果显著)。

五、模型蒸馏是什么?需要哪些要素?

  1. 模型蒸馏(Model Distillation)
    是一种模型压缩技术,核心是将大模型(教师模型,Teacher Model) 学到的“知识”传递给小模型(学生模型,Student Model),使小模型在保持接近大模型性能的同时,具备更轻量、更快的推理速度(适合资源受限场景,如移动端)。

  2. 需要的核心要素

    • 教师模型:性能优异的大模型(如GPT-3),作为“知识提供者”,需输出高质量的预测(包括硬标签和软标签,软标签指对不同结果的概率分布,含更丰富的知识);
    • 学生模型:结构简单的小模型(如简化的Transformer),作为“知识学习者”,需学习教师模型的知识;
    • 蒸馏损失函数:衡量学生模型与教师模型输出的差异(如KL散度,用于对齐软标签),引导学生模仿教师的行为;
    • 蒸馏数据:用于训练学生模型的样本(通常是教师模型已“理解”的数据,如文本、图像等)。

参考资料:datawhale夏令营赛事
参考资料2:https://www.yuque.com/shiyindaolang/ntgxyg/ix2dmfxi5n9gcfag
一个标准的prompt能显著提升模型生成回答的质量,一个标准的prompt通常包含任务说明、问题、上下文、输出格式等四个基本元素。

额外知识

硬注意力和软注意力

  • 软注意力(Soft Attention)【确定性注意力】 是一种平滑、连续的机制,适用于大多数需要在多个输入元素之间进行加权计算的任务,这些权重通过某种可学习的函数计算得出,通常是基于输入数据和查询向量之间的相似性。且可以通过标准的梯度下降方法(计算过程可微,便于反向传播进行训练)优化。在软注意力机制中,模型对所有输入进行计算,给每个输入分配一个权重(即注意力权重)。
  • 硬注意力(Hard Attention)【随机注意力】 是一种离散的、非可微的机制,通常用于那些需要明确选择某些输入元素的任务,这种随机性使得硬注意力在某些任务中能够更有效地探索数据的不同方面,但同时也带来了训练上的困难,因为随机采样过程是不可微的,需要一些特殊的技巧如强化学习等方法来进行优化。硬注意力在处理时选择某些输入元素,直接“关注”它们,而忽略其他输入。
    软注意力是全局注意力,所有图像块都被赋予一定的权重;硬注意力则一次只考虑一个图像块。
    一言以蔽之,硬注意力在每一步操作时,只选择一个或少数几个特定的输入元素,而软注意力对所有输入进行加权平均。

全局注意力和局部注意力

全局注意力机制会同时考虑输入数据的所有部分,在计算注意力权重时不会对输入数据进行任何局部限制。这意味着模型在任何时候都能够访问到输入数据的全局信息,从而可以更好地捕捉到数据中的整体特征和结构。全局注意力在处理一些需要全局理解的任务中非常有效,例如在文本分类中,可以更好地把握整个文本的主题和情感倾向。

  • 它考虑编码器 LSTM 和解码器 LSTM 的所有隐藏状态来计算“可变长度上下文向量 ” 。
  • 当应用“全局”注意力层时,会产生大量计算。这是因为必须考虑所有隐藏状态,将它们连接成一个矩阵,并与正确维度的权重矩阵相乘,才能得到前馈连接的最后一层。
  • 随着输入大小的增加,矩阵大小也会增加。简而言之,前馈连接中的节点数量增加,实际上增加了计算量。

局部注意力:与全局注意力相反,局部注意力机制只关注输入数据的局部区域。它通常会限制注意力的范围,例如只在当前元素的邻域内计算注意力权重。这种方式可以减少计算量,同时也有助于模型更好地捕捉到局部特征和细节信息。在图像处理中,局部注意力可以用于关注图像中的特定区域,例如在目标检测任务中,更好地定位和识别目标物体。

实现局部注意力

  1. 预测对齐位置:模型需要预测在源句子中哪个位置( p t p_t pt)对于当前的目标词嵌入最为重要。
  2. 定义注意力窗口:在预测的位置 p t p_t pt周围定义一个大小为 2D 的(上下文)窗口,其中 D 是经验选择的一个超参数。
  3. 计算上下文向量:上下文向量是窗口内输入序列的加权平均值。权重是根据预测的位置和窗口内的每个位置之间的相似度来计算的。

此外,对齐方式可以有两种:

  1. 单调对齐,其中 p t p_t pt设置为 t,假设在时间 t 时,只有 t 附近的信息才重要。
  2. 预测对齐,其中模型本身预测对齐位置如下: p t = S ⋅ s i g m o i d ( v p ⊤ tanh ⁡ ( W p h t ) ) p_t = S \cdot \mathrm{sigmoid}(v_p^\top \tanh(W_{ph} t)) pt=Ssigmoid(vptanh(Wpht)) 其中, V p V_p Vp W p W_p Wp 是训练过程中学习到的模型参数, S S S 是源句子长度。

下图展示了全局和局部注意力机制之间的区别。全局注意力考虑所有隐藏状态(蓝色),而局部注意力仅考虑一个子集:
在这里插入图片描述
全局注意力考虑所有隐藏状态(蓝色),而局部注意力仅考虑一个子集

稀疏注意力

稀疏注意力机制旨在减少注意力计算中的冗余信息,通过引入稀疏性约束,使得注意力权重分布更加稀疏,即只有少数几个元素的权重较大,而大部分元素的权重接近于零。这样可以提高模型的计算效率和可扩展性,同时也有助于模型更加专注于重要的信息。稀疏注意力在处理大规模数据和复杂任务时具有优势,例如在处理长文本或高分辨率图像时,可以有效地降低计算资源的消耗。

分层注意力

分层注意力机制将注意力分为多个层次,每个层次关注不同级别的特征或信息。例如,在文本处理中,底层的注意力可能关注单词级别的特征,而高层的注意力则关注句子或段落级别的特征。通过这种分层的方式,模型可以更好地捕捉到数据中的层次结构和语义信息,从而提高对复杂数据的理解能力。分层注意力在自然语言处理中的许多任务中都取得了良好的效果,如文本生成、问答系统等。


网站公告

今日签到

点亮在社区的每一天
去签到