Qwen微调干货!对话、指令、Function Call、思考链数据集构造全流程揭秘!

前言

在大模型微调的实践中,如何构建和选择微调数据集,是决定微调效果最关键的因素之一。目前,社区已经积累了大量优秀的微调框架和开放数据集。在很多通用场景中,开发者只需按需组合不同的框架与数据集,就能完成基础微调。

img

但随着模型功能越来越复杂,如支持 Function Calling、具备推理能力甚至是混合推理能力(Reasoning + Tool Use),常规数据集的适配能力也逐渐变得捉襟见肘。

例如,若想围绕 Qwen模型强化其 Function Calling 能力,同时保持其复杂推理结构不被破坏,此时很多公开数据集就难以胜任。又如,当你希望模型聚焦某个特定领域的专业知识,或者精准调用一组特定 API 工具时,也必须构造自定义微调数据集。

Qwen 模型的控制 token 与对话模板机制

Qwen 系列模型使用 ChatML 格式,并通过控制 token 来实现对生成流程的细致控制。

其关键机制如下:

  • 控制 token:在文本序列中插入的特殊符号,用于标记段落、文档边界、对话结构、工具调用等。例如:

    • <|endoftext|>:表示文档结束;
    • <tool_call></tool_call>:包裹工具调用内容;
    • <|im_start|><|im_end|>:用于定义对话轮次。
  • 统一词表体系(Qwen2.5 起)

    • 所有子模型(包括多模态模型)使用统一词汇表;

    • 共计 22 个控制 token,词表总规模达 151,665。

  • 对话模板结构
    Qwen 使用 ChatML 格式表示对话,格式如下:

<|im_start|>{{role}} {{content}}<|im_end|>
    • user:用户输入角色;

    • assistant:模型生成角色;

    • system:元信息角色(如设定模型身份或风格),默认值为:

示例对话片段:

img

<|im_start|>system You are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|><|im_start|>user hello<|im_end|><|im_start|>assistant Hello! How can I assist you today? ...<|im_end|>

img

通常,大家看到的对话微调数据格式如下,适用于结构化对话训练:

[  {    "instruction": "用户问题",    "input": "输入上下文,可为空",    "output": "期望模型输出"  }]

img

适用于 ChatML 模型微调,精确控制每轮角色与内容:

<|im_start|>system You are Qwen...<|im_end|><|im_start|>user 请解释大语言模型<|im_end|><|im_start|>assistant 好的,我来用儿童的方式解释...<|im_end|><|endoftext|>

指令 + Function Calling 数据格式:

<|im_start|>user 查询今天上海天气<|im_end|><|im_start|>assistant <tool_call>{"name": "getWeather", "arguments": {"location": "Shanghai"}}</tool_call><|im_end|>

通用模型能力越强,对数据格式的要求越高。若希望打造具备复杂任务处理能力的模型,“数据工程”远比模型选择本身更重要

建议开发者根据目标任务特性:

  • 选择标准数据集进行预热训练;

  • 然后使用小规模、高质量的自定义数据集进行精调;

  • 特别是在 Function Calling 与多轮推理任务中,务必使用 ChatML 格式精准标注角色与意图。

更多信息参考下面的思维导图:

img

最后的最后

感谢你们的阅读和喜欢,作为一位在一线互联网行业奋斗多年的老兵,我深知在这个瞬息万变的技术领域中,持续学习和进步的重要性。

为了帮助更多热爱技术、渴望成长的朋友,我特别整理了一份涵盖大模型领域的宝贵资料集。

这些资料不仅是我多年积累的心血结晶,也是我在行业一线实战经验的总结。

这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。如果你愿意花时间沉下心来学习,相信它们一定能为你提供实质性的帮助。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

大模型知识脑图

为了成为更好的 AI大模型 开发者,这里为大家提供了总的路线图。它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

经典书籍阅读

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。

在这里插入图片描述

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

面试资料

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下

在这里插入图片描述

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

### 对Qwen模型进行多轮对话微调的方法 为了使Qwen模型适应特定应用场景中的多轮对话,可以采用迁移学习方法,在预训练的基础上进一步针对目标领域内的数据集进行微调。对于偏好数据集中提到的经过改写的包含56K条目、涉及心理健康支持场景下的多轮次交互记录的数据资源[^1],这些资料非常适合用来调整大型语言模型以更好地理解并回应复杂的人际交流情境。 #### 准备工作 首先需准备好用于训练的数据集合,理想情况下应选取那些已经过适当处理、能够体现预期应用环境特点的信息源。考虑到所讨论的是一个多回合问答体系,因此建议选用结构化的会话样本作为输入材料,其中不仅限于单一提问—回答模式,还应当涵盖连续性的互动序列。 #### 数据预处理 在正式开始之前,要对收集到的文字内容执行必要的清理操作,比如去除无关字符、统一大小写形式以及分割成适合喂给神经网络的小片段等。此外,还需要创建特殊的标记来指示每一轮交谈之间的界限,以便让机器明白何时是一个完整的交流周期结束而另一个即将开启。 #### 微调过程 当一切就绪之后,则可着手实施具体的参数优化流程: - **加载基础架构**:从官方渠道获取未经修改过的Qwen版本,并按照文档指引完成安装配置。 - **定义超参设置**:依据实际需求设定诸如批次规模(batch size)、迭代次数(epochs)之类的控制变量;同时指定损失函数(loss function),它决定了评估预测效果好坏的标准。 - **启动训练循环**:利用准备好的语料库反复更新权重直至收敛或达到预定的最大epoch数为止。期间可通过验证集监控泛化能力的变化趋势,防止出现过拟合现象。 ```python from transformers import AutoModelForCausalLM, Trainer, TrainingArguments model_name = "qwen-base" data_path = "./path_to_prepared_dataset" training_args = TrainingArguments( output_dir="./results", num_train_epochs=3, per_device_train_batch_size=8, save_steps=10_000, ) model = AutoModelForCausalLM.from_pretrained(model_name) trainer = Trainer( model=model, args=training_args, train_dataset=data_path, ) trainer.train() ``` 上述代码展示了基于Hugging Face Transformers库实现的一个简化版框架,具体细节可能因项目不同有所差异,请参照官方API手册做相应调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值