CN115983362A - 一种量化方法、推荐方法以及装置 - Google Patents

一种量化方法、推荐方法以及装置 Download PDF

Info

Publication number
CN115983362A
CN115983362A CN202211490535.2A CN202211490535A CN115983362A CN 115983362 A CN115983362 A CN 115983362A CN 202211490535 A CN202211490535 A CN 202211490535A CN 115983362 A CN115983362 A CN 115983362A
Authority
CN
China
Prior art keywords
precision
low
full
precision embedded
recommendation
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
CN202211490535.2A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202211490535.2A priority Critical patent/CN115983362A/zh
Publication of CN115983362A publication Critical patent/CN115983362A/zh
Priority to PCT/CN2023/133825 priority patent/WO2024109907A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/042Knowledge-based neural networks; Logical representations of neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种量化方法、推荐方法以及装置,用于基于自适应步长对全精度嵌入表征中每种特征进行量化,从而提高量化精度。该方法包括:首先,获取全精度嵌入表征,嵌入表征包括多种特征;确定多种特征中每种特征分别对应的自适应步长,该多种特征对应的步长可能相同也可能不相同;随后根据每种特征对应的自适应步长分别对多种特征进行量化,得到低精度嵌入表征,该低精度嵌入表征中的特征的精度低于全精度嵌入表征中特征的精度,从而降低保存或者传输该嵌入表征所需的存储空间。

Description

一种量化方法、推荐方法以及装置
技术领域
本申请涉及计算机领域,尤其涉及一种量化方法、推荐方法以及装置。
背景技术
机器学习系统,包括个性化推荐系统,基于输入数据和标签,通过梯度下降等优化方法训练机器学习模型的参数,当模型参数收敛之后,可利用该模型完成未知数据的预测。
例如,以推荐系统中的点击率预测模型为例,通常该模型可以包括嵌入(embedding)层以及多层感知机(multilayer perceptron,MLP)层,embedding层通常用于将高维稀疏的额数据映射至低维稠密的向量,MLP通常用于拟合特征之间的组合关系、序列信息或者点击率等不等。然而,对于一些大规模数据场景,通常推荐模型的输入数据量也非常大,因此embedding层的规模非常大,导致存储以及训练等过程中所需的存储空间非常大。
发明内容
本申请提供一种量化方法、推荐方法以及装置,用于基于自适应步长对全精度嵌入表征中每种特征进行量化,从而提高量化精度。
有鉴于此,第一方面,本申请提供一种量化方法,包括:首先,获取全精度嵌入表征,嵌入表征包括多种特征;确定多种特征中每种特征分别对应的自适应步长,该多种特征对应的步长可能相同也可能不相同;随后根据每种特征对应的自适应步长分别对多种特征进行量化,得到低精度嵌入表征,该低精度嵌入表征中的特征的精度低于全精度嵌入表征中特征的精度,因此保存或者传输该低精度嵌入表征所需的存储资源或者传输资源低于保存或者传输全精度嵌入表征所需的存储资源,从而降低保存或者传输该嵌入表征所需的存储空间。
本申请实施方式中,在对全精度嵌入表征进行量化的过程中,可计算每种特征分别对应的自适应步长,并基于每种特征对应的自适应步长进行量化,从而提高量化精度,可以避免因固定步长而导致的精度损失。如当某种特征的更新较少时,若使用固定步长,将可能使更新较少部分因步长而导致降低量化精度。而通过本申请提供的量化方法,每种特征具有对应的自适应步长,该自适应步长与每种特征的长度或者更新数据量匹配,从而在量化时可以避免数据丢失,提高量化精度。
在一种可能的实施方式中,低精度嵌入表征词表应用于神经网络,前述的获取全精度嵌入表征词表,可以包括:从低精度嵌入表征词表中获取与当前次迭代的输入数据对应的表征,得到当前次迭代的低精度嵌入表征;对当前次迭代的低精度嵌入表征进行反量化,得到当前次迭代的全精度嵌入表征。
因此,本申请提供的量化方法可以应用于神经网络训练过程中的量化,在每次迭代过程中,传输低精度嵌入表征,通过对应的自适应步长进行反量化即可得到全精度嵌入表征,从而可以实现低精度嵌入表征的全精度还原,得到无损全精度嵌入表征,可以降低神经网络训练过程中嵌入表征所占用的存储空间。
在一种可能的实施方式中,前述的确定多种特征中每种特征分别对应的自适应步长,可以包括:将当前次迭代的全精度嵌入表征作为神经网络的输入,得到当前次迭代的预测结果对应的全精度梯度;根据全精度梯度获取更新全精度嵌入表征,得到更新后的全精度嵌入表征;根据全精度梯度获取更新后的全精度嵌入表征中每种特征分别对应的自适应步长。
本申请实施方式中,在神经网络的训练过程中,可以根据全精度梯度来确定每种特征对应的自适应步长,从而可以自适应更新步长,得到与每种特征匹配的自适应步长,可以避免嵌入表征中因更新量较少而导致降低量化精度,可以提高量化精度。
在一种可能的实施方式中,前述的根据每种特征对应的自适应步长分别对多种特征进行量化,包括:根据每种特征分别对应的自适应步长,对当前次迭代的全精度低维表征中的多种特征进行量化,得到低精度嵌入表征。
因此,本申请实施方式中,可以使用基于全精度梯度计算得到的自适应步长进行量化,从而在训练过程中对嵌入表征进行同步量化。
在一种可能的实施方式中,本申请提供的方法还可以包括:根据低精度嵌入表征更新低精度嵌入表征词表,得到更新后的低精度嵌入表征词表。
在进行量化得到新的低精度嵌入表征后,可以将新的低精度嵌入表征后写回低精度嵌入表征词表中,以便于后续进行低精度保存或者传输。
在一种可能的实施方式中,前述的确定多种特征中每种特征对应的自适应步长,可以包括:通过启发式算法计算每种特征对应的自适应步长。
本申请实施方式中,都可以通过启发式算法计算自适应步长,可以适用于保存低精度嵌入表征词表的场景中。
在一种可能的实施方式中,前述的通过启发式算法计算每种特征对应的自适应步长,可以包括:根据每种特征中权重绝对值计算每种特征对应的自适应步长。因此,可以基于每种特征自身的权重值来计算自适应步长,无需依赖外部数据。
在一种可能的实施方式中,前述的根据每种特征对应的自适应步长分别对多种特征进行量化,得到低精度嵌入表征词表,还可以包括:根据每种特征对应的自适应步长,得到每种特征的离散特征;通过随机截断算法对每种特征的离散特征进行截断,得到低精度嵌入表征。
本申请实施方式中,可以通过随机截断算法来对每种特征进行截断,从而可以自适应地保留有效特征,提高量化精度。
在一种可能的实施方式中,低精度嵌入表征词表应用于语言模型或者推荐模型,语言模型用于获取语料的语义信息,推荐模型用于根据用户的信息生成推荐信息。因此,本申请提供的方法可以应用于自然语言处理或者推荐场景等。
第二方面,本申请提供一种推荐方法,包括:获取输入数据,输入数据包括用户针对终端的至少一种行为产生的数据;从低精度嵌入表征词表中获取与输入数据对应的低精度嵌入表征,低精度嵌入表征中包括多种特征;根据多种特征中每种特征对应的自适应步长对多种特征进行反量化,得到全精度嵌入表征,该自适应步长可以是量化全精度嵌入表征时得到的自适应步长;根据全精度嵌入表征作为神经网络的输入,输出推荐信息,推荐信息用于针对用户的至少一种行为进行推荐。
本申请实施方式中,在神经网络的推理过程中,可以使用自适应步长对低精度嵌入表征进行反量化得到全精度嵌入表征,因此在推理过程中可以保存或者传输低精度,通过自适应步长进行无损还原,得到全精度嵌入表征。从而可以降低嵌入表征词表所占用的存储空间,并在使用时进行无损还原。
在一种可能的实施方式中,神经网络包括语言模型或者推荐模型,语言模型用于获取语料的语义信息,推荐模型用于根据用户的信息生成推荐信息。
第三方面,本申请提供一种量化装置,包括:
获取模块,用于获取全精度嵌入表征,嵌入表征包括多种特征;
确定模块,用于确定多种特征中每种特征分别对应的自适应步长;
量化模块,用于根据每种特征对应的自适应步长分别对多种特征进行量化,得到低精度嵌入表征,低精度嵌入表征中的特征的精度低于全精度嵌入表征中特征的精度。
在一种可能的实施方式中,低精度嵌入表征词表应用于神经网络,
获取模块,具体用于从低精度嵌入表征词表中获取与当前次迭代的输入数据对应的表征,得到当前次迭代的低精度嵌入表征;对当前次迭代的低精度嵌入表征进行反量化,得到当前次迭代的全精度嵌入表征。
在一种可能的实施方式中,确定模块,具体用于:将当前次迭代的全精度嵌入表征作为神经网络的输入,得到当前次迭代的预测结果对应的全精度梯度;根据全精度梯度获取更新全精度嵌入表征,得到更新后的全精度嵌入表征;根据全精度梯度获取更新后的全精度嵌入表征中每种特征分别对应的自适应步长。
在一种可能的实施方式中,量化模块,具体用于根据每种特征分别对应的自适应步长,对当前次迭代的全精度低维表征中的多种特征进行量化,得到低精度嵌入表征。
在一种可能的实施方式中,获取模块,还用于根据低精度嵌入表征更新低精度嵌入表征词表,得到更新后的低精度嵌入表征词表。
在一种可能的实施方式中,确定模块,具体用于通过启发式算法计算每种特征对应的自适应步长。
在一种可能的实施方式中,确定模块,具体用于根据每种特征中权重绝对值计算每种特征对应的自适应步长。
在一种可能的实施方式中,量化模块,具体用于:根据每种特征对应的自适应步长,得到每种特征的离散特征;通过随机截断算法对每种特征的离散特征进行截断,得到低精度嵌入表征。
在一种可能的实施方式中,低精度嵌入表征词表应用于语言模型或者推荐模型,语言模型用于获取语料的语义信息,推荐模型用于根据用户的信息生成推荐信息。
第四方面,本申请提供一种推荐装置,包括:
输入模块,用于获取输入数据,输入数据包括用户针对终端的至少一种行为产生的数据;
获取模块,用于从低精度嵌入表征词表中获取与输入数据对应的低精度嵌入表征,低精度嵌入表征中包括多种特征;
反量化模块,用于根据多种特征中每种特征对应的自适应步长对多种特征进行反量化,得到全精度嵌入表征;
推荐模块,用于根据全精度嵌入表征作为神经网络的输入,输出推荐信息,推荐信息用于针对用户的至少一种行为进行推荐。
在一种可能的实施方式中,神经网络包括语言模型或者推荐模型,语言模型用于获取语料的语义信息,推荐模型用于根据用户的信息生成推荐信息。
第五方面,本申请提供一种量化装置,该推荐装置包括:处理器、存储器、输入输出设备以及总线;该存储器中存储有计算机指令;该处理器在执行该存储器中的计算机指令时,该存储器中存储有计算机指令;该处理器在执行该存储器中的计算机指令时,用于实现如第一方面任意一种实现方式。
第六方面,本申请提供一种推荐装置,该推荐装置包括:处理器、存储器、输入输出设备以及总线;该存储器中存储有计算机指令;该处理器在执行该存储器中的计算机指令时,该存储器中存储有计算机指令;该处理器在执行该存储器中的计算机指令时,用于实现如第二方面任意一种实现方式。
第七方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器和输入/输出端口,所述处理器用于实现上述第一方面或第二方面所述的方法所涉及的处理功能,所述输入/输出端口用于实现上述第一方面或第二方面所述的方法所涉及的收发功能。
在一种可能的设计中,该芯片系统还包括存储器,该存储器用于存储实现上述第一方面或第二方面所述的方法所涉及功能的程序指令和数据。
该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
第八方面,本申请实施例提供一种计算机可读存储介质。该计算机可读存储介质中存储有计算机指令;当该计算机指令在计算机上运行时,使得该计算机执行如第一方面或第二方面中任意一种可能的实现方式所述的方法。
第九方面,本申请实施例提供一种计算机程序产品。该计算机程序产品包括计算机程序或指令,当该计算机程序或指令在计算机上运行时,使得该计算机执行如第一方面或第二方面中任意一种可能的实现方式所述的方法。
附图说明
图1为本申请应用的一种人工智能主体框架示意图;
图2为本申请提供的一种系统架构示意图;
图3为本申请提供的另一种系统架构示意图;
图4为本申请提供的一种应用场景示意图;
图5A为本申请提供的另一种应用场景示意图;
图5B为本申请提供的另一种应用场景示意图;
图6为本申请提供的一种量化方法的流程意图;
图7为本申请提供的另一种量化方法的流程意图;
图8为本申请提供的另一种量化方法的流程意图;
图9为本申请提供的另一种应用场景示意图;
图10为本申请提供的另一种应用场景示意图;
图11为本申请提供的另一种应用场景示意图;
图12为本申请提供的一种推荐方法的流程示意图;
图13为本申请提供的一种量化装置的结构示意图;
图14为本申请提供的一种推荐装置的结构示意图;
图15为本申请提供的一种量化装置的结构示意图;
图16为本申请提供的一种推荐装置的结构示意图;
图17为本申请提供的一种芯片的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供的推荐方法可以应用于人工智能(artificial intelligence,AI)场景中。AI是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,AI基础理论等。
首先对人工智能系统总体工作流程进行描述,请参见图1,图1示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(CPU、NPU、GPU、ASIC、FPGA等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能交通、智能医疗、自动驾驶、智慧城市等。
本申请实施例涉及了神经网络的相关应用,为了更好地理解本申请实施例的方案,下面先对本申请实施例可能涉及的神经网络的相关术语和概念进行介绍。
(1)卷积神经网络
卷积神经网络(convolutional neuron network,CNN)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器,该特征抽取器可以看作是滤波器。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取特征的方式与位置无关。卷积核可以以随机大小的矩阵的形式化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
(2)图神经网络(Graph Convolutional Network,GCN)
图神经网络是一种建模处理非欧式空间数据(如图数据)的深度学习模型。其原理是使用成对消息传递,使得图节点通过与其邻居交换信息来迭代地更新其对应的表征。
GCN与CNN类似,区别在于,CNN的输入通常是二维结构数据,而GCN的输入通常是图结构数据。GCN精妙地设计了一种从图数据中提取特征的方法,从而可以使用这些特征去对图数据进行节点分类(node classification)、图分类(graph classification)、边预测(link prediction),还可以得到图的嵌入表示(graph embedding)等。
(3)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断地调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。该损失函数通常可以包括误差平方均方、交叉熵、对数、指数等损失函数。例如,可以使用误差均方作为损失函数,定义为具体可以根据实际应用场景选择具体的损失函数。
(4)反向传播算法
一种计算根据损失函数计算模型参数梯度、更新模型参数的算法。神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正初始的神经网络模型中参数的大小,使得神经网络模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的神经网络模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如权重矩阵。
本申请实施方式中,在训练阶段或者推理阶段,都可以采用BP算法来对模型进行训练,得到训练后的模型。
(5)梯度:损失函数关于参数的导数向量。
(6)随机梯度:机器学习中样本数量很大,所以每次计算的损失函数都由随机采样得到的数据计算,相应的梯度称作随机梯度。
(7)Embedding:指样本的特征表示或者词嵌入表征。
(8)推荐系统:推荐系统根据用户的历史点击行为数据,采用机器学习算法进行分析和学习,然后对用户的新请求进行预测,返回个性化物品推荐列表。
(9)模型量化:是一种由高比特转换为低比特的模型压缩方式。例如,将常规32位浮点运算转换为低bit整型运算的模型压缩技术,即可称为模型量化。如当低bit量化为8bit时,可以称之为int8量化,即原来表示一个权重需要float32表示,量化后只需要用int8表示,理论上能够获得4倍的网络加速,同时8位相较于32位能够减少4倍存储空间,减少了存储空间和运算时间,从而达到了压缩模型和加速的目的。
(10)自动机器学习(AutoML):是指设计一系列高级的控制系统去操作机器学习模型,使得模型可以自动化地学习到合适的参数和配置而无需人工干预。在基于深度神经网络的学习模型中,自动计算学习主要包括网络架构搜索与全局参数设定。其中,网络架构搜索用于根据数据让计算机生成最适应问题的神经网络架构,具有训练复杂度高,性能提升大的特点。
(11)语料(Corpus):也称为自由文本,其可以是字、词语、句子、片段、文章及其任意组合。例如,“今天天气真好”即为一段语料。
(12)神经机器翻译(neural machine translation):神经机器翻译是自然语言处理的一个典型任务。该任务是给定一个源语言的句子,输出其对应的目标语言句子的技术。在常用的神经机器翻译模型中,源语言和目标语言的句子中的词均会编码成为向量表示,在向量空间进行计算词与词以及句子与句子之间的关联,从而进行翻译任务。
(13)预训练语言模型(pre-trained language model,PLM):是一种自然语言序列编码器,将自然语言序列中的每个词进行编码为一个向量表示,从而进行预测任务。PLM的训练包含两个阶段,即预训练(pre-training)阶段和微调(finetuning)阶段。在预训练阶段,该模型在大规模无监督文本上进行语言模型任务的训练,从而学习到词表示方式。在微调阶段,该模型利用预训练阶段学到的参数做初始化,在文本分类(text classification)或序列标注(sequence labeling)等下游任务(Downstream Task)上进行较少步骤的训练,就可以成功把预训练得到的语义信息成功迁移到下游任务上来。
(14)点击率(Click Through Rate,CTR):指用户在特定环境下点击某个展示物品的概率。
(15)转化率(Post-click conversion rate,CVR):指用户在特定环境下对已点击的某个展示物品转化的概率,例如,若用户点击了某个APP的图标,转化即指下载、安装、注册等行为。
(16)Epoch
定义了学习算法在整个训练集上的工作次数,一个epoch可以认为使用整个训练集对神经网络进行训练的次数。
(17)batch;
与epoch的定义紧密相关,一个epoch包含使用整个数据集对神经网络进行训练,而一个batch代表一个epoch中的其中一个批次的数据,具体表现为batch_size*batchs=epoch,可以理解为每个epoch分为了一个或者多个batch,每个batch可以使用训练集中的部分数据对神经网络进行训练。
本申请实施例提供的推荐方法可以在服务器上被执行,还可以在终端设备上被执行。其中该终端设备可以是具有图像处理功能的移动电话、平板个人电脑(tabletpersonal computer,TPC)、媒体播放器、智能电视、笔记本电脑(laptop computer,LC)、个人数字助理(personal digital assistant,PDA)、个人计算机(personal computer,PC)、照相机、摄像机、智能手表、可穿戴式设备(wearable device,WD)或者自动驾驶的车辆等,本申请实施例对此不作限定。
下面介绍本申请实施例提供的系统架构。
参见图2,本申请实施例提供了一种系统架构200。如系统架构200所示,数据采集设备260可以用于采集训练数据。在数据采集设备260采集到训练数据之后,将这些训练数据存入数据库230,训练设备220基于数据库230中维护的训练数据训练得到目标模型/规则201。
下面对训练设备220基于训练数据得到目标模型/规则201进行描述。示例性地,训练设备220对多帧样本图像进行处输出对应的预测标签,并计算预测标签和样本的原始标签之间的损失,基于该损失对分类网络进行更新,直到预测标签接近样本的原始标签或者预测标签和原始标签之间的差异小于阈值,从而完成目标模型/规则201的训练。具体描述详见后文中的训练方法。
本申请实施例中的目标模型/规则201具体可以为神经网络。需要说明的是,在实际的应用中,数据库230中维护的训练数据不一定都来自于数据采集设备260的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备220也不一定完全基于数据库230维护的训练数据进行目标模型/规则201的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。
根据训练设备220训练得到的目标模型/规则201可以应用于不同的系统或设备中,如应用于图2所示的执行设备210,所述执行设备210可以是终端,如手机终端,平板电脑,笔记本电脑,增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR),车载终端,电视等,还可以是服务器或者云端等。在图2中,执行设备210配置有收发器212,该收发器可以包括输入/输出(input/output,I/O)接口或者其他无线或者有线的通信接口等,用于与外部设备进行数据交互,以I/O接口为例,用户可以通过客户设备240向I/O接口输入数据。
在执行设备210对输入数据进行预处理,或者在执行设备210的计算模块212执行计算等相关的处理过程中,执行设备210可以调用数据存储系统250中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统250中。
最后,I/O接口212将处理结果返回给客户设备240,从而提供给用户。
值得说明的是,训练设备220可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型/规则201,该相应的目标模型/规则201即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。
在附图2中所示情况下,用户可以手动给定输入数据,该手动给定可以通过收发器212提供的界面进行操作。另一种情况下,客户设备240可以自动地向收发器212发送输入数据,如果要求客户设备240自动发送输入数据需要获得用户的授权,则用户可以在客户设备240中设置相应权限。用户可以在客户设备240查看执行设备210输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备240也可以作为数据采集端,采集如图所示输入收发器212的输入数据及输出收发器212的输出结果作为新的样本数据,并存入数据库230。当然,也可以不经过客户设备240进行采集,而是由收发器212直接将如图所示输入收发器212的输入数据及输出收发器212的输出结果,作为新的样本数据存入数据库230。
值得注意的是,附图2仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图2中,数据存储系统250相对执行设备210是外部存储器,在其它情况下,也可以将数据存储系统250置于执行设备210中。
如图2所示,根据训练设备220训练得到目标模型/规则201,该目标模型/规则201在本申请实施例中可以是本申请中的推荐模型。
示例性地,本申请提供的神经网络训练方法的应用的系统架构可以如图3所示。在该系统架构300中,服务器集群310由一个或多个服务器实现,可选的,与其它计算设备配合,例如:数据存储、路由器、负载均衡器等设备。服务器集群310可以使用数据存储系统250中的数据,或者调用数据存储系统250中的程序代码实现本申请提供的神经网络训练方法的步骤。
用户可以操作各自的用户设备(例如本地设备301和本地设备302)与服务器集群310进行交互。每个本地设备可以表示任何计算设备,例如个人计算机、计算机工作站、智能手机、平板电脑、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。
每个用户的本地设备可以通过任何通信机制/通信标准的通信网络与服务器集群310进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。具体地,该通信网络可以包括无线网络、有线网络或者无线网络与有线网络的组合等。该无线网络包括但不限于:第五代移动通信技术(5th-Generation,5G)系统,长期演进(long termevolution,LTE)系统、全球移动通信系统(global system for mobile communication,GSM)或码分多址(code division multiple access,CDMA)网络、宽带码分多址(widebandcode division multiple access,WCDMA)网络、无线保真(wireless fidelity,WiFi)、蓝牙(bluetooth)、紫蜂协议(Zigbee)、射频识别技术(radio frequency identification,RFID)、远程(Long Range,Lora)无线通信、近距离无线通信(near field communication,NFC)中的任意一种或多种的组合。该有线网络可以包括光纤通信网络或同轴电缆组成的网络等。
在另一种实现中,执行设备210的一个方面或多个方面可以由每个本地设备实现,例如,本地设备301可以为执行设备210提供本地数据或反馈计算结果。
需要注意的,执行设备210的所有功能也可以由本地设备实现。例如,本地设备301实现执行设备210的功能并为自己的用户提供服务,或者为本地设备302的用户提供服务。
通常,机器学习系统可以包括个性化推荐系统,可以基于输入数据和标签,通过梯度下降等优化方法训练机器学习模型的参数,当模型参数收敛之后,可利用该模型来完成未知数据的预测。以个性化推荐系统中的点击率预测为例,其输入数据包括用户特征、物品特征和上下文特征等。如何根据用户的偏好,预测出个性化的推荐列表,对提升推荐系统的用户体验和平台收入有着重要的影响。
示例性地,以推荐系统中的点击率预测模型为例,如图4所示,通常可以包括Embedding和MLP层,即如图4中所示出的特征交互层、深度神经网络层和预测层,Embedding用于将高维稀疏的数据映射至低维稠密的向量,MLP层一般用于拟合特征之间的组合关系、序列信息以逼近真实的点击率分布。主流模型均基于embedding参数表征特征,并基于该表征学习特征的显式/隐式组合关系,而推荐模型特征较多,导致Embedding规模大,如互联网公司可以达到TB级。嵌入表征词表(Embedding table)过大,单个GPU或NPU计算卡的显存不足以存储所有参数,需要多个节点来分布式存储。然而分布式存储带来了新的问题:需要更多的内存开销;在训练/推理阶段,Embedding参数需要通过网络拉取,带来了更多的通信开销,增加了模型计算的时延,最终影响推荐效果。
为了降低Embedding table的内存占用,通常可以对Embedding table进行量化,从而通过降低精度的方式对Embedding table进行压缩。
例如,可以采用剪枝的方式进行压缩,设定参数阈值,对Embedding table中低于阈值的参数进行剪枝。裁剪Embedding参数后,再基于裁剪后的Embedding进行重训练。然而,仅压缩推理阶段内存,训练内存不会压缩;需要重训练,增加了训练成本;且生成的Embedding table为非结构化数据,需要特殊存储。
又例如,可以采用基于AutoML的方式进行压缩,如可以基于强化学习、可微分架构学习方法(DARTS)方法端到端的调整Embedding table中特征的个数和不同特征的尺寸。当模型收敛之后,再对模型进行重训练。然而搜索时间长,实用性较差。
还例如,基于hash的方式进行压缩,高频特征独立分配embedding,低频特征分别使用hash函数映射,从而达到压缩低频特征embedding参数的目的。然而可能存在特征冲突,带来精度损失。
还例如,一些低精度训练方式中,训练过程中所有的参数存储的为低精度参数,通过反量化得到fp32全精度参数,然后进行前向和反向计算得到全精度梯度,然后按照学习率步长η更新fp32全精度参数,得到更新后的参数。然而,当权重更小幅度较小,远小于量化步长时,确定性舍入会抹去参数的更新,导致网络无法得到训练,从而影响训练精度。
因此,本申请提供一种量化方法,用于通过设置自适应量化步长的方式,来保量更多的参数信息,提高量化准确度。
首先,为便于理解,对本申请提供的方法的应用场景进行介绍。
通常,本申请提供的量化方法可以应用于语言模型或者推荐模型中,该语言模型可以包括神经机器翻译或者PLM等模型,该推荐模型可以包括点击率预测模型,转化率预测模型等。如可以在模型中设置Embedding table来提取输入语料的表征,然后获取表征对应的语义,随后进一步进行翻译或者语义识别等,具体可以根据模型所需执行的任务来进行后续步骤。
示例性地,以推荐场景为例,本申请应用推荐框架可以如图5A所示,可以分为训练部分和在线推理部分。其中,在训练部分,训练集中包括输入数据和对应的标签,如在用户商品推荐场景中,该训练集可以包括用户点击、收藏或喜欢的商品以及最终购买的商品。将训练集输入至初始模型,通过梯度下降等优化方法训练机器学习模型的参数,得到推荐模型。在线推理部分中,即可将推荐模型部署于推荐平台,如部署于服务器或者终端中,此处以服务器为例,即可通过服务器来输出针对用户的推荐列表,如在商品推荐场景中,即可在用户终端的主页展示为用户推荐的商品的信息,如商品图标或者链接标题等,或者在用户点击了某个商品后,即可在推荐区域展示为用户推荐的商品的图标或者链接标题等。
在一些应用场景中,推荐流程可以如图5B所示,其中可以包括展示列表、日志、离线训练以及线上预测等部分。用户在前端展示列表中进行一系列的行为,如浏览、点击、评论、下载等,产生行为数据,存储于日志中。推荐系统利用包括用户行为日志在内的数据进行离线的模型训练,在训练收敛后产生预测模型,将模型部署在线上服务环境并基于用户的请求访问、商品特征和上下文信息给出推荐结果,然后用户对该推荐结果产生反馈形成用户数据。
其中,在离线训练以及线上预测部分,当模型的Embedding table变大,都会导致训练内存的增大和计算时延的升高。为了同时降低训练和推理阶段的Embedding table内存占用,本申请提出了一种端到端的自适应低精度训练(Adaptive Low-PrecisionTraining)框架,该框架可用于压缩推荐模型中Embedding table的内存,包括训练内存和推理内存,从而降低保存、使用以及训练模型的存储开销。
下面对本申请提供的量化方法的流程进行介绍。
参阅图6,本申请提供的一种量化方法的流程示意图,如下所述。
601、获取全精度嵌入表征。
其中,该全精度嵌入表征中可以包括多种特征。每种特征可以表示为一组或者多组特征向量。
该全精度嵌入表征可以包括embedding table中的全部或者部分特征。若获取到全精度embedding table,则可以直接从全精度embedding table中读取全部或者部分数据,得到前述的全精度嵌入表征。若获取到低精度embedding table,则可以从该低精度embedding table中读取全部或者部分特征,并对读取的特征进行反量化,得到全精度嵌入表征。
通常,神经网络中的embedding层可以用于将高维稀疏的数据映射至低维稠密的向量,具体可以是从embedding table中查询与输入数据对应的低维度表征。可以理解为embedding table中存储了多种数据的低维度表征,通常输入数据为高维的稀疏数据,可以通过embedding table将高维稀疏数据映射为低维表征,相当于对输入数据中所包括的多个维度的语义进行了拆分。
可选地,在神经网络的训练过程中,可以从低精度嵌入表征词表中获取与当前次迭代的输入数据对应的表征,得到当前次迭代的低精度嵌入表征;对当前次迭代的低精度嵌入表征进行反量化,得到当前次迭代的全精度嵌入表征。
可选地,该神经网络可以包括语言模型或者推荐模型中,该语言模型可以包括神经机器翻译或者PLM等模型,该推荐模型可以包括点击率预测模型,转化率预测模型等,因此本申请提供的方法可以应用于语言处理或者推荐场景中。
602、确定多种特征中每种特征对应的自适应步长。
在对embedding进行量化之前,可以确定每种特征对应的自适应步长。
可选地,可以采用启发式算法计算所述每种特征对应的自适应步长,或者通过学习式计算自适应步长。
其中,采用启发式算法具体可以包括:根据每种特征中权重绝对值来计算每种特征对应的自适应步长。例如,可以根据每个embedding向量中权重绝对值的最大值计算自适应量化步长:其中e为embedding参数向量,|·|为最大值,取当前向量的最大值做2^(m-1)等分,m为bit数。
通过学习计算自适应补偿的方式应用于训练神经网络的过程中进行量化,如根据当前次迭代更新后的神经网络中的权重以及上一次迭代训练神经网络过程中更新的步长来计算当前次迭代中的自适应步长,从而可以实现更高的训练精度。
通常,不同场景下可以采用不同的方式计算自适应步长,如在训练神经网络的场景中,可以选择启发式或者学习式的方式。例如,若精度需求高且训练资源较多,则可以选择学习式的方式来计算自适应步长,若对计算效率要求较高,则可以选择启发式的方式进行量化;又例如,在对Embedding table进行保存时,可以采用启发式算法计算自适应步长,从而可以高效计算得到自适应步长,无需依赖神经网络的训练相关参数。
此外,在计算每种特征对应的自适应步长后,可以保存每种特征对应的自适应步长,以便于后续进行反量化时,可以基于自适应步长对低精度特征进行无损反量化,得到全精度特征。
可选地,在神经网络的训练过程中,可以将当前次迭代的全精度嵌入表征作为神经网络的输入,得到当前次迭代的预测结果对应的全精度梯度;根据全精度梯度获取更新全精度嵌入表征,得到更新后的全精度嵌入表征;根据全精度梯度获取更新后的全精度嵌入表征中每种特征分别对应的自适应步长。因此,在训练过程中,可以根据更新的参数实时更新与更新后的参数适配的自适应步长。通常若按照固定步长进行量化,对于参数更新小于量化步长的场景,将可能直接截断导致数据丢失,而本申请提供的方法中,当参数更新较少时,可以基于更新的参数自适应的计算步长,从而可以保留更新较少的参数,可以减少精度损失。
603、根据每种特征对应的自适应步长分别对多种特征进行量化,得到低精度嵌入表征。
在确定全精度嵌入表征中每种特征对应的自适应步长后,即可基于每种特征对应的自适应步长分别对每种特征进行量化,得到低精度嵌入表征。因此保存或者传输该低精度嵌入表征所需的计算设备的存储资源或者传输资源低于保存或者传输全精度嵌入表征所需的计算设备的存储资源,该计算设备可以包括执行本申请提供的量化方法或者推荐方法的设备。
本申请实施方式中,针对全精度的embedding table中的每种特征,分别计算了对应的自适应步长,并根据自适应步长进行量化。因此,在进行量化时,可以基于匹配的自适应步长进行量化,对于一些数量与量化比特不匹配的特征,可以采用自适应步长进行量化,相对于使用固定步长进行量化,使用自适应步长量化可以减少精度损失,提高量化精度。
此外,若前述步骤601至步骤603为更新神经网络的其中一个迭代过程,则在量化得到低精度嵌入表征后,将基于低精度嵌入表征更新低精度嵌入表征词表,得到更新后的低精度嵌入表征词表,即将更新后的低精度嵌入表征写回低精度embedding table中。
本申请的方法可以应用于模型保存或者模型训练过程各种,如在保存模型时通过本申请提供的量化方法实现更低精度的量化,或者,在训练模型过程中,通过本申请提供的量化方法,可以降低训练时所需传输的数据量,减少所需的缓存空间。
对于在保存模型之前量化的场景,可以参阅前述图6中的步骤,下面以模型训练过程中进行量化的流程为例进行示例性介绍。
以应用于训练场景为例,在训练时,每次迭代训练过程中都可以对Embeddingtable中的全部或者部分特征进行量化,以其中一次迭代训练过程为例,本申请提供的量化方法的流程可以如图7所示。
其中,应理解,在迭代训练过程中,通常可以以一个或多个epoch进行训练,每个epoch可以分为多个batch,本申请实施例中,以其中一个batch为例进行示例性介绍。
701、从低精度embedding table中确定低精度batch Embedding。
其中,在一个batch中,可以将当前batch训练神经网络的输入数据作为embedding层的输入,通过低精度embedding table将输入数据映射为低精度的低维嵌入表征,即低精度batch Embedding。
702、对低精度batch embedding进行反量化得到全精度batch embedding。
在得到低精度batch embedding后,可以对低精度batch embedding进行反量化,即量化的逆运算,从而得到全精度batch embedding,以便于神经网络可以基于全精度batch embedding来得到与输入样本对应的表征。
703、通过全精度batch embedding获取神经网络的当前批预测结果对应的全精度梯度。
在得到全精度batch embedding之后,在当前batch的神经网络训练过程中,可以将训练样本对应的全精度batch embedding作为神经网络的输入,输出预测结果。随后基于预测结果和输入的训练样本的真实标签,计算损失函数的值,并基于损失函数的值计算当前batch中神经网络的参数的全精度梯度。
704、根据全精度梯度更新神经网络的权重,得到更新后的神经网络。
在得到全精度梯度后,即可基于该全精度梯度更新神经网络的权重,得到当前batch更新后的神经网络。
如可以通过反向传播算法对神经网络的参数进行更新。通常前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的神经网络模型中参数,从而使误差损失收敛。
705、根据全精度梯度更新全精度batch Embedding,得到新的全精度batchEmbedding以及量化步长。
在得到全精度梯度后,可以基于该全精度梯度来更新自适应步长,并基于自适应步长对全精度batch Embedding进行量化,得到新的低精度batch Embedding,并将更新后的低精度batch Embedding保存至低精度Embedding table中,得到实现Embedding table的低精度保存以及传输,减少保存Embedding table以及传输Embedding table所需的存储空间。
具体地,可以通过学习式计算自适应步长,可以结合每次迭代更新的后权重来计算自适应步长,从而可以基于神经网络的更新过程实时量化Embedding table,从而降低训练以及保存过程中所占用的存储空间。
当然,也可以通过启发式算法来计算自适应步长,如根据更新后的全精度batchembedding的权重的绝对值来计算全精度batch embedding中每种特征对应的自适应步长,从而可以高效准确地计算出自适应步长。
706、根据自适应量化步长对新的batch embedding进行量化,得到新的低精度batch embedding。
在得到自适应量化步长后,即可基于该自适应量化步长对更新后的全精度batchembedding进行量化,得到新的低精度batch embedding。
可选地,在具体的量化过程中,可以根据每种特征对应的自适应步长,来获取每种特征中的离散值,或者称为离散特征,随后可以通过随机截断算法对每种特征的离散特征进行截断,从而得到低精度Embedding table,在通过随机截断算法进行截断时,每种离散特征的值来确定截断值,从而截断的长度与特征值的更新至匹配,即使参数更新幅度小,也可以对更新的部分进行量化,实现量化的准确度。
707、判断是否收敛,若是,则终止迭代,若否,则执行步骤701。
在每个batch训练后,即可判断神经网络是否收敛,若是,则可以终止迭代,即输出当前batch训练后的神经网络,若否,神经网络未收敛,即可继续进行迭代训练。
其中,确定神经网络是否收敛,可以是判断迭代次数是否达到预设次数,损失值的变化值小于预设值或者迭代时长是否达到预设时长等,具体可以根据自己应用场景确定,本申请对此不作限定。
因此,本申请实施方式中,在训练神经网络的过程中,可以基于计算得到的梯度来更新自适应步长,根据与每种特征适配的自适应步长来进行量化,从而可以在尽可能保证每种特征的量化精度,可以实现更低精度的量化,且可以减少量化时的丢失信息。
前述对本申请提供的量化方法应用于神经网络训练过程中的流程进行了介绍,为便于理解,下面结合更具体的推荐场景,对本申请提供的量化方法进行介绍。
参阅图8,本申请提供的另一种量化方法的流程示意图,如下所述。
在前向阶段,推荐模型中输入的是一个batch的高维稀疏数据,读取batch数据中的特征id,从低精度的embedding Table中读取对应的batch embedding,然后通过反量化,得到可以进行后续神经网络等计算的全精度表示的低精度batch embedding;在反向阶段,从上层网络得到当前batch embedding的梯度,基于梯度更新batch embedding,由于embedding table中存储的是低精度参数,故需要通过量化得到低精度batch embedding,然后最终写入低精度Embedding Table,具体步骤可以包括如下所述。
首先读取用户的日志数据801,即可将该日志数据作为推荐模型的训练集。
该用户的日志数据中可以包括用户使用客户端时产生的信息,通常用户使用不同的客户端时可以产生不同的信息。如在用户使用音乐app时,可以将用户播放、点击、收藏或者搜索的音乐信息保存在用户的日志中;如在用户使用购物app时,可以将用户浏览、收藏或者购买的物品的信息保存在用户的日志中;又如在用户使用应用市场时,可以将用户点击、下载、安装或者收藏的app的信息保存在用户的日志中等。
随后,从用户日志数据中读取当前batch的高维稀疏batch数据802。
在每个batch中,可以从用户的日志数据中抽取部分作为当前batch的高维稀疏数据,作为当期次迭代的训练数据。
随后,从低精度embedding table803中读取对应的低精度batch embedding。
通常,用户的日志数据中为高维稀疏数据,因此可以通过embedding table将高维稀疏数据映射为低维特征,以便于模型可以识别出每种特征并进行处理。即在从日志数据中读取当前batch的高维稀疏batch数据后,可以通过低精度embedding table将高维稀疏batch数据映射为低维表征,如表示为低精度低精度batch embedding。
随后,进行反量化得到全精度batch embedding804。
在得到低精度batch embedding后,通过反量化算法对低精度batch embedding进行反量化,得到全精度batch embedding。
如可以通过de-quantization函数,得到fp32全精度参数其中Δ为与该batch embedding对应的自适应步长。
随后,即可将全精度batch embedding作为推荐模型805的输入,输出预测结果806。
然后根据预测结果806计算当前batch的全精度梯度,并基于当前batch的全精度梯度更新batch embedding和量化步长807。
在得到预测结果后,即可计算预测结果与输入样本的真实标签之间的损失值,并基于该损失值进行反向传播,计算得到当前batch推荐模型中各个参数的全精度梯度按照学习率步长η更新batch embedding中的fp32全精度参数得到ω以及量化步长Δ。
具体地,可以采用启发式计算自适应量化步长,也可以采用学习式计算自适应量化步长。
如启发式计算自适应步长的步骤可以表示为:根据每个embedding向量中权重绝对值的最大值计算自适应量化步长:其中e为embedding参数向量,|·|为最大值,本方法的物理意义即取当前向量的最大值做2^(m-1)等分,m为bit数。
如学习式计算自适应量化步长的步骤可以包括:在权重更新后,将更新的权重与未更新的量化步长进行量化感知方式的训练,以端到端的更新量化步长。如表示为:
首先更新权重参数:
随后更新自适应步长,如表示为:
随后输出更新后的embedding参数更新后的自适应步长以及更新后的推荐模型的参数
随后进行量化得到低精度batch embedding808,并写回Embedding table。
在得到每种特征对应的自适应步长后,可以对更新后的参数ω进行量化,如量化可过程可以表示为:
其中,m是bit数,R()是阶段Rounding函数,通常可以包括多种,如可以包括确定性截断舍入或随机截断舍入等。当权重更小幅度较小,远小于量化步长时,若使用确定性截断舍入会抹去参数的更新,将可能导致网络无法得到训练。因此,本申请通过随机截断的方式来进行截断,如可以表示为:
clip函数用于:当ω/Δ小于-2m-1返回值为-2m-1,若ω/Δ大于2m-1,则返回2m-1
本申请实施方式中,为每一个特征的Embedding参数更好的选择量化步长以保留尽可能多的参数信息,帮助模型在低精度训练时仍然可以保证收敛效果。可以通过更低精度的训练,减少了训练和推理过程中embedding的内存占用和通信开销,使相同内存可以容纳更多参数。此外,还可以使用随机截断Rounding函数,以保证低精度训练过程中的梯度信息不会由于确定性截断而丢失信息。此外,在更新自适应步长时,提供了启发式自适应量化步长和学习式的自适应量化步长以适应不同的应用场景,以避免不同特征的量化步长需要人工选择,提升了模型训练以及量化效率。
为便于理解,下面示例性地,以一些具体的应用场景为例,对本申请提供的量化方法的效果进行介绍。
在大量的个性化服务场景当中,用户与商品之间会有基于不同类型行为的交互记录,推荐模型将对用户的多行为交互历史进行建模,预测用户的基于目标行为可能产生交互的商品,并将商品排序后展示给用户。可以通过本申请提供的方式来进行点击率预测,并按照预测的点击率进行排序,并在推荐页面按照排序进行展示;或者按照预测的点击率的值进行排序展示;或者对点击率的前几进行排序;或者对各个待推荐的对象进行评分,按照评分值进行排序展示等。
例如,本申请提供的方法可以应用于APP推荐场景,如图9所示,可以在用户的终端的显示界面中显示推荐的app的图标,以便于用户对推荐的app进行进一步的点击或者下载等操作,使用户可以快速查找所需的app,提高用户体验。
又例如,本申请提供的方法可以应用于商品推荐场景,如图10所示,可以在用户的终端的显示界面中显示推荐的商品的图标,以便于用户对推荐的商品进行进一步的点击、加购或者购买等操作,使用户可以查看所需的商品,提高用户体验。
还例如,本申请提供的方法可以应用于音乐推荐场景,如图11所示,可以在用户的终端的显示界面中显示推荐的音乐的图标,以便于用户对推荐的音乐进行进一步的点击、收藏或者播放等操作,使用户可以查看更偏好的音乐,提高用户体验。
以app推荐场景中的点击率预测场景为例,点击率预测模型通常可以包括embedding和MLP两个部分,推荐数据高维稀疏,embedding table很大,会造成内存占用变大、训练时延升高等问题。而常用的剪枝、AutoML方法无法压缩训练内存,基于hash的方法精度会有损失,传统的低精度训练方法也只仅能使用INT16,且未考虑如何使用自适应量化步长。而通过本申请提供的基于自适应量化步长的量化方法中,离线训练点击率预测模型时,将连续型特征先进行归一化,然后进行自动离散化。
在离线训练过程中,在每个batch中,从低精度Embedding Table取BatchEmbedding;通过反量化计算得到全精度表示的低精度参数,用于MLP层计算,最终输出预测值;在训练阶段,输出预测值与预测值计算损失函数,依赖反向梯度计算得到BatchEmbedding的全精度梯度;基于Batch全精度梯度更新Batch Embedding模块,自适应更新量化步长;基于自适应量化步长将Batch Embedding量化为低精度参数;随后将低精度BatchEmbedding写回embedding table。
在在线推理阶段,即可从低精度embedding table读取与输入数据对应的embedding,并进行反量化得到全精度embedding,将全精度embedding作为点击率预测模型的输入,输出预测结果。
示例性地以,以一些公开数据集为例,对一些已有的量化方式和本申请提供的量化方式进行对比,如使用Avazu数据集和Criteo数据集。其数据集的统计信息可以如表1所示。
数据集 实例 域数量
Criteo 45.8M 39
Avazu 40M 24
表1
其中,数据集中的训练集和测试集按照用户切分,90%的用户做训练集,10%的用户做测试集。对离散特征进行one-hot编码,连续特征进行离散化。评价指标包括AUC(AreaUnder Curve)。
一些已有的量化方式例如:全精度方法(Full Precision,FP)、量化感知方法(LSQ)、基于动态步长的量化感知方法(PACT)、INT8低精度训练方法(LPT)以及INT16低精度训练方法(LPT-16)等,本申请提供的量化方式可以基于不同的自适应步长计算方式,如表示为:启发式自适应步长INT8低精度训练方式(ALPT_H)以及可学习自适应步长INT8低精度训练方式(ALPT_L)。
对比结果可以如表2所示:
表2
其中,前述表2中采用的是确定性Rounding函数,随机阶段Rounding函数在低精度训练中取得了更好的效果,如表3所示。
表3
由上述表2和表3对比,已有的低精度训练方式采用确定性截断且未考虑自适应量化步长,仅能基于INT16进行低精度参数训练,导致更低精度训练时模型收敛困难。如压缩推理阶段Embedding参数,且需要重训练,实用性较低。一些量化方式虽然可以通过hash的方法压缩参数,但由于hash函数不可避免的碰撞导致精度较低。些量化方式虽然可以通过INT16训练模型,但更低精度的训练往往难以收敛。为端到端的进行更低精度的低精度训练,本申请提出使用随机截断Rounding函数保证了训练过程中梯度信息的参数更新;且提出了为每个特征分配自适应量化步长以更好的选择量化步长,以保留尽可能多的参数信息。
此外,基于前述的量化方法,本申请还提供一种推荐方法,如图12所示,具体可以包括:
1201、获取输入数据。
其中,该输入数据可以包括用户针对终端的至少一种行为产生的数据。
例如,用户点击或者播放某个音乐时,可以采集用户点击该音乐的信息,或者用户下载或者安装某个app时,可以采集用户下载或者安装该app的信息。
1202、从低精度embedding table中获取与输入数据对应的低精度embedding。
在得到输入数据后,可以通过embedding table将输入数据转换为神经网络可识别的特征。低精度embedding Table中通常保存了原始数据和表征之间的映射关系,在得到输入数据后,即可基于该映射关系,将输入数据映射为低精度embedding。
1203、根据每种特征对应的自适应步长对多种特征进行反量化,得到全精度embedding。
在得到低精度embedding后,可以根据每种特征对应的自适应步长对每种特征进行反量化,从而可以得到全精度embedding。
其中,反量化步骤可以参阅前述图7中的步骤702或者前述图8中的步骤804,此处不再赘述。
1204、根据全精度embedding作为神经网络的输入,输出推荐信息。
在得到全精度embedding后,即可将得到的全精度embedding作为推荐网络的输入,输出对应的推荐信息。
本申请实施方式中,在神经网络的推理过程中,可以使用自适应步长对低精度嵌入表征进行反量化得到全精度嵌入表征,因此在推理过程中可以保存或者传输低精度,通过自适应步长进行无损还原,得到全精度嵌入表征。从而可以降低嵌入表征词表所占用的存储空间,并在使用时进行无损还原。
前述对本申请提供的方法流程进行了介绍,下面基于前述的方法流程,对本申请提供的装置进行介绍。
参阅图13,本申请提供的一种量化装置的结构示意图,包括:
获取模块1301,用于获取全精度嵌入表征,嵌入表征包括多种特征;
确定模块1302,用于确定多种特征中每种特征分别对应的自适应步长;
量化模块1303,用于根据每种特征对应的自适应步长分别对多种特征进行量化,得到低精度嵌入表征,低精度嵌入表征中的特征的精度低于全精度嵌入表征中特征的精度。
在一种可能的实施方式中,低精度嵌入表征词表应用于神经网络,
获取模块1301,具体用于从低精度嵌入表征词表中获取与当前次迭代的输入数据对应的表征,得到当前次迭代的低精度嵌入表征;对当前次迭代的低精度嵌入表征进行反量化,得到当前次迭代的全精度嵌入表征。
在一种可能的实施方式中,确定模块1302,具体用于:将当前次迭代的全精度嵌入表征作为神经网络的输入,得到当前次迭代的预测结果对应的全精度梯度;根据全精度梯度获取更新全精度嵌入表征,得到更新后的全精度嵌入表征;根据全精度梯度获取更新后的全精度嵌入表征中每种特征分别对应的自适应步长。
在一种可能的实施方式中,量化模块1303,具体用于根据每种特征分别对应的自适应步长,对当前次迭代的全精度低维表征中的多种特征进行量化,得到低精度嵌入表征。
在一种可能的实施方式中,获取模块,还用于根据低精度嵌入表征更新低精度嵌入表征词表,得到更新后的低精度嵌入表征词表。
在一种可能的实施方式中,确定模块1302,具体用于通过启发式算法计算每种特征对应的自适应步长。
在一种可能的实施方式中,确定模块1302,具体用于根据每种特征中权重绝对值计算每种特征对应的自适应步长。
在一种可能的实施方式中,量化模块1303,具体用于:根据每种特征对应的自适应步长,得到每种特征的离散特征;通过随机截断算法对每种特征的离散特征进行截断,得到低精度嵌入表征。
在一种可能的实施方式中,低精度嵌入表征词表应用于语言模型或者推荐模型,语言模型用于获取语料的语义信息,推荐模型用于根据用户的信息生成推荐信息。
参阅图14,本申请提供的一种推荐装置的结构示意图,包括:
输入模块1401,用于获取输入数据,输入数据包括用户针对终端的至少一种行为产生的数据;
获取模块1402,用于从低精度嵌入表征词表中获取与输入数据对应的低精度嵌入表征,低精度嵌入表征中包括多种特征;
反量化模块1403,用于根据多种特征中每种特征对应的自适应步长对多种特征进行反量化,得到全精度嵌入表征;
推荐模块1404,用于根据全精度嵌入表征作为神经网络的输入,输出推荐信息,推荐信息用于针对用户的至少一种行为进行推荐。
在一种可能的实施方式中,神经网络包括语言模型或者推荐模型,语言模型用于获取语料的语义信息,推荐模型用于根据用户的信息生成推荐信息。
请参阅图15,本申请提供的另一种量化装置的结构示意图,如下所述。
该推荐装置可以包括处理器1501和存储器1502。该处理器1501和存储器1502通过线路互联。其中,存储器1502中存储有程序指令和数据。
存储器1502中存储了前述图6-图8中的步骤对应的程序指令以及数据。
处理器1501用于执行前述图6-图8中任一实施例所示的量化装置执行的方法步骤。
可选地,该推荐装置还可以包括收发器1503,用于接收或者发送数据。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有程序,当其在计算机上运行时,使得计算机执行如前述图6-图8所示实施例描述的方法中的步骤。
可选地,前述的图15中所示的推荐装置为芯片。
请参阅图16,本申请提供的另一种推荐装置的结构示意图,如下所述。
该推荐装置可以包括处理器1601和存储器1602。该处理器1601和存储器1602通过线路互联。其中,存储器1602中存储有程序指令和数据。
存储器1602中存储了前述图12中的步骤对应的程序指令以及数据。
处理器1601用于执行前述图12所示的推荐装置执行的方法步骤。
可选地,该推荐装置还可以包括收发器1603,用于接收或者发送数据。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有程序,当其在计算机上运行时,使得计算机执行如前述图12所示实施例描述的方法中的步骤。
可选地,前述的图16中所示的推荐装置为芯片。
本申请实施例还提供了一种推荐装置,该推荐装置也可以称为数字处理芯片或者芯片,芯片包括处理单元和通信接口,处理单元通过通信接口获取程序指令,程序指令被处理单元执行,处理单元用于执行前述图11的方法步骤。
本申请实施例还提供了一种推荐装置,该推荐装置也可以称为数字处理芯片或者芯片,芯片包括处理单元和通信接口,处理单元通过通信接口获取程序指令,程序指令被处理单元执行,处理单元用于执行前述图12的方法步骤。
本申请实施例还提供一种数字处理芯片。该数字处理芯片中集成了用于实现上述处理器1501、处理器1601,或者处理器1501、处理器1601的功能的电路和一个或者多个接口。当该数字处理芯片中集成了存储器时,该数字处理芯片可以完成前述实施例中的任一个或多个实施例的方法步骤。当该数字处理芯片中未集成存储器时,可以通过通信接口与外置的存储器连接。该数字处理芯片根据外置的存储器中存储的程序代码来实现上述实施例中推荐装置或者推荐装置执行的动作。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图6-图12所示实施例描述的方法的步骤。
本申请实施例提供的推荐装置或者推荐装置可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使服务器内的芯片执行上述图6-图12所示实施例描述的方法步骤。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
具体地,前述的处理单元或者处理器可以是中央处理器(central processingunit,CPU)、网络处理器(neural-network processing unit,NPU)、图形处理器(graphicsprocessing unit,GPU)、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)或现场可编程逻辑门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器等。
示例性地,请参阅图17,图17为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU 170,NPU 170作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路1703,通过控制器1704控制运算电路1703提取存储器中的矩阵数据并进行乘法运算。
在一些实现中,运算电路1703内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路1703是二维脉动阵列。运算电路1703还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1703是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器1702中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器1701中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)1708中。
统一存储器1706用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(direct memory access controller,DMAC)1705,DMAC被搬运到权重存储器1702中。输入数据也通过DMAC被搬运到统一存储器1706中。
总线接口单元(bus interface unit,BIU)1710,用于AXI总线与DMAC和取指存储器(instruction fetch buffer,IFB)1709的交互。
总线接口单元1710(bus interface unit,BIU),用于取指存储器1709从外部存储器获取指令,还用于存储单元访问控制器1705从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器1706或将权重数据搬运到权重存储器1702中或将输入数据数据搬运到输入存储器1701中。
向量计算单元1707包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如批归一化(batch normalization),像素级求和,对特征平面进行上采样等。
在一些实现中,向量计算单元1707能将经处理的输出的向量存储到统一存储器1706。例如,向量计算单元1707可以将线性函数和/或非线性函数应用到运算电路1703的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1707生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1703的激活输入,例如用于在神经网络中的后续层中的使用。
控制器1704连接的取指存储器(instruction fetch buffer)1709,用于存储控制器1704使用的指令;
统一存储器1706,输入存储器1701,权重存储器1702以及取指存储器1709均为On-Chip存储器。外部存储器私有于该NPU硬件架构。
其中,循环神经网络中各层的运算可以由运算电路1703或向量计算单元1707执行。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述图6-图12的方法的程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

Claims (26)

1.一种量化方法,其特征在于,包括:
获取全精度嵌入表征,所述嵌入表征包括多种特征;
确定所述多种特征中每种特征分别对应的自适应步长;
根据所述每种特征对应的自适应步长分别对所述多种特征进行量化,得到低精度嵌入表征,所述低精度嵌入表征中的特征的精度低于所述全精度嵌入表征中特征的精度。
2.根据权利要求1所述的方法,其特征在于,所述低精度嵌入表征词表应用于神经网络,
所述获取全精度嵌入表征词表,包括:
从低精度嵌入表征词表中获取与当前次迭代的输入数据对应的表征,得到当前次迭代的低精度嵌入表征;
对所述当前次迭代的低精度嵌入表征进行反量化,得到当前次迭代的所述全精度嵌入表征。
3.根据权利要求2所述的方法,其特征在于,所述确定所述多种特征中每种特征分别对应的自适应步长,包括:
将所述当前次迭代的全精度嵌入表征作为所述神经网络的输入,得到当前次迭代的预测结果对应的全精度梯度;
根据所述全精度梯度获取更新所述全精度嵌入表征,得到更新后的全精度嵌入表征;
根据所述全精度梯度获取所述更新后的全精度嵌入表征中每种特征分别对应的自适应步长。
4.根据权利要求3所述的方法,其特征在于,所述根据所述每种特征对应的自适应步长分别对所述多种特征进行量化,包括:
根据所述每种特征分别对应的自适应步长,对所述当前次迭代的全精度低维表征中的多种特征进行量化,得到所述低精度嵌入表征。
5.根据权利要求2-4中任一项所述的方法,其特征在于,所述方法还包括:
根据所述低精度嵌入表征更新所述低精度嵌入表征词表,得到更新后的低精度嵌入表征词表。
6.根据权利要求1所述的方法,其特征在于,所述确定所述多种特征中每种特征对应的自适应步长,包括:
通过启发式算法计算所述每种特征对应的自适应步长。
7.根据权利要求6所述的方法,其特征在于,所述通过启发式算法计算所述每种特征对应的自适应步长,还包括:
根据所述每种特征中权重绝对值计算所述每种特征对应的自适应步长。
8.根据权利要求1-7所述的方法,其特征在于,所述根据所述每种特征对应的自适应步长分别对所述多种特征进行量化,得到低精度嵌入表征词表,还包括:
根据所述每种特征对应的自适应步长,得到所述每种特征的离散特征;
通过随机截断算法对所述每种特征的离散特征进行截断,得到所述低精度嵌入表征。
9.根据权利要求1-8所述的方法,其特征在于,所述低精度嵌入表征词表应用于语言模型或者推荐模型,所述语言模型用于获取语料的语义信息,所述推荐模型用于根据用户的信息生成推荐信息。
10.一种推荐方法,其特征在于,包括:
获取输入数据,所述输入数据包括用户针对终端的至少一种行为产生的数据;
从低精度嵌入表征词表中获取与所述输入数据对应的低精度嵌入表征,所述低精度嵌入表征中包括多种特征;
根据所述多种特征中每种特征对应的自适应步长对所述多种特征分别进行反量化,得到全精度嵌入表征;
根据所述全精度嵌入表征作为神经网络的输入,输出推荐信息,所述推荐信息用于针对所述用户的所述至少一种行为进行推荐。
11.根据权利要求10所述的方法,其特征在于,所述神经网络包括语言模型或者推荐模型,所述语言模型用于获取语料的语义信息,所述推荐模型用于根据用户的信息生成推荐信息。
12.一种量化装置,其特征在于,包括:
获取模块,用于获取全精度嵌入表征,所述嵌入表征包括多种特征;
确定模块,用于确定所述多种特征中每种特征分别对应的自适应步长;
量化模块,用于根据所述每种特征对应的自适应步长分别对所述多种特征进行量化,得到低精度嵌入表征,所述低精度嵌入表征中的特征的精度低于所述全精度嵌入表征中特征的精度。
13.根据权利要求12所述的装置,其特征在于,所述低精度嵌入表征词表应用于神经网络,
所述获取模块,具体用于:
从低精度嵌入表征词表中获取与当前次迭代的输入数据对应的表征,得到当前次迭代的低精度嵌入表征;
对所述当前次迭代的低精度嵌入表征进行反量化,得到当前次迭代的所述全精度嵌入表征。
14.根据权利要求13所述的装置,其特征在于,所述确定模块,具体用于:
将所述当前次迭代的全精度嵌入表征作为所述神经网络的输入,得到当前次迭代的预测结果对应的全精度梯度;
根据所述全精度梯度获取更新所述全精度嵌入表征,得到更新后的全精度嵌入表征;
根据所述全精度梯度获取所述更新后的全精度嵌入表征中每种特征分别对应的自适应步长。
15.根据权利要求14所述的装置,其特征在于,
所述量化模块,具体用于根据所述每种特征分别对应的自适应步长,对所述当前次迭代的全精度低维表征中的多种特征进行量化,得到所述低精度嵌入表征。
16.根据权利要求13-15中任一项所述的装置,其特征在于,所述获取模块,还用于根据所述低精度嵌入表征更新所述低精度嵌入表征词表,得到更新后的低精度嵌入表征词表。
17.根据权利要求12所述的装置,其特征在于,
所述确定模块,具体用于通过启发式算法计算所述每种特征对应的自适应步长。
18.根据权利要求17所述的装置,其特征在于,
所述确定模块,具体用于根据所述每种特征中权重绝对值计算所述每种特征对应的自适应步长。
19.根据权利要求12-18所述的装置,其特征在于,所述量化模块,具体用于:
根据所述每种特征对应的自适应步长,得到所述每种特征的离散特征;
通过随机截断算法对所述每种特征的离散特征进行截断,得到所述低精度嵌入表征。
20.根据权利要求12-19所述的装置,其特征在于,所述低精度嵌入表征词表应用于语言模型或者推荐模型,所述语言模型用于获取语料的语义信息,所述推荐模型用于根据用户的信息生成推荐信息。
21.一种推荐装置,其特征在于,包括:
输入模块,用于获取输入数据,所述输入数据包括用户针对终端的至少一种行为产生的数据;
获取模块,用于从低精度嵌入表征词表中获取与所述输入数据对应的低精度嵌入表征,所述低精度嵌入表征中包括多种特征;
反量化模块,用于根据所述多种特征中每种特征对应的自适应步长对所述多种特征进行反量化,得到全精度嵌入表征;
推荐模块,用于根据所述全精度嵌入表征作为神经网络的输入,输出推荐信息,所述推荐信息用于针对所述用户的所述至少一种行为进行推荐。
22.根据权利要求21所述的装置,其特征在于,所述神经网络包括语言模型或者推荐模型,所述语言模型用于获取语料的语义信息,所述推荐模型用于根据用户的信息生成推荐信息。
23.一种量化装置,其特征在于,所述通信处理装置包括:处理器,所述处理器与存储器耦合;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中存储的所述计算机程序,以使得所述调度装置执行如权利要求1至9任一项所述的推荐方法。
24.一种推荐装置,其特征在于,所述通信处理装置包括:处理器,所述处理器与存储器耦合;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中存储的所述计算机程序,以使得所述调度装置执行如权利要求10至11任一项所述的推荐方法。
25.一种包含指令的计算机程序产品,其特征在于,当其在计算机上运行时,使得所述计算机执行如权利要求1至11中任一项所述的方法。
26.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1至11中任一项所述的方法。
CN202211490535.2A 2022-11-25 2022-11-25 一种量化方法、推荐方法以及装置 Pending CN115983362A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211490535.2A CN115983362A (zh) 2022-11-25 2022-11-25 一种量化方法、推荐方法以及装置
PCT/CN2023/133825 WO2024109907A1 (zh) 2022-11-25 2023-11-24 一种量化方法、推荐方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211490535.2A CN115983362A (zh) 2022-11-25 2022-11-25 一种量化方法、推荐方法以及装置

Publications (1)

Publication Number Publication Date
CN115983362A true CN115983362A (zh) 2023-04-18

Family

ID=85971185

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211490535.2A Pending CN115983362A (zh) 2022-11-25 2022-11-25 一种量化方法、推荐方法以及装置

Country Status (2)

Country Link
CN (1) CN115983362A (zh)
WO (1) WO2024109907A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024109907A1 (zh) * 2022-11-25 2024-05-30 华为技术有限公司 一种量化方法、推荐方法以及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10878273B2 (en) * 2017-07-06 2020-12-29 Texas Instruments Incorporated Dynamic quantization for deep neural network inference system and method
CN110069715B (zh) * 2019-04-29 2022-12-23 腾讯科技(深圳)有限公司 一种信息推荐模型训练的方法、信息推荐的方法及装置
CN112085151A (zh) * 2019-06-12 2020-12-15 安徽寒武纪信息科技有限公司 数据处理方法、装置、计算机设备和存储介质
CN112085176B (zh) * 2019-06-12 2024-04-12 安徽寒武纪信息科技有限公司 数据处理方法、装置、计算机设备和存储介质
CN115983362A (zh) * 2022-11-25 2023-04-18 华为技术有限公司 一种量化方法、推荐方法以及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024109907A1 (zh) * 2022-11-25 2024-05-30 华为技术有限公司 一种量化方法、推荐方法以及装置

Also Published As

Publication number Publication date
WO2024109907A1 (zh) 2024-05-30

Similar Documents

Publication Publication Date Title
WO2023221928A1 (zh) 一种推荐方法、训练方法以及装置
CN112883149B (zh) 一种自然语言处理方法以及装置
US20230082597A1 (en) Neural Network Construction Method and System
CN116415654A (zh) 一种数据处理方法及相关设备
CN113570029A (zh) 获取神经网络模型的方法、图像处理方法及装置
US20240135174A1 (en) Data processing method, and neural network model training method and apparatus
CN113505883A (zh) 一种神经网络训练方法以及装置
CN113240079A (zh) 一种模型训练方法及装置
WO2024213099A1 (zh) 一种数据处理方法及其装置
WO2024041483A1 (zh) 一种推荐方法及相关装置
CN111738403A (zh) 一种神经网络的优化方法及相关设备
CN115879508A (zh) 一种数据处理方法及相关装置
CN115238909A (zh) 一种基于联邦学习的数据价值评估方法及其相关设备
WO2024109907A1 (zh) 一种量化方法、推荐方法以及装置
CN117217284A (zh) 一种数据处理方法及其装置
CN117009650A (zh) 一种推荐方法以及装置
US20240242127A1 (en) Recommendation method and related apparatus
WO2024175079A1 (zh) 一种模型的量化方法以及相关设备
WO2024114659A1 (zh) 一种摘要生成方法及其相关设备
WO2024012360A1 (zh) 一种数据处理方法及相关装置
CN116910357A (zh) 一种数据处理方法及相关装置
CN117056589A (zh) 一种物品推荐方法及其相关设备
CN116843022A (zh) 一种数据处理方法及相关装置
CN116611861A (zh) 一种消费预测方法及其相关设备
CN115907041A (zh) 一种模型训练方法及装置

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