超越基礎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/

0會員
18內容數
留言0
查看全部
發表第一個留言支持創作者!
小罗LA的沙龍 的其他內容
在人工智能和機器學習領域,有一類演算法借鑒了生物進化的智慧,它就是遺傳演算法。這種演算法通過模擬自然選擇和遺傳的過程,能夠在龐大的解空間中找到接近最優的解決方案。今天,我們就來深入探討遺傳演算法的原理、應用場景,以及如何用Python實現一個簡單的遺傳演算法。 遺傳演算法的核心思想來自於達爾文
在快速發展的人工智能(AI)時代,我們對AI的能力仍存在眾多誤解。本文分析人工智能與人類智慧的三個關鍵差異,包括情感的真實性、理解的體驗與行為以及機器的自信與人類的猶豫。透過這些差異,我們可以更深入地理解AI的本質,並在未來的科技環境中有效地與AI進行合作。
隨著開源 AI 的發展,新研究指出混合代理模型(MoA)在多項基準測試中已經超越了閉源 AI 巨頭如 GPT-4。MoA 通過協作多個開源大語言模型(LLM)實現性能優化,具有成本效益及創新潛力。
對AI充滿興趣但沒有計算機科學背景?這篇文章提供了一個為期50天的學習計畫,幫助你從零基礎成長為AI/ML專家。透過實際的學習步驟和推薦資源,無需專業學位也能掌握AI,關鍵在於持續實踐和自主學習。這是一段充滿挑戰與成長的學習之旅,伴隨著瞭解其原理與應用。祝你學習愉快!
在這篇文章中,我們將介紹七款功能強大的Mac應用程式,幫助用戶提高工作效率。從隨手筆記的SideNotes到專業錄影的Screen Studio,這些工具能夠滿足不同需求,讓你的工作流程更加順暢。無論是遠程桌面、筆記管理還是文件壓縮,每款應用都有其獨特的優勢,且使用簡便,適合各種用戶。
在人工智能和機器學習領域,有一類演算法借鑒了生物進化的智慧,它就是遺傳演算法。這種演算法通過模擬自然選擇和遺傳的過程,能夠在龐大的解空間中找到接近最優的解決方案。今天,我們就來深入探討遺傳演算法的原理、應用場景,以及如何用Python實現一個簡單的遺傳演算法。 遺傳演算法的核心思想來自於達爾文
在快速發展的人工智能(AI)時代,我們對AI的能力仍存在眾多誤解。本文分析人工智能與人類智慧的三個關鍵差異,包括情感的真實性、理解的體驗與行為以及機器的自信與人類的猶豫。透過這些差異,我們可以更深入地理解AI的本質,並在未來的科技環境中有效地與AI進行合作。
隨著開源 AI 的發展,新研究指出混合代理模型(MoA)在多項基準測試中已經超越了閉源 AI 巨頭如 GPT-4。MoA 通過協作多個開源大語言模型(LLM)實現性能優化,具有成本效益及創新潛力。
對AI充滿興趣但沒有計算機科學背景?這篇文章提供了一個為期50天的學習計畫,幫助你從零基礎成長為AI/ML專家。透過實際的學習步驟和推薦資源,無需專業學位也能掌握AI,關鍵在於持續實踐和自主學習。這是一段充滿挑戰與成長的學習之旅,伴隨著瞭解其原理與應用。祝你學習愉快!
在這篇文章中,我們將介紹七款功能強大的Mac應用程式,幫助用戶提高工作效率。從隨手筆記的SideNotes到專業錄影的Screen Studio,這些工具能夠滿足不同需求,讓你的工作流程更加順暢。無論是遠程桌面、筆記管理還是文件壓縮,每款應用都有其獨特的優勢,且使用簡便,適合各種用戶。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 總結一下目前有的素材: AI說書 - 從0開始 - 103:資料集載入 AI說書 - 從0開始 - 104:定義資料清洗的函數 AI說書 - 從0開始 - 105
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 總結一下目前有的素材: AI說書 - 從0開始 - 103:資料集載入 AI說書 - 從0開始 - 104:定義資料清洗的函數 AI說書 - 從0開始 - 105
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們從 AI說書 - 從0開始 - 103 至 AI說書 - 從0開始 - 105 的努力,已經完成資料集前處理,現在需要定義一個函數來加載這些清理過的數據集,並在預處
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer 擁有先進的翻譯能力,能夠捕捉多種語言中單字序列的意思,在第四章中,我們將介紹一些關鍵的翻譯概念,並探討它們在 Google Trax、Googl
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
對於熱衷於語言科技的你, 大語言模型(LLMs)在自然語言處理(NLP)領域的發展無疑是一個革命性的進展。 從傳統的規則系統到基於深度學習的方法, LLMs展現了在理解、生成和翻譯人類語言方面的巨大突破。 這不僅是技術上的飛躍, 更是開啟了新的應用和可能性。 下面將介紹這一變革帶來的三大
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 總結一下目前有的素材: AI說書 - 從0開始 - 103:資料集載入 AI說書 - 從0開始 - 104:定義資料清洗的函數 AI說書 - 從0開始 - 105
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 總結一下目前有的素材: AI說書 - 從0開始 - 103:資料集載入 AI說書 - 從0開始 - 104:定義資料清洗的函數 AI說書 - 從0開始 - 105
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們從 AI說書 - 從0開始 - 103 至 AI說書 - 從0開始 - 105 的努力,已經完成資料集前處理,現在需要定義一個函數來加載這些清理過的數據集,並在預處
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer 擁有先進的翻譯能力,能夠捕捉多種語言中單字序列的意思,在第四章中,我們將介紹一些關鍵的翻譯概念,並探討它們在 Google Trax、Googl
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
對於熱衷於語言科技的你, 大語言模型(LLMs)在自然語言處理(NLP)領域的發展無疑是一個革命性的進展。 從傳統的規則系統到基於深度學習的方法, LLMs展現了在理解、生成和翻譯人類語言方面的巨大突破。 這不僅是技術上的飛躍, 更是開啟了新的應用和可能性。 下面將介紹這一變革帶來的三大