超越基礎RAG:手把手教你實現查詢擴展、自查詢和混合搜索等4種進階技術

更新於 發佈於 閱讀時間約 7 分鐘

在大語言模型(LLM)應用中,檢索增強生成(RAG)技術已成為提升回答品質的關鍵。然而,簡單的RAG往往無法滿足複雜場景的需求。本文將深入剖析4種進階RAG演算法,並結合LLM twin系統的實際案例,探討如何優化檢索效果。


一、查詢擴展:擴大語義覆蓋範圍

傳統RAG僅使用單一向量查詢,容易忽略重要資訊。查詢擴展技術通過LLM生成多個相關查詢,擴大了語義覆蓋範圍。例如,對於「LLM的最新進展」這一查詢,我們可以擴展為:

1. 大語言模型在2024年的突破性成果

2. LLM在自然語言處理任務中的表現提升

3. 開源LLM專案的發展趨勢

4. LLM在特定領域應用的新進展

5. 減少LLM訓練成本的創新方法


這種方法能夠捕獲更多相關上下文,提高檢索的全面性。在LLM twin系統中,我們使用GPT-4生成這些擴展查詢,確保覆蓋多個角度。


實現代碼示例:

```python

def query_expansion(query: str) -> List[str]:

prompt = f"請基於以下查詢生成5個相關但不同角度的查詢:\n{query}\n\n生成的查詢:"

response = openai.ChatCompletion.create(

model="gpt-4",

messages=[{"role": "user", "content": prompt}]

)

expanded_queries = response.choices[0].message.content.split('\n')

return expanded_queries

```


二、自查詢:精確提取關鍵資訊


自查詢技術利用LLM從原始查詢中提取關鍵元數據,如標籤或作者ID。這些提取的資訊可用於後續的精確過濾。在LLM twin系統中,我們主要提取作者ID,以確保檢索結果來自特定作者。


實現代碼示例:

```python

def self_query(query: str) -> Dict[str, Any]:

prompt = f"從以下查詢中提取作者ID(如果存在):\n{query}\n\n提取結果:"

response = openai.ChatCompletion.create(

model="gpt-4",

messages=[{"role": "user", "content": prompt}]

)

author_id = response.choices[0].message.content.strip()

return {"author_id": author_id if author_id else None}

```


三、混合與過濾向量搜索:結合精確匹配與語義相似


純向量搜索難以處理精確關鍵詞匹配。混合搜索通過結合向量搜索和關鍵詞搜索,實現了語義相似性和精確匹配的平衡。在LLM twin系統中,我們採用過濾向量搜索方法,即在向量搜索結果上應用元數據過濾。


實現代碼示例:

```python

def hybrid_search(query: str, author_id: str, k: int = 5) -> List[Dict]:

vector = embed(query)

filter_condition = models.FieldCondition(

key="author_id",

match=models.MatchValue(value=author_id)

)

results = qdrant_client.search(

collection_name="vector_posts",

query_filter=models.Filter(must=[filter_condition]),

query_vector=vector,

limit=k

)

return results

```


四、重排序:優化檢索結果排序


重排序技術使用更強大的模型(如GPT-4)對初步檢索結果進行二次評估和排序。這能顯著提升最終返回結果的相關性。在LLM twin系統中,我們使用prompt工程技巧指導GPT-4進行重排序。


實現代碼示例:

```python

def rerank(query: str, results: List[Dict]) -> List[Dict]:

prompt = f"請對以下檢索結果進行相關性排序,考慮與查詢'{query}'的相關程度:\n"

for i, result in enumerate(results):

prompt += f"{i+1}. {result['content'][:100]}...\n"

prompt += "\n請返回排序後的結果索引,最相關的排在前面。"

response = openai.ChatCompletion.create(

model="gpt-4",

messages=[{"role": "user", "content": prompt}]

)

reranked_indices = [int(idx) for idx in response.choices[0].message.content.split(',')]

return [results[i-1] for i in reranked_indices]

```


結合這四種技術,我們可以顯著提升RAG系統的檢索效果。在實際應用中,可根據具體需求靈活組合這些技術。例如,對於需要高準確度的場景,可以強化自查詢和混合搜索;而對於需要廣泛知識覆蓋的場景,則可以側重查詢擴展和重排序。


值得注意的是,雖然這些技術能夠大幅提升檢索質量,但也會增加系統複雜度和計算成本。在實際部署時,需要權衡效果提升和資源消耗,選擇最適合的優化策略組合。


此外,這些技術的效果很大程度上依賴於底層向量數據庫的性能。在LLM twin系統中,我們選擇了Qdrant作為向量數據庫,其卓越的性能和靈活的API為實現這些進階技術提供了堅實基礎。有興趣深入了解Qdrant的讀者可以訪問其官方網站:https://qdrant.tech/

留言
avatar-img
留言分享你的想法!
avatar-img
小罗LA的沙龍
0會員
18內容數
小罗LA的沙龍的其他內容
2024/09/19
身為程式設計師,我們總是希望能打造一個舒適高效的工作環境。但市面上那些動輒上千元的「必備神器」真的有必要嗎?其實只要幾百塊,就能大幅提升你的工作效率和舒適度。今天就來分享10個平價又實用的工作臺升級小物,讓你的程式碼質量蹭蹭往上長! 1. 120W USB-C 傳輸線:告別充電煩惱 隨著
2024/09/19
身為程式設計師,我們總是希望能打造一個舒適高效的工作環境。但市面上那些動輒上千元的「必備神器」真的有必要嗎?其實只要幾百塊,就能大幅提升你的工作效率和舒適度。今天就來分享10個平價又實用的工作臺升級小物,讓你的程式碼質量蹭蹭往上長! 1. 120W USB-C 傳輸線:告別充電煩惱 隨著
2024/09/17
在嵌入式設備中,電池狀態的估算一直是個棘手的問題。不同於傳統的固定模型,利用機器學習來預測電池剩餘電量(SOC)成為了一個極具潛力的方向。然而,在急於套用模型之前,我們往往忽視了一個關鍵步驟——探索性數據分析(EDA)。 EDA的重要性不言而喻。它不僅幫助我們理解數據的本質,還為後續的模型選擇
2024/09/17
在嵌入式設備中,電池狀態的估算一直是個棘手的問題。不同於傳統的固定模型,利用機器學習來預測電池剩餘電量(SOC)成為了一個極具潛力的方向。然而,在急於套用模型之前,我們往往忽視了一個關鍵步驟——探索性數據分析(EDA)。 EDA的重要性不言而喻。它不僅幫助我們理解數據的本質,還為後續的模型選擇
2024/09/17
人工智能(AI)和機器學習(ML)正在改變我們生活的方方面面,從購物推薦到醫療診斷,再到犯罪預測。我們常常認為這些技術工具是客觀公正的,能夠幫助我們擺脫人類的偏見和主觀判斷。然而,事實並非如此簡單。 讓我們從一個著名的案例說起。2018年,亞馬遜公司被爆出其招聘AI系統存在性別歧視。這個系統被
2024/09/17
人工智能(AI)和機器學習(ML)正在改變我們生活的方方面面,從購物推薦到醫療診斷,再到犯罪預測。我們常常認為這些技術工具是客觀公正的,能夠幫助我們擺脫人類的偏見和主觀判斷。然而,事實並非如此簡單。 讓我們從一個著名的案例說起。2018年,亞馬遜公司被爆出其招聘AI系統存在性別歧視。這個系統被
看更多
你可能也想看
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
本文介紹了檢索增強生成(RAG)技術的概念、運作原理、應用場景以及相關資源。RAG 技術結合檢索和生成的優勢,提升了生成內容的準確性和相關性,同時能有效保護隱私數據。對於希望應用 GPT 技術但擔心數據外洩的企業來說,RAG 是一個理想的解決方案。
Thumbnail
本文介紹了檢索增強生成(RAG)技術的概念、運作原理、應用場景以及相關資源。RAG 技術結合檢索和生成的優勢,提升了生成內容的準確性和相關性,同時能有效保護隱私數據。對於希望應用 GPT 技術但擔心數據外洩的企業來說,RAG 是一個理想的解決方案。
Thumbnail
對於熱衷於語言科技的你, 大語言模型(LLMs)在自然語言處理(NLP)領域的發展無疑是一個革命性的進展。 從傳統的規則系統到基於深度學習的方法, LLMs展現了在理解、生成和翻譯人類語言方面的巨大突破。 這不僅是技術上的飛躍, 更是開啟了新的應用和可能性。 下面將介紹這一變革帶來的三大
Thumbnail
對於熱衷於語言科技的你, 大語言模型(LLMs)在自然語言處理(NLP)領域的發展無疑是一個革命性的進展。 從傳統的規則系統到基於深度學習的方法, LLMs展現了在理解、生成和翻譯人類語言方面的巨大突破。 這不僅是技術上的飛躍, 更是開啟了新的應用和可能性。 下面將介紹這一變革帶來的三大
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News