DataWhale 9月 大模型实训 T4:微调大模型

文章目录:

1.1 基础入门:读懂大模型微调

1.1.1 大模型微调是什么呢?

为什么不能只靠提示词?

1.1.2 为什么要进行微调?

1.1.3 微调是如何工作的?

2.1 微调数据准备:怎么构建指令数据集呢?

2.1.1 指令数据集是什么?

2.1.2 数据构建的三种方法

2.2 构造微调数据集:以角色扮演甄嬛任务为例

2.2.1 理解SFT数据格式要求

2.2.2 数据集加载与查看

2.2.3 数据预处理

3.1 为什么使用LoRA微调?

3.1.1 如何进行 LoRA 微调

课后作业

实训心得总结


1.1 基础入门:读懂大模型微调

在学习Prompt Engineering中,我们学习了如何通过设计好的提示词来引导大模型完成任务。这就像是给一个博学的“学霸”下达清晰的指令,它就能出色地完成许多工作。但在某些特殊场景下,仅仅靠“指令”可能就不够了。本章,将深入探讨一个更强大的技能——大模型微调,它能让通用模型转变为特定领域的“专业高手”。

1.1.1 大模型微调是什么呢?

简单来说,大模型微调就是使用特定的、有针对性的数据集,在一个已经预训练好的大语言模型基础上进行额外的训练,使其适应特定任务或领域的过程。

你可以把它想象成对一位通用型博士进行专项培训

  • 预训练模型:就像一位完成了所有基础学科教育的博士,他拥有非常广博的知识(语言规律、世界知识、逻辑推理等),可以应对各种通用问题。

  • 微调:现在,我们需要他成为一位顶尖的“医疗法律顾问”。于是,我们给他大量的医疗纠纷案例、法律法规文献进行深入学习。经过这番“特训”,他依然保有广博的基础知识,但在“医疗法律”这个垂直领域,他的专业性和精准度会远超普通博士。

为什么不能只靠提示词?

提示词工程是在模型“已有知识”的基础上进行引导,属于“调用”层面。但当任务非常复杂、专业或者需要模型具备特定的知识时,就像你无法仅通过几句指令就可以实现的。这时,就需要通过微调来“更新”模型内部的“知识结构”和“思维方式”。

1.1.2 为什么要进行微调?

微调并非适用于所有场景,适合在以下情况的(例举以下情况):

  1. 垂直领域
    对于金融、医疗、法律等专业门槛高的领域,通用模型缺乏足够的专业知识。通过微调,可以将领域内的专业术语、知识体系和规范“灌输”给模型,使输出内容具备专业性和准确性。

  2. 定制化任务
    如果你希望模型能模仿某位作家的文风进行创作,或者理解你产品独特的术语库,这些高度定制化的需求很难通过提示词完美实现。微调可以让模型掌握这些“个性化”要求。

  3. 在资源受限下追求高性能
    对于响应速度要求极高的应用(如实时对话机器人),我们可能无法使用庞大的千亿参数模型。这时,可以选择一个较小的模型(如7B参数),针对特定任务进行微调,让这个“轻量级选手”在特定任务上爆发出高性能,实现效率与效果的平衡。

1.1.3 微调是如何工作的?

现代大模型微调的核心思想是高效且精准。我们通常不会动用巨大的算力去重新训练整个模型的所有参数(这被称为“全量微调”,成本极高),而是采用更巧妙的高效微调方法

  • PEFT: 这类方法的核心是“冻结”预训练模型绝大部分的参数,只选择模型中的一小部分关键参数进行更新,或者额外添加一个轻量的“适配层”来进行训练。

  • LoRA: 这是目前最流行的PEFT技术之一。它的灵感来自于矩阵的秩分解,假设模型在适应新任务时,其内部变化的维度是低秩的。因此,LoRA通过在模型的注意力模块等关键部位旁路添加两个小的低秩矩阵来学习任务相关的改变,而保持原始权重不变。训练时只需要更新这两个小矩阵,大大降低了计算和存储成本。

大模型微调是我们驾驭AI能力的关键一步。它将模型从一个“什么都会一点”的通才,塑造成一个“在某一领域极其精通”的专家。理解了微调的原理,为后续的动手实践,打造属于自己的专属AI模型打下了坚实的地基。

2.1 微调数据准备:怎么构建指令数据集呢?

本章内容将使用 datasets、transformers、peft 等框架完成从微调数据构造到高效微调模型的整体微调流程。首先,我们进行本章的环境配置。请大家首先完成第二章本地部署大模型的环境配置。

!pip install -q datasets pandas peft

在开始微调之前,我们首先需要准备最关键的"燃料"——训练数据。与预训练使用海量无标注文本不同,微调通常不需要太复杂数据,就能让模型学会如何根据特定指令生成我们期望的回答。

2.1.1 指令数据集是什么?

指令数据集是一种结构化的训练数据,每条数据都包含三个核心部分:

  • 指令:明确的任务描述,告诉模型需要做什么

  • 输入(可选):任务的具体内容或上下文

  • 输出:期望模型给出的理想回答

示例:

{
  "instruction": "将以下中文翻译成英文",
  "input": "今天天气真好,我想去公园散步。",
  "output": "The weather is so nice today, I want to go for a walk in the park."
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值