OpenAI Embedding 和密集檢索(如 BERT/DPR)進行語義相似度搜索有什么區別和聯系

OpenAI Embedding 和密集檢索(如 BERT/DPR)其實是“同一種思想的不同實現”,它們都屬于Dense Retrieval(密集向量檢索),只不過使用的模型、部署方式和調用方式不同。


🧠 首先搞清楚:什么是“密集檢索”?

只要滿足這兩個條件,就叫“密集檢索”:

  1. 文本(問題、文檔)轉成高維向量
  2. 用**向量相似度(如余弦、內積)**來進行匹配,而不是關鍵詞匹配

? 所以:

  • BERTDPR 本地生成 embedding,然后用 faiss 檢索 → 屬于密集檢索
  • OpenAI 的 embedding API(比如 text-embedding-3-small)生成 embedding,然后在本地或云上檢索 → 也屬于密集檢索

它們只是實現方式不同,但原理一模一樣


🔍 二者的主要區別對比如下:

特性BERT / DPR 本地部署OpenAI Embedding
模型來源開源(如 sentence-transformers商業閉源(OpenAI API)
運行方式本地運行模型(CPU/GPU)調用 API(聯網)
embedding 大小常見是 384 或 768 維最新的 text-embedding-3-small 是 1536 維
質量與泛化開源模型精度不錯,但略低于 GPT embeddingOpenAI embedding 訓練在海量數據上,質量非常高
響應速度本地部署后很快受限于網絡,API 請求有延遲
成本免費(但你需要 GPU 資源)收費(按 token 計費)
可控性可調參、微調不可修改,只能用 API 提供的模型
語言支持中文模型支持不一OpenAI embedding 對中文支持也很好

🔁 聯系:可以互換使用

你可以用 OpenAI embedding 替代 BERT 向量來做密集檢索流程:

👇 流程一致:

  1. 對“問題”和所有“文檔”做 embedding(向量化)
  2. 把所有文檔向量存進 FAISS / Elasticsearch 向量索引
  3. 用戶提問 → 向量化 → 相似度查找 → 返回最相關內容

📦 只是你用的是:

  • OpenAI 提供的嵌入服務(云計算 + 高質量模型)
  • 而不是本地 BERT 模型(開源、可自定義)

🎯 舉個例子(OpenAI embedding 檢索流程):

from openai import OpenAI
import faiss
import numpy as npclient = OpenAI(api_key="你的 key")# 文檔庫
texts = ["蘋果是一種水果", "小米是一家公司", "香蕉富含鉀"]# 批量生成文檔向量
def get_embedding(text):response = client.embeddings.create(input=text,model="text-embedding-3-small")return response.data[0].embeddingdoc_embeddings = [get_embedding(t) for t in texts]
dimension = len(doc_embeddings[0])
index = faiss.IndexFlatL2(dimension)
index.add(np.array(doc_embeddings))# 用戶查詢
query = "香蕉的營養成分有哪些?"
query_embedding = np.array([get_embedding(query)])# 搜索
D, I = index.search(query_embedding, k=2)
for idx in I[0]:print("Top Match:", texts[idx])

🧠 總結一下:

對比點密集檢索(BERT/DPR)OpenAI Embedding 檢索
屬于什么都屬于 Dense Retrieval
本質做什么都是文本→向量→向量相似度匹配
區別使用的模型來源不同(開源 vs 商業 API)
聯系可以完全互換,流程一致,只是底層模型不同

如果你關心“什么時候該用哪個?”:

  • ? 快速開發、效果為主、不介意花點錢 → 用 OpenAI embedding,更穩更省心
  • ? 要部署在內網、模型可控、避免外網 API → 用本地 BERT / DPR
  • ? 做中文檢索或問答 → 可以試試 shibing624/text2vec-base-chinesebge-small-zh

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

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

相關文章

Linux電源管理(3)_關機和重啟的過程

原文:Linux電源管理(3)_Generic PM之重新啟動過程 1.前言 在使用計算機的過程中,關機和重啟是最先學會的兩個操作。同樣,這兩個操作在Linux中也存在,可以關機和重啟。這就是這里要描述的對象。在Linux Ke…

C# 繼承詳解

繼承是面向對象程序設計(OOP)中的核心概念之一,它極大地增強了代碼的重用性、擴展性和維護性。本篇文章將詳細講解C#中的繼承機制,包括基礎概念、語法特法、多重繼承(通過接口實現)、繼承的規則和實際應用示…

SQLAlchemy 2.x 異步查詢方法比較

SQLAlchemy 2.x 異步查詢中常用的 結果處理方法速查表,包含方法說明、使用場景、返回類型及典型用途。 SQLAlchemy 查詢結果處理方法速查表(適用于 AsyncSession) 方法 說明 返回類型 示例 SQL 示例輸出 scalars().all() 獲取單列所有…

極客天成參與”AI助力智慧城市構建”主題演講暨招商引智專題推介活動

4月7日下午,北京極客天成科技有限公司參加了天津市河東區數據局舉辦的“AI賦能智慧城市構建”主題演講暨招商引智專題推介活動。 活動中,華為(天津)有限公司數字政府解決方案總監姜華庚圍繞“政務大模型賦能智慧城市建設”&#x…

理解 EKS CloudWatch Pod CPU Utilization 指標:與 `kubectl top` 及節點 CPU 的關系

在使用 AWS EKS 時,CloudWatch Container Insights 提供了豐富的容器級別監控指標,幫助我們深入了解應用的運行狀態。如下截圖中的 ContainerInsights pod_cpu_utilization 指標就是一個非常重要的維度。本文將詳細解釋這個指標的含義,并將其…

使用pip3安裝軟件包報錯`externally-managed-environment`的幾種解決方式

1、pip3安裝軟件包報錯 報錯externally-managed-environment的原因: 從 Python 3.11 開始引入了 PEP 668 規范,該規范限制了在系統級 Python 環境中使用 pip 安裝第三方包,以避免與系統包管理器(如 apt)產生沖突。 如…

spring security用戶退出

Spring security默認實現了用戶退出的功能,用戶退出主要考慮退出后會話如何管理以及跳轉到哪個頁面。HttpSecurity類提供了logout()方法開啟退出登錄的支持,默認觸發用戶退出操作的URL為“/logout”,用戶退出時同時也會清除Session等默認用戶…

愛普生SG2520HHN晶振數據中心服務器的理想解決方案

在當今數字化時代,數據中心作為海量數據存儲、處理與傳輸的核心樞紐,其服務器的高效穩定運行至關重要。服務器作為其核心設備,對時鐘信號的精度和穩定性提出了嚴苛要求——微小的時序誤差可能導致數據傳輸失敗或系統宕機。愛普生 SG2520HHN 差…

LeetCode 155題解 | 最小棧

最小棧 一、題目鏈接二、題目三、算法原理思路1:用一個變量存儲最小元素思路2:雙棧普通棧和最小棧 四、編寫代碼五、時間復雜度 一、題目鏈接 最小棧 二、題目 三、算法原理 棧用數組、鏈表實現都行,最主要的就是在能在常數時間內檢索到最…

es+kibana---集群部署

其實一般es要跑3個節點的,這樣才能做高可用,處理并發大,但是我這里只是一個pod mkdir -p /stroe/data/es es搭建: #【拉取鏡像】 #docker pull elasticsearch:6.8.7 #docker pull busybox:1.28 【導入鏡像】 docker load -i es.…

WPF常用技巧匯總 - Part 2

WPF常用技巧匯總-CSDN博客 主要用于記錄工作中發現的一些問題和常見的解決方法。 目錄 WPF常用技巧匯總-CSDN博客 1. DataGrid Tooltip - Multiple 2. DataGrid Tooltip - Cell值和ToolTip值一樣 3. DataGrid Tooltip - Cell值和ToolTip值不一樣 4. DataGrid - Ctrl A /…

uniapp打包apk如何實現版本更新

我們做的比較簡單,在后端設置版本號,并在uniapp的config.js中定義版本號,每次跟后端的進行對比,不一致的話就更新。 一、下載apk 主要代碼(下載安裝包,并進行安裝,一般得手動同意安裝&#xf…

局部和整體的關系

Prompt:為什么要研究局部和整體的關系呢?是因為很多情況下,局部就能表達出整體? 這是一個非常本質的問題,其實你已經接近數學和物理中“幾何本質”的核心了。我們研究局部和整體的關系,是因為:…

企業辦公協同平臺安全一體化生態入住技術架構與接口標準分析報告

全球組織數字化與智能化背景下 企業辦公協同平臺安全一體化生態入住技術架構與接口標準分析報告 一、背景與市場需求 市場規模與增量 根據Statista數據,全球協同辦公平臺市場規模預計從2023年的$480億增長至2027年的$900億,年復合增長率(CAG…

【2025最新面試八股常問知識點】HTTP1.0,HTTP1.1,HTTP2.0,HTTP3.0,HTTP的進化之路。

HTTP 超文本傳輸協議(英文:HyperText Transfer Protocol,縮寫:HTTP)是一種用于分布式、協作式和超媒體信息系統的應用層協議。設計HTTP最初的目的是為了提供一種發布和接收HTML頁面的方法。通過HTTP或者HTTPS協議請求的…

【算法練習】歸并排序和歸并分治

文章目錄 1.歸并排序1.1 遞歸版本1.2 非遞歸版本 2.歸并分治2.1 計算數組的小和2.2 計算翻轉對 1.歸并排序 歸并排序的核心步驟是: 拆分:將無序數組不斷對半拆分成小塊,直到每個小塊只剩一個元素(自然有序)。 合并&a…

域對齊是什么

域對齊(Domain Alignment)是在機器學習和計算機視覺等領域中常用的技術 定義 域對齊旨在將不同域(Domain)的數據映射到一個共同的特征空間中,使得來自不同域的數據在該空間中具有相似的分布。這里的“域”可以指代不…

【linux】git安裝、升級

git安裝、升級 一、快捷安裝版本2.18.0二、自定義版本安裝(安裝、升級)1、移除舊文件2、安裝所需依賴3、選擇指定版本4、解壓文件、編譯5、增加環境變量,驗證是否版本 三、升級 一、快捷安裝版本2.18.0 yum install git git --version二、自…

編程日志4.24

棧的鏈表基礎表示結構 #include<iostream> #include<stdexcept> using namespace std; //模板聲明&#xff0c;表明Stack類是一個通用的模板&#xff0c;可以用于存儲任何類型的元素T template<typename T> //棧的聲明 //Stack類的聲明&#xff0c;表示一…

《冰雪傳奇點卡版》:探索冰雪世界的傳奇旅程!

《冰雪傳奇點卡版》以“純凈打金”為核心&#xff0c;摒棄復雜付費坑&#xff0c;回歸經典傳奇玩法。以下從核心玩法、資源獲取、職業搭配、交易變現四維度展開&#xff0c;助你高效開啟冰雪傳奇之旅。 一、核玩法解析&#xff1a;如何高效獲取資源&#xff1f; 1. 職業定位與…