掌桥专利:专业的专利平台
掌桥专利
首页

模型压缩方法、装置、设备和存储介质

文献发布时间:2024-04-18 20:01:30


模型压缩方法、装置、设备和存储介质

技术领域

本申请一个或多个实施例涉及人工智能技术领域,尤其涉及一种模型压缩方法、装置、设备和存储介质。

背景技术

大语言模型(Large Language Models,LLMs)是指使用大量文本数据训练的深度学习模型,可以用于生成自然语言文本或者理解语言文本的含义。大语言模型可以处理多种自然语言任务,如文本分类、问答、对话等,是通向人工智能的一条重要途径。

在大语言模型出现之后,深度学习模型在自然语言处理(Natural LanguageProcessing,NLP)领域中的训练方式发生了剧变。首先,大语言模型可以在极大且多样的公开数据集上进行预训练;然后,再使用较小的与特定任务相关的数据集,在预训练完成的大语言模型的基础上,针对该大语言模型进行与上述特定任务对应的模型微调;最后,因为大语言模型通常包含数以亿计的参数,一方面模型的推理时长和内存占用对于许多应用(Application)而言过大,另一方面这些参数中存在许多冗余的参数,可以在保持模型性能的同时被移除,所以大语言模型在完成微调之后,通常会进一步的进行模型压缩,以减少模型的参数量,然后在部署模型时,可以直接部署压缩完成之后的深度学习模型。

发明内容

本申请一个或多个实施例提供技术方案如下:

本申请提供一种模型压缩方法,所述方法包括:

获取用于对大语言模型进行模型预训练的公开数据样本,并从所述公开数据样本中筛选出与私有数据样本相似的公开数据样本;

基于筛选出的公开数据样本针对预训练完成的所述大语言模型进行模型压缩,得到与所述大语言模型对应的压缩模型;

基于所述私有数据样本对所述压缩模型进行模型微调,以完成针对所述大语言模型的压缩处理。

本申请还提供一种模型压缩装置,所述装置包括:

样本筛选模块,获取用于对大语言模型进行模型预训练的公开数据样本,并从所述公开数据样本中筛选出与私有数据样本相似的公开数据样本;

模型压缩模块,基于筛选出的公开数据样本针对预训练完成的所述大语言模型进行模型压缩,得到与所述大语言模型对应的压缩模型;

模型微调模块,基于所述私有数据样本对所述压缩模型进行模型微调,以完成针对所述大语言模型的压缩处理。

本申请还提供一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器通过运行所述可执行指令以实现如上述任一项所述方法的步骤。

本申请还提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述任一项所述方法的步骤。

在上述技术方案中,首先可以基于公开数据样本对大语言模型进行预训练,然后可以基于从用于模型预训练的公开数据样本中,筛选出的与用于模型微调的私有数据样本相似的公开数据样本,对预训练完成的该大语言模型进行压缩,得到与该大语言模型对应的压缩模型,最后可以基于该私有数据样本对该压缩模型进行微调,由此完成针对该大语言模型的压缩处理,并获得更适合部署的该压缩模型。

采用上述方式,一方面,由于将微调过程和压缩过程在执行顺序上进行了互换,使得微调过程可以不再需要在预训练完成的大语言模型的基础上进行,而是在与大语言模型对应的压缩模型的基础上进行,从而可以减少微调过程中的计算资源消耗。另一方面,由于上述压缩过程可以不再采用隐私训练的方式,而是采用非隐私训练的方式,仅有上述微调过程仍然采用隐私训练的方式;因此,可以降低模型在性能上的开销;而且,由于压缩模型包含的模型参数的规模要小于大语言模型,这也就意味着在压缩后的大语言模型的基础上引入隐私训练的方式对模型进行微调,相较于直接在尚未压缩的大语言模型的基础上引入隐私训练的方式对模型进行微调,对模型的性能上的负面影响会更小;因此,通过将微调过程和压缩过程在执行顺序上进行互换,还有助于降低模型在性能上的开销,提升模型的性能。

附图说明

下面将对示例性实施例的描述中所需要使用的附图进行说明,其中:

图1是相关技术中的针对大语言模型的压缩处理流程的示意图。

图2是本申请一示例性实施例示出的一种针对大语言模型的压缩处理流程的示意图。

图3是本申请一示例性实施例示出的一种模型压缩方法的流程图。

图4是本申请一示例性实施例示出的另一种模型压缩方法的流程图。

图5是本申请一示例性实施例示出的一种设备的结构示意图。

图6是本申请一示例性实施例示出的一种模型压缩装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或者相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请一个或多个实施例相一致的所有实施方式。相反,它们仅是与本申请一个或多个实施例的一些方面相一致的例子。

需要说明的是,在其他实施例中并不一定按照本申请示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本申请所描述的更多或者更少。此外,本申请中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本申请中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。

大语言模型(Large Language Models,LLMs)是指使用大量文本数据训练的深度学习模型,可以用于生成自然语言文本或者理解语言文本的含义。大语言模型可以处理多种自然语言任务,如文本分类、问答、对话等,是通向人工智能的一条重要途径。

大语言模型通常采用Transformer架构,即大语言模型通常是基于Transformer架构的深度学习模型。基于Transformer架构的深度学习模型是一类采用Transformer架构的神经网络模型,这种模型在自然语言处理等领域中表现出色。

Transformer是一种用于序列到序列(Sequence-to-Sequence)建模的神经网络模型。Transformer不需要依赖递归结构,能够并行化训练和推理,加快了模型处理速度。

在基于Transformer架构的深度学习模型中,通常使用多层的Transformer编码器来从输入序列中提取特征,并使用一个Transformer解码器将这些特征转换为输出序列。同时,这些模型还通常采用自注意力机制(Self-Attention Mechanism)来捕获输入序列中的长距离依赖关系,以及残差连接(Residual Connection)和正则化方法(NormalizationMethod)来加速训练和提高模型性能。

预训练模型是在大规模的无标签文本数据上进行预训练的语言模型。预训练模型是通用的,它不针对特定任务进行设计和优化。为了使预训练模型适应具体的任务,需要执行微调操作,以提高在模型特定任务上的性能。大语言模型则是在预训练模型的基础上进行进一步的微调,并通过有标签文本数据进行有监督学习的模型。

也即,大语言模型的训练过程通常可以分为两个阶段:预训练(Pre-training)和微调(Fine-tuning)。在预训练阶段中,可以采用无监督学习(例如:自监督学习)的方式,在公开数据集(例如:网络百科、网络文章、书籍等)上进行预训练;模型会尝试根据上下文来预测缺失的部分或下一个词语,以学习语义、句法等语言的内在结构和语言的内在规律;可以通过梯度下降等优化算法,不断调整模型参数,以逐渐提高模型在预训练任务上的性能。在微调阶段中,可以根据具体的应用场景和任务需求,选择相应的有监督学习任务(例如:文本分类、命名实体识别、问答系统等),并准备任务特定的数据集;将预训练完成的模型作为微调的起点,采用有监督学习的方式,在任务特定的数据集上进行训练;可以通过梯度下降等优化算法,根据数据集的标签,调整模型参数,使模型逐渐适应特定任务和数据集的要求。预训练和微调是相互补充的过程,预训练使模型能够具备广泛的语言理解能力,微调则使模型在具体的任务上变得更加专业和精准。

大语言模型包含数以亿计的参数,一方面模型的推理时长和内存占用对于许多应用(Application)而言过大,另一方面这些参数中存在许多冗余的参数,可以在保持模型性能的同时被移除。因此,在自然语言处理领域中,通常不会直接使用大语言模型,而是会对训练完成的大语言模型进行压缩,以减少模型参数量,而在部署模型时即可使用压缩得到的深度学习模型。

模型压缩是一种通过减少神经网络模型的大小和复杂性来减少存储空间和计算资源需求的技术。它可以提高模型在移动设备、边缘计算等资源有限的环境中的部署效率,并降低传输和推理的延迟。模型压缩算法包括剪枝(Pruning)、量化(Quantization)、网络结构优化(Network Architecture Optimization)、知识蒸馏(Knowledge Distillation)等。这些模型压缩算法可以单独使用,也可以组合使用以达到更好的效果。通常,可以根据模型的特性、具体的应用场景和性能需求,选择合适的模型压缩算法。

虽然基于Transformer架构的深度学习模型推动了深度学习技术朝着设计更大的模型以实现更好的性能的方向发展,但是在实际应用中,大模型中包含的模型参数越多,势必也需要更多的数据对模型进行训练,这也就意味着更多的个人信息可能会被纳入到模型的训练之中。

如果这些个人信息没有得到充分的保护(比如进行加密保护或者脱敏处理保护),理论上针对模型参数进行逆向的反推,是有可能恢复出部分或全部的训练数据内容的。这种针对模型参数进行逆向的反推的过程,通常称为“模型逆推”或“模型反演”。虽然目前为止,实现这种逆向的反推并不是一件容易的事情,但已经有研究表明,通过对模型参数进行逆向的数据分析,已经能够获得一些与训练数据相关的数据特征或者数据分布。

相关技术中,为了缓解大语言模型造成的其训练数据集包含的隐私数据的泄露,会在大语言模型的训练过程中采用隐私训练(Privacy-Preserving Training)的方式。

具体地,对于大语言模型的训练过程而言,预训练阶段使用的数据集通常是公开数据集,而微调阶段使用的数据集则是包含隐私数据的私有数据集,因此会在微调阶段采用隐私训练的方式。

隐私训练是一种隐私保护的机器学习方法,旨在在训练模型的过程中保护训练数据的隐私。隐私训练通过使用差分隐私或者同态加密等技术,在不暴露原始数据的情况下进行模型训练和更新。

在传统的机器学习中,模型训练通常是在集中式服务器上进行的,所有的训练数据都被收集到一个地方并用于训练模型。这种方式存在泄露数据隐私的风险,因为所有的数据都会被发送到服务器上进行处理。

与之相反,隐私训练使用一些隐私保护技术来保护数据隐私。其中最常见的技术是差分隐私,它通过向原始数据添加噪声来保护隐私。具体地,对于每个参与训练的样本,差分隐私会将其与另一个“伪造”的样本合并,然后使用一些随机的技术来添加噪声,使得真实样本和伪造样本在隐私上是等价的,同时也确保了模型的准确性。

除了差分隐私,同态加密也是一种广泛应用于隐私训练的技术。同态加密可以让计算在加密数据上进行,同时输出的结果也是加密的,从而避免了数据随处传递的问题。

在完成针对大语言模型的微调之后,为了进一步的降低大语言模型包含的模型参数的数量,可以继续对训练完成的大语言模型进行压缩处理。其中,需要说明的是,对大语言模型进行压缩处理所使用的通常也是包含隐私数据的私有数据集,因此也要采用隐私训练的方式。

请参考图1,图1是相关技术中的针对大语言模型的压缩处理流程的示意图。

如图1所示,首先,可以采用无监督学习的方式,使用公开数据集,对大语言模型进行预训练。其中,该预训练过程采用非隐私训练的方式。

然后,可以采用有监督学习的方式,使用包含隐私数据的私有数据集,对预训练完成的上述大语言模型进行微调。其中,该微调过程采用隐私训练的方式。由此,就完成了针对该大语言模型的训练。

需要说明的是,对大语言模型进行压缩,本质上是通过减少该大语言模型的模型参数量,得到相对而言更小的深度学习模型,并使用用于对该大语言模型进行前置训练(即微调)的数据集,对该深度学习模型进行训练,使得该深度学习模型的模型性能能够接近该大语言模型。因此,也可以使用上述私有数据集,对训练完成的上述大语言模型进行压缩。其中,该压缩过程也采用隐私训练的方式。

由此,就可以通过针对该大语言模型实施包含预训练、微调和压缩这三个步骤的训练方式,完成了针对该大语言模型的压缩处理,并最终获得了包含的模型参数的规模适量,更适合部署的深度学习模型。

然而,相关技术中针对大语言模型的压缩处理的方案存在以下缺陷:

第一,微调过程在预训练完成的大语言模型的基础上进行,此时该大语言模型尚未经过压缩,包含大量的模型参数,这会导致与微调过程对应的训练需要消耗较多的计算资源。

第二,虽然微调过程采用隐私训练的方式,可以降低隐私数据泄露的风险,但是由于目前的隐私训练方法通常都是通过适度牺牲模型的性能,来换取对隐私数据的保障;因此,引入隐私训练的方式,虽然在某种程度上可以降低隐私数据泄露的风险,但都会对模型的性能或多或少的产生一些负面的影响;而且,参数量越大的模型,对该模型在性能方面的负面影响也就会明显。

例如,以采用差分隐私算法作为隐私训练算法为例,基于差分隐私算法,通常会在需要保护的隐私数据中引入了一定程度的噪音或扰动,以掩盖敏感信息;而这种噪音或扰动的存在,显然会导致输入模型的数据失真,进而对模型的性能产生一些负面影响;比如,可能会导致模型的输出结果的准确度降低。而且,在实际应用中,差分隐私算法在隐私数据中引入的噪音或扰动的量,通常跟模型包含的模型参数的数量相关,模型包含的模型参数越多,差分隐私算法在隐私数据中引入的噪音或扰动的量也就会越大;因此,不难理解,对于包含的模型参数的数量越大的模型,差分隐私算法需要引入的噪音或扰动的量也就越大,进而这些噪音或扰动对该模型在性能方面的负面影响也就会明显。

可见,采用隐私训练的方式对大语言模型进行微调,势必会造成较大的模型性能上开销;而且,在微调过程和压缩过程都采用了隐私训练的方式的背景下,这种模型性能上的开销尤其明显。

本申请提供一种模型压缩的技术方案,首先可以基于公开数据样本对大语言模型进行预训练,然后可以基于从用于模型预训练的公开数据样本中,筛选出的与用于模型微调的私有数据样本相似的公开数据样本,对预训练完成的该大语言模型进行压缩,得到与该大语言模型对应的压缩模型,最后可以基于该私有数据样本对该压缩模型进行微调,由此完成针对该大语言模型的压缩处理,并获得更适合部署的该压缩模型。

采用上述方式,一方面,由于将微调过程和压缩过程在执行顺序上进行了互换,使得微调过程可以不再在大语言模型的基础上进行,而是在与大语言模型对应的压缩模型的基础上进行,从而可以减少微调过程中的计算资源消耗。

另一方面,由于上述压缩过程可以不再采用隐私训练的方式,而是采用非隐私训练的方式,仅有上述微调过程仍然采用隐私训练的方式;因此,可以降低模型在性能上的开销;而且,由于压缩模型包含的模型参数的规模要小于大语言模型,这也就意味着在压缩后的大语言模型的基础上引入隐私训练的方式对模型进行微调,相较于直接在尚未压缩的大语言模型的基础上引入隐私训练的方式对模型进行微调,对模型的性能上的负面影响会更小;因此,通过将微调过程和压缩过程在执行顺序上进行互换,还有助于降低模型在性能上的开销,提升模型的性能。

请参考图2,图2是本申请一示例性实施例示出的一种针对大语言模型的压缩处理流程的示意图。

与图1示出的压缩处理不同的是,如图2所示的压缩处理流程中包含的微调过程和压缩过程的执行顺序进行了互换。

在使用公开数据集,采用非隐私训练的方式,对大语言模型进行预训练完成后,可以暂且不对预训练完成的上述大语言模型进行微调,而是先针对预训练完成的该大语言模型进行压缩。

具体地,可以从上述公开数据集包含的公开数据样本中,筛选出与私有数据集包含的私有数据样本相似的公开数据样本,并使用筛选出的公开数据样本,针对预训练完成的该大语言模型进行压缩。

需要说明的是,由于该压缩过程使用的数据集本质上就是该公开数据集的一部分,该压缩过程就可以不再采用隐私训练的方式,而是采用非隐私训练的方式。在这种情况下,可以将压缩得到的深度学习模型称为压缩模型,此时该压缩模型尚未针对特定任务进行优化,不适用于具体的任务。

最后,可以采用有监督学习的方式,使用上述私有数据集,对上述压缩模型进行微调,即对该压缩模型进行针对特定任务的优化。其中,该微调过程采用隐私训练的方式。由此,就通过针对上述大语言模型实施包含预训练、微调和压缩这三个步骤的训练方式,完成了针对该大语言模型的压缩处理,而微调完成的该压缩模型即为更适合部署的深度学习模型。

请结合图2,参考图3,图3是本申请一示例性实施例示出的一种模型压缩方法的流程图。

在本实施例中,上述模型压缩方法可以应用于服务器。其中,该服务器可以是包含一台独立的物理主机的服务器,也可以是由多台互相独立的物理主机构成的服务器集群;或者,该服务器可以是由主机集群承载的虚拟服务器、云服务器等。

或者,上述模型压缩方法可以应用于台式计算机、笔记本电脑、掌上电脑(Personal Digital Assistants,PDAs)、平板设备等,具有一定的计算能力的电子设备上。

上述模型压缩方法可以包括以下步骤:

步骤302:获取用于对大语言模型进行模型预训练的公开数据样本,并从所述公开数据样本中筛选出与私有数据样本相似的公开数据样本。

在本实施例中,可以预先准备好已经预训练完成的大语言模型,并获取用于对该大语言模型进行预训练的公开数据样本。

在一些实施例中,可以预先基于公开数据集包含的上述公开数据样本,对上述大语言模型进行模型预训练。

具体地,可以采用无监督学习的方式,在上述公开数据集上对上述大语言模型进行预训练。其中,该大语言模型可以尝试根据上下文来预测缺失的部分或下一个词语,以学习语义、句法等语言的内在结构和语言的内在规律。在这种情况下,可以基于诸如梯度下降算法等优化算法,不断调整该大语言模型的模型参数,以逐渐提高该大语言模型在预训练任务上的性能。

对于预训练完成的上述大语言模型而言,可以暂且不对预训练完成的上述大语言模型进行微调,而是先针对预训练完成的该大语言模型进行压缩。

通常,压缩过程使用的数据集为用于对待压缩的模型进行前置训练的数据集。因此,如果只是简单地将上述微调过程和上述压缩过程在执行顺序上进行对调,会导致该压缩过程使用上述公开数据集,而私有数据没有参与,使得该压缩过程缺乏针对性,即没有针对私有数据进行优化。

在实际应用中,前置训练过程使用的数据集与微调过程使用的数据集的分布越相近,微调效果越好。由于将上述微调过程和上述压缩过程在执行顺序上进行了对调,为了保证压缩过程有利于私有数据,并保证微调效果,在针对预训练完成的上述大语言模型进行压缩时,可以使用从上述公开数据集包含的公开数据样本中,筛选出的与用于对该大语言模型进行微调的私有数据集包含的私有数据样本相似的公开数据样本。

也即,可以从上述公开数据集包含的公开数据样本中,筛选出的与上述私有数据集包含的私有数据样本相似的公开数据样本,组成用于对预训练完成的上述大语言模型进行压缩的新的数据集,此时该新的数据集本质上就是该公开数据集的一部分。

步骤304:基于筛选出的公开数据样本针对预训练完成的所述大语言模型进行模型压缩,得到与所述大语言模型对应的压缩模型。

在本实施例中,为了进一步降低微调过程对预训练完成的大语言模型的性能上的负面影响,可以对微调过程和压缩过程的执行顺序进行互换,在完成大语言模型的预训练后,可以先对该大语言模型进行模型压缩。

其中,需要说明的是,为了进一步降低隐私数据的泄露风险,在针对预训练完成的大语言模型进行模型压缩时,可以不再使用私有数据样本,而是使用公有数据样本。在从上述公开数据样本中筛选出了与上述私有数据样本相似的公开数据样本之后,可以进一步基于筛选出的公开数据样本,针对预训练完成的上述大语言模型进行模型压缩。

在一些实施例中,针对预训练完成的上述大语言模型进行模型压缩,具体可以采用针对该大语言模型进行知识蒸馏训练来完成。

在这种情况下,在从上述公开数据样本中筛选出了与上述私有数据样本相似的公开数据样本的之后,可以基于筛选出的公开数据样本进一步针对预训练完成的该大语言模型进行知识蒸馏训练,得到与该大语言模型对应的压缩模型。其中,需要说明的是,在该知识蒸馏过程中,该大语言模型即为作为教师模型的模型,而该压缩模型则为作为学生模型的模型。

通过知识蒸馏,可以将作为教师模型的上述大语言模型的知识转移给作为学生模型的上述压缩模型,以提高该压缩模型的模型性能。为了进行知识蒸馏,可以先定义一个损失函数来衡量学生模型的预测结果与教师模型的预测结果之间的差异;通常使用软目标(Soft Targets)来实现这一点,即使用教师模型的输出作为学生模型的目标,并计算交叉熵损失或者其他相似的损失函数。后续,可以使用教师模型的预测结果作为辅助目标,结合学生模型的原始目标进行训练,通过迭代地最小化损失函数来更新学生模型的模型参数。

步骤306:基于所述私有数据样本对所述压缩模型进行模型微调,以完成针对所述大语言模型的压缩处理。

在本实施例中,在完成针对大语言模型的模型压缩后,此时上述压缩模型尚未针对特定任务进行优化,不适用于具体的任务。因此,可以进一步地在模型压缩得到的压缩模型的基础上,继续对该大语言模型进行模型微调。

其中,需要说明的是,与对大语言模型进行模型压缩不同的是,在对上述压缩模型进行模型微调时,仍然可以使用上述私有数据集包含的私有数据样本。

具体地,上述私有数据集可以是针对特定任务(例如:文本分类、命名实体识别、问答系统等)的带标签的数据集;可以将上述压缩模型作为微调的起点,采用有监督学习的方式,在该私有数据集上对该压缩模型进行训练。在这种情况下,可以基于诸如梯度下降算法等优化算法,根据该私有数据集的标签,调整该压缩模型的模型参数,使该压缩模型逐渐适应特定任务和该私有数据集的要求。

由此,就通过针对上述大语言模型实施包含预训练、微调和压缩这三个步骤的训练方式,完成了针对该大语言模型的压缩处理,而微调完成的上述压缩模型即为更适合部署的深度学习模型。

需要说明的是,对于同一个大语言模型而言,可以使用同一个公开数据集对这个大语言模型进行预训练。但是,对于预训练完成的这个大语言模型而言,可以有多个不同的私有数据集,并使用从这个公开数据集包含的公开数据样本中,分别筛选出的与每个私有数据集包含的私有数据样本相似的公有数据样本,对预训练完成的这个大语言模型进行压缩,从而可以得到多个不同的压缩模型,并进一步地使用相应的私有数据集对各个压缩模型进行微调。也即,通过同一个公开数据集和多个不同的私有数据集,可以以同一个预训练完成的大语言模型为基础,获得多个不同的微调完成的压缩模型。

在一些实施例中,由于上述预训练过程和上述压缩过程都使用的是公开数据集,该预训练过程和该压缩过程就都可以采用非隐私训练的方式。而上述微调过程使用的是私有数据集,因此该微调过程可以采用隐私训练的方式。

也即,在基于上述私有数据样本对上述压缩模型进行模型微调时,具体可以采用隐私训练算法,基于该私有数据样本对该压缩模型进行模型微调训练。

由于上述压缩过程可以不再采用隐私训练的方式,而是采用非隐私训练的方式,仅有上述微调过程仍然采用隐私训练的方式;因此,通过这种方式,可以降低模型的性能开销。此外,虽然该微调过程仍然采用了隐私训练的方式,但是不再是对大语言模型进行微调,而是对与大语言模型对应的压缩模型进行微调,由于压缩模型包含的模型参数的规模要小于大语言模型,这也就意味着在压缩后的大语言模型的基础上引入隐私训练的方式对模型进行微调,相较于直接在尚未压缩的大语言模型的基础上引入隐私训练的方式对模型进行微调,对模型的性能上的负面影响会更小;因此,通过将微调过程和压缩过程在执行顺序上进行互换,显然可以减小隐私训练在模型性能方面的负面影响,有助于提升模型的性能。

在一些实施例中,上述隐私训练算法,可以包括:基于差分隐私(DifferentialPrivacy,DP)的训练算法。

差分隐私是一种隐私保护的技术框架,旨在在数据的分析过程中提供隐私保护,同时允许对数据进行有意义的统计分析。差分隐私通过在原始数据中引入噪声或扰动,使得个体隐私得到保护,并限制了在分析结果中推断出个体敏感信息的可能性。

差分隐私提供了一种数学定义的隐私保护机制,它量化了将某个个体从数据集中移除或替换为另一个个体之后,对最终结果的影响程度。通过添加适当的噪声或扰动,可以达到在保持数据实用性的前提下,提供显著的隐私保护。差分隐私的核心思想是尽量减少因为某个个体的参与或不参与导致输出结果变化的程度,从而保护个体的隐私。

差分隐私机制是用来实现差分隐私的具体算法,包括Laplace机制、Gaussian机制、Exponential机制、加噪机制等。

Laplace机制是一种基于概率分布的差分隐私机制。在Laplace机制中,噪声被添加到查询的结果中,以模糊原始数据。噪声的大小由Laplace分布控制,具有零均值和一定的尺度参数。

Gaussian机制也是一种基于概率分布的差分隐私机制。Gaussian机制使用高斯分布产生噪声。

Exponential机制是一种根据数据的特征选择输出结果的差分隐私机制。它通过根据数据贡献和目标函数的敏感性来进行选择,从而平衡隐私保护和数据效用之间的权衡。

加噪机制是一种直接在查询结果中添加噪声的差分隐私机制。加噪机制可以通过对查询结果进行加噪来减少个体隐私信息的泄露,例如:在计算平均数时对结果添加噪声。

在一些实施例中,上述基于差分隐私的训练算法,可以包括:基于差分隐私的随机梯度下降(Differentially Private Stochastic Gradient Descent,DP-SGD)算法。

DP-SGD结合了隐私保护和随机梯度下降(Stochastic Gradient Descent,SGD)算法。DP-SGD通过添加噪声来保护模型的训练样本中包含的个人隐私信息,以防止针对特定个体的敏感信息泄漏。

DP-SGD基于差分隐私的概念进行隐私保护。在训练过程中,DP-SGD通过在计算的梯度上引入噪声来实现隐私保护。具体来说,它在每个迭代步骤中,对计算得到的梯度进行扰动,添加一定的噪声。这样可以在一定程度上隐藏个人数据的贡献,从而保护隐私。为了控制隐私泄露的程度,DP-SGD引入了隐私预算(Privacy Budget)。隐私预算用于衡量可以添加多少噪声来保护隐私信息。较小的隐私预算意味着更严格的隐私保护。DP-SGD基于随机梯度下降算法进行模型训练。在每个迭代步骤中,它从训练样本中随机选择一小批样本,计算其对应的梯度,并根据梯度方向更新模型参数。

在上述技术方案中,首先可以基于公开数据样本对大语言模型进行预训练,然后可以基于从用于模型预训练的公开数据样本中,筛选出的与用于模型微调的私有数据样本相似的公开数据样本,对预训练完成的该大语言模型进行压缩,得到与该大语言模型对应的压缩模型,最后可以基于该私有数据样本对该压缩模型进行微调,由此完成针对该大语言模型的压缩处理,并获得更适合部署的该压缩模型。

采用上述方式,实现了以大语言模型为基础,采用包含预训练、微调和压缩这三个步骤的训练方式,获得更适合部署的深度学习模型。并且,由于将微调过程和压缩过程在执行顺序上进行了对调,使得微调过程可以不再在大语言模型的基础上进行,而是在与大语言模型对应的压缩模型的基础上进行,从而可以减少微调过程中的计算资源消耗。

在图3的基础上,请参考图4,图4是本申请一示例性实施例示出的另一种模型压缩方法的流程图。

如图4所示,上述模型压缩方法可以包括以下步骤:

步骤402:获取用于对大语言模型进行模型预训练的公开数据样本,并对所述公开数据样本进行分类处理,得到至少一个数据样本分类。

步骤402的一部分的具体实现可以参考前述步骤302,本申请对此不再进行赘述。

如前所述,前置训练过程使用的数据集与微调过程使用的数据集的分布越相近,微调效果越好。由于将上述微调过程和上述压缩过程在执行顺序上进行了对调,为了保证压缩过程有利于私有数据,并保证微调效果,在针对预训练完成的上述大语言模型进行压缩时,可以使用从上述公开数据集包含的公开数据样本中,筛选出的与用于对该大语言模型进行微调的私有数据集包含的私有数据样本相似的公开数据样本。

然而,当私有数据样本过少,或者私有数据样本分布不均匀时,一味地贴近私有数据集的分布会使得数据质量难以得到保障。因此在本实施例中,可以先利用预训练完成的上述大语言模型的知识,将上述公有数据样本分成至少一个数据样本分类,然后针对每个数据样本分类分别进行数据样本筛选,从而可以保证用于对预训练完成的该大语言模型进行压缩的公有数据样本的多样性,使得通过知识蒸馏可以得到更全面且有利于私有数据的上述压缩模型。

也即,在从上述公开数据样本中筛选出与上述私有数据样本相似的公开数据样本之前,可以先对该公开数据样本进行分类处理,得到至少一个数据样本分类。

在一些实施例中,在对上述公开数据样本进行分类处理,得到至少一个数据样本分类时,具体可以获取预训练完成的上述大语言模型生成的与各个公开数据样本对应的特征向量,并基于与各个公开数据样本对应的特征向量,对这些公开数据样本进行聚类,得到至少一个数据样本分类。

以上述公开数据样本中的任意一个公开数据样本为例,可以将这个公开数据样本输入预训练完成的上述大语言模型,由该大语言模型基于这个公开数据样本进行计算。而在该大语言模型基于这个公开数据样本进行计算时,会先针对这个公开数据样本进行embedding。embedding是将离散的符号或类别数据转换为连续的实值向量表示。在机器学习和自然语言处理中,embedding通常用于将文本、图像和音频等非结构化数据转化为机器可处理的数值形式,从而支持各种特征表示和模型训练。在深度学习中,embedding通常用于特征提取和表示学习。因此,可以获取该大语言模型针对这个公开数据样本进行embedding得到的向量,作为与这个公开数据样本对应的特征向量。

步骤404:从所述至少一个数据样本分类中的各个数据样本分类包含的公开数据样本中,分别筛选出与私有数据样本相似的公开数据样本。

在本实施例中,在得到了上述至少一个数据样本分类的情况下,可以从这至少一个数据样本分类中的各个数据样本分类包含的公开数据样本中,分别筛选出与上述私有数据样本相似的公开数据样本。

在一些实施例中,以上述至少一个数据样本分类中的任意一个数据样本分类(可称为目标数据样本分类)为例,在从目标数据样本分类包含的公开数据样本中,筛选出与上述私有数据样本相似的公开数据样本时,具体可以将目标数据样本分类包含的公开数据样本输入采用隐私训练算法训练完成的分类模型,并获取该分类模型输出的各个公开数据样本隶属于与上述私有数据样本对应的数据样本分类的概率值。

在实际应用中,如果某个公开数据样本的上述概率值较大,则说明该分类模型无法区分这个公开数据样本是公开数据样本还是私有数据样本,也就意味着这个公开数据样本与私有数据样本较为相似。因此,可以从目标数据样本分类包含的公开数据样本中,筛选出的该概率值最大的N个公开数据样本,作为与上述私有数据样本相似的公开数据样本。其中,N表示预设数量;可以是由技术人员预先设置的数值,也可以是默认的缺省值,本申请对此不作限制。

需要说明的是,上述分类模型可以是用于判定数据样本是公开数据样本还是私有数据样本的二分类模型。或者,该分类模型可以是用于判定数据样本是公开数据样本还是多类私有数据样本中的某一类私有数据样本的多分类模型。

上述分类模型的训练样本可以既包含公开数据样本又包含私有数据样本。由于该分类模型的训练有私有数据的参与,该训练过程就可以采用隐私训练的方式。但是,在针对上述大语言模型的压缩处理流程中,该分类模型仅用于数据样本筛选,而该分类模型的训练则是预先完成的,因此就算该分类模型的训练过程采用了隐私训练的方式,也不会带来额外的模型性能开销。

步骤406:基于筛选出的公开数据样本针对预训练完成的所述大语言模型进行模型压缩,得到与所述大语言模型对应的压缩模型。

步骤406的具体实现可以参考前述步骤304,本申请对此不再进行赘述。

步骤408:基于所述私有数据样本对所述压缩模型进行模型微调,以完成针对所述大语言模型的压缩处理。

步骤408的具体实现可以参考前述步骤306,本申请对此不再进行赘述。

与前述模型压缩方法的实施例相对应,本申请还提供了模型压缩装置的实施例。

请参考图5,图5是本申请一示例性实施例示出的一种设备的结构示意图。在硬件层面,该设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括所需要的其他硬件。本申请一个或多个实施例可以基于软件方式来实现,比如由处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行。当然,除了软件实现方式之外,本申请一个或多个实施例并不排除其他实现方式,比如逻辑器件或者软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑模块,也可以是硬件或者逻辑器件。

请参考图6,图6是本申请一示例性实施例示出的一种模型压缩装置的框图。

上述模型压缩装置可以应用于图5所示的设备,以实现本申请的技术方案。其中,该模型压缩装置可以包括:

样本筛选模块602,获取用于对大语言模型进行模型预训练的公开数据样本,并从所述公开数据样本中筛选出与私有数据样本相似的公开数据样本;

模型压缩模块604,基于筛选出的公开数据样本针对预训练完成的所述大语言模型进行模型压缩,得到与所述大语言模型对应的压缩模型;

模型微调模块606,基于所述私有数据样本对所述压缩模型进行模型微调,以完成针对所述大语言模型的压缩处理。

在一些实施例中,所述装置还包括:

模型预训练模块,基于所述公开数据样本对所述大语言模型进行模型预训练。

在一些实施例中,所述装置还包括:

分类模块,在从所述公开数据样本中筛选出与私有数据样本相似的公开数据样本之前,对所述公开数据样本进行分类处理,得到至少一个数据样本分类;

所述样本筛选模块602具体用于:

从所述至少一个数据样本分类中的各个数据样本分类包含的公开数据样本中,分别筛选出与私有数据样本相似的公开数据样本。

在一些实施例中,所述分类模块具体用于:

获取预训练完成的所述大语言模型生成的与所述公开数据样本对应的特征向量;

基于所述特征向量对所述公开数据样本进行聚类,得到至少一个数据样本分类。

在一些实施例中,所述样本筛选模块602采用以下方式,从所述至少一个数据样本分类中的任一目标数据样本分类包含的公开数据样本中,筛选出与私有数据样本相似的公开数据样本:

将所述目标数据样本分类包含的公开数据样本输入采用隐私训练算法训练完成的分类模型;

获取所述分类模型输出的所述公开数据样本隶属于与私有数据样本对应的数据样本分类的概率值;

从所述目标数据样本分类包含的公开数据样本中,筛选出的所述概率值最大的预设数量的公开数据样本,作为与所述私有数据样本相似的公开数据样本。

在一些实施例中,所述模型压缩模块604具体用于:

基于筛选出的公开数据样本针对预训练完成的作为教师模型的所述大语言模型进行知识蒸馏训练,得到与所述大语言模型对应的作为学生模型的压缩模型。

在一些实施例中,所述模型微调模块606具体用于:

采用隐私训练算法,基于所述私有数据样本对所述压缩模型进行模型微调训练。

在一些实施例中,所述隐私训练算法,包括:基于差分隐私的训练算法。

在一些实施例中,所述基于差分隐私的训练算法,包括:基于差分隐私的随机梯度下降算法。

对于装置实施例而言,其基本对应于方法实施例,因此相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请的技术方案的目的。

上述实施例阐明的系统、装置、模块或者单元,具体可以由计算机芯片或者实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或者闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或者技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或者其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或者其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或者其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或者其他磁性存储设备或者任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

上述对本申请特定实施例进行了描述。其他实施例在本申请的范围内。在一些情况下,在本申请中记载的动作或者步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

在本申请一个或多个实施例中所使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。术语“和/或”是指并包含一个或多个相关联的列出项目的任何或者所有可能组合。

在本申请一个或多个实施例中所使用的术语“一个实施例”、“一些实施例”、“示例”、“具体示例”或者“一种实施方式”等的描述意指结合该实施例所描述的具体特征或者特点包含于本申请的至少一个实施例中。对这些术语的示意性描述不必须针对相同的实施例。而且,所描述的具体特征或者特点可以在本申请一个或多个实施例中以合适的方式结合。此外,在不相互矛盾的情况下,可以将不同的实施例以及不同实施例中的具体特征或者特点进行结合。

应当理解,尽管在本申请一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或者“当……时”或者“响应于确定”。

以上所述仅为本申请一个或多个实施例的较佳实施例而已,并不用以限制本申请一个或多个实施例,凡在本申请一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请一个或多个实施例保护的范围之内。

本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

相关技术
  • 一种二氧化碳全捕集的超临界二氧化碳发电系统及方法
  • 一种从空气中直接捕集二氧化碳回收捕集液的装置和方法
  • 用于改进二氧化碳的直接空气捕集(DAC+)的旋转连续多捕集系统和设备
技术分类

06120116562350