前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AI时代的阅读革新!微信读书基于腾讯云ES的“AI问书”RAG最佳实践

AI时代的阅读革新!微信读书基于腾讯云ES的“AI问书”RAG最佳实践

作者头像
腾讯QQ大数据
发布2024-07-01 11:21:53
1560
发布2024-07-01 11:21:53
举报
引言

当我们需要深入了解一个知识点时,我们可能会通过阅读大量的书籍进行总结,或者是通过浏览器搜索相关的文章,不论是哪种方式,都需要我们花很多时间去进行知识过滤与提取,那么,有没有一个方案,能够让我们能够快速的了解该知识点的含义,并标注来源与作者以及进行关联内容推荐呢?

答案是肯定的,微信读书作为全民阅读的首选平台,最新上线了 AI 问书功能,只需要简单的输入搜索词, AI 问书即可快速的从海量书籍中进行知识检索与生成,返回针对该搜索词的释义与来源,并生成与用户提问相关的问题供用户进一步提问,为用户带来全新的阅读体验。

而实现“ AI 问书”的关键技术,则是检索增强生成( Retrieval Augmented Generation,RAG ),通过结合外部知识库与生成模型,即可借助AI从书籍中获得解释和回答,重塑内容的分发与呈现。本文将从 AI 问书的功能介绍出发,介绍其实现过程中的核心挑战与痛点以及基于腾讯云 ES 的一站式 RAG 方案及其价值。

微信读书AI问书探索之旅

微信读书自 2015 年上线至今,已经积累 2.1 亿用户,日活超过 200w ,并从传统书籍衍伸到有声读物领域。伴随着用户量的增长,微信读书也在结合AI能力提高用户体验上做了很多的尝试:

/ 1.0阶段:AI提取书籍标签

当用户搜索命中关键词则呈现相关结果,缺点如下:

● 标签词数量与用户搜索词差距大。

● 无法表达复杂语义,如组合词、多义词、开放式问题。

● 一本书关键词多,难以判断质量,例如一本《三体》数千关键词难以评估相关性。

● 标签与出版社分类一致,难以获得在线阅读新鲜体验感。

/ 2.0阶段:AI观点提取

召回不同句子判断是否作为观点与知识展示与引导,缺点如下:

● 无法回答复杂问题,观点之间缺乏相关性。

● 用户体验上无创新,类似传统全文搜索增加过滤与重排序。

/ 3.0阶段:书籍RAG

对搜索词进行生成式答案返回,如搜索《茶馆》,能关联性搜索“老舍”相关作品,缺点如下:

● 用户习惯未培养起来,很难想到问什么问题。

● 搜索词较为单一,缺乏深度与广度。

/ 最新:书籍RAG+问题生成

根据用户输入的问题或提交的搜索指令,利用大语言模型引用、整理书中相关观点生成答案回复用户提问,并生成与用户提问相关的问题供用户进一步提问。

AI问书能力介绍

AI 问书的功能分为三个部分,回答问题、介绍来源、延展问题。

回答问题,即在头部搜索框中,输入相关提问,选择“AI 问书”,等待回答:

回答生成完毕后, AI 问书将返回引用的书籍资料列表,用户点击后,直接跳转到该书籍论文等资料的指定片段:

再之后, AI 问书还提供了“猜你想问”功能:

当然,如果我们在阅读过程中遇到不懂的名词或者片段,也可以选中后点击“ AI 问书”,即可在界面上获得相关内容的概念解释,无需再跳转到外部浏览器进行搜索,实现所见即所得(容易分心的朋友有福啦!)

/ 核心挑战与痛点

前文提到, AI 问书在实现过程中,主要使用了检索增强生成( RAG )技术:检索,顾名思义,搜索的意思,就像我们在网上查东西一样;增强,意味着,不只是简单搜索,还会加上更多的智能;生成,根据搜索到的信息,给出想要的答案。

从流程上来看,在 RAG 系统中,我们首先使用一个检索模型(如基于关键字的全文搜索、基于向量的相似度搜索)在知识库中查找与输入查询最相关的文档或数据片段。然后,这些检索到的内容会被送入一个生成模型(如基于 Transformer 的大语言模型),作为额外的上下文信息辅助生成回答或文本。这种方法有效地将外部知识与生成模型的创造力结合起来,使得生成的内容不仅流畅自然,而且信息丰富、事实准确。

因此,这关键的第一步,即是检索。只有将数据准确的从知识库检索召回,才能更好的进行增强与生成。

最初,微信读书不是采用腾讯云 ES 方案,存在比较大的技术挑战:

数据规模大:整体数据超 10 亿级向量规模,存储成本高。早期评估的非 ES 方案,为了满足毫秒级查询,需要缓存全部数据到内存中,则 30 亿 768 维的向量,需要超过 400 台64G机器,运营成本百万级。

运维成本高:除了全文检索,同时还需部署向量化服务,在外部进行向量化后,写入到向量数据库,同时向量数据库不存储原始 meta 信息,还需要额外部署正排服务,相当于需要同时运维四套系统。

开发成本高:调试召回过程中,需要在外部进行向量化后,从向量数据库召回,然后再用召回 id 访问正排获取meta信息。相当于每一次召回调试需要 3 次操作,跨越 4 个系统。

稳定性要求高:在线读书平台超亿级用户,稳定性要求 5 个 9 以上。

查询性能要求高:高并发场景下查询延迟需要毫秒级返回,数亿量级数据全链路多路召回需控制在 100ms 以内。

/ 基于腾讯云ES的解决方案

腾讯云 ES 提供了一站式的 RAG 方案,具体而言, AI 问书在实现过程中,主要应用了以下能力:

● 知识向量化:通过上传自定义的 embedding 模型到腾讯云ES提供的机器学习节点中,实现书籍内容与搜索词的向量化( embedding )。

● 混合搜索:腾讯云 ES 提供了全文检索与向量检索能力,只需要简单的一条查询语句,即可从 ES 中实现混合搜索与多路召回。

● 与大模型集成:腾讯云 ES 支持通过 API 与大模型进行集成,从 ES 召回的数据,可与 Prompt 一起送进到大模型中进行生成式整合,最终完成智能问答。

● Kibana 调试:作为与 ES 天然集成 Web 页面, Kibana 提供了丰富的可视化能力,能帮助开发运维人员快速进行召回调试,并在 Kibana 上完成模型的部署与管理。

● 安全高可用:腾讯云 ES 自研全链路熔断限流方案,同时支持多副本、多可用区部署,能够有效保障在线业务稳定性。

/ 方案价值

● 资源成本低:腾讯云 ES 提供了低成本的一站式向量检索方案,从原来的纯内存 400 台 64G 机器下降到30台,大幅降低硬件成本。

● 运维成本低:腾讯云 ES 提供了一站式 RAG 方案,同时提供全文检索、向量检索、向量化服务,降低服务服务运维成本,从 1 次调优跨 4 套系统,到“所见即所得”,开发运维人员在 Kibana 上即可调试召回流程。

● 高性能高可靠:数亿量级索引召回平均耗时在 100ms 以下,基于腾讯云 ES 强大的专业支持团队与安全高可用能力,保证稳定性及可靠性。

腾讯云ES一站式RAG能力介绍

腾讯云 ES 是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成 X-Pack ,支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。在自研内核方面,腾讯云ES依托腾讯内外部海量业务的运营经验,针对 ES 内核进行了成本、性能、稳定性、拓展性等方面的优化,是亚太地区开源贡献第一的团队,使用腾讯云 ES 您可以高效构建在线搜索、向量检索、日志分析、运维监控、智能问答等服务。

在 RAG 方面,腾讯云 ES 支持了一站式向量检索、文本+向量混合搜索、倒数排序融合、与大模型集成、 GPU 高性能推理、字段级别权限控制等能力,同时针对查询性能做了大量优化,有效的提升了数据检索效率。

当然,作为国内公有云首个从自然语言处理、到向量生成/存储/检索、并与大模型集成的端到端一站式技术平台,腾讯云 ES 也作为核心参编单位参与了由信通院组织的 RAG 标准制定,同时成为首个通过 RAG 权威认证的企业。

/ 一站式向量检索

向量索引/存储->向量检索的全流程操作,具体能力如下:

基于腾讯云 ES 提供的能力,我们可以直接完成向量生成->向量索引/存储->向量检索的全流程操作,具体能力如下:

● 内置开箱即用的 ELSER 语义模型。

● 支持上传自定义模型或从 Hugging Face 等开源社区直接上传模型。

● 支持专有机器学习节点,用于向量推理(可选,也可跟数据节点混部)。

● 支持向量索引( HNSW 算法)、向量存储与 KNN 检索。

/ 混合搜索

基于关键词的文本搜索与基于相关性的向量搜索各有千秋,相比于文本搜索,向量搜索优势在于处理模糊表达、捕捉语义、支持跨文本&跨语言&跨模态;相比于向量搜索,文本搜索优势在于短文本精准匹配强、计算成本低、可解释性及调优性强。

混合搜索是指结合了全文检索和向量检索技术的搜索方式,这种方法旨在利用两种技术的优势,提供更加准确和全面的搜索结果,其优势如下:

● 更精准:混合搜索可以同时利用关键词检索和向量搜索对数据进行查询,提高检索的准确性和可信度。

● 更多样:混合搜索可以利用向量检索的多样性,返回多种不同的检索结果,提供更多的选择和信息,满足不同的用户查询需求和偏好。

● 更强大:混合搜索可以利用关键词检索的逻辑运算、排序、过滤等功能,实现更复杂的查询需求。如包含多个条件、多个字段、多个排序规则等的查询,这可以提高检索的功能和灵活性。

● 更可解释:混合搜索可以利用关键词检索的文本匹配和高亮显示,实现更可解释的检索结果。如显示查询语句和文档的匹配程度、匹配位置、匹配内容等,这可以提高用户对检索结果的理解和满意度。

/ 倒数排序融合

在多个信息检索系统中,每个系统可能会使用不同的评分机制来评估文档的相关性。这些评分机制可能基于不同的算法、特征和数据集,因此它们的评分范围和分布可能会大不相同。腾讯云ES内置了倒数排序融合( Reciprocal Rank Fusion, RRF )算法,RRF 的基本思想是对每个系统的排名结果赋予一个权重,这个权重是其排名的倒数。具体来说,对于每个系统的排名列表中的每个项目,RRF 算法会计算一个分数,该分数是该项目在每个列表中排名的倒数之和。然后,所有项目根据这个分数进行重新排序,以生成最终的融合排名列表。

RRF 的优点如下:

● 简单性:RRF 不需要复杂的归一化步骤,只需要知道每个文档在每个系统中的排名。

● 鲁棒性:由于 RRF 基于排名而不是评分,它对不同评分尺度和分布的敏感性较低。

● 公平性:RRF 通过相同的公式为所有系统的排名赋予权重,从而确保了所有系统在融合过程中的公平性。

● 易于实现:RRF 算法的实现相对简单,不需要复杂的参数调整或训练过程。

● 适应性:RRF 可以很容易地适应新的系统或数据,因为它不依赖于特定的评分机制。

后续,腾讯云 ES 还将支持 LTR 插件,预告下

/ 大模型集成

腾讯云 ES 可与 Langchain 等第三方管道以及 LLM 大模型等无缝集成,帮助构建生成式应用程序。

/ 高性能

紫霄 GPU 支持

腾讯云 ES 是全球首个支持 GPU 的 ES 服务,它可以与腾讯自研“芯”技术紫霄软硬结合,充分利用GPU的性能优势,提高向量生成和检索的效率。例如,紫霄 V1 具有高能效、高吞吐、高带宽等特点,设计算力规格 NVIDIA A10 相当,显存带宽比 A10 高 30% ,最高可比 A10 性能高 50%-100% 。在常见中小模型上,紫霄相比NVIDIA T4 通常有 100% 以上的性能提升,相比 NVIDIA A10 有 20%+ 的性能优势。

自研内核优化

腾讯云 ES 在内核层面,针对微信读书的典型场景特点做了更多优化,比如分片架构优化,查询并行化, lucene 查询缓存锁改造等, 10 亿级向量检索平均响应延迟控制在毫秒级,整体帮助向量场景查询性能提升 3-10 倍:

a. 分片架构优化:针对向量场景,合并查询跟归并流程,总体查询性能提升 2 倍以上。

b. 块存储跟查询优化:通过对 Segment 进行合并收敛,减少查询随机 IO ,总体查询性能提升 2 倍以上。

c. 查询并行化:多线程文档切分、多 Segment 并行化处理、精准拉取文件数据段。

d. lucene 查询缓存锁改造:大幅提高了查询的并发能力,QPS 提升 50% 以上。

腾讯云 ES 与 Milvus 对比

我们基于开源工具 ann-benchmark 进行了详细性能测试,通过检索不同维度的数据集在召回率达到 99% 的情况下,获取最相似的 Top10 的文档,对比 Milvus、与腾讯云 ES 的 QPS 数据。

/ 高可用

腾讯云 ES 支持多副本、同城多活、异地容灾等多种高可用架构,同时通过自研全链路限流策略,可有效保障集群稳定性,为在线搜索业务保驾护航。

总结

本文整体介绍了腾讯云 ES 的一站式 RAG 方案以及微信读书应用实践,希望能帮助大家对这块有基本的了解。未来,腾讯云 ES 将持续深耕智能检索领域,在成本、性能、稳定性等方面持续提升,帮助客户降本增效的同时实现业务价值持续增长,欢迎持续关注腾讯云 ES ~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云大数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档