首頁 > 科技週邊 > 人工智慧 > 抹布系統的8種類型的塊 - 分析Vidhya

抹布系統的8種類型的塊 - 分析Vidhya

尊渡假赌尊渡假赌尊渡假赌
發布: 2025-03-06 12:00:20
原創
582 人瀏覽過

>解鎖在檢索型發電一代(抹布)中塊的力量:深度潛水

有效地處理大量文本數據對於構建強大而有效的檢索生成(RAG)系統至關重要。 本文探討了各種構成策略,對於優化數據處理和改善AI驅動應用程序的性能至關重要。 我們將深入研究不同的方法,強調他們的優勢和劣勢,並提供實用的例子。 目錄的

抹布中有什麼塊?
    >
  • 塊的重要性
  • 了解抹布架構和塊狀
  • >抹布系統的共同挑戰
  • 選擇最佳塊策略
  • 基於字符的文本塊
  • 遞歸字符文本用langchain
  • 分裂
  • 文檔特定的塊(html,python,json等)
  • >語義塊與蘭班和Openai
  • 代理分解(LLM驅動的塊)
  • >
  • 基於截面的塊
  • >上下文塊,用於增強檢索
  • >保存遠距離上下文的後期塊
  • 結論
抹布中有什麼塊?

8 Types of Chunking for RAG Systems - Analytics Vidhya8 Types of Chunking for RAG Systems - Analytics Vidhya 8 Types of Chunking for RAG Systems - Analytics Vidhya分解是將大型文本文檔分為較小,更易於管理的單元的過程。 這對於抹布系統至關重要,因為語言模型的上下文窗口有限。 塊確保相關信息保留在這些範圍之內,從而最大程度地提高信噪比並提高模型性能。 目的不僅是要拆分數據,而且是要優化其向模型的顯示,以增強可檢索性和準確性。

>

>

為什麼要塊很重要? 色度聯合創始人安東·特洛伊尼科夫(Anton Troynikov)強調,在上下文窗口中無關緊要的數據可顯著降低應用程序效率。 分塊對於:

至關重要

克服上下文窗口限制:

確保由於尺寸限製而不會丟失關鍵信息。

  1. 提高信號噪聲比率:過濾不相關的內容,提高模型精度。
  2. >提高檢索效率:促進相關信息的更快,更精確的檢索。
  3. 特定於任務的優化:允許根據特定的應用需求量身定制塊策略(例如,摘要與提問)。
  4. 抹布架構和塊

    8 Types of Chunking for RAG Systems - Analytics Vidhya

    抹布架構涉及三個關鍵階段:

    1. >塊:原始數據分為較小的,有意義的塊。
    2. 嵌入:塊被轉換為向量嵌入。
    3. 根據用戶查詢,檢索相關的塊
    4. > 檢索和生成:相關塊,LLM使用檢索到的信息生成響應。

    抹布系統中的挑戰 抹布系統面臨幾個挑戰:

    >
      檢索問題:
    1. 不准確或不完整地檢索相關信息。
    2. 生成困難:
    3. 幻覺,無關或有偏的輸出。
    4. 集成問題:
    5. 難以將檢索到的信息相干地組合。 >
    選擇正確的塊策略

    > 理想的塊策略取決於幾個因素:內容類型,嵌入模型和預期的用戶查詢。 考慮內容的結構和密度,嵌入模型的令牌限制以及用戶可能會提出的問題的類型。

    1。基於字符的文本塊

    這種簡單的方法根據字符數將文本分配到固定尺寸的塊中,無論語義含義如何。 雖然簡單明了,但它通常會破壞句子的結構和上下文。 示例使用Python:

    2。遞歸字符文本用langchain
    text = "Clouds come floating into my life..."
    chunks = []
    chunk_size = 35
    chunk_overlap = 5
    # ... (Chunking logic as in the original example)
    登入後複製
    登入後複製

    分裂 >這種方法使用多個分離器(例如,雙新線,單個新線,空格)遞歸地分配文本,並合併較小的塊以優化目標字符大小。 它比基於角色的塊更複雜,提供更好的上下文保存。 示例使用Langchain:

    3。文檔特定的塊
    # ... (LangChain installation and code as in the original example)
    登入後複製
    登入後複製

    使用格式特定的分隔符,此方法將塊適應不同的文檔格式(HTML,Python,Markdown等)。 這確保了塊尊重文檔的固有結構。 原始響應中提供了使用Langchain進行Python和Markdown的示例。

    4。語義塊與蘭班和Openai

    語義塊的語義塊根據語義含義分開文本,使用句子嵌入等技術來識別自然斷點。 這種方法確保每個塊代表一個連貫的想法。使用Langchain和OpenAI嵌入式的示例:

    5。代理塊(LLM驅動的分塊)

    >

    代理塊利用LLM來識別文本中的自然斷點,從而產生了更多相關的塊。 這種方法利用LLM對語言和上下文的理解來產生更有意義的細分。 示例使用OpenAI API:

    text = "Clouds come floating into my life..."
    chunks = []
    chunk_size = 35
    chunk_overlap = 5
    # ... (Chunking logic as in the original example)
    登入後複製
    登入後複製
    6。基於截面的塊

    >此方法利用文檔的固有結構(標題,小標題,部分)來定義塊。這對於結構良好的文檔(例如研究論文或報告)特別有效。 使用Pymupdf和潛在的Dirichlet分配(LDA)進行基於主題的塊:

    # ... (LangChain installation and code as in the original example)
    登入後複製
    登入後複製
    7。上下文塊

    上下文塊的重點是在每個塊中保存語義上下文。 這樣可以確保檢索到的信息連貫且相關。示例使用Langchain和自定義提示:

    # ... (OpenAI API key setup and code as in the original example)
    登入後複製
    登入後複製
    8。晚分塊

    >較晚的分塊延遲塊,直到為整個文檔生成嵌入後。這可以保留遠距離上下文依賴性,從而提高了嵌入和檢索的準確性。使用Jina嵌入模型的示例:

    # ... (OpenAI API key setup and code as in the original example)
    登入後複製
    登入後複製
    結論

    >有效的塊對於構建高性能的抹布系統至關重要。切塊策略的選擇顯著影響信息檢索的質量和產生的響應的連貫性。 通過仔細考慮數據的特徵和應用程序的特定要求,開發人員可以選擇最合適的塊方法來優化其抹布系統的性能。 請記住,始終優先考慮在每個塊中保持上下文的完整性和相關性。 >

以上是抹布系統的8種類型的塊 - 分析Vidhya的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板