超越基礎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
厭倦了管理眾多信用卡以追求最高回饋?玉山Unicard權益切換信用卡應運而生,讓您輕鬆切換消費方案,從1%無上限基本回饋,透過三種方案任意切換,最高可享4.5%回饋,更有限時核卡加碼至7.5%。本文深入解析各方案優勢、設定方式,並提供日常與旅行配置建議,讓您成為聰明消費的「回饋金獵人」。
Thumbnail
厭倦了管理眾多信用卡以追求最高回饋?玉山Unicard權益切換信用卡應運而生,讓您輕鬆切換消費方案,從1%無上限基本回饋,透過三種方案任意切換,最高可享4.5%回饋,更有限時核卡加碼至7.5%。本文深入解析各方案優勢、設定方式,並提供日常與旅行配置建議,讓您成為聰明消費的「回饋金獵人」。
Thumbnail
話說身為短線交易者,每天要作的事情就是從盤勢觀察、到籌碼流向,再到經過多維度資料數據交叉比對,盤中盯著分K、江波圖和五檔報價,算計著每一分K線的轉折,雖能換來即時驗證判斷的快感與成就,但長期下來,卻也衍生眼睛與肩頸卻成了抹不去的職業病。
Thumbnail
話說身為短線交易者,每天要作的事情就是從盤勢觀察、到籌碼流向,再到經過多維度資料數據交叉比對,盤中盯著分K、江波圖和五檔報價,算計著每一分K線的轉折,雖能換來即時驗證判斷的快感與成就,但長期下來,卻也衍生眼睛與肩頸卻成了抹不去的職業病。
Thumbnail
快要年末了,對於即將要出國的我,即時來了這張信用卡真的很不錯。認識我的人都知道我因為工作常常要出國,所以這次感謝玉山銀行合作邀請,讓我可以體驗這張卡的美好。
Thumbnail
快要年末了,對於即將要出國的我,即時來了這張信用卡真的很不錯。認識我的人都知道我因為工作常常要出國,所以這次感謝玉山銀行合作邀請,讓我可以體驗這張卡的美好。
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 是一個理想的解決方案。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News