天天看點

使用 BGE-M3 生成學習型稀疏嵌入

作者:雲雲衆生s
使用 BGE-M3 生成學習型稀疏嵌入

BGE-M3 是一種用于建立學習型稀疏嵌入的 ML 模型,它将精度和語義豐富度相結合,用于進階自然語言處理。

譯自 Generate Learned Sparse Embeddings With BGE-M3,作者 Stephen Batifol。

有時,開發人員在選擇 LLM 檢索方法時需要做出選擇。他們可以使用傳統的稀疏嵌入或密集嵌入。稀疏嵌入非常适合關鍵字比對過程。我們通常在自然語言處理 (NLP) 中找到稀疏嵌入,這些高維嵌入通常包含零值。這些嵌入中的次元表示一種(或多種)語言中的标記。它使用非零值來顯示每個标記與特定文檔的相關性。

另一方面,密集嵌入的次元較低,但它們不包含任何零值。顧名思義,密集嵌入充滿了資訊。這使得密集嵌入非常适合語義搜尋任務,使比對“含義”的精神而不是精确的字元串變得更容易。

BGE-M3 是一種機器學習模型,用于建立一種稱為“學習型稀疏嵌入”的先進嵌入類型。這些學習型嵌入的優點是它們結合了稀疏嵌入的精确性和密集嵌入的語義豐富性。該模型使用稀疏嵌入中的标記來學習哪些其他标記可能相關或關聯,即使它們沒有在原始搜尋字元串中明确使用。最終,這将産生一個包含豐富相關資訊的嵌入。

了解 BERT

來自 Transformer 的雙向編碼器表示(或BERT)不僅僅是表面上的東西。它是使 BGE-M3 和SPLADE 等進階機器學習模型成為可能的底層架構。

BERT 處理文本的方式不同于傳統模型。它不是僅僅按順序讀取文本字元串,而是同時檢查所有内容,并将所有元件之間的關系考慮在内。BERT 使用雙管齊下的方法來做到這一點。這些是模型實作的單獨的預訓練任務,但它們的輸出協同工作以豐富輸入的含義。

  1. 掩碼語言模組化 (MLM):首先,BERT 随機隐藏輸入标記的一部分。然後,它使用模型來找出哪些選項對隐藏部分有意義。為此,它需要了解不僅單詞順序之間的關系,而且該順序如何影響含義。
  2. 下一句預測 (NSP):雖然 MLM 主要在句子級别起作用,但 NSP 進一步放大。此任務確定句子和段落邏輯地流動,是以它學習預測在這些更廣泛的上下文中哪些内容有意義。

當 BERT 模型分析查詢時,編碼器的每一層都獨立于其他層進行分析。這允許每一層生成獨特的結果,不受其他編碼器的影響。這樣輸出的是一個更豐富、更健壯的資料集。

了解 BERT 的功能非常重要,因為 BGE-M3 基于 BERT。以下示例示範了 BERT 的工作原理。

BERT 的實際應用

讓我們以一個基本查詢為例,看看 BERT 如何從中建立嵌入:

Milvus is a vector database built for scalable similarity search.

第一步是将查詢字元串中的單詞轉換為标記。

使用 BGE-M3 生成學習型稀疏嵌入

您會注意到,模型在标記的開頭添加了 [CLS],在結尾添加了 [SEP]。這些元件隻是分别訓示句子級别上句子開頭和結尾的标記。

接下來,需要将标記轉換為嵌入。

使用 BGE-M3 生成學習型稀疏嵌入

此過程的第一部分是嵌入。在這裡,嵌入矩陣将每個标記轉換為向量。接下來,BERT 添加位置嵌入,因為單詞的順序很重要,而此嵌入保持這些相對位置不變。最後,段嵌入隻是跟蹤句子之間的斷點。

我們可以看到此時嵌入輸出是單色的,以表示稀疏嵌入。為了實作更高的密度,這些嵌入會經過多個編碼器。就像上面識别的獨立工作的預訓練任務一樣,這些編碼器也這樣做。嵌入在通過編碼器時會不斷進行修改。序列中的标記為細化每個編碼器生成的表示提供了重要的上下文。

一旦此過程完成,最終輸出将比預編碼器輸出更密集的嵌入。當使用單個标記進行進一步處理或導緻單個密集表示的任務時,尤其如此。

BGE-M3 進入聊天

BERT 為我們提供了密集嵌入,但這裡的目标是生成學習的稀疏嵌入。是以現在我們終于可以接觸到 BGE-M3 模型了。

BGE-M3 本質上是一個進階機器學習模型,它通過專注于通過多功能性、多語言性和多粒度來增強文本表示,進而将 BERT 推向了更遠。所有這些都是說,它不僅僅是通過生成學習的稀疏嵌入來建立密集嵌入,這些嵌入提供了兩全其美的優勢:詞義和精确的詞語選擇。

BGE-M3 的實際應用

讓我們從與了解 BERT 相同的查詢開始。運作查詢會生成與上面看到的相同的上下文嵌入序列。我們可以将此輸出稱為 (Q)。

使用 BGE-M3 生成學習型稀疏嵌入

BGE-M3 模型深入研究這些嵌入,并試圖在更細粒度的層面上了解每個标記的重要性。這方面有幾個方面。

  • 标記重要性估計: BGE-M3 不會将 [CLS] 标記表示 Q[0] 視為唯一可能的表示。它還會評估序列中每個标記 Q[i] 的上下文嵌入。
  • 線性變換: 該模型還會擷取 BERT 輸出,并使用線性層為每個标記建立重要性權重。我們可以将 BGE-M3 生成的權重集稱為 W_{lex}。
  • 激活函數: 然後,BGE-M3 對 W_{lex} 和 Q[i] 的乘積應用線性整流單元 (ReLU) 激活函數,以計算每個标記的項權重 w_{t}。使用 ReLU 確定項權重為非負數,有助于嵌入的稀疏性。
  • 學習的稀疏嵌入: 最終的輸出結果是一個稀疏嵌入,其中每個标記都有一個權重值,表示它對原始輸入字元串的重要性。

BGE-M3 在現實世界中的應用

将 BGE-M3 模型應用于現實世界的用例可以幫助證明這種機器學習模型的價值。這些是組織可以從該模型了解大量文本資料中的語言細微差别能力中獲益的領域。

客戶支援自動化 - 聊天機器人和虛拟助手

您可以使用 BGE-M3 為聊天機器人和虛拟助手提供動力,進而顯着增強客戶支援服務。這些聊天機器人可以處理各種客戶查詢,提供即時響應并了解複雜的問題和上下文資訊。它們還可以從互動中學習,随着時間的推移不斷改進。

優勢:

  • 全天候可用性: 為客戶提供全天候支援。
  • 成本效益: 減少對大型客戶支援團隊的需求。
  • 改善客戶體驗: 快速準确的響應提高了客戶滿意度。
  • 可擴充性: 可以同時處理大量查詢,確定在高峰時段提供一緻的服務。

内容生成和管理,用于營銷和媒體

您可以利用 BGE-M3 為部落格、社交媒體、廣告等生成高品質内容。它可以根據所需的語氣、風格和上下文建立文章、社交媒體文章,甚至完整的報告。您還可以使用此模型來總結長篇文檔、建立摘要和生成産品描述。

優勢:

  • 效率: 快速生成大量内容。
  • 一緻性: 在不同的内容片段中保持一緻的語氣和風格。
  • 降低成本: 降低對大型内容創作團隊的需求。
  • 創造力: 有助于集思廣益和生成創意内容想法。

醫療資料分析 - 臨床文檔和分析

醫療保健領域的開發人員可以使用 BGE-M3 分析臨床文檔和患者記錄,提取相關資訊并幫助生成全面的醫療報告。它還可以幫助從大量醫療資料中識别趨勢和見解,進而支援更好的患者護理和研究。

優勢:

  • 節省時間: 減少醫療保健專業人員在文檔方面花費的時間。
  • 準确性: 提高醫療記錄和報告的準确性。
  • 洞察力生成: 識别可以為更好的臨床決策提供資訊的模式和趨勢。
  • 合規性: 有助于確定文檔符合監管标準。

結論

BGE-M3 模型提供了高度的通用性和先進的自然語言處理能力,這些能力在各個行業和部門都有應用,可以顯着提高營運效率和服務品質。