首页 > 其他分享 >搜索语义模型的大规模量化实践

搜索语义模型的大规模量化实践

时间:2023-06-27 13:31:42浏览次数:40  
标签:离线 模型 语义 FC 搜索 算子 量化 推理

搜索语义模型的大规模量化实践_NLP

作者 | 把酒问青天

导读

经过近几年的技术演进,语义模型在百度搜索场景中被广泛地应用,消耗了大量的GPU资源,模型压缩技术也随之得到大量研究和实践。通过兼顾推理性能、业务效果和迭代效率的优化目标,我们成功地将INT8量化技术大面积地应用到了搜索场景中,极大地提高了资源效能。此外,目前大模型正在被研究和应用,算力资源已经成为瓶颈,如何以更低的成本进行落地是一个非常热点的问题。基于对模型压缩技术的实践和积累,我们能够更好地助力大模型的探索和应用。

全文6287字,预计阅读时间16分钟。

01 搜索语义模型现状

ERNIE: Enhanced Representation through Knowledge Integration是百度在2019年4月的时候,基于BERT模型做的进一步优化,在中文的NLP任务上得到了state-of-the-art的结果。

近年来,ERNIE 1.0/2.0/3.0等语义模型在搜索各个重点业务场景下得到了广泛应用,包括相关性、排序等多个子方向,消耗了大量GPU资源。每个业务方向一般由多个模型组成链路来完成最终计算,整体搜索业务所涉及的模型数量多、迭代快。目前,线上全流量模型超过几百个,月级迭代近百次。语义模型的大量应用对搜索产生了巨大影响,相关业务指标对模型精度的变化非常敏感。总的来说,在模型压缩技术的工程实践中,推理性能、业务指标和迭代效率三者的优化目标应当统一考虑:

1、推理性能:采用INT8量化,ERNIE模型的性能加速平均达25%以上。其主要影响因素包含输入数据量大小(batch size、sequence length等)、隐藏节点数、非标准网络结构与算子融合优化。

2、业务指标:以某相关性场景下的ERNIE模型为例,模型输出在数值上的diff率不超过1%,在离线测试集上的评价指标达到几乎无损。

3、迭代效率:离线量化达小时级,流水线式快速产出量化模型,不阻塞模型全生命周期的相关环节(如模型多版本迭代、小流量实验、全量化推全等)。

02 模型量化简述

简而言之,模型量化就是将高精度存储(运算)转换为低精度存储(运算)的一种模型压缩技术。优势如下:

  • 更少的存储开销与带宽需求:如每层权重量化后,32位比特压缩到8比特甚至更低比特,模型占用空间变小;内存访问带宽的压力自然也会变小。
  • 更快的计算速度:单位时间内执行整型计算指令比浮点计算指令更多;另,英伟达安培架构芯片还有专用INT8 Tensor core。

如果我们从不同的技术角度来看待它,那么:

  • 从映射函数是否是线性,分为线性和非线性。非线性量化计算较为复杂,一般主要研究线性量化,其公式如下:
    Q = clip(round(R/S) + Z),其中R: high precision float number,Q:quantized integer number,s:scale,z:zero point。
  • 从零点对应位置区分,线性量化又分为对称和非对称。

搜索语义模型的大规模量化实践_paddle_02

△1:对称与非对称量化

以矩阵乘为例,计算公式如下:

标签:离线,模型,语义,FC,搜索,算子,量化,推理
From: https://blog.51cto.com/u_15082365/6561590

相关文章

  • 实用模型推荐(一)相似度,文本向量化:text2vec-base-chinese
    1.开源地址:https://github.com/shibing624/text2vec2.使用场景:文本相似度计算,文本转指令3.API封装:importuvicornfromfastapiimportFastAPIfromloguruimportloggerfrompydanticimportBaseModelfromstarlette.middleware.corsimportCORSMiddlewarefromte......
  • 头条搜索精选 参数分析
    本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!头条搜索精选参数分析环境win10Python3.9Chrome抓包接口分析主要是需要这一块的内容通过抓包分析发......
  • 二叉搜索树
    二叉搜索树二叉搜索树(BinarySearchTree,BST)是指一颗空树或者有下列性质的二叉树:若任意节点的左子树不为空,那么左子树上所有节点的值均小于它的根节点的值;若任意节点的右子树不为空,那么右子树上所有节点的值均小于它的根节点的值;任意节点的左、右子树也分别为二叉搜索树;二......
  • 图书搜索领域重大突破!用Apache SeaTunnel、Milvus和OpenAI提高书名相似度搜索精准度和
    作者|刘广东,ApacheSeaTunnelCommitter背景目前,现有的图书搜索解决方案(例如公共图书馆使用的解决方案)十分依赖于关键词匹配,而不是对书名实际内容的语义理解。因此会导致搜索结果并不能很好地满足我们的需求,甚至与我们期待的结果大相径庭。这是因为仅仅依靠关键词匹配是不够......
  • 搜索框 多个条件模糊查询
    1.利用逗号或者空格进行多个关键字的模糊查询把所有的空格装换成英文的逗号(首先要把相邻的多个空格转化为一个空格,中文的逗号转化为统一的英文逗号),$str=str_replace(",",",",$str);//装换字符$str=preg_replace('!\s+!','',$str);//相邻空格合并$s......
  • 二十三、区块量化 TD指标
    #!/usr/bin/envpython#-*-coding:utf-8-*-importtalibimportcross_orderasorderimporttimedefTDSequential(close):tdlist=[0,0,0,0]#tdlist是存储TD结果用的,前4个无效用0占位置.因为TD定义是下标第n和n-4比较top=0#初始化上标bot=0#初......
  • 代码随想录算法训练营第十七天| 654.最大二叉树 617.合并二叉树 700.二叉搜索树中
     654.最大二叉树 比较简单,直接上代码1TreeNode*constructMax_cursor(vector<int>&nums)2{3if(nums.size()==0)returnNULL;4//getMaxNum5intindex=0;6intmax_=INT_MIN;7for(inti=0;i<nums.size();i++)8......
  • 量化投资中的择时研究
    在进行量化投资策略的研究时,我们通常会基于不同的原则来进行分类,其中包括:根据均线进行择时、根据估值进行择时、以及根据策略回撤进行择时。这三种策略各有特点,也各自适用于不同的市场环境和投资风格。例如,根据均线择时的策略主要关注价格趋势,以确定最佳的买入和卖出时机;根据估值......
  • 算法——DFS、BFS、记忆回溯、记忆搜索
    回溯和深度优先搜索的区别回溯是一种更通用的算法。可以用于任何类型的结构,其中可以消除域的部分——无论它是否是逻辑树。深度优先搜索是与搜索树或图结构相关的特定回溯形式。它使用回溯作为其使用树的方法的一部分,但仅限于树/图结构。回溯和DFS之间的区别在于回溯处理隐......
  • 使用甘特图制定清晰可量化的项目计划
    今天跟同事请教项目管理问题时,get到一个项目管理的小技巧,就是使用甘特图来制定清晰可量化的项目计划,简单的甘特图模版下载可参考此网站:https://www.vertex42.com/ExcelTemplates/simple-gantt-chart.html或者从本站直接下载:https://files.cnblogs.com/files/jyzhao/simple-......