Anthropic的「上下文檢索」技術 – 提升檢索增強型生成系統的關鍵突破
檢索增強型生成(RAG)是企業賺錢的重要途徑,持續改進RAG技術對企業至關重要。Anthropic最新推出的「上下文檢索」技術,通過在原始文本前添加上下文描述,可以顯著提升檢索和生成的準確性。該技術結合了嵌入模型、BM25索引和重排序等關鍵技術,為企業提供了一個簡單有效的RAG解決方案,有望帶來可觀的商業利益。
1 典型的檢索增強型生成系統(RAG)概述
00:00:00 ~ 00:02:36
1.1 介紹檢索增強型生成的商業價值和新的檢索方法
00:00:00 ~ 00:00:55
檢索增強型生成的商業價值和新的檢索方法
企業公司能夠透過檢索增強型生成(Retrieval Augmented Generation, RAG)來獲得可觀的商業利益。這是因為 RAG 技術能直接為企業帶來價值。因此,持續創新 RAG 技術一直是企業的重點工作。即使改善了語言模型(Language Model, LM)的質量,企業也要想辦法改善 RAG,以提升任何聊天機器人或內部搜索系統的性能。這種性能提升直接意味著金錢價值的增加,是企業容易接受的解決方案。
近日,Anthropic 發布了一種名為「上下文檢索」(Contextual Retrieval)的新型 RAG 技術。這種技術聽起來很高深,但實際上非常簡單。同時,這也可能是 Anthropic 的一種銷售策略,旨在推廣自身的解決方案。
總的來說,檢索增強型生成是企業賺錢的重要途徑,持續改進這一技術對企業至關重要。Anthropic 最新推出的「上下文檢索」技術,為企業提供了一種簡單有效的 RAG 解決方案。
1.2 現有檢索增強型生成系統的典型架構介紹
00:00:57 ~ 00:02:36
現有檢索增強型生成系統的典型架構介紹
現有的檢索增強型生成系統(Retrieval-Augmented Generation, RAG)通常採用以下架構:
首先,系統會建立文本語料庫(Text Corpus),包含來自各種來源的文件,如PDF、網頁等。接下來,系統會對這些文本進行處理和索引,創建兩種類型的索引:嵌入模型(Embedding Model)和TF-IDF(Term Frequency-Inverse Document Frequency)索引。
當用戶提出查詢時,系統會根據查詢,從嵌入模型和TF-IDF索引中檢索出相關的內容。這些檢索結果會經過排序融合(Rank Fusion),然後進入生成模型(Generative Model)。生成模型會綜合這些檢索結果,利用語言模型生成一個針對用戶查詢的回答。
總的來說,現有的檢索增強型生成系統依靠預先建立的文本索引,在用戶提出查詢時快速檢索相關內容,並將這些內容融合到生成模型中,最終生成回答。這樣的架構可以有效利用已有的大量文本資料,提升系統的回答能力。
本文介紹了現有檢索增強型生成系統的典型架構,包括文本語料庫建立、索引構建、以及檢索融合和生成回答的過程。這有助於更好地理解這類系統的工作原理和設計思路。
2 Anthropic提出的上下文檢索預處理技術
00:02:39 ~ 00:06:15
2.1 詢問現有知識並將其整合到檢索中
00:02:39 ~ 00:02:57
詢問現有知識並將其整合到檢索中
現代資訊系統往往採取一種常見的方式來回答使用者的問題:首先搜尋資料庫中現有的知識,將其整合提煉,然後使用語言模型生成最終答案。
然而,Anthropic 公司提出了一個不同的理念。他們建議,除了採取上述做法,我們還可以嘗試一些新的方式。比如,在檢索和整合知識的同時,也可以適當質疑或修正現有的知識。畢竟,知識並非永恆不變,而是需要不斷更新的。
通過這種方式,我們不僅可以獲取最終的答案,更能夠反思和優化現有的知識體系,使其更加完善和貼近真實。這不僅可以提高回答的準確性,也有利於知識的持續進化。讓我們以更開放和批判的態度對待知識,共同推進人類知識的不斷進步。
2.2 Anthropic提出的新方法:上下文檢索預處理
00:02:58 ~ 00:06:15
2.2.1 解釋上下文提取預處理的概念和流程
00:02:58 ~ 00:03:02
上下文提取預處理是一個重要的自然語言處理概念。它指的是對文本數據進行預處理,以便從中提取有意義的上下文資訊。這個過程通常包括以下幾個步驟:
首先,需要對原始文本進行斷詞和詞性標注,以識別出文本中的關鍵詞彙和語義角色。接下來,會應用各種自然語言處理技術,如命名實體識別、句法分析和語義推理,來深入理解文本的含義和上下文。
這種上下文提取的預處理,可以為後續的信息檢索和自然語言理解任務提供更加豐富和準確的輸入。通過挖掘文本中蘊含的語義和情境信息,可以更好地把握文本的實際含義,從而提高各種自然語言處理應用的性能。
總之,上下文提取預處理是一個非常重要的技術,在自然語言處理領域有著廣泛的應用前景。
上下文擷取預處理是一個重要的自然語言處理概念。它指的是對文本資料進行預處理,以從中提取有意義的上下文資訊。
這個過程通常包括以下幾個步驟:
首先,需要對原始文本進行斷詞和詞性標注,以識別出文本中的關鍵詞彙和語義角色。
接下來,會應用各種自然語言處理技術,如命名實體識別、句法分析和語義推理,來深入理解文本的含義和上下文。
這種上下文擷取的預處理,可以為後續的信息檢索和自然語言理解任務提供更加豐富和準確的輸入。
通過挖掘文本中蘊含的語義和情境信息,可以更好地把握文本的實際含義,從而提高各種自然語言處理應用的性能。
總之,上下文擷取預處理是一個非常重要的技術,在自然語言處理領域有著廣泛的應用前景。
2.2.2 展示上下文提取預處理的實際示例
00:03:04 ~ 00:06:15
展示上下文提取預處理的實際示例
我們來看一個具體的例子。原始的文字塊(chunk)是:「公司的營收較上一季成長 3%」。通常做法是將這個文字塊送入詞嵌入模型、TF-IDF 計算等,並將結果存入向量資料庫和 TF-IDF 索引中。
然而,Anthropic 提出了一個小技巧,可以大幅提升檢索的準確度。他們建議在送入語言模型前,先加上一個上下文描述。這個上下文描述是透過詢問語言模型「這個文字塊來自哪個文件,是在什麼情境下出現的」而獲得的。
舉例來說,這個文字塊來自 SEC 財報,描述的是 Acme 公司在 2023 年第二季的營收表現。上一季的營收為 3.14 億美元,本季成長 3%。
有了這樣的上下文描述,再將文字塊和上下文一起送入檢索系統,可以大幅提升檢索的精確度和相關性。這是一個非常 簡單但有效的預處理技巧。不過我們要注意,上下文的品質取決於所使用的語言模型,並非萬無一失的解決方案。
3 上下文檢索技術的好處與衡量指標
00:06:17 ~ 00:10:18
3.1 不確定性的引入及概念解釋
00:06:17 ~ 00:06:55
不確定性的引入及概念解釋
引入一些不確定性的因素可能會對系統的運作產生影響。我們需要瞭解添加這些元素的目的和原理。
首先 Anthropic 表示 CLA 在回應每個提示時 會添加 50 到 100 個字元的上下文資訊 ,然後將其置於相應的區塊之前。這一步驟的目的是創造出具有上下文的區塊。
有了這些上下文化的區塊之後,接下來要做的就與前述步驟相同:創建上下文化的嵌入模型,然後再根據這些嵌入模型執行其他相關的運算,例如 TF-IDF 索引、向量資料庫等。
引入不確定性的做法可能會為整個系統帶來一些變數,而不是像先前那樣的確定性流程。我們需要更深入地瞭解這種方法的原因和效果,以確保系統的穩定性和可靠性。
Introducing Uncertainty and Conceptual Explanations
Introducing some uncertain factors may affect the operation of the system. We need to understand the purpose and principles of adding these elements.
First, Anthropic says that CLA will add 50 to 100 tokens of context information to each prompt and then prepend it to the corresponding chunk. The purpose of this step is to create contextualized chunks.
With these contextualized chunks, the next step is the same as the previous one: create contextualized embedding models, and then perform other related calculations based on these embedding models, such as TF-IDF indexing, vector databases, and so on.
The approach of introducing uncertainty may introduce some variables to the entire system, rather than the deterministic process as before. We need to understand the reasons and effects of this approach more deeply to ensure the stability and reliability of the system.
3.2 上下文嵌入和BM25指數的應用及效果分析
00:06:57 ~ 00:10:18
3.2.1 解釋 CLA 模型使用上下文的方法以及帶來的改進
00:06:57 ~ 00:10:18
使用上下文的方法改善 CLA 模型效能
CLA 模型是一種強大的檢索技術,能夠根據上下文為您提供更精準的搜索結果。根據 Anthropic 的研究,此技術可以帶來顯著的改善:
減少搜尋失敗率
採用 CLA 模型後,前 20 個搜尋結果中的搜尋失敗率從 5.7% 下降到 3.7%,降幅達 35%。這意味著您可以更準確地找到所需的資訊。不過,這個改善幅度是否足以影響您的業務,需要您權衡利弊。如果搜尋精準度對您的業務至關重要,例如醫療保健等關鍵領域,那麼採用 CLA 模型絕對是值得的。但如果只是尋找一般的企業檔案,這樣的改善可能不太重要。
靈活選擇分塊策略
除了使用 CLA 模型,您也可以優化分塊策略以進一步提升效能。不同的分塊方式會影響最終的搜尋結果,您可以嘗試各種方式,找出最適合自己的方法。此外,選擇合適的詞嵌入模型也很重要,Gemini 和 Voyage 詞嵌入模型在測試中表現尤為出色。
總的來說,CLA 模型是一種值得嘗試的技術,能夠顯著提升搜尋效率。但您需要權衡改善幅度與實施成本,選擇最適合自己業務需求的方案。合理的分塊策略和詞嵌入模型的選擇,也是提升效能的關鍵所在。
4 上下文檢索預處理與重排序機制的結合
00:10:20 ~ 00:15:02
4.1 簡單了解如何通過嵌入、BM25和重排名提升檢索性能
00:10:20 ~ 00:10:54
從嵌入(embedding)、BM25排序以及重排名等技術來提升檢索性能
嵌入與BM25:提升搜索效果
單純使用嵌入技術進行檢索,已經是一個不錯的基準解決方案。但如果將嵌入和BM25排序算法結合使用,效果會更加出色。透過嵌入獲取語義相關性,再加上BM25的統計特徵,可以進一步提升搜尋效果。
增加上下文資訊:優化搜索效果
除了嵌入和BM25,增加文檔的上下文資訊也是一個有效的方法。您可以選擇使用人工生成的上下文,或是利用語言模型(LM)自動生成。不同的方式都會帶來一定的開發和維護成本,需要權衡取捨。但無論選擇哪種方式,增加上下文都可以明顯改善搜索效果。
從嵌入(embedding)、BM25排序以及重排名等技術來提升檢索性能
嵌入與BM25:提升搜索效果
單純使用嵌入技術進行檢索,已經是一個不錯的基準解決方案。但如果將嵌入和BM25排序算法結合使用,效果會更加出色。透過嵌入獲取語義相關性,再加上BM25的統計特徵,可以進一步提升搜尋效果。
增加上下文資訊:優化搜索效果
除了嵌入和BM25,增加文檔的上下文資訊也是一個有效的方法。您可以選擇使用人工生成的上下文,或是利用語言模型(LM)自動生成。不同的方式都會帶來一定的開發和維護成本,需要權衡取捨。但無論選擇哪種方式,增加上下文都可以明顯改善搜索效果。
4.2 詳細討論加入上下文和重排名機制的優缺點
00:10:55 ~ 00:11:29
先來討論一下加入上下文和重排名機制的優缺點:
優點:
透過重新排序的方式,可以提高檢索結果的相關性和適切性。在用戶提出問題前,對已檢索到的資訊進行二次篩選和排序,能確保最終呈現給用戶的內容更符合需求。這種方式可以彌補純檢索系統的不足,提升整體的回應效果。
缺點:
重排名機制增加了系統的運算複雜度和處理時間,可能會影響整體的回應速度。另外,過度依賴重排名可能會掩蓋檢索系統本身的不足,阻礙系統的進一步改善。在設計時需要平衡效率和準確性,避免過度依賴重排名功能。
詳細討論加入上下文和重排名機制的優缺點:
優點:
通過重新排序的方式,可以提高檢索結果的相關性和適切性。在用戶提出問題前,對已檢索到的資訊進行二次篩選和排序,能確保最終呈現給用戶的內容更符合需求。這種方式可以彌補純檢索系統的不足,提升整體的回應效果。
缺點:
重排名機制增加了系統的運算複雜度和處理時間,可能會影響整體的回應速度。另外,過度依賴重排名可能會掩蓋檢索系統本身的不足,阻礙系統的進一步改善。在設計時需要平衡效率和準確性,避免過度依賴重排名功能。
4.3 總結整個過程中的關鍵技術點和實施建議
00:11:31 ~ 00:15:02
4.3.1 使用重排序提高檢索準確度及說明實施注意事項
00:11:31 ~ 00:15:02
使用重排序提高檢索準確度及說明實施注意事項
重排序是一種提高檢索系統準確性的常見方法。通過將檢索結果進一步排序,可以提高相關性最高的內容排在前面。以下是實施重排序的關鍵步驟及注意事項:
步驟:
1. 先進行初始檢索,獲得top N個候選結果。
2. 將候選結果和查詢一起輸入到重排序模型中,由模型給每個候選結果打分。
3. 按照模型打分對候選結果進行重排序,選取得分最高的top K個結果。
4. 將這top K個重排序結果作為上下文輸入到生成模型中,生成最終的回覆內容。
注意事項:
1. 重排序會增加系統的延遲和計算開銷,需要在準確度和效率之間進行權衡。
2. 選擇合適的重排序模型和超參數非常重要,這會對最終效果產生重大影響。
3. 重排序效果依賴於初始檢索的質量,要確保基礎檢索系統已經足夠優秀。
4. 需要監控重排序對生成質量的影響,避免出現負面影響。
總之,通過合理使用重排序技術,可以顯著提高檢索系統的準確度和用戶體驗,是值得認真思考的優化方案。
FAQ
什麼是檢索增強型生成(RAG)的商業價值?
企業公司能夠透過RAG技術直接獲得可觀的商業利益,因此持續改進RAG一直是企業的重點工作。即使改善了語言模型的質量,企業也要想辦法改善RAG,以提升任何聊天機器人或內部搜索系統的性能。這種性能提升直接意味著金錢價值的增加,是企業容易接受的解決方案。
現有RAG系統的典型架構是什麼?
現有的RAG系統通常包括以下架構:建立文本語料庫、構建嵌入模型和TF-IDF索引、根據用戶查詢從索引中檢索相關內容、將檢索結果融合後進入生成模型生成最終答案。這樣的架構可以有效利用已有的大量文本資料,提升系統的回答能力。
Anthropic提出的「上下文檢索」技術是什麼?
Anthropic提出了一種「上下文檢索」預處理技術。它的核心思想是在檢索和整合知識的同時,也適當質疑或修正現有知識,以提高回答的準確性並推進知識進化。具體做法是在原始文本前添加50-100個token的上下文描述,以豐富文本的語義信息,進而提升後續的檢索和生成效果。
上下文檢索技術有哪些好處和衡量指標?
上下文檢索技術主要帶來以下好處:1)減少搜尋失敗率,精準度提升35%;2)可以靈活選擇不同的分塊策略和詞嵌入模型優化效能;3)引入一定的不確定性,需要平衡系統的穩定性和可靠性。衡量指標包括搜尋失敗率、檢索結果的相關性和適切性等。
如何通過嵌入、BM25和重排名來提升檢索性能?
1)將嵌入和BM25排序算法結合使用,可以進一步提升搜尋效果,嵌入獲取語義相關性,BM25提供統計特徵。2)增加文檔的上下文信息,無論是人工生成還是利用語言模型自動生成,都可以明顯改善搜索效果。3)重排名機制可以提高檢索結果的相關性,但需要平衡效率和準確性,避免過度依賴。
如何實施重排序來提高檢索準確度?
1.進行初始檢索獲得top N個候選結果。2.將候選結果和查詢輸入到重排序模型中打分。3.按得分重排序,選取得分最高的top K個結果。4.將這top K個重排序結果作為上下文輸入到生成模型中,生成最終回覆。注意事項包括:權衡準確度和效率、選擇合適的重排序模型和超參數、確保基礎檢索系統足夠優秀、監控重排序對生成質量的影響。