CN116663678A - 面向超大规模模型的蒸馏优化方法、装置、介质及设备 - Google Patents

面向超大规模模型的蒸馏优化方法、装置、介质及设备 Download PDF

Info

Publication number
CN116663678A
CN116663678A CN202310731426.3A CN202310731426A CN116663678A CN 116663678 A CN116663678 A CN 116663678A CN 202310731426 A CN202310731426 A CN 202310731426A CN 116663678 A CN116663678 A CN 116663678A
Authority
CN
China
Prior art keywords
model
student
teacher
distillation
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310731426.3A
Other languages
English (en)
Inventor
谭世成
谭咏霖
王元淳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zhipu Huazhang Technology Co ltd
Original Assignee
Beijing Zhipu Huazhang Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Zhipu Huazhang Technology Co ltd filed Critical Beijing Zhipu Huazhang Technology Co ltd
Priority to CN202310731426.3A priority Critical patent/CN116663678A/zh
Publication of CN116663678A publication Critical patent/CN116663678A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T10/00Road transport of goods or passengers
    • Y02T10/10Internal combustion engine [ICE] based vehicles
    • Y02T10/40Engine management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Vaporization, Distillation, Condensation, Sublimation, And Cold Traps (AREA)

Abstract

本发明涉及面向超大规模模型的蒸馏优化方法、装置、介质及设备,属于知识蒸馏技术领域。本发明技术方案主要包括:获取需求并根据所述需求形成蒸馏任务配置文件,所述蒸馏任务配置文件包括教师模型和学生模型基于所述教师模型和所述学生模型,根据教师学生并行策略进行模型构建以形成教师学生并行模型;通过自适应架构对所述教师学生并行模型进行训练以获得学生模型;所述自适应架构包括操作钩子、抽取钩子以及辅助模型;通过所述操作钩子调用所述蒸馏算法,以对所述教师学生并行模型的推理过程进行修改;通过所述抽取钩子分别提取所述教师模型特征和所述学生模型特征;依据所述抽取钩子确定损失函数的选择。

Description

面向超大规模模型的蒸馏优化方法、装置、介质及设备
技术领域
本发明属于知识蒸馏技术领域,具体而言涉及面向超大规模模型的蒸馏优化方法、装置、介质及设备。
背景技术
通过知识蒸馏,大规模预训练语言模型的参数规模被大大减少,这极大地促进了其在各种设备上应用。然而,现实世界中的工业级应用与受控实验环境不同,用户需要在规模更大的语言模型上使用这些复杂的蒸馏方法,在内存受限的显卡上和多种方法的切换上部署会收到阻碍。
近年来,研究者对压缩大规模语言模型的知识蒸馏方法进行了广泛的研究和探讨。这些研究大多关注如何更好地利用语言模型特征将知识从大型教师模型转移到较小的学生模型,包括隐藏层、注意层、软标签和硬标签。这些研究使用了数亿个参数的预训练语言模型,例如BERT、RoBERTa、XLNet等,验证了其方法的有效性。然而,依赖于超大规模预训练语言模型(10B甚至更大)的蒸馏系统在GPU上的部署受到了限制。一种离线蒸馏方法,在训练学生之前保存教师特征,减少了内存压力,但受到特征规模较小且没有教师学生交互的方法的限制。
此外,虽然一些针对语言模型的知识蒸馏方法的代码已经公开,但缺乏一个通用框架来部署知识蒸馏系统。有一些已有的工作在统一的蒸馏工具上进行了尝试:TextBrewer提供了一些抽象和简单的蒸馏过程和损失函数,但缺乏许多方法的实现,难以适应越来越复杂的蒸馏方法。这些方法在实现上存在显著差异,例如DIITO需要动态干预模型中间层的计算;SID在训练过程中更改中间层特征;ContinuationKD随着纪元增加而改变损失计算方法等等。这些实现上的差异使它们难以在一个单一框架中轻松切换和组合,从而阻碍了各种先进方法在知识蒸馏系统中的应用。
综上,现有技术中的知识蒸馏方法无法兼容多种多样的蒸馏方法以至于应用时难以选择当前应用场景最适当的蒸馏方法。
发明内容
鉴于上述的分析,本发明实施例旨在提供一种面向超大规模模型的蒸馏优化方法、装置、介质及设备,用以解决现有技术中的知识蒸馏方法无法兼容多种多样的蒸馏方法以至于应用时难以选择当前应用场景最适当的蒸馏方法的问题。
本发明第一方面实施例提供一种面向超大规模模型的蒸馏优化方法,包括以下步骤:
获取需求并根据所述需求形成蒸馏任务配置文件,所述蒸馏任务配置文件包括教师模型和学生模型;
基于所述教师模型和所述学生模型,根据教师学生并行策略进行模型构建以形成教师学生并行模型;
通过自适应架构对所述教师学生并行模型进行训练以获得学生模型;
所述自适应架构包括操作钩子、抽取钩子以及辅助模型;
所述通过自适应架构对所述教师学生并行模型进行训练以获得学生模型,包括:
依据所述蒸馏任务配置文件的蒸馏算法之一,通过所述操作钩子对所述教师学生并行模型的推理过程进行修改;
通过所述抽取钩子分别提取所述教师模型特征和所述学生模型特征;
将所述教师模型特征和所述学生模型特征以及所述抽取钩子均输入所述辅助模型;
依据所述抽取钩子确定损失函数,以确定所述教师模型特征和所述学生模型特征之间的差异进而获取损失,并依据所述损失对所述学生模型进行训练。
在一些实施例中,所述蒸馏任务配置文件包括训练任务、蒸馏算法集合、教师模型和学生模型。
在一些实施例中,所述基于所述配置文件,根据教师学生并行策略进行模型构建以形成教师学生并行模型,包括:
所述教师模型至少包括顺序排列的第一教师子模型和第二教师子模型,采用数据并行将所述第一教师子模型的各第一参数矩阵部署于第一GPU组,将所述第二教师子模型的各第二参数矩阵部署于第二GPU组;
所述学生模型至少包括顺序排列的第一学生子模型和第二学生子模型,所述第一学生子模型和所述第一教师子模型相对应,所述第二学生子模型和所述第二教师子模型相对应,采用数据并行将所述第一学生子模型的各第三参数矩阵部署于所述第一GPU组,将所述第二学生子模型的各第四参数矩阵部署于第二GPU组。
在一些实施例中,所述基于所述配置文件,根据教师学生并行策略进行模型构建以形成教师学生并行模型,还包括:
所述第一GPU组包括第一GPU和第二GPU,所述第二GPU组包括第三GPU和第四GPU;
采用相同的切分方式,将所述第一参数矩阵进行切分以至少获得第一子矩阵和第二子矩阵,将所述第二参数矩阵进行切分以至少获得第三子矩阵和第四子矩阵,将所述第三参数矩阵进行切分以至少获得第五子矩阵和第六子矩阵,将所述第四参数矩阵进行切分以至少获得第七子矩阵和第八子矩阵;
将所述第一子矩阵和所述第五子矩阵均部署在所述第一GPU,将所述第二子矩阵和所述第六子矩阵均部署在所述第二GPU,将所述第三子矩阵和所述第七子矩阵均部署在所述第三GPU,将所述第四子矩阵和所述第五子矩阵均部署在所述第四GPU。
在一些实施例中,所述基于所述配置文件,根据教师学生并行策略进行模型构建以形成教师学生并行模型,包括:
将所述教师模型的各参数矩阵进行切分以至少获得第一教师子矩阵和第二教师子矩阵,采用模型并行将所述第一教师子矩阵部署于第一GPU组,将所述第二教师子矩阵部署于第二GPU组;
采用所述教师模型的参数矩阵的切分方式将所述学生模型的各参数矩阵进行切分以至少获得第一学生子矩阵和第二学生子矩阵,采用模型并行将所述第一学生子矩阵部署于第一GPU组,将所述第二学生子矩阵部署于第二GPU组。
在一些实施例中,所述蒸馏算法包括DITTO,LRC-BERT,Theseus,SID,TinyBERT,RAIL-KD,Universal-KD,LRC-BERT,Annealing-KD,Continuation-KD,MobileBERT,CKD,MGSKD,ALP-KD,TMKD,MT-BERT,RL-KD,Uncertainty,TAKD,DGKD,KD,PD,PKD,DistilBERT,MiniLM,MiniLMv2中的一种或多种的组合。
在一些实施例中,所述优化方法还包括:
根据所述学生模型的性能进行评估分析,以判断所述学生模型的是否符合部署要求;
若是则将所述学生模型部署在设备上,否则继续对所述学生模型进行优化训练。
本发明第二方面实施例提供一种面向超大规模模型的蒸馏优化装置,包括:
配置模块,用于获取需求并根据所述需求形成蒸馏任务配置文件,所述蒸馏任务配置文件包括教师模型和学生模型;
模型构建模块,基于所述教师模型和所述学生模型,根据教师学生并行策略进行模型构建以形成教师学生并行模型;
模型训练模块,通过自适应架构对所述教师学生并行模型进行训练以获得学生模型;
所述自适应架构包括操作钩子、抽取钩子以及辅助模型;
所述通过自适应架构对所述教师学生并行模型进行训练以获得学生模型,包括:
通过所述操作钩子调用所述蒸馏算法,以对所述教师学生并行模型的推理过程进行修改;
通过所述抽取钩子分别提取所述教师模型特征和所述学生模型特征;
将所述教师模型特征和所述学生模型特征以及所述抽取钩子均输入所述辅助模型;
依据所述抽取钩子确定损失函数,依据所述教师模型特征和所述学生模型特征之间的差异确定损失,依据所述损失对所述学生模型进行训练。
本发明第三方面实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如上任一实施例所述的面向超大规模模型的蒸馏优化方法。
本发明第四方面实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一实施例所述的面向超大规模模型的蒸馏优化方法。
本发明上述实施例至少具有以下有益效果:
1、通过基于内存优化的教师学生并行策略使得本发明实施例可以支持超大规模的大模型知识蒸馏。
2、通过自适应架构可以实现在蒸馏训练过程中的不同蒸馏算法的切换和组合,便于找到最适应当前蒸馏场景的蒸馏算法。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例中面向超大规模模型的蒸馏优化方法的应用环境图;
图2为本发明第一方面实施例提供的面向超大规模模型的蒸馏优化方法流程示意图;
图3为本发明第一方面实施例优选实施例流程示意图;
图4为本发明第三优选实施例与传统数据并行方式的对比示意图;
图5为本发明第三优选实施例并行策略模型切片对齐示意图;
图6为本发明第一方面实施例自适应架构示意图;
图7为本发明第二方面实施例提供的面向超大规模模型的蒸馏优化装置架构示意图;
图8为本发明第三方面实施例提供的电子设备架构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。需要说明的是,在不冲突的情况下,本公开中的实施方式及实施方式中的特征可以相互组合、分离、互换和/或重新布置。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
这里使用的术语是为了描述具体实施例的目的,而不意图是限制性的。如这里所使用的,除非上下文另外清楚地指出,否则单数形式“一个(种、者)”和“所述(该)”也意图包括复数形式。
为便于理解本发明实施例提供的技术方案,这里先对本发明实施例使用的一些关键名词进行解释:
语言模型:通常是指机器学习中的一种模型,用于对自然语言文本中的下一个单词或字符进行预测。这种模型通常基于统计语言建模的思想,通过对大量文本数据进行训练,学习出文本中的语言规律和概率分布,从而在给定前面的文本内容时,预测下一个单词或字符的概率分布。这种模型被广泛应用于自然语言处理领域的各种任务,如自动文本生成、机器翻译、文本分类等。近年来,随着大规模预训练模型的兴起,基于语言模型的自然语言处理技术取得了巨大的进展。
大规模预训练模型:大规模预训练模型是一种机器学习模型,其在大量数据上进行预训练,以学习丰富的语言知识。这些模型通常使用神经网络架构,如Transformer,来学习自然语言中的上下文关系和语义。在各类处理具体任务时再对上述模型进行微调,让模型能够利用预训练阶段积累的知识出色地完成下游任务。通常情况下,参数规模超过10B的模型被认为是真正意义上的大模型,它们具有大量的可训练参数,可以处理更多的语言信息,从而提供更加准确和自然的预测和生成结果。这些大模型需要巨大的计算和存储资源,通常只有一些大型科技公司或研究机构才能拥有足够的资源来构建和训练它们。在自然语言处理等领域,大规模预训练模型已经成为最先进的技术之一,并且在多项语言任务上取得了令人印象深刻的结果。
知识蒸馏:知识蒸馏是一种将一个或一些复杂的大规模模型(称为“教师模型”)的知识迁移到一个简单的小规模模型(称为“学生模型”)中的技术。教师模型通常是一个比较大且复杂的模型,具有很高的准确性,但在计算和存储资源方面代价昂贵。学生模型通常是比较小和简单的模型,计算和存储资源消耗较少,但准确度较低。知识蒸馏通过训练学生模型来学习教师模型的知识。这种迁移通常包括将教师模型的输出(例如,它对于训练数据的概率分布)作为学生模型的目标,并使用温度参数来调整目标分布的“软化程度”,使得学生模型更容易学习复杂模型的知识。知识蒸馏技术可以在多个任务上实现很好的结果,例如语言模型、图像分类、物体检测等。通过使用知识蒸馏技术,可以将复杂模型的知识迁移到简单模型中,从而实现高准确度和低资源消耗的平衡。
模型并行:模型并行策略是指将大型深度神经网络模型分成多个子模型,分别在不同的设备上并行计算,最终将结果合并得到最终的输出结果的一种策略。该策略旨在解决单个设备无法容纳大型深度神经网络模型、计算时间过长等问题,提高模型的训练和推理效率。在模型并行策略中,通常使用数据并行或者模型并行两种方式。数据并行是指将训练数据分成多个部分,每个设备上都训练一个子模型,每个子模型都使用相同的神经网络结构,最后将每个子模型的梯度合并以更新全局模型;模型并行是指将神经网络分成多个部分,每个设备负责计算其中的一部分,每个部分可能拥有不同的神经网络结构。在模型并行中,需要解决子模型之间的通信、同步等问题。模型并行策略可以显著提高深度神经网络模型的训练和推理效率,特别适用于大规模模型训练和推理的场景,如语音识别、自然语言处理和图像处理等领域。
虽然一些针对语言模型的知识蒸馏方法的代码已经公开,但缺乏一个通用框架来部署知识蒸馏系统。有一些已有的工作在统一的蒸馏工具上进行了尝试:TextBrewer提供了一些抽象和简单的蒸馏过程和损失函数,但缺乏许多方法的实现,难以适应越来越复杂的蒸馏方法。
本发明第一方面实施例提供一种面向超大规模模型的蒸馏优化方法,基于教师学生模型的模型并行和数据并行使得本发明可以支持超大规模的大模型知识蒸馏,通过动态挂钩机制和辅助模型适应了各种复杂的知识蒸馏算法。
为了便于理解,请参阅图1,图1为本发明实施例中面向超大规模模型的蒸馏优化方法的应用环境图,如图1所示,本发明实施例中蒸馏优化方法应用于蒸馏优化系统。蒸馏优化系统包括:服务器和终端设备。蒸馏优化装置可以部署在服务器,也可以部署在终端设备,本发明实施例以部署在服务器为例进行介绍,而这不应该理解为对本发明的限定。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。终端和服务器可以通过有线或无线通信方式进行直接或间接地连接,本发明实施例在此不做限制。
服务器首先,获取需求并根据所述需求形成蒸馏任务配置文件,所述蒸馏任务配置文件包括教师模型和学生模型;基于所述教师模型和所述学生模型,根据教师学生并行策略进行模型构建以形成教师学生并行模型;通过自适应架构对所述教师学生并行模型进行训练以获得学生模型;所述自适应架构包括操作钩子、抽取钩子以及辅助模型,依据所述蒸馏任务配置文件的蒸馏算法之一,通过所述操作钩子对所述教师学生并行模型的推理过程进行修改;通过所述抽取钩子分别提取所述教师模型特征和所述学生模型特征;将所述教师模型特征和所述学生模型特征以及所述抽取钩子均输入所述辅助模型;依据所述抽取钩子确定损失函数,以确定所述教师模型特征和所述学生模型特征之间的差异进而获取损失,并依据所述损失对所述学生模型进行训练。本发明通过基于内存优化的教师学生并行策略使得本发明实施例可以支持超大规模的大模型知识蒸馏。通过自适应架构可以实现在蒸馏训练过程中的不同蒸馏算法的切换和组合,便于找到最适应当前蒸馏场景的蒸馏算法。
下面将从服务器的角度,对本发明第一方面实施例提供的面向超大规模模型的蒸馏优化方法进行介绍。请参阅图2,图2是本发明第一方面实施例提供的面向超大规模模型的蒸馏优化方法流程示意图,本发明第一方面实施例提供的面向超大规模模型的蒸馏优化方法包括:
步骤一、获取需求并根据所述需求形成蒸馏任务配置文件,所述蒸馏任务配置文件包括教师模型和学生模型。
如图3所示,图3是本发明第一方面实施例提供的优选实施例流程示意图,此过程由用户提出需求并形成蒸馏任务配置文件,优选地,在一些实施例中,所述蒸馏任务配置文件包括训练任务、蒸馏算法、教师模型和学生模型。
优选地,在一些实施例中,所述蒸馏任务配置文件包括训练任务、蒸馏算法、教师模型和学生模型。
应当理解的是,训练任务由用户进行配置,所采用的蒸馏算法可以由事先部署在服务器或者终端设备中的蒸馏算法集中进行选择。教师模型和学生模型是根据训练任务选取相适配的模型。
步骤二、基于所述教师模型和所述学生模型,根据教师学生并行策略进行模型构建以形成教师学生并行模型。
具体实施时,此过程通过结合了模型并行和数据并行的教师学生并行策略来应对计算资源受限的挑战。一些针对于学生模型的参数初始化策略会在这个过程中选择和执行,例如使用预训练的学生模型初始化、使用截断参数的教师模型初始化、使用随机初始化、或者使用利用了其他方法蒸馏的学生模型来初始化等。此阶过程也包括了用tokenizer初始化待训练的数据的环节。
在GPU内存受限的情况下,构建一个教师模型和学生模型均为真正意义上的大规模PLM(Piecewise Linear Model,分段线性模型)是一项挑战。为了解决这个问题,本实施例提出了一种教师学生并行策略,该策略能够在将模型参数划分到不同的GPU上的同时,确保教师和学生特征相似度的计算不受影响。
关于本发明的教师学生并行策略,本发明提供以下三个优选实施例:
第一优选实施例中,所述基于所述教师模型和所述学生模型,根据教师学生并行策略进行模型构建以形成教师学生并行模型,包括:
所述教师模型至少包括顺序排列的第一教师子模型和第二教师子模型,采用数据并行将所述第一教师子模型的各第一参数矩阵部署于第一GPU组,将所述第二教师子模型的各第二参数矩阵部署于第二GPU组;
所述学生模型至少包括顺序排列的第一学生子模型和第二学生子模型,所述第一学生子模型和所述第一教师子模型相对应,所述第二学生子模型和所述第二教师子模型相对应,采用数据并行将所述第一学生子模型的各第三参数矩阵部署于所述第一GPU组,将所述第二学生子模型的各第四参数矩阵部署于第二GPU组。
在第一优选实施例中,将教师模型和学生模型的若干transformer层的先后按顺序按照需求划分为若干子模型,例如在涉及2个6层Transformer教师模型和1个4层Transformer学生模型在GPU上的参数分配情况。可以将教师模型的前三层和后三层分别划分为第一教师子模型和第二教师子模型,根据学习目标确定学生子模型和教师子模型的对应关系,该学习目标与用户配置的训练任务或者采用的蒸馏算法相关,例如学习目标是学生模型的第一层学习第一教师子模型的知识,则将学生模型的第一层和后三层分别划分为第一学生子模型和第二学生子模型,并将第一学生子模型和第一教师子模型部署在第一GPU组,将第二学生子模型和第二教师子模型部署在第二GPU组。应当理解的是,此处的第一GPU组和第二GPU组各自包括一块GPU。本实施例的数据并行通过将具有对应关系的教师子模型和学生子模型部署在同一GPU上,在数据并行的基础上实现教师子矩阵和学生子模型的对齐,避免学生模型的知识蒸馏混乱。
第二优选实施例中,所述基于所述教师模型和所述学生模型,根据教师学生并行策略进行模型构建以形成教师学生并行模型,包括:
将所述教师模型的各参数矩阵进行切分以至少获得第一教师子矩阵和第二教师子矩阵,采用模型并行将所述第一教师子矩阵部署于第一GPU组,将所述第二教师子矩阵部署于第二GPU组;
采用所述教师模型的参数矩阵的切分方式将所述学生模型的各参数矩阵进行切分以至少获得第一学生子矩阵和第二学生子矩阵,采用模型并行将所述第一学生子矩阵部署于第一GPU组,将所述第二学生子矩阵部署于第二GPU组。
在第二优选实施例中,采用相同的矩阵切分方式将教师模型和学生模型的各transformer层的参数矩阵进行切分形成第一教师子矩阵和第二教师子矩阵以及,第一学生子矩阵和第二学生子矩阵。其中切分方式与蒸馏算法相关,例如可以将参数矩阵在某一维度上从中央分开为两个相连接的子矩阵,或者将参数矩阵切分为例如六部分,取其中的第一、三、五部分拼接为第一子矩阵,剩余部分拼接为第二子矩阵,将切分好的第一教师子矩阵和第一学生子矩阵部署在第一GPU组,将第二学生子矩阵和第二教师子矩阵部署在第二GPU组,其中第一教师子矩阵和第一学生子矩阵为各自原矩阵中对应的部分,例如均为第一、三、五部分的拼接,同理第二学生子矩阵和第二教师矩阵也对应。应当理解的是,此处的第一GPU组和第二GPU组各自包括一块GPU。本实施例的模型并行通过将具有对应关系的教师子矩阵和学生子矩阵部署在同一GPU上以避免蒸馏知识数据的错乱。
第三优选实施例中,在第一优选实施例的基础上,所述基于所述教师模型和所述学生模型,根据教师学生并行策略进行模型构建以形成教师学生并行模型,还包括:
所述第一GPU组包括第一GPU和第二GPU,所述第二GPU组包括第三GPU和第四GPU;
将所述第一参数矩阵进行切分以至少获得第一子矩阵和第二子矩阵,将所述第二参数矩阵进行切分以至少获得第三子矩阵和第四子矩阵,将所述第三参数矩阵进行切分以至少获得第五子矩阵和第六子矩阵,将所述第四参数矩阵进行切分以至少获得第七子矩阵和第八子矩阵;
将所述第一子矩阵和所述第五子矩阵均部署在所述第一GPU,将所述第二子矩阵和所述第六子矩阵均部署在所述第二GPU,将所述第三子矩阵和所述第七子矩阵均部署在所述第三GPU,将所述第四子矩阵和所述第五子矩阵均部署在所述第四GPU。
本第三优选实施例在第一优选实施例的基础上对各教师子模型和学生子模型采用模型并行的方式进一步地对模型参数进行分化。如图4所示,图4为本发明第三优选实施例与传统数据并行方式的对比示意图,涉及2个6层Transformer教师模型和1个4层Transformer学生模型在GPU上的参数分配情况。现有方法将所有模型参数分配在每个GPU中,这限制了超大规模PLMs和多模型训练的可能性。为了减少每个GPU的内存使用,同时不影响教师和学生之间的交互,我们使用了教师学生并行策略,将教师和学生的参数均匀分配在不同的GPU上,每个GPU对应于教师和学生匹配的模型参数。在模型并行和数据并行数量为2的情况下,内存使用可以减少至少一半。在一些实施例中,使用ZeRO-Offload,还可以将优化器状态保存在CPU内存中,进一步减少GPU内存的使用。
较佳地,本第三优选地实施例中的学生子矩阵和教师子矩阵不仅在子模型的层面上严格对齐,而且在子矩阵的切分方式的基础上分在同一GPU上的教师子矩阵或者学生子矩阵各自的切分方式相同且属于原矩阵相同的部分。具体流程如图5所示,在知识蒸馏场景中,学生模型S被并行策略切分成S(1)以及S(2)两个切片,每个切片又被数据并行策略切分成不同的层结构(例如S(1)被划分为S(1)_1以及S(1)_2两个层结构。),两个教师模型T1以及T2的切分情况同理(教师模型的数量依据蒸馏方法而异)。此切分场景必须严格限制被切分到同一张显卡上的教师模型切片以及学生模型切片编号是对应的,例如都是(1)或者都是(2),否则会出现交叉学习的情况,导致学生模型拟合到了错误的教师模型目标上。
步骤三、通过自适应架构对所述教师学生并行模型进行训练以获得学生模型。
所述自适应架构包括操作钩子、抽取钩子以及辅助模型。
所述通过自适应架构对所述教师学生并行模型进行训练以获得学生模型,包括:
通过所述操作钩子调用所述蒸馏算法,以对所述教师学生并行模型的推理过程进行修改。
通过所述抽取钩子分别提取所述教师模型特征和所述学生模型特征。
将所述教师模型特征和所述学生模型特征以及所述抽取钩子均输入所述辅助模型。
依据所述抽取钩子确定损失函数,依据所述教师模型特征和所述学生模型特征之间的差异确定损失,依据所述损失对所述学生模型进行训练。
由于抽取钩子可以决定模型特征的形式,因此可以根据抽取钩子直接通过辅助模型选择相适应的损失函数并进行损失计算。
模型训练的挑战在于用户在不同蒸馏方法的选择切换自由度受限。为了解决这个问题,本实施例提出了一种兼容多方法的高效自适应架构,采用动态钩子机制和辅助模型来实现不同方法对模型的操作和特征的计算。如图6左图所示,动态钩子机制在每次迭代中构建抽取模型特征的抽取钩子和修改模型推理过程的操作钩子。这些钩子由类似于JSON的配置文件描述,只需要记录方法所需的操作,并在模型计算过程中发挥作用。辅助模型根据这些钩子和返回的模型特征计算损失函数。图6右图展示了将两个6层的教师模型蒸馏到3层的学生模型的一次具体场景:当抽取钩子设定为学生模型的第三层特征S3以及教师模型的第6层特征S6、操作钩子设定为将学生模型的第一层特征S1替换为教师模型的第2层特征T2时的工作流场景。
表1 自适应架构兼容的蒸馏特点及蒸馏算法
优选地,在一些实施例中,所述蒸馏算法包括DITTO,LRC-BERT,Theseus,SID,TinyBERT,RAIL-KD,Universal-KD,LRC-BERT,Annealing-KD,Continuation-KD,MobileBERT,CKD,MGSKD,ALP-KD,TMKD,MT-BERT,RL-KD,Uncertainty,TAKD,DGKD,KD,PD,PKD,DistilBERT,MiniLM,MiniLMv2中的一种或多种的组合。较佳地,可以根据表1中不同蒸馏算法的对应的特点进行选择。
优选地,在一些实施例中,如图3所示,所述优化方法还包括:
根据所述学生模型的性能进行评估分析,以判断所述学生模型的是否符合部署要求;
若是则将所述学生模型部署在设备上,否则继续对所述学生模型进行优化训练。
此过程通过评估分析来判断蒸馏得到的学生模型是否符合部署的要求,例如分析学生模型在测试集上的性能以及其他可以用于改进模型的现象。
接着,将训练好的学生模型部署在对应的设备上,此过程考虑了将模型部署在算力较低的设备上或在同等算力下部署负载更高服务等情况。
首先,本发明提出了一种基于内存优化方法的严格对齐的教师学生并行策略,使本发明能支持对百亿以上参数规模的大模型的蒸馏,已有实验证明了可以在一台NVIDIAA100(8*40GB)机器上蒸馏千亿级别参数规模的大模型。可同时对多个结构不同的模型进行并行操作。本策略支持将不同架构的模型进行模型切分与数据并行。
其次,本发明实现了一种兼容多种蒸馏算法的高效自适应架构,让用户可以轻松切换和组合不同的知识蒸馏方法。本发明能够兼容至少25种已经公开的主流的模型蒸馏方法。
通过以上两点,本发明首次实现了开源的、易于使用的、在通用语言模型框架GLM上的统一知识蒸馏工具,内含目前主流的25种主流蒸馏方法的使用指令。可拓展到其他模型架构上。
本发明第二方面实施例提供一种面向超大规模模型的蒸馏优化装置,如图7所示,包括:
配置模块,用于获取需求并根据所述需求形成蒸馏任务配置文件,所述蒸馏任务配置文件包括教师模型和学生模型;
模型构建模块,基于所述教师模型和所述学生模型,根据教师学生并行策略进行模型构建以形成教师学生并行模型;
模型训练模块,通过自适应架构对所述教师学生并行模型进行训练以获得学生模型;
所述自适应架构包括操作钩子、抽取钩子以及辅助模型;
所述通过自适应架构对所述教师学生并行模型进行训练以获得学生模型,包括:
依据所述蒸馏任务配置文件的蒸馏算法之一,通过所述操作钩子对所述教师学生并行模型的推理过程进行修改;
通过所述抽取钩子分别提取所述教师模型特征和所述学生模型特征;
将所述教师模型特征和所述学生模型特征以及所述抽取钩子均输入所述辅助模型;
依据所述抽取钩子确定损失函数,以确定所述教师模型特征和所述学生模型特征之间的差异进而获取损失,并依据所述损失对所述学生模型进行训练。
本发明第三方面实施例提供一种电子设备,如图8所示,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如上任一实施例所述的面向超大规模模型的蒸馏优化方法。
本发明第四方面实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一实施例所述的面向超大规模模型的蒸馏优化方法。
计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CDROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CDROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种面向超大规模模型的蒸馏优化方法,其特征在于,包括以下步骤:
获取需求并根据所述需求形成蒸馏任务配置文件,所述蒸馏任务配置文件包括教师模型和学生模型;
基于所述教师模型和所述学生模型,根据教师学生并行策略进行模型构建以形成教师学生并行模型;
通过自适应架构对所述教师学生并行模型进行训练以获得学生模型;
所述自适应架构包括操作钩子、抽取钩子以及辅助模型;
所述通过自适应架构对所述教师学生并行模型进行训练以获得学生模型,包括:
依据所述蒸馏任务配置文件的蒸馏算法之一,通过所述操作钩子对所述教师学生并行模型的推理过程进行修改;
通过所述抽取钩子分别提取所述教师模型特征和所述学生模型特征;
将所述教师模型特征和所述学生模型特征以及所述抽取钩子均输入所述辅助模型;
依据所述抽取钩子确定损失函数,以确定所述教师模型特征和所述学生模型特征之间的差异进而获取损失,并依据所述损失对所述学生模型进行训练。
2.根据权利要求1所述的面向超大规模模型的蒸馏优化方法,其特征在于:所述蒸馏任务配置文件包括训练任务、蒸馏算法集合、教师模型和学生模型。
3.根据权利要求2所述的面向超大规模模型的蒸馏优化方法,其特征在于:所述基于所述教师模型和所述学生模型,根据教师学生并行策略进行模型构建以形成教师学生并行模型,包括:
所述教师模型至少包括顺序排列的第一教师子模型和第二教师子模型,采用数据并行将所述第一教师子模型的各第一参数矩阵部署于第一GPU组,将所述第二教师子模型的各第二参数矩阵部署于第二GPU组;
所述学生模型至少包括顺序排列的第一学生子模型和第二学生子模型,所述第一学生子模型和所述第一教师子模型相对应,所述第二学生子模型和所述第二教师子模型相对应,将所述第一学生子模型的各第三参数矩阵部署于所述第一GPU组,将所述第二学生子模型的各第四参数矩阵部署于第二GPU组。
4.根据权利要求3所述的面向超大规模模型的蒸馏优化方法,其特征在于:所述基于所述教师模型和所述学生模型,根据教师学生并行策略进行模型构建以形成教师学生并行模型,还包括:
所述第一GPU组包括第一GPU和第二GPU,所述第二GPU组包括第三GPU和第四GPU;
采用相同的切分方式,将所述第一参数矩阵进行切分以至少获得第一子矩阵和第二子矩阵,将所述第二参数矩阵进行切分以至少获得第三子矩阵和第四子矩阵,将所述第三参数矩阵进行切分以至少获得第五子矩阵和第六子矩阵,将所述第四参数矩阵进行切分以至少获得第七子矩阵和第八子矩阵;
将所述第一子矩阵和所述第五子矩阵均部署在所述第一GPU,将所述第二子矩阵和所述第六子矩阵均部署在所述第二GPU,将所述第三子矩阵和所述第七子矩阵均部署在所述第三GPU,将所述第四子矩阵和所述第五子矩阵均部署在所述第四GPU。
5.根据权利要求2所述的面向超大规模模型的蒸馏优化方法,其特征在于:所述基于所述教师模型和所述学生模型,根据教师学生并行策略进行模型构建以形成教师学生并行模型,包括:
将所述教师模型的各参数矩阵进行切分以至少获得第一教师子矩阵和第二教师子矩阵,将所述第一教师子矩阵部署于第一GPU组,将所述第二教师子矩阵部署于第二GPU组;
采用所述教师模型的参数矩阵的切分方式将所述学生模型的各参数矩阵进行切分以至少获得第一学生子矩阵和第二学生子矩阵,将所述第一学生子矩阵部署于第一GPU组,将所述第二学生子矩阵部署于第二GPU组。
6.根据权利要求1所述的面向超大规模模型的蒸馏优化方法,其特征在于:所述蒸馏算法包括DITTO,LRC-BERT,Theseus,SID,TinyBERT,RAIL-KD,Universal-KD,LRC-BERT,Annealing-KD,Continuation-KD,MobileBERT,CKD,MGSKD,ALP-KD,TMKD,MT-BERT,RL-KD,Uncertainty,TAKD,DGKD,KD,PD,PKD,DistilBERT,MiniLM,MiniLMv2中的一种或多种的组合。
7.根据权利要求1所述的面向超大规模模型的蒸馏优化方法,其特征在于:所述优化方法还包括:
根据所述学生模型的性能进行评估分析,以判断所述学生模型的是否符合部署要求;
若是则将所述学生模型部署在设备上,否则继续对所述学生模型进行优化训练。
8.一种面向超大规模模型的蒸馏优化装置,其特征在于,包括:
配置模块,用于获取需求并根据所述需求形成蒸馏任务配置文件,所述蒸馏任务配置文件包括教师模型和学生模型;
模型构建模块,基于所述教师模型和所述学生模型,根据教师学生并行策略进行模型构建以形成教师学生并行模型;
模型训练模块,通过自适应架构对所述教师学生并行模型进行训练以获得学生模型;
所述自适应架构包括操作钩子、抽取钩子以及辅助模型;
所述通过自适应架构对所述教师学生并行模型进行训练以获得学生模型,包括:
依据所述蒸馏任务配置文件的蒸馏算法之一,通过所述操作钩子对所述教师学生并行模型的推理过程进行修改;
通过所述抽取钩子分别提取所述教师模型特征和所述学生模型特征;
将所述教师模型特征和所述学生模型特征以及所述抽取钩子均输入所述辅助模型;
依据所述抽取钩子确定损失函数,以确定所述教师模型特征和所述学生模型特征之间的差异进而获取损失,并依据所述损失对所述学生模型进行训练。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-7任一项所述的面向超大规模模型的蒸馏优化方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的面向超大规模模型的蒸馏优化方法。
CN202310731426.3A 2023-06-20 2023-06-20 面向超大规模模型的蒸馏优化方法、装置、介质及设备 Pending CN116663678A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310731426.3A CN116663678A (zh) 2023-06-20 2023-06-20 面向超大规模模型的蒸馏优化方法、装置、介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310731426.3A CN116663678A (zh) 2023-06-20 2023-06-20 面向超大规模模型的蒸馏优化方法、装置、介质及设备

Publications (1)

Publication Number Publication Date
CN116663678A true CN116663678A (zh) 2023-08-29

Family

ID=87718950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310731426.3A Pending CN116663678A (zh) 2023-06-20 2023-06-20 面向超大规模模型的蒸馏优化方法、装置、介质及设备

Country Status (1)

Country Link
CN (1) CN116663678A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210142164A1 (en) * 2019-11-07 2021-05-13 Salesforce.Com, Inc. Multi-Task Knowledge Distillation for Language Model
CN114818902A (zh) * 2022-04-21 2022-07-29 浪潮云信息技术股份公司 基于知识蒸馏的文本分类方法及系统
WO2023071743A1 (zh) * 2021-10-25 2023-05-04 中兴通讯股份有限公司 网络模型训练方法、装置和计算机可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210142164A1 (en) * 2019-11-07 2021-05-13 Salesforce.Com, Inc. Multi-Task Knowledge Distillation for Language Model
WO2023071743A1 (zh) * 2021-10-25 2023-05-04 中兴通讯股份有限公司 网络模型训练方法、装置和计算机可读存储介质
CN114818902A (zh) * 2022-04-21 2022-07-29 浪潮云信息技术股份公司 基于知识蒸馏的文本分类方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SHICHENG TAN ET AL: "GKD: A General Knowledge Distillation Framework for Large-scale Pre-trained Language Model", 《ARXIV》, pages 1 - 15 *

Similar Documents

Publication Publication Date Title
US10949737B2 (en) Method for neural network and apparatus performing same method
CN111324774B (zh) 一种视频去重方法和装置
KR20190028501A (ko) 콘볼루셔널 뉴럴 네트워크들에 대한 슈퍼픽셀 방법들
CN111178507B (zh) 图谱卷积神经网络数据处理方法及装置
CN111898703B (zh) 多标签视频分类方法、模型训练方法、装置及介质
CN111709493B (zh) 对象分类方法、训练方法、装置、设备及存储介质
EP4200763A1 (en) Method and system for training a neural network model using adversarial learning and knowledge distillation
CN112989085A (zh) 图像处理方法、装置、计算机设备及存储介质
CN114356540A (zh) 一种参数更新方法、装置、电子设备和存储介质
CN114299304B (zh) 一种图像处理方法及相关设备
CN114329029A (zh) 对象检索方法、装置、设备及计算机存储介质
CN115062709A (zh) 模型优化方法、装置、设备、存储介质及程序产品
CN113850298A (zh) 一种图像识别方法、装置及相关设备
US20230196128A1 (en) Information processing method, apparatus, electronic device, storage medium and program product
CN116541779A (zh) 个性化公共安全突发事件检测模型训练方法、检测方法及装置
Wu et al. Application of quantisation‐based deep‐learning model compression in JPEG image steganalysis
CN116663678A (zh) 面向超大规模模型的蒸馏优化方法、装置、介质及设备
CN116957006A (zh) 预测模型的训练方法、装置、设备、介质及程序产品
CN115794357A (zh) 一种自动搭建多任务网络的装置及方法
CN113361621B (zh) 用于训练模型的方法和装置
CN111783453B (zh) 文本的情感信息处理方法及装置
CN114627282A (zh) 目标检测模型的建立方法、应用方法、设备、装置及介质
CN114494284A (zh) 一种基于显式监督区域关系的场景解析模型及方法
Liu et al. Novel activation function with pixelwise modeling capacity for lightweight neural network design
Chen et al. Edgevit: Efficient visual modeling for edge computing

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination