详解支撑7亿用户搜索的百度图片处理收录中台


导读:在百度搜索中,主要由“搜索在线”和“搜索离线”两部分构成,“在线”服务主要用于响应用户请求,“离线”服务则将各种来源的数据转换处理后送入“在线”服务中。“搜索离线”的数据处理是一个典型的海量数据批次/实时计算结合的场景。

一、多模态检索背后的”离线“与“在线”


在百度搜索中,主要由“搜索在线”和“搜索离线”部分构成,“在线”服务主要用于响应用户请求,“离线”服务则将各种来源的数据转换处理后送入“在线”服务中。“搜索离线”的数据处理是一个典型的海量数据批次/实时计算结合的场景。


2015年起,百度App上线了多模态检索能力,将智能化搜索直观体现在用户面前。多模态检索是在传统文本检索之上,增加了视觉检索和语音检索的能力。


详解支撑7亿用户搜索的百度图片处理收录中台


其中,“视觉检索”和“文本检索图片”这两类业务的离线、在线技术上,有很多地方是共通的。以视觉检索为例,产品形态包括:猜词、更多尺寸图片、图片来源、垂类图片(短视频、商品、等)、相似推荐等,其背后依托的核心技术有分类(GPU在线模型预估)与ann检索。


详解支撑7亿用户搜索的百度图片处理收录中台


在ann检索方面,目前主要采用的检索方法有基于聚类的gno-imi、基于图的hnsw,以及局部敏感hash方法,选型的主要考虑是技术方案成本与特征的适用性,比如gno-imi是百度内开源的,内存占用比较小的方案,应用到百亿规模的ann检索上成本可接受;局部敏感hash的方法,应用到SIFT这类局部特征上,可以加强手机拍照识别场景下召回效果。


这些在线技术的背后,依赖的特征有百余种,离线要收录全网图片,并对图片计算特征,其算力开销是非常庞大的;另外,图片在互联网上依附于网页,还需要维护“图片-图片链接-网页链接”的关系(离线数据处理、在线应用都离不开数据关系,比如为了溯源,需要提供图片的来源网页url等)。


此种情况下,搜索架构部与内容技术架构部依据自身业务与技术特点,联合设计与开发了“图片处理收录中台”,以期达到以下目的:

  1. 统一的数据获取与处理能力,可整合图片类业务的数据获取、处理、存储逻辑,提升人效,降低存储&计算成本。
  2. 百亿~千亿级别的图片应用,可实现快速调研、数据采集、全网数据更新能力。
  3. 建设图片实时筛选与定制下发数据通路,提升图片资源引入的时效性。


该项目在内部名为Imazon项目。Imazon来自于Image + Amazon,其中amazon代表中台能力的吞吐能力、DAG处理能力、图片容量。


目前,图片处理收录中台,提供复杂业务场景下单日处理数十亿级图片数据,秒级实时收录百gps,全网收录万级别gps。平台目前支持多个业务线的图片处理与收录需求,大幅提高了业务执行效率。


二、图片处理收录中台的架构与关键技术


搜索效果的持续优化,离不开数据与算力,主要以收录,存储,计算为核心。图片处理收录中台,希望通过中台提供的通用能力包括:从时效、全网图片收录通路中筛选数据、提供大吞吐的流式处理机制、图片-网页关系刻画能力、原图&缩图存储、在线处理机制等。



2.1 图片处理收录中台解决什么问题?


图片处理收录中台的主体流程,经历6个阶段:网页spider(获取网页内容),图片内容提取,图片spider(爬取图片),特征计算(百余种特征),内容关系存储,建库。如下图所示:


详解支撑7亿用户搜索的百度图片处理收录中台


2.2 图片处理收录中台的技术指标


中台的技术指标定义,从架构指标、效果、研发效率3方面来描述。


架构指标包括吞吐、扩展性、稳定性:



效果指标主要关注数据关系:

研发效率指标包括业务通用性和语言灵活性:


2.3 图片处理收录中台的架构设计


图片处理收录是一个无界数据的流式处理过程,因此整体架构设计以流式实时处理系统为主,兼支持批处理输入。同时,为了解决大吞吐需求、业务研发效率等问题,设计中采用了弹性计算&事件驱动、业务逻辑与DAG框架解耦部署等思想。具体如下图所示,后文会详细讲解。


详解支撑7亿用户搜索的百度图片处理收录中台


2.4 图片处理收录中台的基础设施


百度基础设施:


依托&构建的业务基础设施


三、优化实践


下面简单介绍在面向大吞吐高算力场景下,中台的一些优化实践。


3.1 大吞吐流式处理架构的实践


成本(算力、存储)是有限的,面对大吞吐需求,在如下方向做了针对性优化:


3.1.1 消息队列成本优化

在离线流式数据处理中,通过消息队列在DAG/pipeline中传输数据是比较常规的方案,该方案可以借助消息队列的持久化来保证业务对数据的不丢的要求(at least once)。业务特点:


具体优化思路如下:


详解支撑7亿用户搜索的百度图片处理收录中台


具体协议设计为:


3.1.2 流量均衡与波峰滞后计算


入口流量的波峰波谷或毛刺,使得全系统必须按照峰值容量部署,但是低峰期资源利用率又不够。如下图:


详解支撑7亿用户搜索的百度图片处理收录中台


具体优化思路如下:

通过反压/流控机制,在资源恒定的前提下,将系统的总吞吐最大化


详解支撑7亿用户搜索的百度图片处理收录中台

△图3 3个优先级的流控


3.1.3 解决大吞吐场景下算力临时不够带来的数据堆积

全网数据收录场景下,特征计算存在GPU资源瓶颈,这些特征消耗的GPU卡非常巨大,可以通过“错峰”与“离在线混布、临时资源使用”等思路可以解决该问题,但是引入了新问题:离线pipeline中无法buffer这么多的数据,且不希望反压影响上游DAG处理吞吐


详解支撑7亿用户搜索的百度图片处理收录中台


具体优化思路:


3.2 内容关系引擎

互联网的图片内容关系,可以用一个三部图来刻画。采用下面的概念定义进行描述:

内容关系引擎,需要能够刻画如下行为:

详解支撑7亿用户搜索的百度图片处理收录中台


为刻画互联网中各元素完整关系描述,这是一个千亿节点规模,P级别存储的图数据库,需要达成的系统指标如下:

为了解决读写性能问题,基于table设计了COF三部图内容关系引擎,核心设计思路如下:


详解支撑7亿用户搜索的百度图片处理收录中台


为减少随机写带来的IO瓶颈、降低系统事务复杂性,采用了“基于版本的校验方法,读时校验,异步退场”来保证关系的正确性。


3.3 其他实践

为提升业务研发迭代效率、提升系统自身维护性,系统解决了一些问题,但是在提升“研发幸福感”的路上,才刚刚上路。我们着重解决研发效率和维护成本的问题。

比如在业务接入效率方面:


数据源复用


DAG产出复用


资源存储复用:


在多语言支持方面:


在维护成本方面:

展开阅读全文

页面更新:2024-05-22

标签:在线   离线   队列   详解   架构   特征   指标   成本   能力   关系   业务   网页   内容   数据   用户   系统   图片   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top