精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

LlamaIndex:面向QA系統的全新文檔摘要索引

深度學習自然語言處理 ? 來源:ChallengeHub ? 2023-05-12 09:57 ? 次閱讀

在這篇博文中,我們介紹了一種全新的 LlamaIndex 數據結構:文檔摘要索引。我們描述了與傳統語義搜索相比,它如何幫助提供更好的檢索性能,并通過一個示例進行了介紹。

1

背景

大型語言模型 (LLM) 的核心場景之一是對用戶自己的數據進行問答。為此,我們將 LLM 與“檢索”模型配對,該模型可以對知識語料庫執行信息檢索,并使用 LLM 對檢索到的文本執行響應合成。這個整體框架稱為檢索增強生成。

今天大多數構建 LLM 支持的 QA 系統的用戶傾向于執行以下某種形式的操作:

  1. 獲取源文檔,將每個文檔拆分為文本塊
  2. 將文本塊存儲在向量數據庫中
  3. 在查詢期間,通過嵌入相似性和/或關鍵字過濾器來檢索文本塊。
  4. 執行響應并匯總答案

由于各種原因,這種方法提供了有限的檢索性能。

2

現有方法的局限性

使用文本塊進行嵌入檢索有一些限制。

  • 文本塊缺乏全局上下文。通常,問題需要的上下文超出了特定塊中索引的內容。
  • 仔細調整 top-k / 相似度分數閾值。假設值太小,你會錯過上下文。假設值值太大,并且成本/延遲可能會隨著更多不相關的上下文而增加,噪音增加。
  • 嵌入并不總是為問題選擇最相關的上下文。嵌入本質上是在文本和上下文之間分別確定的。

添加關鍵字過濾器是增強檢索結果的一種方法。但這也帶來了一系列挑戰。我們需要手動或通過 NLP 關鍵字提取/主題標記模型為每個文檔充分確定合適的關鍵字。此外,我們還需要從查詢中充分推斷出正確的關鍵字。

3

文檔摘要索引

e2c969b6-f062-11ed-90ce-dac502259ad0.png



在LlamaIndex中提出了一個新索引,它將為每個文檔提取/索引非結構化文本摘要。該索引可以幫助提高檢索性能,超越現有的檢索方法。它有助于索引比單個文本塊更多的信息,并且比關鍵字標簽具有更多的語義。它還允許更靈活的檢索形式:我們可以同時進行 LLM 檢索和基于嵌入的檢索。

4

怎么運行的

在構建期間,我們提取每個文檔,并使用 LLM 從每個文檔中提取摘要。我們還將文檔拆分為文本塊(節點)。摘要和節點都存儲在我們的文檔存儲抽象中。我們維護從摘要到源文檔/節點的映射。

在查詢期間,我們使用以下方法根據摘要檢索相關文檔以進行查詢:

  • 基于 LLM 的檢索:我們向 LLM 提供文檔摘要集,并要求 LLM 確定哪些文檔是相關的+它們的相關性分數。
  • 基于嵌入的檢索:我們根據摘要嵌入相似性(使用 top-k 截止值)檢索相關文檔。

請注意,這種檢索文檔摘要的方法(即使使用基于嵌入的方法)不同于基于嵌入的文本塊檢索。文檔摘要索引的檢索類檢索任何選定文檔的所有節點,而不是返回節點級別的相關塊。

存儲文檔的摘要還可以實現基于 LLM 的檢索。我們可以先讓 LLM 檢查簡明的文檔摘要,看看它是否與查詢相關,而不是一開始就將整個文檔提供給 LLM。這利用了 LLM 的推理能力,它比基于嵌入的查找更先進,但避免了將整個文檔提供給 LLM 的成本/延遲

5

想法

帶有摘要的文檔檢索可以被認為是語義搜索和所有文檔的強力摘要之間的“中間地帶”。我們根據與給定查詢的摘要相關性查找文檔,然后返回與檢索到的文檔對應的所有節點

我們為什么要這樣做?通過在文檔級別檢索上下文,這種檢索方法為用戶提供了比文本塊上的 top-k 更多的上下文。但是,它也是一種比主題建模更靈活/自動化的方法;不再擔心自己的文本是否有正確的關鍵字標簽!

6

例子

讓我們來看一個展示文檔摘要索引的示例,其中包含關于不同城市的維基百科文章。

本指南的其余部分展示了相關的代碼片段。您可以在此處找到完整的演練(這是筆記本鏈接)。

我們可以構建GPTDocumentSummaryIndex一組文檔,并傳入一個ResponseSynthesizer對象來合成文檔的摘要。

from llama_index import(
SimpleDirectoryReader,
LLMPredictor,
ServiceContext,
ResponseSynthesizer
)
from llama_index.indices.document_summary import GPTDocumentSummaryIndex
from langchain.chat_models import ChatOpenAI

#load docs,define service context
...

#build the index
response_synthesizer=ResponseSynthesizer.from_args(response_mode="tree_summarize",use_async=True)
doc_summary_index=GPTDocumentSummaryIndex.from_documents(
city_docs,
service_context=service_context,
response_synthesizer=response_synthesizer
)

建立索引后,我們可以獲得任何給定文檔的摘要:

summary=doc_summary_index.get_document_summary("Boston")

接下來,我們來看一個基于 LLM 的索引檢索示例。

from llama_index.indices.document_summary import DocumentSummaryIndexRetriever

retriever=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_context=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 asetof relevant nodesfora given index.`

請注意,除了文檔文本之外,LLM 還返回相關性分數:

8.0
Toronto((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,356in2021,it is the most populous cityinCanada...

高級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 engine
from llama_index.query_engine import RetrieverQueryEngine

#configure response synthesizer
response_synthesizer=ResponseSynthesizer.from_args()

#assemble query engine
query_engine=RetrieverQueryEngine(
retriever=retriever,
response_synthesizer=response_synthesizer,
)

#query
response=query_engine.query("What are the sports teams in Toronto?")
print(response)

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 代碼
    +關注

    關注

    30

    文章

    4753

    瀏覽量

    68368
  • 語言模型
    +關注

    關注

    0

    文章

    508

    瀏覽量

    10247
  • nlp
    nlp
    +關注

    關注

    1

    文章

    487

    瀏覽量

    22015

原文標題:LlamaIndex :面向QA 系統的全新文檔摘要索引

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    新文檔控件軟件!

    我們通過對在線文檔編輯的各種解決方案進行分析,列出了以下幾種方案: 基于WebOFFICE API這是一種新興起來的網頁上在線編輯瀏覽Office文檔的方式,目前全世界只有
    發表于 02-11 16:52

    TouchGFX 4.15是否可以使用有效的鏈接更新文檔

    是否可以使用有效的鏈接更新文檔。另一種方法是刪除超鏈接。這不會真正有幫助,但它會減少惡化。
    發表于 01-13 07:56

    請問能提供下K210 datasheet與standloneSDK最新文檔嗎?

    請問能提供下K210 datasheet(包含寄存器的那個)與standloneSDK最新文檔(官網下的文檔與github上的源碼有些不一樣)嗎?
    發表于 09-13 06:59

    基于詞頻統計的多文檔自動摘要生成方案

    文檔自動摘要技術可以向用戶提供一個簡潔、全面的摘要信息,因此研究多文檔自動摘要技術具有很重要的意義。本文提出了一種上下文敏感的基于詞頻統計
    發表于 12-18 16:58 ?12次下載

    電位器整定的定時器專用電路QA640896/QA640892

    電位器整定的定時器專用電路QA640896/QA640892B 摘要QA640896和QA640892B是臺灣宏太科技研制的定時器專用i
    發表于 06-03 15:36 ?29次下載

    基于知識圖譜的QA系統研究

    QA系統用于回答人們以自然語言形式提出的問題,其在互聯網、通信及醫療等領域獲得顯著的成功。其中,IBM研發的Watson系統就在與人類的答題比賽中獲勝并首次獲得100萬美金獎勵;蘋果的Siri
    發表于 10-10 14:59 ?0次下載
    基于知識圖譜的<b class='flag-5'>QA</b><b class='flag-5'>系統</b>研究

    探討面向駕駛員信息及娛樂系統全新嵌入式MPU產品解決方案

    探討面向駕駛員信息及娛樂系統全新嵌入式MPU產品解決方案
    發表于 10-31 14:01 ?10次下載
    探討<b class='flag-5'>面向</b>駕駛員信息及娛樂<b class='flag-5'>系統</b>的<b class='flag-5'>全新</b>嵌入式MPU產品解決方案

    基于HBase行鍵面向海量交通數據的HBase時空索引

    針對HBase無法直接建立時空索引所帶來的交通數據查詢性能問題,基于HBase行鍵設計了面向海量交通數據的HBase時空索引。首先利用Geohash降維方法將二維空間位置數據轉化為一維編碼,再與時間
    發表于 12-06 15:23 ?0次下載
    基于HBase行鍵<b class='flag-5'>面向</b>海量交通數據的HBase時空<b class='flag-5'>索引</b>

    基于網頁排名算法面向論文索引排名的啟發式方法

    為了提高學術論文檢索的精準性,進而為學術研究提供便利,提出了針對學術論文檢索問題的排名策略。首先,介紹了基于網頁排名算法面向論文索引排名的啟發式方法,其中利用Hash索引技術有效地減少了稀疏矩陣計算
    發表于 12-30 17:00 ?0次下載

    基于布谷鳥搜索算法與多目標函數的多文檔摘要方法

    為最大化生成摘要的信息量,提出一種基于布谷鳥搜索(CS)算法與多目標函數的多文檔摘要方法。對多文檔數據進行預處理,通過句子分割、分詞、移除停用詞和詞干化將
    發表于 03-30 11:44 ?11次下載
    基于布谷鳥搜索算法與多目標函數的多<b class='flag-5'>文檔</b><b class='flag-5'>摘要</b>方法

    VectorCAST/QA如何在LiteOS-A內核上實現系統白盒測試

    本文將通過演示實例介紹VectorCAST/QA如何在LiteOS-A內核上實現系統白盒測試,獲取被測程序的代碼覆蓋信息。具體實現在支持sudo超級用戶模式的Ubuntu 18.04(或以上)版本中
    的頭像 發表于 06-26 16:21 ?9358次閱讀
    VectorCAST/<b class='flag-5'>QA</b>如何在LiteOS-A內核上實現<b class='flag-5'>系統</b>白盒測試

    面向關系數據庫的智能索引調優方法

    面向關系數據庫的智能索引調優方法 ? 來源:《軟件學報》?,作者邱 濤等 ? 摘 要:數據庫索引是關系數據庫系統實現快速查詢的有效方式之一.智能索引
    的頭像 發表于 02-21 17:31 ?1299次閱讀
    <b class='flag-5'>面向</b>關系數據庫的智能<b class='flag-5'>索引</b>調優方法

    摘要模型理解或捕獲輸入文本的要點

    輸入文本的要點; ? (2)模型過度依賴語言模型,生成流暢但不充分的單詞。 ? 在本文研究中,提出了一個忠實增強摘要模型(FES),旨在解決這兩個問題,提高抽象摘要的忠實度。對于第一個問題,本文使用問答(QA)來檢查編碼器是否完
    的頭像 發表于 11-01 11:37 ?986次閱讀

    什么是LlamaIndexLlamaIndex數據框架的特點和功能

    LlamaIndex是一個數據框架,用于讓基于LLM的應用程序攝取、結構化和訪問私有或領域特定的數據。它提供Python和Typescript版本。
    的頭像 發表于 01-05 11:08 ?9181次閱讀
    什么是<b class='flag-5'>LlamaIndex</b>?<b class='flag-5'>LlamaIndex</b>數據框架的特點和功能

    微軟計劃在搜索引擎Bing中引入AI摘要功能

    近期,科技界傳來新動向,微軟緊隨百度與谷歌的步伐,宣布計劃在其搜索引擎Bing中引入先進的AI摘要功能,旨在為用戶帶來更加智能、豐富的搜索體驗。
    的頭像 發表于 07-26 14:23 ?437次閱讀