使用 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 使用雙管齊下的方法來做到這一點。這些是模型實現的單獨的預訓練任務,但它們的輸出協同工作以豐富輸入的含義。
- 掩碼語言建模 (MLM):首先,BERT 隨機隱藏輸入標記的一部分。然后,它使用模型來找出哪些選項對隱藏部分有意義。為此,它需要理解不僅單詞順序之間的關系,而且該順序如何影響含義。
- 下一句預測 (NSP):雖然 MLM 主要在句子級別起作用,但 NSP 進一步放大。此任務確保句子和段落邏輯地流動,因此它學習預測在這些更廣泛的上下文中哪些內容有意義。
當 BERT 模型分析查詢時,編碼器的每一層都獨立于其他層進行分析。這允許每一層生成獨特的結果,不受其他編碼器的影響。這樣輸出的是一個更豐富、更健壯的數據集。
了解 BERT 的功能非常重要,因為 BGE-M3 基于 BERT。以下示例演示了 BERT 的工作原理。
BERT 的實際應用
讓我們以一個基本查詢為例,看看 BERT 如何從中創建嵌入:
Milvus is a vector database built for scalable similarity search.
第一步是將查詢字符串中的單詞轉換為標記。
圖片
您會注意到,模型在標記的開頭添加了 [CLS],在結尾添加了 [SEP]。這些組件只是分別指示句子級別上句子開頭和結尾的標記。
接下來,需要將標記轉換為嵌入。
圖片
此過程的第一部分是嵌入。在這里,嵌入矩陣將每個標記轉換為向量。接下來,BERT 添加位置嵌入,因為單詞的順序很重要,而此嵌入保持這些相對位置不變。最后,段嵌入只是跟蹤句子之間的斷點。
我們可以看到此時嵌入輸出是單色的,以表示稀疏嵌入。為了實現更高的密度,這些嵌入會經過多個編碼器。就像上面識別的獨立工作的預訓練任務一樣,這些編碼器也這樣做。嵌入在通過編碼器時會不斷進行修改。序列中的標記為細化每個編碼器生成的表示提供了重要的上下文。
一旦此過程完成,最終輸出將比預編碼器輸出更密集的嵌入。當使用單個標記進行進一步處理或導致單個密集表示的任務時,尤其如此。
BGE-M3 進入聊天
BERT 為我們提供了密集嵌入,但這里的目標是生成學習的稀疏嵌入。所以現在我們終于可以接觸到 BGE-M3 模型了。
BGE-M3 本質上是一個高級機器學習模型,它通過專注于通過多功能性、多語言性和多粒度來增強文本表示,從而將 BERT 推向了更遠。所有這些都是說,它不僅僅是通過生成學習的稀疏嵌入來創建密集嵌入,這些嵌入提供了兩全其美的優勢:詞義和精確的詞語選擇。
BGE-M3 的實際應用
讓我們從與理解 BERT 相同的查詢開始。運行查詢會生成與上面看到的相同的上下文嵌入序列。我們可以將此輸出稱為 (Q)。
圖片
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 模型提供了高度的通用性和先進的自然語言處理能力,這些能力在各個行業和部門都有應用,可以顯著提高運營效率和服務質量。