核心主线: 预训练 → 分类微调 → 指令微调,完成从"无标注文本"到"可对话助手"的完整闭环

一、整体架构图

第五章 → 第六章 → 第七章 技术演进对比表

维度 第五章:预训练 第六章:分类微调 第七章:指令微调
核心目标 让模型学会“理解语言和生成文本” 让模型学会“识别特定类别” 让模型学会“听懂指令并自由回复”
输入数据 无标注文本(维基百科、书籍语料) 标注数据(短信 + 标签:spam / ham) 指令数据集(instruction + input + output)
输出形式 能“接龙”生成文本的基础模型 垃圾短信检测器 / 情感分析器(固定类别) 能执行指令的聊天助手(自由文本)
模型改造 无(原始 GPT 架构) 替换输出层:50257 维 → 2 维(分类头) 保持原词表输出层不变,不添加分类头
训练策略 预测下一个 token 冻结 Transformer 层,只训练分类头(可选解冻) 掩码指令部分,只优化 Response 部分的每个 token
损失函数 交叉熵损失(全部 token) 只优化最后一个 token 的交叉熵损失 只优化 Response token 的交叉熵损失
优化器 AdamW(带权重衰减) AdamW(同上) AdamW(同上)
解码/生成 温度缩放 + Top‑k 采样 不需要生成(直接用 argmax 分类) generate() 自回归 + 温度/Top‑k 控制
评估方法 训练/验证损失 分类准确率(Accuracy) 人工评估 + 自动评估(OpenAI API / Ollama)
局限性 只能做无监督生成 只能预测训练时见过的固定类别 需要高质量指令数据,评估较主观

二、逐章核心要点

第五章:在无标注数据上进行预训练

目标:让模型通过海量无标注文本自学语言规律,获得"接龙"能力。

类别 技术/概念 说明
数据预处理 教师强制 目标序列为输入序列右移一位(如输入"A B C",目标为"B C D"),用于自回归训练。
优化器 AdamW 改进Adam的权重衰减实现,避免权重与梯度耦合,成为大语言模型训练的标准优化器。
生成策略 温度缩放 调整logits除以温度参数:>1增加多样性,<1降低随机性(如0.5使输出更确定)。
Top-k采样 仅保留概率最高的k个token,其余置零后重新归一化,平衡生成质量与多样性(常用k=50)。
模型管理 模型持久化 使用torch.save保存模型权重、优化器状态;torch.load恢复训练或部署。
加载预训练权重 支持加载OpenAI GPT-2系列(124M至1558M参数)至自定义实现架构,需结构匹配。

关键补充说明

  • 教师强制:训练时使用真实历史token作为输入,避免错误累积,但推理时需切换为自回归生成。
  • AdamW优化器:权重衰减直接作用于参数,而非梯度,提升超参数鲁棒性。
  • 温度与Top-k:两者可结合使用,例如温度=0.7且k=40,控制生成多样性与集中度。
    一句话总结:第五章让模型"学会说话"——给它任意前缀,它能合理地续写下去。

第六章:进行文本分类的微调

目标:将预训练模型改造成特定任务的分类器。

配置项 参数/说明
数据集 SMS Spam Collection(约5000条短信,标签为spam/ham)
架构改造 输出层维度从[batch, seq, 50257]调整为[batch, seq, 2],仅保留最后一个token的输出
冻结策略 选项1:冻结全部Transformer层,仅训练分类头
选项2:解冻部分Transformer层
损失计算 仅对序列最后一个token的输出计算交叉熵损失(非整个序列)
评估指标 分类准确率(Accuracy)

关键说明

  • 输出层调整:原始语言模型的50257维输出对应词汇表大小,改造后适应二分类任务。
  • 冻结策略:解冻部分层时需注意梯度传播效率,建议从顶层开始逐步解冻。
  • 损失计算优化:仅计算序列末端损失可显著减少计算量,符合分类任务特性。
    只取最后一个token的输出进行分类
    一句话总结:第六章让模型"学会判断"——给它一段文本,它能输出一个固定类别标签。

第七章:进行遵循指令的微调

目标:让模型成为能理解自然语言指令并自由生成回复的通用助手。

关键要素 说明
数据格式 每条样本包含 instruction/input/output,按Alpaca模板格式化
损失计算掩码 训练时掩码指令部分(设为-100),仅计算Response部分的损失
模型规模选择 使用GPT-2 medium(355M参数),比预训练时更大以提升微调效果
生成方式 调用generate()函数自回归解码,支持温度(Temperature)和Top-k采样控制
评估方法 人工并排对比 + 调用更强模型(如GPT-4/Ollama)自动打分
进阶优化方向 多轮对话支持、偏好对齐(DPO/RLHF)、参数高效微调(LoRA/QLoRA)

一句话总结:第七章让模型"学会对话"——给它一个指令,它能理解意图并生成完整、有用的回答。

三、三章对比总表

维度 第五章(预训练) 第六章(分类微调) 第七章(指令微调)
数据类型 无标注文本 标注数据(文本+标签) 指令-响应对
数据规模 海量(GB级) 小规模(千级) 小规模(千级)
输出层 词表维度(50257) 类别维度(如2) 词表维度(50257)
损失范围 整个序列每个token 仅最后一个token 仅Response部分的token
模型改造 替换输出层为分类头 无(保持原架构)
生成方式 接龙生成 无(直接输出类别) 自回归生成完整回复
应用场景 获得基础语言能力 垃圾检测/情感分析 聊天机器人/智能助手
关键技能 温度/Top-k采样 冻结层/准确率评估 指令掩码/自动评估

第五章:预训练 —— 预测下一个token,生成接龙文本

第六章:分类微调 —— 只关心最后一个token,输出类别标签

第七章:指令微调 —— 只优化Response部分,生成指令回复

四、总结

第五章让模型"会说话"(预训练接龙)
第六章让模型"会判断"(分类打标签)
第七章让模型"会对话"(指令生成回复)
三章连起来,就是从"文盲"到"专家"再到"助手"的完整成长路径。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐