首页 体育 教育 财经 社会 娱乐 军事 国内 科技 互联网 房产 国际 女人 汽车 游戏

新一代海量数据搜索引擎 TurboSearch 来了!

2019-12-25

本文作者: sololzluo, AI Lab 开发工程师

AI Lab 多年一直在查找范畴进行深耕和堆集,继搜搜网页查找之后,连续服务于微信搜一搜、使用宝查找、地图查找、音乐查找、视频查找、手 Q、QQ 群等精品笔直查找事务,以及云搜中小数据查找事务。

从网页查找承继下来的查找体系,经过多年的需求迭代,越来越难以支撑结构级新特性更新。因而咱们投入精力对全体体系重构和优化,从头构建了大规模、轻量级、松耦合、可裁剪、低运营本钱 具有完好解决方案 的新一代查找体系 TurboSearch 。首要有以下特性:

完好的 分布式 、 海量 查找体系及运营解决方案

支撑快捷 私有化布置

高功能索引及 并行检索

支撑 多粒度索引 及检索

支撑一般检索、分类检索、 WAND 及精细化的检索层过滤逻辑

中心组件 解耦 ,支撑横向扩展,才能可裁剪

无缝对接 AI Lab 各项 NLP 才能 ,包括 Query 剖析及排序等多个范畴

支撑场景丰厚, 除传统的网页和各类非结构化垂类场景外 ,一起 可扩展 到多模态向量查找场景

与业界部分开源引擎结构 ElasticSearch,Solr 等不同的是,TurboSearch 更倾向于面向在线 *高并发、大规模、低时延* 的检索需求,一起能够平行扩展到多模态场景,并供给完好的查找运营才能。TurboSearch 在将会分层次和分阶段逐渐在公司内部开源。

在 多模态/向量检索 范畴,AI Lab 现已推出 GNES 检索体系 ,聚集于内容目标的 Encoding,以及多种算法模型的渠道化整合。同样在向量检索范畴, TurboSearch 会逐渐从索引层面,探究针对大规模向量数据集的高功能检索 。并从向量索引、及体系化运营层面为 GNES 供给支撑。

TurboSearch 引擎首要有六大中心才能:

查找中心组件 :根底中心才能笼统和组件化,便于扩展,如索引核算、检索中心等。一起为了下降多进程资源开支,构建了多线程 C++ 检索通讯结构 smqRPC。

查找根底服务 :根据查找中心组件分层包装的检索服务,首要包括离线索引、在线检索及检索接入三大层次。支撑包括内存、磁盘索引在内的分布式索引及检索环境。

查找 OSS 体系 :包括离线索引生成、在线索引翻滚更新、检索干涉、ABTest 等多项才能。后续将进一步完善包括好例、离线作用评价等其它精细化运营体系。

作用扩展组件 :查找作用随事务场景而改变,咱们将打分排序解耦剥离,内置部分根底相关性排序功能,也可自定义排序。

API 组件 :供给包括 SDK、smq 协议拜访及 HTTP RESTful 接口等多种拜访方法。

Query 剖析才能 :除了根底的分词之外,也具有近义词、纠错、时新性核算、目的辨认、成分剖析、非比留、新词发现等全面才能。

一个 Query 的查找进程能够分为以下几个首要部分:

Query 剖析,包括切词、纠错、拓宽、改写等。

检索召回,包括倒排求交、切断兼并等。

打分排序,在 TurboSearch 中包括多层 rank 进步召回率。

但是,单次 Query 召回往往并不能到达查找预期。比方,查找 “ 吃鸡 ”,只召回吃饭相关的文章或许难以射中用户目的。将其拓宽为 “ 平和精英 ”,或其他热门事情 Query,并将屡次拓宽成果交融,更简单射中用户目的。因而 TurboSearch 应对这样的 NLP 拓宽才能,原生支撑屡次下发成果交融。

QRW 是 AI Lab 多年堆集的 Query 剖析 NLP 服务,除了掩盖垂搜所需的 纠错 近义词/非比留/根底相关性等根底才能之外,也包括了全网查找所需具有的悉数才能,如 Query 改写/时新性/目的辨认/成分剖析/文本分档 等等。

在排序和召回层面,TurboSearch 规划了 5 层 Rank 来最大化进步召回率 ,从 L0 - L4 掩盖离线、倒排求交、精核算、大局精排等多个层面,为每个或许漏招环节做保证。

最耗时部分会集在 求交+L1 打分 和 L3 打分 。在传统的程序规划中,这两部分均在单线程中串行履行。使得在高频词检索求交时, 单次恳求耗时难以操控 。

TurboSearch 针对两个高耗时流程,选用 多线程并行处理 。将倒排索引切分,来并行化检索求交+L1:

咱们做了一些 特别的无锁多线程成果兼并规划 ,防止兼并成果等候导致搁置 CPU 的问题。负载未达 100% 时,均匀检索耗时可大幅下降:

Weak-AND 在广告或引荐等小数据集召回场景下,现已有较多的使用。 在海量数据检索中 ,TurboSearch 正探究其在 长 Query 召回场景 下的使用。 经过结合 Weak-AND 与 AND ,平衡召回率和检索功能。

热门文章

随机推荐

推荐文章