DistilQwen2:通义千问大模型的知识蒸馏实践

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,5000CU*H 3个月
模型训练 PAI-DLC,5000CU*H 3个月
简介: DistilQwen2 是基于 Qwen2大模型,通过知识蒸馏进行指令遵循效果增强的、参数较小的语言模型。本文将介绍DistilQwen2 的技术原理、效果评测,以及DistilQwen2 在阿里云人工智能平台 PAI 上的使用方法,和在各开源社区的下载使用教程。

作者:岳元浩(顾城)、汪诚愚(熊兮)、严俊冰(玖烛)、黄俊(临在)

1.背景

在人工智能快速发展的今天,大语言模型已经成为了人工智能的研究热点。其中,通义千问(Qwen)大模型系列凭借其强大的语言理解和生成能力,吸引了开源社区越来越多的关注。随着这些模型的应用场景不断扩大,如何提高它们的运算效率,降低部署成本,成为了一项重要的课题。知识蒸馏作为一种有效的模型压缩技术,通过将大型模型的知识转移到较小的模型中,实现了在确保性能的前提下,显著降低了所需的计算资源和推理时长,从而使得模型在实际应用中变得更加灵活和高效。

为应对这一难题,我们提出了 DistilQwen2,DistilQwen2 是基于 Qwen2大模型,通过知识蒸馏进行指令遵循效果增强的、参数较小的语言模型。通过对 Qwen 大模型的深度剖析,指令数据的增强和优化,以及多种知识蒸馏算法的探索,我们将大语言模型的复杂知识以更简洁的形式传递给轻量级模型,实现了指令遵循效果的提升。此外,随着应用需求的多样化,轻量级模型在移动设备、边缘计算等资源受限的环境中显得尤为重要。DistilQwen2 的研究旨在为开发更智能、更高效的自然语言处理应用提供技术支持,赋能更多开发者和企业通过技术创新实现商业价值。为了便于开发者和企业在实际应用中使用 DistilQwen2 蒸馏模型,我们在 HuggingFace 和 ModelScope 开源社区中将这一模型的 Checkpoint 进行开源。本文将介绍DistilQwen2 的技术原理、效果评测,以及DistilQwen2 在阿里云人工智能平台 PAI 上的使用方法,和在各开源社区的下载使用教程。

2. 大模型知识蒸馏技术

本节中,我们主要描述 DistilQwen2 模型训练中使用的全流程知识蒸馏技术。其中,DistilQwen2 模型蒸馏的算法框架如下图所示。
image.png

原始数据搜集

为了进行大模型蒸馏训练,我们搜集了 Magpie、Openhermes、Mammoth 2 等知名开源数据集,以及私有的合成数据集初始化来我们的蒸馏过程。指令数据以中英文为主,并且进行了难度打分和任务相关的重采样,实现指令数据的多样性。
在难度打分方面,我们使用 LLM-as-a-Judge 范式使用教师模型,从模型回答的准确性、相关性、帮助性、详细程度给出评分。我们使用学生模型的分数减去教师模型回答分数,获得分数差,我们命名为模型拟合难度分数(MFD Score)。模型拟合难度分数越高,该指令对于蒸馏训练的价值越大。因此,拟合难度过低的指令数据可以在训练集中删除。在我们的实践中,英文教师模型采用了 GPT4,中文教师模型采用了 Qwen-max。参考的打分模板如下所示:
image.png

在数据多样性方面,我们考虑了三种多样性,分别为任务多样性、长度多样性和语种多样性:

  • 任务多样性:我们参考 WizardLM 中对 LLM 的能力评估维度,定义了33种任务类型,收集标注了一个3万条的任务分类数据集,基于 Deberta v3 训练了一个任务分类器,该任务分类器与 ChatGPT 在测试集上分类结果相同的概率为86%,人类评估的任务分类准确率为93%。我们使用专有的任务分类器给数据打上显式的任务类型标签。
    image.png

  • 语种多样性:很多场景我们需要训练模型在多个语言上的能力,例如中文和英文,但是我们缺少分布足够广泛中文数据,我们使用 Qwen-max 做数据语种扩展,例如我们使用 Prompt 让 Qwen-max 生成和相同任务类型但内容不同,语言不同,包含更多中国常识的数据,直到两种语言数据量大致相等。

指令数据优化

在指令数据优化上,我们首先使用 Prompt 模板让教师模型扩展数据。在实际应用中,比如扩展中文数据、生成多轮对话数据,需要修改相应的 Prompt 要求。参考扩展模板如下:
image.png

对于多轮对话数据的构造,我们要求教师模型严格基于上一轮包含的回答信息进行追问。实验发现这一类数据格式还会有利于 IFEval 评测能力的提升。
蒸馏教师大模型需要获得教师模型的回答。教师模型合成回答的格式、风格、长度影响学生模型学到的风格,以及学生模型收敛泛化速度。在获得教师模型的回答时,我们采用了如下三种策略:

  • 任务格式优化:在标注教师模型的回答时,我们根据任务特点,优化不同任务教师模型回答风格。例如,推理任务要分步推理,代码类任务要有详细注释和解释,写作类任务要详细等。

  • 教师模型标注回复精简:我们在使用教师模型标注数据集回答时,会要求教师模型标注的回答要 “精确但是完整”,这样风格的回答可以让小模型学到风格更精简的回答,减少输出难度和幻觉比例,同时保留了回答的完整性。

  • 模型自我蒸馏:我们额外使用了自蒸馏方法。由于这一步骤需要模型改写能力和学生模型能力差异较小,我们额外使用 Qwen2-7B-Instruct 改写教师模型标注的回答,缩短教师模型和学生模型输出的分布差异,以此能有效减少分布差异带来的灾难性遗忘问题。此外,必须注意的是,数据集中的问答对不能有一些固定的模版文本,不能让模型学到一些固定的规律模板文本。
    当优化上述指令数据后,我们进一步使用大模型进行质量的校验,以排除数据质量较低的指令数据,保证蒸馏数据源的精度。

模型蒸馏训练

获得高质量指令数据后,我们采用两种方式训练学生模型。第一种方式即 SFT(Supervised Fine-Tuning),即直接微调学生模型的参数。然而,对于一些较难的指令任务,直接进行SFT训练很难获得效果比较好的学生模型,我们进一步使用 DPO(Direct Preference Optimization)进行更细粒度的继续微调。

image.png

3.效果评测

在本节中,我们从多个角度评测 DistilQwen2 蒸馏小模型的实际效果,验证大模型知识蒸馏技术的有效性。

指令遵循能力评测

我们在多个权威指令遵循评测基准上测试了 DistilQwen2 蒸馏小模型的能力。其中,AlpacaEval 2.0 是权威的指令遵循评测基准,使用 GPT4 作为裁判员评估回复生成质量。特别地,AlpacaEval 2.0 引入了长度控制的胜率(Length-controlled Win Rates),避免 GPT4 偏向于更长的回复,从而减小评估偏差。MT-Bench 是另一个评测基准,它包含了来自8个类别的80个任务,同样使用 GPT4 作为评判标准,具有两种不同模式:多轮对话和单轮对话。IFEval专注于使用“可验证的指令”进行模型效果的评估,从而使结果更加客观,例如“写一篇超过400个单词的短文”、“模型输出必须严格符合 JSON 格式”,根据使用的 Prompt 不同,包括instruction-loose和strict-prompt两种评估模式。DistilQwen2 在1.5B和7B两个参数量级的模型和原始 Qwen2 模型的效果对比如下表所示,可以看出本文描述的知识大模型蒸馏算法能进一步提升现有大语言模型的指令遵循能力,在多个评测基准上取得明显的、一致性的效果提升。
image.png

为了横向比较同期发布的不同参数规模的模型效果,下表展示了这些模型在 AlpacaEval 2.0 的评测结果,从低到高进行排序。特别地,由于 Qwen2 系列模型不包括 4B 和 14B 规模的模型,我们将 Qwen1.5 系列模型纳入排序。对于英文模型,我们也横向对比 Llama3 系列模型。模型效果排序如下所示。可以看出,DistilQwen2 系列模型具有很高的性价比,在指令遵循能力方面,甚至超过了参数量接近或大于其参数量两倍的模型。例如 DistilQwen2-1.5B-Instruct 和 DistilQwen2-7B-Instruct 效果分别明显超越了参数量为其两倍或以上的 Qwen1.5-4B-Chat 和 Qwen1.5-14B-Chat,并且这些提升在小模型上更加明显。DistilQwen2-7B-Instruct 在指令遵循能力上也大幅超越 Llama3 系列 8B 参数模型,包括 Llama3-8B-Instruct 和 Llama3.1-8B-Instruct。
image.png

模型通用能力评测

为了评测 DistilQwen2 蒸馏小模型的通用能力在蒸馏过程中是否存在灾难性遗忘,我们进一步评测了模型的通用能力。其中,MMLU、CEval、CMMLU 是权威的中英文模型知识评测数据集,为选择题格式;GSM8K、HumanEval、MBPP 评测模型推理推理能力,分别评测模型解答数学问题和编程问题的能力。DistilQwen2 系列模型和原始 QWen2 模型的评测效果对比如下所示。从实验结果可以看出,DistilQwen2 蒸馏小模型在所有评测任务中取得了与 QWen2 模型相似甚至更高的效果,说明这一模型在最大程度上提升了指令遵循的能力,同时在 NLP 基础任务上保持了较好的性能。
image.png

模型输出案例

以下给出数个不同模型输出比较,对于同一指令,我们对比了 DistilQwen2-7B-Instruct 和 GPT-4o、Qwen2-7B-Instruct 回复结果,特别是知识性和逻辑推理类问题。从输出结果可以看出,DistilQwen2-7B-Instruct 的输出具有良好的事实正确性和逻辑推理能力,对于某些问题,其输出比原始的 Qwen2-7B-Instruct 模型更优。
image.png

image.png

image.png

4.模型下载和使用

DistilQwen2 在阿里云人工智能平台 PAI 上的实践

以下 HuggingFace transformers 库为例,简要介绍如何在 PAI-DSW 上使用 DistilQwen2 模型。首先需要保证 PAI-DSW 镜像内 transformers 版本大于等于4.37.0,否则会在加载模型时报错:

KeyError: 'qwen2'

以 DistilQwen2-1.5B-Instruct 为例,我们可以使用如下代码调用模型:

from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "alibaba-pai/DistilQwen2-1.5B-Instruct"

model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

prompt = "请给我简单介绍一下杭州西湖。"
messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)

generated_ids = model.generate(
    **model_inputs,
    max_new_tokens=512
)
generated_ids = [
    output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]

response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(response)

DistilQwen2 在开源社区的下载

我们在 HuggingFace 和 ModelScope 上开源了我们蒸馏后的模型,分别为 alibaba-pai/DistilQwen2-7B-Instruct 和 alibaba-pai/DistilQwen2-1.5B-Instruct。以 HuggingFace 为例,用户可以使用如下代码下载这两个模型:

from huggingface_hub import snapshot_download

model_name = "alibaba-pai/DistilQwen2-1.5B-Instruct"
snapshot_download(repo_id=model_name, cache_dir="./DistilQwen2-1.5B/")

model_name = "alibaba-pai/DistilQwen2-7B-Instruct"
snapshot_download(repo_id=model_name, cache_dir="./DistilQwen2-7B/")

此外,我们在先前的工作中开源了用于指令增强和扩写的专用模型,用户可以参考这些模型的使用方式进行数据层面的大模型知识蒸馏:
image.png

5. 小结与未来工作

随着人工智能领域的不断进步,特别是大语言模型的迅猛发展,如何优化这些模型的运算效率和降低其部署成本正成为研究的前沿课题。DistilQwen2 作为基于 Qwen2 大模型的轻量级语言模型,通过知识蒸馏技术,不仅成功地实现了性能与资源消耗的有效平衡,还显著提升了指令遵循效果。这一创新为在移动设备和边缘计算等资源有限的环境中应用大语言模型奠定了基础,使得AI技术更加灵活且易于推广。在未来的工作中,我们计划进一步完善 DistilQwen2 的功能,探索更多适用于不同应用场景的知识蒸馏算法。同时,针对不断变化的市场需求,我们将集中精力于优化模型的微调策略,以提升其在特定任务中的表现。此外,我们将持续更新 DistilQwen2 在阿里云人工智能平台 PAI 上的最佳实践案例,并将继续加强与开源社区的合作,通过提供更多的工具和资源,促进开发者和企业在自然语言处理应用上的创新和实践。

参考文献

  1. Yuanhao Yue, Chengyu Wang, Jun Huang, Peng Wang. Distilling Instruction-following Abilities of Large Language Models with Task-aware Curriculum Planning. EMNLP 2024
  2. Cheng-Yu Hsieh, Chun-Liang Li, Chih-Kuan Yeh, Hootan Nakhost, Yasuhisa Fujii, Alex Ratner, Ranjay Krishna, Chen-Yu Lee, Tomas Pfister. Distilling Step-by-Step! Outperforming Larger Language Models with Less Training Data and Smaller Model Sizes. ACL 2023
  3. Yixing Li, Yuxian Gu, Li Dong, Dequan Wang, Yu Cheng, Furu Wei. Direct Preference Knowledge Distillation for Large Language Models. arXiv

    开源地址

alibaba-pai/DistilQwen2-7B-Instruct:

alibaba-pai/DistilQwen2-1.5B-Instruct:

相关文章
|
4天前
|
弹性计算 双11 开发者
阿里云ECS“99套餐”再升级!双11一站式满足全年算力需求
11月1日,阿里云弹性计算ECS双11活动全面开启,在延续火爆的云服务器“99套餐”外,CPU、GPU及容器等算力产品均迎来了全年最低价。同时,阿里云全新推出简捷版控制台ECS Lite及专属宝塔面板,大幅降低企业和开发者使用ECS云服务器门槛。
|
21天前
|
存储 弹性计算 人工智能
阿里云弹性计算_通用计算专场精华概览 | 2024云栖大会回顾
阿里云弹性计算产品线、存储产品线产品负责人Alex Chen(陈起鲲)及团队内多位专家,和中国电子技术标准化研究院云计算标准负责人陈行、北京望石智慧科技有限公司首席架构师王晓满两位嘉宾,一同带来了题为《通用计算新品发布与行业实践》的专场Session。本次专场内容包括阿里云弹性计算全新发布的产品家族、阿里云第 9 代 ECS 企业级实例、CIPU 2.0技术解读、E-HPC+超算融合、倚天云原生算力解析等内容,并发布了国内首个云超算国家标准。
阿里云弹性计算_通用计算专场精华概览 | 2024云栖大会回顾
|
3天前
|
人工智能 弹性计算 文字识别
基于阿里云文档智能和RAG快速构建企业"第二大脑"
在数字化转型的背景下,企业面临海量文档管理的挑战。传统的文档管理方式效率低下,难以满足业务需求。阿里云推出的文档智能(Document Mind)与检索增强生成(RAG)技术,通过自动化解析和智能检索,极大地提升了文档管理的效率和信息利用的价值。本文介绍了如何利用阿里云的解决方案,快速构建企业专属的“第二大脑”,助力企业在竞争中占据优势。
|
1天前
|
人工智能 自然语言处理 安全
创新不设限,灵码赋新能:通义灵码新功能深度评测
自从2023年通义灵码发布以来,这款基于阿里云通义大模型的AI编码助手迅速成为开发者心中的“明星产品”。它不仅为个人开发者提供强大支持,还帮助企业团队提升研发效率,推动软件开发行业的创新发展。本文将深入探讨通义灵码最新版本的三大新功能:@workspace、@terminal 和 #team docs,分享这些功能如何在实际工作中提高效率的具体案例。
|
8天前
|
负载均衡 算法 网络安全
阿里云WoSign SSL证书申请指南_沃通SSL技术文档
阿里云平台WoSign品牌SSL证书是由阿里云合作伙伴沃通CA提供,上线阿里云平台以来,成为阿里云平台热销的国产品牌证书产品,用户在阿里云平台https://www.aliyun.com/product/cas 可直接下单购买WoSign SSL证书,快捷部署到阿里云产品中。
1850 6
阿里云WoSign SSL证书申请指南_沃通SSL技术文档
|
10天前
|
Web App开发 算法 安全
什么是阿里云WoSign SSL证书?_沃通SSL技术文档
WoSign品牌SSL证书由阿里云平台SSL证书合作伙伴沃通CA提供,上线阿里云平台以来,成为阿里云平台热销的国产品牌证书产品。
1789 2
|
19天前
|
编解码 Java 程序员
写代码还有专业的编程显示器?
写代码已经十个年头了, 一直都是习惯直接用一台Mac电脑写代码 偶尔接一个显示器, 但是可能因为公司配的显示器不怎么样, 还要接转接头 搞得桌面杂乱无章,分辨率也低,感觉屏幕还是Mac自带的看着舒服
|
26天前
|
存储 人工智能 缓存
AI助理直击要害,从繁复中提炼精华——使用CDN加速访问OSS存储的图片
本案例介绍如何利用AI助理快速实现OSS存储的图片接入CDN,以加速图片访问。通过AI助理提炼关键操作步骤,避免在复杂文档中寻找解决方案。主要步骤包括开通CDN、添加加速域名、配置CNAME等。实测显示,接入CDN后图片加载时间显著缩短,验证了加速效果。此方法大幅提高了操作效率,降低了学习成本。
5388 15
|
13天前
|
人工智能 关系型数据库 Serverless
1024,致开发者们——希望和你一起用技术人独有的方式,庆祝你的主场
阿里云开发者社区推出“1024·云上见”程序员节专题活动,包括云上实操、开发者测评和征文三个分会场,提供14个实操活动、3个解决方案、3 个产品方案的测评及征文比赛,旨在帮助开发者提升技能、分享经验,共筑技术梦想。
1144 152
|
21天前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1585 14

热门文章

最新文章