百度视频搜索架构演进

导读

随着信息技术的迅猛发展,搜索引擎作为人们获取信息的主要途径,其背后的技术架构也在不断演进。本文详细阐述了近年来视频搜索排序框架的重大变革,特别是在大模型技术需求驱动下,如何从传统的多阶段级联框架逐步演变为更加高效、灵活的端到端排序框架。

01 背景

过去近十年,搜索引擎的主流框架为多阶段级联框架,分为召回,粗排,精排几个阶段。在每个阶段中,系统会基于相关性、质量、时效性和点击率等维度独立建模,然后通过模型融合这些信号进行排序和截断,最终产出检索结果。随着以BERT、ERNIE和GPT为代表的预训练大模型技术的逐渐成熟,利用一套端到端框架解决信息检索问题变得越来越可行。同时,用户差异化,多样化,深层次信息需求越来越强烈, 为了满足这些需求,系统的算力需求也在不断增加。在这种技术及需求趋势的引导下,传统视频搜索排序架构如何演变,已经成为视频搜索最重要课题,同时也对排序架构提出了重大的挑战。

02 目标

以大模型技术为主线,打造高性能,扩展灵活的视频搜索排序框架,同时完成存量排序系统的熵减治理,从而来大幅度提升排序系统的系统能力,降级系统长期运营治理成本。

03 问题与挑战

  • 架构功能如何解耦:视频搜索排序架构经历了多年的积累和发展,已经形成了策略、架构和产品逻辑高度耦合的局面。这种耦合导致排序模块承担了过多且复杂的功能,直接影响了研发效率,并频繁引发稳定性问题。此外,模块功能定位模糊,严重制约了新产品和业务的快速落地与迭代。面对这些挑战,我们亟需打破现有的陈旧框架,从更底层进行架构优化,以实现理想的业务和架构收益。

  • 系统效能如何提升: 目前核心排序模块缺少灵活高效的并行计算框架,制约系统资源使用率的提升。与此同时,系统流量低峰时段会存在大量空闲资源,没有得到充分使用,如何充分,高效挖掘这部分空闲资源资源,来满足业务对资源大量需求。

  • 端到端架构如何演进:在端到端大模型技术的引导下,排序策略的复杂性将逐步被模型内部化,现有策略实现可以得到极大的简化。传统多阶段级联排序架构如何演进升级,以适应这种新的排序模式,也是一个需要深入研究和探索的重要课题。

04 整体思路

对上述问题和挑战,我们采取了一系列综合措施来加以解决。首先,为了解决架构耦合与复杂性问题,我们对核心排序模块进行了深度重构,将原本集成在其中的召回处理与摘要计算功能独立出来,从而实现系统分层的合理化。其次,采用支持串行、并行和数据并行的灵活框架,提升视频排序流程的可视化管理和并行计算能力,并基于弹性算力分配控制中心,高效利用系统空闲资源,最大化搜索视频业务收益。最后,在大模型端到端排序模式下,推动多阶段级联框架向单阶段端到端框架转变升级。下面详细介绍以上解决方案的设计思想:

  • 核心排序功能解耦:

  • 视频核心排序模块是在线检索核心模块之一,之前承接排序和部分召回功能。累积了大量的视频独有的策略和业务逻辑,支持了视频搜索业务的不断发展。随着越来越多的策略、架构功能迭代,核心排序模块也越来越臃肿,接手、开发、维护等成本不断攀升。同时也面临例如不支持云原生、整体框架设计老旧、功能耦合严重等问题。

  1. 将排序模块中召回处理阶段独立分拆,整体功能迁移至新的视频召回模块。

  2. 利用图引擎将多Query串行执行升级至Query全并行执行,包含请求构建,Cache读取,结果解析。

  3. 常用架构,策略功能组件化,插件化,易于理解、开发和维护。

图片

△新召回模块

  • 为满足用户差异化,多样化查询需求,每次请求都需要重新进行召回,排序计算,摘要处理等阶段。如果全量穿透系统缓存,会带来巨大的资源,耗时增长,系统成本无法承担,所以需要考虑目前视频搜系统分层设计是否合理,是否需要重新设计。为解决视频个性化带来的资源,速度问题,我们对视频搜索核心排序功能进行重新分层设计:
  1. 核心排序系统结果返回和摘要获取解耦,视频排序系统有能力提供更多量结果集,弥补之前机制能力缺失的短板。

  2. 新增个性化排序模块,优化传输协议,在核心排序模块返回更多结果基础上,同时穿透更多基础排序,供个性化排序使用。

  3. 根据最终个性化排序结果集合,对Top N进行摘要处理计算,最后返回给上游模块。

    图片

△视频个性化排序演进

  • 系统效能提升:

  • 当前的视频搜索排序框架采用单线多策略管理器的串行执行模式。这种单线程串行处理方式在吞吐量和延迟方面表现不佳。此外,框架缺乏灵活的并行化配置能力,依靠人工经验引入各种omp,bthread等并行组件,并且存在历史遗留的冗余计算逻辑,架构组件较为陈旧。为了设计出能实际解决业务需求的现代引擎框架,我们对主流图引擎的特性进行了调研总结:

  1. 驱动方式:排序层当有大量算子,上千维特征时,无论数据驱动,还是人工编排,可读性都很差。这种复杂性不仅增加了理解整个排序层架构的难度,还进一步影响了项目的研发效率。

  2. 并行方式:目前主流job/processer算子并行方式,没有办法很好去支撑算子job内部并行,排序列队list/item-wise并行。排序数据通常含有多list, list内包含成百上千个item数据,这样数据处理模式需要job内部灵活的并行计算方案。

图片

△驱动&并行方式

  • 事实上,我们发现没有一套图引擎能够完全满足排序业务场景的需求。因此,我们提出了一种图框架引擎主张,灵活的支持搜索排序各个场景。
  1. 除了支持serial,paralle模式,常见的job 间的串,并行模式,框架还支持data_parallel模式。召回返回数据通常包含多list队列,list队列间要做排序,list内有成百上千个item,同样需要排序,常见并行模式不能很好解决这种排序需求,所以我们在框架层做了data_paralllel模式设计,让它契我们当前排序模式,支持list+item的混合排序模式,同时能满足各种并行场景使用需求。

  2. 对业务阶段进行清晰的stage,sub_stage抽象,相对传统图引擎算子推导,缺少很好可读的效果,我们做了stage抽象,配置可读性更好,配置即可读,排序全流程可视化管理易读易接手,这也就是我们做编排配置及推导的主要目的。

    图片

△Rankflow框架

  • 我们不仅要提升现有系统的并行计算能力,还优化资源的分配和使用方式,因为搜索系统的输入流量、资源消耗、响应时间等系统状态存在着周期性的波峰-波谷变动,而系统资源已经预先分配好。在波谷期,由于用户输入流量的减少,系统资源不会得到充分利用;而波峰期,随着用户输入流量的增多,系统往往面临着资源紧缺甚至不足的情况。于此同时,搜索系统的业务链路复杂,时常还会遭受某一中间节点的故障甚至是外部流量徒增等稳定性问题。

  • 架构方案:

  • 构建全局视角的弹性算力分配控制中心。

  • 通过对集群各种维度指标的获取、策略分析及周期性执行最适合当前机器负载状态的策略组合参数,实现其核心弹性算力分配决策。

  • 业务应用:

  • 目前支持视频搜索短小视频扩触发,高峰减载,系统异常处置等功能。

图片

△智能弹性算力系统

  • 端到端排序架构升级:

  • 视频核心排序模块主要分为粗排,精排级联两阶段,排序策略是依据这两阶段排序模式进行迭代升级,如粗排阶段完成初步相关性计算用于初步筛选,减少精排阶段系统计算量,精排阶段少量优质结果进行复杂计算。以大模型排序为核心的排序框架打破了原来多阶段级联模式,端到端排序框架需要对计算和数据方案进行重新设计。

  1. 精简精排前调权和挖掘队列策略,优化索引召回和模型计算选送逻辑,粗排和精排阶段统一为粗精排一体化排序阶段。

  2. 由于缺少粗排模型提前初筛作用,端到端模型需要计算数量更多的候选结果集,计算候选集合从原来精排阶段的几十条增加到几百条。

  3. 升级精排模块,利用Rankflow框架,高并发处理候选结果集数量增加带来的耗时问题。

图片

△端到端排序架构

05 总结与展望

视频搜索排序框架通过系统分层优化、Rankflow框架引入及弹性资源复用等架构演进,显著提升了排序系统的性能与灵活性,提高研发效率,降低了长期运营成本。

  • 在大模型技术趋势下,视频搜索系统如何更好提供RAG搜索增强功能。

  • 如何使视频与通搜端到端融合,达到搜索端到端理想态,都是我们后续探索研究的方向。

————END————

推荐阅读

网页结构建模在低质采集站上的识别应用

如何定量分析 Llama 3,大模型系统工程师视角的 Transformer 架构

微服务架构革新:百度Jarvis2.0与云原生技术的力量

技术路线速通!用飞桨让京剧人物照片动起来

无需业务改造,一套数据库满足 OLTP 和 OLAP,GaiaDB 发布并行查询能力

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/951064.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

sequelize-cli 多对多关系处理 及某一单项游戏根据成绩降序排名

一、生成模型 Game(游戏表)GameGrades(游戏成绩表)GameUser(用户表) 1.1 对非中间表 做多对多逻辑处理 Game模型 static associate(models) {// define association heremodels.GameUser.belongsToMany(models.Game, {through: models.GameGrade,fore…

调整Python+Pytest+Allure+Yaml+Pymysql框架中需要执行的用例顺序

当pytest框架中有时时候会因为用例的前后关联关系需要调整用例执行顺序时则可以跟进具体的要求调整pytest.ini配置文件中执行用例文件夹的前后顺序 当如果是需要调整某个文件夹中用例的执行顺序时,则跟进具体的文件调整对应testcases中test_*.py文件中的执行顺序

[云原生之旅] K8s-Portforward的另类用法, 立省两个端口

前言 此方法适用于Pod不需要大量连接的情况: 有多个pod在执行任务, 偶尔需要连接其中一个pod查看进度/日志;对pod执行一个脚本/命令; 不适用于大量连接建立的情况: pod启的数据库服务;pod启的Api服务;pod启的前端服务;pod启的Oss服务; Portforward简介 Portforward就是端…

Transformer 中缩放点积注意力机制探讨:除以根号 dk 理由及其影响

Transformer 中缩放点积注意力机制的探讨 1. 引言 自2017年Transformer模型被提出以来,它迅速成为自然语言处理(NLP)领域的主流架构,并在各种任务中取得了卓越的表现。其核心组件之一是注意力机制,尤其是缩放点积注意…

Qt监控系统远程网络登录/请求设备列表/服务器查看实时流/回放视频/验证码请求

一、前言说明 这几个功能是近期定制的功能,也非常具有代表性,核心就是之前登录和设备信息都是在本地,存放在数据库中,数据库可以是本地或者远程的,现在需要改成通过网络API请求的方式,现在很多的服务器很强…

IDEA配置maven和git并如何使用maven打包和git推送到gitlab

首先找到设置 在里面输入maven然后找到点击 然后点击右边两个选项 路径选择下载的maven目录下的settings文件和新建的repository文件夹 点击apply应用 然后在搜索框里搜git点击进去 此路径为git的exe执行文件所在目录,选好之后点击test测试下方出现git版本号表…

迎接2025Power BI日期表创建指南:模板与最佳实践

故事背景 最近,我们收到了一些关于时间表更新的询问。询问的朋友发现,随着2025年的到来,2024年的日期表已不再适用。这是一个在数据分析领域常见的问题,每年都需要对日期表进行更新。 解决方案 鉴于创建和更新日期表是一项年度…

案例研究:UML用例图中的结账系统

在软件工程和系统分析中,统一建模语言(UML)用例图是一种强有力的工具,用于描述系统与其用户之间的交互。本文将通过一个具体的案例研究,详细解释UML用例图的关键概念,并说明其在设计结账系统中的应用。 用…

国产3D CAD将逐步取代国外软件

在工业软件的关键领域,计算机辅助设计(CAD)软件对于制造业的重要性不言而喻。近年来,国产 CAD 的发展态势迅猛,展现出巨大的潜力与机遇,正逐步改变着 CAD 市场长期由国外软件主导的格局。 国产CAD发展现状 …

Oopsie【hack the box】

Oopsie 解题流程 文件上传 首先开启机器后,我们先使用 nmap -sC -SV来扫描一下IP地址: -sC:使用 Nmap 的默认脚本扫描(通常是 NSE 脚本,Nmap Scripting Engine)。这个选项会自动执行一系列常见的脚本&am…

金山WPS Android面试题及参考答案

说说你所知道的所有集合?并阐述其内部实现。 在 Android 开发(Java 语言基础上)中有多种集合。 首先是 List 集合,主要包括 ArrayList 和 LinkedList。 ArrayList 是基于数组实现的动态数组。它的内部有一个数组来存储元素&#x…

快速导入请求到postman

1.确定请求,右键复制为cURL(bash) 2.postman菜单栏Import-Raw text,粘贴复制的内容保存,请求添加成功

Mybatis原理简介

看到Mybatis的框架图,可以清晰的看到Mybatis的整体核心对象,我更喜欢用自己的图来表达Mybatis的整个的执行流程。如下图所示: 原理详解: MyBatis应用程序根据XML配置文件创建SqlSessionFactory,SqlSessionFactory在根…

【redis初阶】初识Redis

目录 一、初识Redis 二、盛赞 Redis 三、Redis 特性 3.1 速度快 ​编辑3.2 基于键值对的数据结构服务器 3.3 丰富的功能 3.4 简单稳定 🐶 3.6 持久化(Persistence) 3.7 主从复制(Replication) 3.8 高可用(H…

【云商城】高性能门户网构建

第3章 高性能门户网构建 网站门户就是首页 1.OpenResty 百万并发站点架构 ​ 1).OpenResty 特性介绍 ​ 2).搭建OpenResty ​ 3).Web站点动静分离方案剖析 2.Lua语法学习 ​ 1).Lua基本语法 3.多级缓存架构实战 ​ 1).多级缓存架构分析 用户请求网站,最开始…

【GESP】C++三级考试大纲知识点梳理, (1)二进制数据编码

GESP C三级官方考试大纲中,共有8条考点,本文针对C(1)号知识点进行总结梳理。 (1)了解二进制数据编码:原码、反码、补码。 全文详见:https://www.coderli.com/gesp-3-exam-syllabus-data-encodin…

B+树的原理及实现

文章目录 B树的原理及实现一、引言二、B树的特性1、结构特点2、节点类型3、阶数 三、B树的Java实现1、节点实现2、B树操作2.1、搜索2.2、插入2.3、删除2.4、遍历 3、B树的Java实现示例 四、总结 B树的原理及实现 一、引言 B树是一种基于B树的树形数据结构,它在数据…

毕业项目推荐:基于yolov8/yolov5/yolo11的动物检测识别系统(python+卷积神经网络)

文章目录 概要一、整体资源介绍技术要点功能展示:功能1 支持单张图片识别功能2 支持遍历文件夹识别功能3 支持识别视频文件功能4 支持摄像头识别功能5 支持结果文件导出(xls格式)功能6 支持切换检测到的目标查看 二、数据集三、算法介绍1. YO…

用Kimi做研究:准实验设计的智能解决方案

目录 1.研究策略设计 2.过程框架设计 3.背景变量 4.细节设计 准实验设计是一种介于实验与观察研究之间的研究方法,准实验设计是在无法完全控制实验条件的情况下进行因果关系的探索。与传统实验设计相比,准实验设计不具备随机分配实验对象到各处理组的…

【前端】【HTML】入门基础知识

参考视频&#xff1a;【狂神说Java】HTML5完整教学通俗易懂_哔哩哔哩_bilibili 一、基本结构 二、基本标签 <h1>&#xff1a;一级标题&#xff0c;通常用于页面的主标题&#xff0c;字体较大且醒目。 <h2>&#xff1a;二级标题&#xff0c;用于副标题或主要章节标…