RAG 與知識庫

HyDE 假設性文件嵌入是什麼?先生成假答案再拿去檢索

HyDE(Hypothetical Document Embeddings,假設性文件嵌入)是一種提升檢索準確度的技巧。做法是先讓大型語言模型根據使用者的問題,生成一份假設性的答案文件,再把這份假答案轉成向量去做檢索,而不是直接拿原始問題去檢索。因為假答案的用詞與語氣通常更接近真正的答案文件,檢索命中率往往比直接用問題檢索來得更高,特別適合問題和答案措辭差異較大的場景。
HyDE 假設性文件嵌入是什麼?先生成假答案再拿去檢索:文章重點卡

HyDE 假設性文件嵌入是什麼?先生成假答案再拿去檢索

有時候問題的措辭跟知識庫裡真正的答案文件用詞差很多,直接拿問題去檢索反而找不到重點,這時候 HyDE 就派上用場。

你將學到什麼

定義

先讓模型生成一份假設性答案,再拿這份假答案去做向量檢索的技巧。

白話比喻

像先自己猜一個答案草稿,再拿這份草稿去圖書館比對,往往比拿問題本身去找更準。

跟誰容易搞混

跟一般的 Embedding 檢索不同,一般做法是直接把問題轉向量,HyDE 多了一道先生成假答案的手續。

定義

HyDE(Hypothetical Document Embeddings,假設性文件嵌入)是一種提升 Retrieval 檢索 準確度的技巧,核心做法是先生成假答案,再拿假答案去檢索。

流程是先把使用者的問題交給大型語言模型,請它生成一份假設性的答案文件,再把這份假答案轉成 Embedding 語意地圖,拿去跟知識庫裡的真實文件做相似度比對。

白話比喻

HyDE 就像考試遇到不熟的題目,先憑印象寫一份自己猜測的答案草稿,再拿這份草稿去圖書館找相關的參考資料,會比直接拿題目原文去找書更容易找對書架。

因為草稿的用詞跟真正教科書上的用詞比較接近,題目本身的措辭反而常常跟書上的寫法有落差,這正是 HyDE 想解決的問題。

HyDE 跟一般檢索差在哪?

比較項目一般檢索HyDE 檢索
檢索依據直接把問題轉成向量先生成假答案,再把假答案轉成向量
適合情境問題與答案用詞接近時問題與答案措辭落差較大時
額外成本多一次生成假答案的模型呼叫
命中率措辭落差大時容易漏檢通常較能命中真正相關的文件

實際用例

常見應用場景是企業內部的知識庫問答,員工的提問方式通常很口語,例如「請假流程」,但規章文件裡可能寫著正式的條文用詞,這時候用 HyDE 生成一份假設性的規章式回答再去檢索,往往更容易命中正確的段落。

實務上 HyDE 常搭配 Hybrid Search 混合搜尋 一起使用,先用假答案做語意檢索補齊語意相近但用詞不同的內容,再搭配關鍵字比對確保精準命中的部分不會漏掉。

常見誤解很多人以為 HyDE 生成的假答案就是最終要呈現給使用者的答案,其實不是。它只是檢索過程中的一個中間產物,用來提升找到真正相關文件的機率,最終回答還是要根據檢索到的真實內容重新生成。
本文源起本文為酒Ann 的 AI 名詞彙編系列,用白話把常見名詞一次講清楚。歡迎追蹤 酒Ann 的 Facebook

延伸學習

把這篇文章分享給需要的人FacebookLINEThreadsX

常見問答

HyDE 為什麼能提升檢索準確度?
因為使用者問問題的用詞,跟知識庫裡真正答案文件的用詞往往不太一樣。直接拿問題去檢索,容易因為措辭落差而找不到最相關的內容;先生成一份假設性答案再檢索,用詞風格更接近真正的答案文件,自然容易命中。
HyDE 生成的假答案不準確也沒關係嗎?
沒關係,因為這份假答案的目的不是拿來當作最終回答,而是拿它的用詞與語意去比對真正的知識庫內容。就算假答案的細節不完全正確,只要語意方向對了,通常還是能檢索到真正相關的文件。
什麼情境特別適合用 HyDE?
當使用者的提問方式偏口語、簡短,而知識庫裡的文件偏正式、專業用語時,兩者措辭落差大,直接檢索效果不好,這種場景特別適合加上 HyDE 這道生成假答案的步驟,來提升命中率。