iT邦幫忙

2024 iThome 鐵人賽

DAY 9
0
生成式 AI

從系統設計切入,探索 GenAI 在企業中的實踐系列 第 9

[Day9] Langchain 的 GenAI 開發生態系-Chain 優化策略

  • 分享至 

  • xImage
  •  

昨天介紹了 LangChain 生態系中的各個組件,這些組件是生成式 AI 開發的基礎,然而 LangChain 的核心在於如何通過 Chain 進行擴展和優化。今天將著重在兩個重要環節-Query 提問優化Retrieval 檢索優化,在 RAG 開發上,這兩項優化策略能提升資料檢索的覆蓋範圍與準確性。

以下部份主要是概略性的介紹不同優化策略的作法,其實看到 source code 會發現多是由 LLM 和 prompt 組合而成,chain 的使用方法也很簡單,套用參數就可以了,然而開發的重點會在於如何串接這些 chain,以及如何設計這些優化流程,而這會在明天自訂邏輯的地方介紹。

Query 提問優化

https://ithelp.ithome.com.tw/upload/images/20240909/20151660IbKPsEzv0m.png
Query 提問優化能將使用者的問題拆解為多個相關查詢,幫助檢索更多有用的資訊。
sourse: langchain

  1. Query 分解(Query Decomposition)
    • 使用場景:將包含多個問題的查詢分解成子問題,分別檢索。
    • 提問範例:「如何成為 SI 工程師?需要哪些技能?」
    • 優化成果:
      1. 如何成為 SI 工程師?
      2. SI 工程師需要哪些技能?
  2. 多重查詢(Multi-Query Retrieval)
    • 使用場景:將一個查詢從不同角度改寫,分別進行檢索。
    • 提問範例:「SI 工程師的職責是什麼?」
    • 優化成果:
      1. SI 工程師的工作內容是什麼?
      2. SI 工程師每天的工作有哪些?
      3. SI 工程師負責哪些任務?
  3. Query 擴展(Query Expansion)
    • 使用場景:將查詢中的關鍵字替換為同義詞,擴展檢索範圍,涵蓋更多資料。
    • 提問範例:「SI 工程師需要懂哪些程式語言?」
    • 優化成果:替換「程式語言」為「編程語言」或「開發語言」
  4. Query 路由(Query Routing)
    • 使用場景:根據查詢內容將其路由到不同的資料庫,專門檢索相關領域。
    • 提問範例:「SI 工程師在工業自動化中的角色?」
    • 優化成果:將查詢路由到工業自動化相關資料庫
  5. 退一步提示(Step Back Prompting)
    • 使用場景:將具體問題重構為更通用的問題,進行更廣泛的檢索,再將結果應用於原始問題。
    • 提問範例:「SI 工程師的專業技能在哪些行業最為重要?」
    • 優化成果:重構為「SI 工程師的專業技能是什麼?」進行檢索,獲取廣泛資料後,再針對行業細節進行分析
  6. 假設文檔嵌入(Hypothetical Document Embedding, HyDE)
    • 使用場景:檢索時生成一個假設的相關文檔,並使用該文檔來進行檢索。
    • 提問範例:「SI 工程師如何應用於自動化?」
    • 優化成果:生成 SI 工程師自動化應用的模擬文檔,再進行相似性搜索。

Retrieval 檢索優化

https://ithelp.ithome.com.tw/upload/images/20240910/20151660DIRbzYKhiz.jpg
sourse: langchain-RefineDocumentsChain
Retrieval 優化則專注於改善從資料源獲取的文檔質量,以下最常見的四種 chain 來說,都是將檢索出來的文件以不同方式整理再連同原始問題匯給 LLM 問答時讀取。

  1. StuffDocumentsChain
    • 作法:將所有檢索出來的文件合併後給 LLM。
  2. MapReduceDocumentsChain
    • 作法:Map 階段將所有檢索出來的文件各自總結,Reduce 階段將這些總結組合成最終總結。
  3. MapRerankDocumentsChain
    • 作法:Map 階段將所有檢索出來的文件各自總結,Rerank 階段依據分數選出最優答案。
  4. RefineDocumentsChain
    • 作法:遍歷所有文檔並逐步總結,最後得到精練的回答。

ref.


上一篇
[Day8] Langchain 的 GenAI 開發生態系-Runnable 組件介紹
下一篇
[Day10] Langchain 的 GenAI 開發生態系-LCEL 設計架構
系列文
從系統設計切入,探索 GenAI 在企業中的實踐27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言