RAG情境化分段向量模型voyage-context-3,聚焦分段細節,融入全局文檔上下文

最近看到一個有意思的工作,原文來自:

https://blog.voyageai.com/2025/07/23/voyage-context-3/?utm_source=TWITTER&utm_medium=ORGANIC_SOCIAL

voyage-context-3:聚焦分段細節,融入全局文檔上下文

概要: Voyage AI 推出了 voyage-context-3,這是一款情境化分段向量模型。它能為文本分段(chunk)生成向量,在無需手動添加元數據或上下文的情況下,自動捕獲完整的文檔上下文,從而顯著提升檢索準確性。與傳統方法(無論是否進行增強)相比,其檢索精度更高。同時,voyage-context-3 更簡單、更快、成本效益更優,可直接替代標準向量模型,無需改變現有工作流程,并且降低了對分段策略的敏感性。

在分段級別和文檔級別的檢索任務中,voyage-context-3 的表現均優于:

  • OpenAI-v3-large 分別高出 14.24%和 12.56%。
  • Cohere-v4 分別高出 7.89% 和 5.64%。
  • Jina-v3 延遲分段(late chunking)分別高出 23.66% 和 6.76%。
  • 情境化檢索(contextual retrieval)分別高出 20.54% 和 2.40%。

voyage-context-3 還支持多維度和多種量化選項,這得益于 Matryoshka 學習(Matryoshka learning)和量化感知訓練(quantization-aware training),在保持檢索精度的同時,顯著降低了向量數據庫的存儲成本。例如,voyage-context-3(二進制,512 維)在性能上超越了 OpenAI-v3-large(浮點,3072維)0.73%,同時將向量數據庫存儲成本降低了 99.48%——這意味著幾乎相同的性能,但成本僅為 0.5%。

voyage-context-3 是一款新穎的情境化分段向量模型,其分段向量(chunk embedding)不僅編碼了分段自身內容,還能夠捕獲完整文檔的上下文信息。voyage-context-3 可以無縫替代現有 RAG(檢索增強生成)流水線中使用的標準、上下文無關的向量模型,通過捕獲相關上下文信息來提高檢索質量。

與采用獨立分段的上下文無關模型(例如 OpenAI-v3-large、Cohere-v4),以及通過重疊分段或附加元數據等方式為分段添加上下文的現有方法相比,voyage-context-3 在簡化技術棧的同時,顯著提升了檢索性能。

在分段級別(檢索最相關的分段)和文檔級別(檢索包含最相關分段的文檔)檢索任務中,voyage-context-3 平均表現均優于:

  • OpenAI-v3-large:分段級別高出 14.24%,文檔級別高出 12.56%。
  • Cohere-v4:分段級別高出 7.89%,文檔級別高出5.64%。
  • 情境增強方法 Jina-v3 延遲分段1:分段級別高出 23.66%,文檔級別高出 6.76%。
    *情境化檢索2:分段級別高出 20.54%,文檔級別高出 2.40%。
  • voyage-3-large:分段級別高出7.96%,文檔級別高出 2.70%。

RAG 中的分段挑戰

聚焦細節與全局上下文的權衡。 在檢索增強生成(RAG)系統中,將大型文檔分解為更小的片段(即分段,chunks)是一個常見且往往必要的步驟。最初,分段主要是受限于模型有限的上下文窗口(盡管 Voyage 模型近期已顯著擴展了這一窗口)。更重要的是,分段能使向量包含對相應文本段的精確細粒度信息,從而使搜索系統能夠精準定位相關文本段。然而,這種聚焦有時會犧牲更廣闊的上下文。此外,如果不進行分段,用戶必須將完整的文檔傳遞給下游 LLM,這會增加成本,因為許多 token 可能與查詢無關。

例如,如果一份 50 頁的法律文件被向量化為一個單一的向量,那么諸如"客戶端與服務提供商基礎設施之間的所有數據傳輸應采用 GCM 模式的 AES-256 加密"這樣的詳細信息,很可能在聚合中被掩蓋或丟失。通過將文檔分段成段落并分別向量化每個段落,生成的向量可以更好地捕獲"AES-256 加密"之類的局部細節。但是,這樣的段落可能不包含全局上下文——例如"客戶名稱"——而這對于回答"客戶 VoyageAI 希望使用哪種加密方法?"這樣的查詢是必需的。

理想情況下,開發者期望同時擁有聚焦細節和全局上下文,且無需進行權衡。目前常用的變通方法——如分段重疊(chunk overlaps)、使用 LLM 進行上下文摘要(例如 Anthropic 的情境化檢索),或元數據增強——可能會給本已復雜的 AI 應用流水線引入額外的步驟。這些步驟通常需要進一步的實驗來調優,從而增加了開發時間和操作成本。

情境化分段向量模型介紹

Voyage AI 推出了情境化分段向量(contextualized chunk embeddings)模型,它能夠同時捕獲聚焦細節和全局上下文。該模型能一次性處理整個文檔,并為每個分段生成獨立的向量。每個向量不僅編碼了其分段內的具體信息,還編碼了粗粒度的文檔級上下文,從而實現了更豐富、語義感知更強的檢索。關鍵在于,神經網絡能夠同時"看到"所有分段,并智能地決定哪些來自其他分段的全局信息應注入到各個分段的向量中。

  1. 自動感知完整文檔上下文。 情境化分段向量模型能捕獲文檔的完整上下文,無需用戶手動或明確提供上下文信息。這與獨立的片段向量相比,顯著提升了檢索性能,并且比其他上下文增強方法更簡單、更快速、更經濟。
  2. 無縫即插即用,存儲成本相當。 voyage-context-3 可直接替代現有搜索系統、RAG 流水線和智能體系統中使用的標準、上下文無關的向量模型。它接受相同的輸入分段,并生成具有相同輸出維度和量化方式的向量——這些向量現已通過文檔級上下文進行了豐富,從而提升了檢索性能。與引入大量向量和存儲成本的 ColBERT 模型不同,voyage-context-3 生成的向量數量相同,且完全兼容任何現有向量數據庫。
  3. 對分段策略的敏感度更低。 盡管分段策略仍然會影響 RAG 系統的行為——并且最佳方法取決于數據和下游任務——但情境化分段向量模型在經驗上已證明能降低系統對這些策略的敏感度,因為模型會智能地用全局上下文補充過短的分段。

情境化分段向量模型優于手動或基于 LLM 的上下文處理方法,因為神經網絡經過訓練,能夠從大型數據集中智能地捕獲上下文,從而超越了特設方法(ad hoc effort)的局限性。voyage-context-3 在訓練時同時使用了文檔級和分段級相關性標簽,并采用了雙重目標,旨在使模型在保留分段級粒度的同時,融入全局上下文。

評估詳情

分段級別與文檔級別檢索。 對于給定的查詢,分段級別檢索(chunk-level retrieval)返回最相關的分段,而文檔級別檢索(document-level retrieval)則返回包含這些分段的文檔。下圖展示了來自 n 個文檔的分段在這兩種檢索級別上的表現。最相關的分段(通常稱為"黃金分段")以粗體綠色顯示;其對應的父文檔以藍色顯示。

數據集。 評估在 93 個特定領域檢索數據集上進行,這些數據集涵蓋了九個領域:網絡評論、法律、醫療、長文檔、技術文檔、代碼、金融、對話和多語言。具體列表可在此電子表格中查看。每個數據集包含一組查詢和一組文檔。每份文檔由通過合理的分段策略創建的有序分段序列組成。與往常一樣,每個查詢都有若干相關文檔,可能附帶一個表示相關程度的分數,稱之為文檔級相關性標簽,可用于評估文檔級檢索。此外,每個查詢還包含一份最相關分段的列表及其相關性分數,這些分段通過包括 LLM 標注在內的各種方式精心整理。這些被稱為分段級相關性標簽,用于分段級檢索評估。

評估還包含了專有的真實世界數據集,例如技術文檔和包含標題元數據的文檔。最后,使用與先前關于檢索質量與存儲成本分析相同的數據集,評估了 voyage-context-3 在不同向量維度和各種量化選項下的性能,采用標準單向量檢索評估方法。

模型。 評估了 voyage-context-3 以及幾種替代模型,包括:OpenAI-v3-large(text-embedding-3-large)、Cohere-v4(embed-v4.0)、Jina-v3 延遲分段(jina-embeddings-v3)、情境化檢索、voyage-3.5voyage-3-large

指標。 對于給定的查詢,根據余弦相似度檢索出前 10 個文檔,并報告歸一化折讓累積增益(NDCG@10),這是一種用于衡量檢索質量的標準指標,也是召回率的一種變體。

結果

所有評估結果都可以在這個電子表格中找到,以下將詳細分析這些數據。

特定領域質量。 下面的柱狀圖顯示了 voyage-context-3 在每個領域中,使用全精度 2048 向量時的平均檢索質量。在以下分段級檢索圖表中,可以看到 voyage-context-3 在所有領域中都優于所有其他模型。如前所述,對于分段級檢索,voyage-context-3 平均分別優于 OpenAI-v3-large、Cohere-v4、Jina-v3 延遲分段和情境式檢索 14.24%、7.89%、23.66% 和 20.54%。

voyage-context-3 在文檔級檢索中也超越了所有其他模型,這在下面的相應圖表中有所體現。平均而言,voyage-context-3 在文檔級檢索方面分別優于 OpenAI-v3-large、Cohere-v4、Jina-v3 延遲分段和情境式檢索 12.56%、5.64%、6.76% 和 2.40%。

真實世界數據集。 voyage-context-3 在專有的真實世界技術文檔和內部數據集上表現強勁,超越了所有其他模型。以下柱狀圖展示了分段級檢索結果。文檔級檢索結果可在評估電子表格中查看。

分段敏感度。 與標準、上下文無關的向量模型相比,voyage-context-3 對分段大小變化的敏感度較低,并且在分段較小時表現更強。例如,在文檔級檢索中,voyage-context-3 的方差僅為 2.06%,而 voyage-3-large 的方差為 4.34%。當使用 64 token 分段時,voyage-context-3 性能優于 voyage-3-large6.63%。

上下文元數據。 同時評估了當上下文元數據被前置到分段時的性能。即使將元數據前置到由 voyage-3-large 向量的分段中,voyage-context-3 仍然能夠超越它高達 5.53%,這表明 voyage-context-3 在無需額外工作和資源來前置元數據的情況下,實現了更好的檢索性能。

Matryoshka 向量與量化。 voyage-context-3 支持 2048、1024、512 和 256 維的向量,這得益于 Matryoshka 學習(Matryoshka learning)3。同時,它還支持多種向量量化選項——包括 32 位浮點、有符號和無符號 8 位整數以及二進制精度——并能最大限度地減少質量損失。為了進一步闡釋上述圖表,下圖展示了文檔中的單向量檢索。與 OpenAI-v3-large(浮點,3072 維)相比,voyage-context-3(int8,2048 維)在檢索質量提高 8.60% 的同時,將向量數據庫成本降低了 83%。此外,將 OpenAI-v3-large(浮點,3072 維)與 voyage-context-3(二進制,512 維)進行比較,向量數據庫成本降低了 99.48%,而檢索質量提高了 0.73%;這意味著幾乎相同的檢索性能,但成本僅為 0.5%。

如何使用 voyage-context-3

voyage-context-3 現已推出免費 2 億個 token 。可以通過此快速入門教程開始體驗。

我們可以直接傳遞文本分割器(chunker)的輸出,它已經被構造為所需的列表列表 - 每個內部列表包含單個文檔的塊。

# Contextualized embedding model
query_embd_context = vo.contextualized_embed(inputs=[[query]], model="voyage-context-3", input_type="query").results[0].embeddings[0]embds_obj = vo.contextualized_embed(inputs=texts,model="voyage-context-3",input_type="document"
)contextualized_chunk_embds = [emb for r in embds_obj.results for emb in r.embeddings]

使用上下文化的塊嵌入執行語義相似性搜索。現在,我們可以執行相同的語義相似性搜索,但使用上下文化的塊嵌入。

# Compute the similarity
# Voyage embeddings are normalized to length 1, therefore dot-product and cosine 
# similarity are the same.
similarities_context = np.dot(contextualized_chunk_embds, query_embd_context)# Rank similiarities
ranks_context = np.argsort(np.argsort(-similarities_context)) + 1# Combine chunks with their ranks and similarities
ranked_contextualized_chunks = []
for i, (chunk_data, similarity, rank) in enumerate(zip(all_chunks, similarities_context, ranks_context)):ranked_contextualized_chunks.append({"chunk": chunk_data["chunk"],"doc_id": chunk_data["doc_id"],"similarity": float(similarity),"rank": int(rank)})print(f"Contextualized chunk similarities:\n{json.dumps(ranked_contextualized_chunks, indent=2)}")

下表總結了(上下文無關)和(上下文化塊嵌入)的檢索排名。我們可以看到,在上下文嚴重丟失的情況下,上下文化塊嵌入可以顯著提高檢索準確率。它沒有優先考慮引用 SEC 文件的塊,而是正確地將 Leafy Inc. 收入增長的信息列為最相關信息,并將“黃金塊”置于頂部。

輸入問題:query = “What was the revenue growth for Leafy Inc. in Q2 2024?”

用戶可以將 voyage-context-3 無縫集成到任何現有的 RAG 流水線中,無需進行任何下游更改。情境化分段向量模型尤其適用于:

  1. 長篇、非結構化文檔,例如白皮書、法律合同和研究報告。
  2. 跨分段推理,即查詢需要跨越多個章節的信息。
  3. 高敏感度檢索任務——例如金融、醫療或法律領域——在這些領域,遺漏上下文可能導致代價高昂的錯誤。

  1. Jina. " 長上下文向量模型中的延遲分段。"2024 年 8 月22 日。 ??

  2. Anthropic. " 情境化檢索介紹。"2024 年 9 月 19 日。 ??

  3. Matryoshka 學習:相關論文可參考 https://arxiv.org/abs/2205.13147。 ??

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/90610.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/90610.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/90610.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機體系結構中的中斷服務程序ISR是什么?

計算機體系結構中的中斷服務程序ISR是什么? 在計算機體系結構中,中斷服務程序(Interrupt Service Routine, ISR) 是操作系統或硬件直接調用的關鍵代碼模塊,用于響應來自硬件設備、軟件異常或系統事件的中斷信號。其核心…

開源項目XBuilder前端框架

spx-gui/ 配置文件package.json 項目依賴和腳本配置vite.config.ts Vite構建工具配置tsconfig.json TS項目配置主文件tsconfig.app.json 應用程序的TS配置tsconfig.node.json Node.js環境的TS配置index.html 應用入口HTML文件src/ 源碼目錄main.ts 應用入口文件,初始…

0723 單項鏈表

Part 1.完成單向鏈表,并完成下面功能1.單鏈表節點創建鏈表是物理空間上不連續的一個結構,需要創建一個next作為指向下一個節點的指針,所以需要建立一個結構體包含數據域,next指針域,記錄長度的數據域。因為長度只有頭節…

基于 ASP.NET Web 應用程序(.NET Framework)的花店系統

1.1功能模塊實現1.1.1整體結構界面由兩部分組成:左側導航欄、右側內容展示區。使用了 Bootstrap 5 的樣式庫,并結合了 ASP.NET MVC 的 Html.ActionLink 和 Razor 條件判斷語句來動態生成菜單項。1.1.2導航欄功能模塊導航欄基礎結構導航欄基礎結構使用 Bo…

C++ Qt6 CMake qml文件啟動方式說明

在Qt6之后,Qt程序默認使用CMake進行構建,當然也可以使用qmake, 本篇博客介紹Qt6.8之前和Qt6.8版本中QtQuick程序的啟動方式。 在QtQuick程序main.cpp里qml的文件啟動分為兩種:(1)直接加載qml文件,(2)加載qml模塊,下面分別介紹這兩種啟動方式。 方式1:直接啟動qml文…

字符串 “asdasjkfkasgfgshaahsfaf” 經過哈夫曼編碼之后存儲比特數是多少?

要計算字符串 “asdasjkfkasgfgshaahsfaf” 經過哈夫曼編碼后的存儲比特數,需按以下步驟進行:步驟 1:統計字符出現頻率先統計字符串中每個字符的出現次數:a:出現 6 次s:出現 6 次d:出現 1 次j&a…

什么是游戲盾(高防版)?

隨著網絡游戲產業的快速發展,游戲服務器的安全問題日益受到關注。DDoS攻擊、CC攻擊等網絡威脅常常導致游戲卡頓、斷線甚至服務器宕機,嚴重影響玩家體驗。游戲盾(高防版)是一種專為游戲業務設計的網絡安全防護服務,集成…

openGauss數據庫在CentOS 7 中的單機部署與配置

部署 版本選擇 通過openGuass官網下載地址 ,我們可以看到它支持x86_64與Aarch64兩種平臺,又分成openEuler 22、openEuler 20、Centos 7以及Docker 版本。 進入CentOS 7標簽,看到又分成企業版、輕量版、極簡版與分布式鏡像版。 本文只討論…

HTTP響應狀態碼詳解

HTTP 響應狀態碼(HTTP Status Code)是服務器在響應客戶端請求時返回的 3 位數字代碼,用于表示請求的處理狀態。以下是常見的 HTTP 狀態碼及其含義: 1xx(信息性狀態碼) 表示請求已被接收,需要繼…

Pytorch中register_buffer和torch.nn.Parameter的異同

說下register_buffer和Parameter的異同 相同點方面描述追蹤都會被加入 state_dict(模型保存時會保存下來)。與 Module 的綁定都會隨著模型移動到 cuda / cpu / float() 等而自動遷移。都是 nn.Module 的一部分都可以通過模塊屬性訪問,如 self…

吉吉巳資源整站源碼完整打包,適用于搭建資源聚合/整合類站點,全網獨家,拿來就用

想要搭建一個資源整合站點,如影視聚合類站點、資訊聚合類站點、圖集聚合類站點等,需要花費大量的時間來查找合適的系統或源碼。然后要去測試,修復bug,一直到能夠正常的運營使用,花費的時間絕對不短,今天分享…

嵌入式學習的第三十五天-進程間通信-HTTP

TCP/IP協議模型:應用層:HTTP;傳輸層:TCP UDP;網絡層:IPv4 IPv6網絡接口層一、HTTP協議1. 萬維網WWW(World Wide Web) 世界范圍內的,聯機式的信息儲藏所。 萬維網解決了獲取互聯網上的數據時需要解決的以下問題&#x…

es 和 lucene 的區別

1. Lucene 是“發動機”,ES 是“整車”Lucene:只是一個 Java 庫,提供倒排索引、分詞、打分等底層能力。你必須自己寫代碼處理索引創建、更新、刪除、分片、分布式、故障恢復、API 封裝等所有邏輯。Elasticsearch:基于 Lucene 的分…

AS32S601 系列 MCU芯片GPIO Sink/Source 能力測試方法

一、引言隨著電子技術的飛速發展,微控制器(MCU)在工業控制、汽車電子、商業航天等眾多領域得到了廣泛應用。國科安芯推出的AS32S601 系列 MCU 以其卓越的性能和可靠性,成為了眾多設計工程師的首選之一。為了確保其在實際應用中的穩…

JAVA-08(2025.07.24學習記錄)

面向對象類package com.mm;public class Person {/*** 名詞-屬性*/String name;int age;double height;/*** 動詞-方法*/public void sleep(String add) {System.out.println("我在" add "睡覺");}public String introduce() {return "我的名字是&q…

地下隧道管廊結構健康監測系統 測點的布設及設備選型

隧道監測背景 隧道所處地下環境復雜,在施工過程中會面臨圍堰變形、拱頂沉降、凈空收斂、初襯應力變化、土體塌方等多種危險情況。在隧道營運過程中,也會受到材料退化、地震、人為破壞等因素影響,引發隧道主體結構的劣化和損壞,若不…

node.js卸載與安裝超詳細教程

文章目錄一、卸載Step1:通過控制面板刪除node版本Step2:刪除node的安裝目錄Step3:查找.npmrc文件是否存在,有就刪除。Step4:查看以下文件是否存在,有就刪除Step5:打開系統設置,檢查系…

飛算JavaAI“刪除接口信息” 功能:3 步清理冗余接口,讓管理效率翻倍

在飛算JavaAI的接口設計與管理流程中,“刪除接口信息” 功能為用戶提供了靈活調整接口方案的便利。該功能的存在,讓用戶能夠在接口生命周期的前期(審核階段)及時清理無需創建的接口,保證接口管理的簡潔性與高效性。一、…

行業熱點丨SimLab解決方案如何高效應對3D IC多物理場與ECAD建模挑戰?

半導體行業正快速超越傳統2D封裝技術,積極采用 3D集成電路(3D ICs)和2.5D 先進封裝等方案。這些技術通過異構芯粒、硅中介層和復雜多層布線實現更高性能與集成度。然而,由于電子計算機輔助設計(ECAD)數據規…

2025暑期—05神經網絡-BP網絡

按誤差反向傳播(簡稱誤差反傳)訓練的多層前饋網絡線性回歸或者分類不需要使用神經元,原有最小二程即可。求解J依次變小。使用泰勒展開,只看第一階。偏導是確定的,需要讓J小于0的delta WkWk構造完成后 J(Wk1)已知&#…