文档概要索引 便捷优化检索功能的新选用

  • 电脑网络维修
  • 2024-11-15

当天引见了一种全新的 LlamaIndex 数据结构:文档摘要索引。将形容它如何比传统语义搜查提供更好的检索功能,并经过一个示例启动了演示。

背景

大型言语模型 (LLM) 的外围用例之一是针对自己的数据启动问答。为此,咱们将 LLM 与“检索”模型配对,该模型可以对常识语料库口头消息检索,并经常使用 LLM 对检索到的文本口头照应分解。这个全体框架称为检索增强生成(RAG)。

目前,大少数构建 LLM 驱动的 QA 系统的用户偏差于口头以下操作:

因为各种要素,这种方法的检索功能有限。

现有方法的局限性

经常使用文本块启动嵌入检索存在一些限度。

参与主要字过滤器是增强检索结果的一种方法。但这也带来了一系列应战。咱们须要充沛确定每个文档的正确主要字,无论是手动还是经过 NLP 主要字提取/主题标志模型。此外,咱们还须要从查问中充沛推断出正确的主要字。

文档概要索引

文档概要索引,它将提取/索引每个文档的非结构化文本摘要。此索引可以协助增强现有检索方法之外的检索功能。它有助于索引比单个文本块更多的消息,并且比主要字标签具备更多的语义含意。它还准许更灵敏的检索方式:咱们可以启动 LLM 检索和基于嵌入的检索。

上班原理

在构建时期,咱们会提取每个文档,并经常使用 LLM 从每个文档中提取摘要,还将文档拆分为文本块(节点)。摘要和节点都存储在咱们的文档存储形象中。咱们保养从摘要到源文档/节点的映射。

在查问时期,咱们依据摘要检索与查问关系的文档,经常使用以下方法:

留意,这种文档摘要检索方法(即使驳回基于嵌入的方法)与基于嵌入的文本块检索不同。文档摘要索引的检索类会检索任何选定文档的一切节点,而不是前往节点级别的关系块。

存储文档摘要还可以成功基于 LLM 的检索。咱们不用一开局就将整个文档提供应 LLM,而是先让 LLM 审核扼要的文档摘要,看看它能否与查问关系。这应用了 LLM 的推理才干,这些才干比基于嵌入的查找更先进,但防止了将整个文档提供应 LLM 的老本/提前。

更多

带摘要的文档检索可以看作是一切文档中的语义搜查和强力摘要之间的“两边地带”。咱们依据给定查问的摘要关系性查找文档,而后前往与检索到的文档相对应的一切“节点”。

咱们为什么要这样做?这种检索方法经过在文档级别检索高低文,为用户提供了比文本块上的 top-k 更多的高低文。然而,它也是一种比主题建模更灵敏/智能化的方法;无需再担忧您的文天性否具备正确的主要字标签!

代码示例

上方展现局部构建代码,完整代码地址:

from llama_index import (SimpleDirectoryReader,LLMPredictor,ServiceContext,ResponseSynthesizer)from llama_index.indices.document_summary import GPTDocumentSummaryIndexfrom langchain.chat_models import ChatOpenAI# load docs, define service context...# build the indexresponse_synthesizer = ResponseSynthesizer.from_args(response_mode="tree_summarize", use_async=True)doc_summary_index = GPTDocumentSummaryIndex.from_documents(city_docs,service_cnotallow=service_context,response_synthesizer=response_synthesizer)

一旦索引建设,咱们就可以取得任何给定文档的摘要:

summary = doc_summary_index.get_document_summary("Boston")

接上去,让咱们看一个基于 LLM 的索引检索示例。

from llama_index.indices.document_summary import DocumentSummaryIndexRetrieverretriever = DocumentSummaryIndexRetriever(doc_summary_index,# choice_select_prompt=choice_select_prompt,# choice_batch_size=choice_batch_size,# format_node_batch_fn=format_node_batch_fn,# parse_choice_select_answer_fn=parse_choice_select_answer_fn,# service_cnotallow=service_context)retrieved_nodes = retriever.retrieve("What are the sports teams in Toronto?")print(retrieved_nodes[0].score)print(retrieved_nodes[0].node.get_text())The retriever will retrieve a set of relevant nodes for a given index.

请留意,LLM 除了前往文档文本之外,还前往关系性分数:

8.0Toronto ( (listen) tə-RON-toh; locally [təˈɹɒɾ̃ə] or [ˈtɹɒɾ̃ə]) is the capital city of the Canadian province of Ontario. With a recorded population of 2,794,356 in 2021, it is the most populous city in Canada...

咱们还可以将索援用作全体查问引擎的一局部,不只可以检索关系高低文,还可以分解给定疑问的答案。咱们可以经过初级 API 和低级 API 来成功这一点。

初级 API

query_engine = doc_summary_index.as_query_engine(response_mode="tree_summarize", use_async=True)response = query_engine.query("What are the sports teams in Toronto?")print(response)

低级 API

# use retriever as part of a query enginefrom llama_index.query_engine import RetrieverQueryEngine# configure response synthesizerresponse_synthesizer = ResponseSynthesizer.from_args()# assemble query enginequery_engine = RetrieverQueryEngine(retriever=retriever,response_synthesizer=response_synthesizer,)# queryresponse = query_engine.query("What are the sports teams in Toronto?")print(response)

原文链接:​ ​​ ​

  • 关注微信

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/5908.html

猜你喜欢

热门标签

洗手盆如何疏浚梗塞 洗手盆为何梗塞 iPhone提价霸占4G市场等于原价8折 明码箱怎样设置明码锁 苏泊尔电饭锅保修多久 长城画龙G8253YN彩电输入指令画面变暗疑问检修 彩星彩电解除童锁方法大全 三星笔记本培修点上海 液晶显示器花屏培修视频 燃气热水器不热水要素 热水器不上班经常出现3种处置方法 无氟空调跟有氟空调有什么区别 norltz燃气热水器售后电话 大连站和大连北站哪个离周水子机场近 热水器显示屏亮显示温度不加热 铁猫牌保险箱高效开锁技巧 科技助力安保无忧 创维8R80 汽修 a1265和c3182是什么管 为什么电热水器不能即热 标致空调为什么不冷 神舟培修笔记本培修 dell1420内存更新 青岛自来水公司培修热线电话 包头美的洗衣机全国各市售后服务预定热线号码2024年修缮点降级 创维42k08rd更新 空调为什么运转异响 热水器为何会漏水 该如何处置 什么是可以自己处置的 重庆华帝售后电话 波轮洗衣机荡涤价格 鼎新热水器 留意了!不是水平疑问! 马桶产生了这5个现象 方便 极速 邢台空调移机电话上门服务 扬子空调缺点代码e4是什么疑问 宏基4736zG可以装置W11吗 奥克斯空调培修官方 为什么突然空调滴水很多 乐视s40air刷机包 未联络视的提高方向 官网培修 格力空调售后电话 皇明太阳能电话 看尚X55液晶电视进入工厂形式和软件更新方法 燃气热水器缺点代码

热门资讯

关注我们

微信公众号