深圳GDYF销毁公司:用AI大模型「改造」QQ浏览器搜索,腾讯独家揭秘
时间:2023-11-20 10:56
![]() 1:引言 自从搜索引擎问世以来,音讯检索算法历经多次技术更迭,其演进的历程可大致归纳为四个技术代际:1.0文本索引 ->2.0超链分析 ->3.0机器学习 ->4.0深度学习。 2023年底,ChatGPT 成为全球技术焦点,其具备的多轮互动、推理和对长文本的理解能力,解决了以往搜索引擎所无法有效解决的难题。 然而,出于 GPT 眼前还面临着许多挑战,打个比方大模型幻觉问题、高额的千次搜索成本、变现模式的倾覆以及法律的强监管等问题,各搜索引擎临时都没有完成用 GPT 替换现有引擎。即使是 NewBing 也只是将传统的搜索引擎结果作为 ChatGPT 的输入来增强效果。因此,搜索引擎是否会进入5.0GPT 技术代际,仍在思量中。 腾讯 QQ 浏览器视为一款国民级智能工具,用户通过搜索进行采访查询是其中一个主要的使用场景。本文严重琢磨 QQ 浏览器・搜索在4.0时代 - 即深度学习模型方面的各种实践,以及在5.0时代 - 即生成式超大模型方向的尝试。 在这两个技术代际过程中,预训练语言模型是核心技术基座,模型性能的好坏一般由模型结构、样本数据、输入表示音讯、模型规模和算力等因素共同决定,如图1所示。 图1 2:搜索匹配四大难题 语义匹配、内容命中、需求转变、多需求 PK 搜索引擎是一种智能化的报导检索工具,抑或从互联网上的海量采访中为用户供给精准的搜索结果。在实际应用中,搜索引擎需要解决的重大问题是怎么让用户快速、精准地找到所需内容。尽管通过字面匹配允许获得最相关的文档,但在有很多情况下,这种匹配方式相会临多种挑战,例如: 图2(左)和图3(右) 图4(左)和图5(右) 3:技术框架 如图6所示,QQ 浏览器整个搜索系统采用分层治理,返回结果条数发现金字塔型,自下而上分别是: 为了解决搜索引擎面临的诸多挑战,在整个系统的多个模块中引入了深度语义匹配模型,典型的有: 图6 4:训练 pipeline 如图7所示,QQ 浏览器・搜索构建了从预训练 ->post 预训练 -> 第一轮 finetune-> 第二轮 finetune 的 pipeline。 图7 A:预训练 采用百科,音讯,H5等1000亿级别数据进行无监督预训练。预训练任务采用 Mask LM,将字级别 mask 升级为 Phrase + 词级别和实体级别 mask,同时以一定概率替换为同义恐怕近义词,增大模型区分的难度。Nsp 任务的前后句正负样本每天都来自于同一篇主题,慢慢增大模型区分的难度。在位置编码中将绝对位置编码换成相对位置编码,让每个 term 更关注本身附近 term 的 attention。两阶段式训练任务,第一阶段以 max_seq_len=128配置,第二阶段以一阶段产出模型热启动,之后以 max_seq_len=512的配置达成第二阶段的预训练,达到训练加速。 B:post 预训练 采用搜索100亿级别的点展数据再做一次 post 预训练,让模型的效果更适应搜索场景。 C:第一轮 fine-tuning 相同照旧采用100亿级别的点展数据,将 Q - 有点和 Q - 无点构造成 pairwise 对输入训练模型,采用有监督的方式对模型进行微调训练。由于搜索获取点展数据的成本相对较低,因此允许获得大量级的样本对模型进行 fine-tune 训练。 D:第二轮 fine-tuning 在人工标注的精标样本下,增加 meta-search 样本进行第二轮有监督微调,慢慢提高模型精度。 同时为了让模型能同时学习好语义,文本匹配的能力,在第二轮 fine-tuning 过程中,同时扩大了相关性匹配,词权分档进行多任务学习,如图8所示。训练的 loss 为相关性的 HingeLoss + 词权 Cross-Entropy Loss,其中 HingeLoss = max (0,-[y_i-y_j] + margin),Cross = -(ylog (p) + (1-y) log (1-p)),通过2个任务进行共同训练,提防模型过度偏向语义匹配而丢失文本匹配的能力。 图8 5:模型结构 BERT 模型采用全连接层,因为每层都涉及到全交互,因此效果较好。然而,在实际应用中,搜索引擎对在线应用有严厉的反馈时间要求,一般都在几十毫秒级别。QQ 浏览器・搜索采用12层在线推理模型,全交互结构无从满足反应时间要求,因此对该模型进行了升级,采用了如图9所示的模型结构。 图9 6:多域动态匹配 搜索召回的 Doclists 中,有的 title 命中较好,有的 cont 命中较好,也有一些需要 title+cont 配合命中才能得到较好的结果。为了召回相关性较好的 Doc,平常需要叠加不同的匹配域,但不同的域在不同匹配时权重不同。当召回的 Doclists 中存在 title、cont、anchor、click 等不同域的命中时,怎么分配各域之间的动态权重是搜索模型需要解决的一个典型难题。 如图10所示,标准的 transformer 将 query、title、cont 等域拼接后输入模型,然后整体进行全域交互计算,但不同的 Query 和 Doc 在命中域的权重分配不是固定不变的,而是一个动态分配的流程。 QQ 浏览器・搜索采用了如图11所示的结构,采用多塔交互,将 query 分别与 title、cont、anchor 等各自进行交互,而 title 和 cont 之间不进行 attention。这种结构借鉴了 CV 中的 SE-NET 注意力机制,在通过这个操作后得到每个域的 Channel,然后再进行 Query 和域的注意力计算,这样模型允许获得一个更壮伟的视野,譬如整个域不相关时,那这个域就直行不起作用,起到门控的功能,对比干脆将 Doc 中不同域的 Term 全部输入模型的方式,尽管 Transformer 也许学习到 Term 间的谨慎力,可是不相关的 Field 中的 Term 继续或多或少作用得分,通过这个结构过滤不相关域的噪音,从而没准将不同匹配程度的域计算不同的权重。与标准结构相比,多域动态权重结构能带来相关性正逆序率8% 的提高。 图10 图11 7:模型簇 & 自训练 在预训练 -》finetune-》蒸馏范式下,teacher 模型的效果决定了蒸馏后的 student 模型的天花板。得益于 teacher 模型在大批参数下强大的语义捕捉能力,万分是对于长尾语义匹配的解决效果万分好,因此在检索匹配方向对于 teacher 模型的效果抬高是紧要的工作。 然则,随着多轮迭代以后单个 teacher 效果达到瓶颈,基于 transformer 结构,若想依旧提高效果,需要加大模型层数可能标注大宗样本。然而,当 teacher 达到48层之后继续扩层会带来成本指数级增进,同时人工标注大批样本相通也意味着成本的大幅度增加。 为解决扩层带来的成本问题,QQ 浏览器・搜索采用模型簇的方式提升模型效果,如图12所示。采用不同的样本数据(如点展数据、人工标注数据、metasearch 数据),并采用不同的模型结构(如标准 BERT、QQ 浏览器・搜索预训练大模型、深度点击模型等)训练多个48层模型。 然后,将这些模型看成离线 XGB 模型的严重特征,在人工标注的百万级相关性样本下混合其他人工匹配等特征训练决策树模型。由于此模型引入了海量的效果较好的大模型做特征,因此对 Query-DOC 的相关性匹配打分效果较好,并且源于是离线部署因此没有反应速度的制约。 经过 XGB 模型对未标注的亿级 Query-DOC 进行打分料想,和人工标注样本相比,这种标签数据精度略低,但也能接近人工标注精度的90+%。这种标签我们称之为伪标签,尽管伪标签的样本精度不能和人工标注相比,不过出于成本极度低,允许轻易获得亿级量级,通过量变产生质变带来搜索效果提高。 图12 在获得亿级伪标签样本之后,基于预训练模型,逐步 finetune 出一个48层的大模型作为 teacher,从而解决了标注样本成本高的难题。然后,在百万级的人工标注样本上蒸馏得到一个效果较好的 student。通过模型簇和伪标签样本进行自训练,未注入成本的情况下,最终实行了大幅度提高 teacher 和 student 模型的效果。 8:助教网络 在教授和本科生之间投入一位博士 搜索排序模型面临的挑战是模型效果和反响速度以及部署成本之间的矛盾。模型参数越大,效果越好,但反响时间会扩充,同时成本会指数级加大。 为了满足亿级用户的大宗搜索请求,工业界搜索引擎往往采用蒸馏技术来减小模型参数,并最大限度保留效果。 为了逐步抬高蒸馏的 student 模型效果,最直行的手段是提高 teacher 模型的效果。可是,teacher 模型层数增添带来效果抬高的同时,不代表 student 模型也会同步提升。海量的实验展现,teacher 模型参数加上以后,在肯定的任务下效果抬高。然而,因为 student 和 teacher 两者之间的模型参数差异过大,学习能力相差过大,导致 student 并没有学会 teacher 新学习到的能力。因此,如何减少 student 和 teacher 之间的蒸馏损失,也是近年来工业界一直在斟酌的首要方向。 QQ 浏览器・搜索通过引入助教网络来解决这个问题。助教网络由多个模型组成,它们之间的关系如图13所示。具体而言,使用48层模型先蒸馏24层中间层模型,然后再用24层中间模型蒸馏12层 student 模型。这个24层模型就是助教网络。 这个流程类似于教授直行教本科生的情况,出于两者的知识储备差距较大,导致学生往往很难完全吸收教授想要传授的知识。而经过在中间扩张博士节点,让教授先教会博士,再由博士去教学本科生,由于博士在知识接收能力上强于本科生,因此能较好的学会教授曾经掌控的知识。同时,博士和本科生在学习能力上相差相对较小,能较好地将知识进行传递。 为慢慢提升效果,助教模型往往不止一个,打个比方48层 teacher-> 助教1-> 助教2->……->student,通过多步蒸馏的方式,避免出于 teacher 和 student 模型在参数,layer 上的差异过大导致的蒸馏损失。 在搜索模型中,通过引入单个助教模型和传统的蒸馏相比,student 效果相对提高5%。 图13 9:MatchMatrix 矩阵 自从 BERT 宣布以来,搜索引擎的演进范式曾经从重点关注人工特征转向了预训练 ->finetune->distillation 模式。随着深度语义特征在最后模型中的权重越来越大,这种大力出奇迹的方法在带来效果抬高的同时,也会削弱字面匹配特征的效率。这导致了一些 CASE(语义飘移)的呈现如图14所示,相关的结果排序较低,这些本怎么允许经过原始字面匹配解决的 CASE 却表现了逆序的情况。 为了解决这个问题,行业采用了两种建模方法: 这种分类建模需要进行大批的人工匹配特征设计,并需要进行大批的人工调参,以及对两类特征的 balance 进行验证,这个过程的成本相对较高。 图14(左)和图15(右) QQ 浏览器・搜索系统采用了对深度语义模型进行升级改造的方法,如图16所示。 其中 BERT 模型的 CLS 向量用于捕捉更高级别的信息,如句子级相似度等。在输出 CLS 向量的基础上,构造 match matrix 矩阵,该矩阵通过将 Query 输出的 token 向量和 Doc 输出的 token 向量组合而成。 该矩阵利用了多层显式匹配,并使用了 CNN 和 Pooling 层来提取 match matrix 矩阵,提取 Q 中每个 TERM 在 Doc 中的命中新闻。在构建匹配矩阵的流程中,充分利用不同 term 在 Q 中的词权重,以便为每个 term 构建独异的匹配权重。最终将匹配矩阵和 BERT 输出的 CLS 向量经过 Aggregator 进行合并,以获得深度语义模型隐式匹配打分和显式匹配特征的融入结果。经过将字面匹配特征显式地传递给深度语义模型,允许有效地纠正语义飘移。 图16 如图15,17所示,通过构造多层匹配矩阵,采用卷积核进行快讯抽取,并采用最大池化将 QxTxK 转变为 QxK,然后再应用 term weighted 将多种匹配信息混入成向量。这种方法或者自动辨别许多文本匹配的特征,例如连续命中、Bigram 逆序、散乱命中等如图18所示,不再需要海量的人工规则去设计这些特征。 图17(左)和图18(右) 10:生成式大模型应用 ChatGPT 发表之后,各大互联网企业纷纷开始布局生成式大模型,视为其最匹配的应用场景之一,搜索引擎也受到了广泛关注,各大引擎都在积极尝试怎样将自研的生成式大模型应用到搜索引擎系统之中。 如图19所示,搜索的匹配模型采用的是 BERT 模型下典型的预训练 ->post 预训练 -> 蒸馏的范式,而在蒸馏的过程中,往往需要人工标注千万级样本,成本高且耗时长。 而通过生成式模型允许快速的标注大批的自动化样本。标注的方法分为决断式,既输入 QT 问生成式模型结论,如 “都安气车到班领气车” 和 “都安汽车到班领汽车” 哪个是正确写法;也有通过生成式大模型生成样本如 “query = 北京” 可以增补哪些需求词。通过生成式大模型低成本快速获得亿级别样本,大幅度提高了蒸馏模型的效果。 图19 生成式大模型持有强大的语言理解能力,如何将这种能力转化为搜索排序模型的效果是尤其要紧的商讨。 如图20所示,在现有的匹配模型输入域上,通过生成式大模型进行域提取升级如 Doc 的核心句提取,以及对缺失后验数据的 Doc 补充 Click-Query,同时也通过使用生成式大模型对原始标题进行标准化改写的方式增进新的标题域,多种方式对输入报道域优化,抬高输入域的质量进而抬高模型效果。 图20 生成式大模型在参数量和样本量填补之后,闪现了一些惊人的模型能力。应该将这种大模型的能力迁移到现有的搜索排序模型中? 搜索采用集成蒸馏的思想如图21所示,根据不同的数据集,不同的模型 BASE 训练多个 teacher,然后通过将多个 teacher 共同蒸馏 student 的方式,抬高 student 模型的效果。出于生成式大模型和原有的 teacher 在参数量级和输入文本长度上都获得了一个极大的提高,因此或将带来蒸馏的 student 效果大幅度提升。 图21 生成式大模型拥有远大的参数量级进而导致较慢的推理速度,而搜索引擎往往需要在毫秒级时间内向用户返回搜索结果,因此怎么将生成式大模型引入搜索引擎的在线检索系统是个难题,但是出于生成式大模型有惊人的效果,因此端到端的模型替换原有的系统将是一个趋势。 如图22所示,在纠错端到端方向,经过在生成式大模型 BASE 模型之上,通过人工标注数据做为样本集,采用 SFT 对模型进行微调产出微调往后的生成式大模型。然而此时的模型往往还有效果不佳,幻觉等方面的问题,因此通过挂载搜索结果,知识图谱库等方式对模型进行搜索增强,产出搜索增强之后的生成式大模型。 图22 11:评估效果 在搜索系统中,评估模型效果好坏的一个主要指标是 Query-Doc 的相关性正逆序比。计算方法是根据排出的结果进行从前到后两两组对,要是排在前面的结果比排在后面的结果更相关则是一个正序对,反之则为逆序对。正序对 / 逆序对为正逆序比,值越大越好。如图23所示,在 TOP350条结果采样正逆序比从基线2.5优化提高到4.0。 图23 今朝,搜索系统正处于4.0深度学习阶段向5.0生成式大模型阶段的过渡,整个系统将在生成式模式下进行重塑,随着模型的参数越来大,未来的搜索效果将能获得一步步的大幅度提升,最后行将让智能化搜索成为恐怕。 作者团队介绍:QQ 浏览器搜索应用部搜索排序中心,承接用户天级几亿次搜索需求,负责搜索系统的排序优化工作,在千亿索引的基础之上,采用千亿级参数大模型为基座,叠加预训练,大数据挖掘,深度语义建模,智能摘要抽取,自动化热点出现,超大规模并行计算等技术,达成极致的用户需求满足。 (投诉) (责任编辑:admin) |