RAG,全稱為檢索增強生成(Retrieval-Augmented Generation),是一種結合了資訊檢索和文本生成的技術。它允許大型語言模型(LLM)從外部資料源獲取並整合資訊,以提供更準確、更具權威性和可靠性的答案。
簡單來說,RAG技術在生成回答之前,會先從一個外部的資料庫中檢索相關資料,然後將這些資料與用戶的提示詞一起提供給LLM,作為生成回答的參考。這種方法類似於開書考試,模型不是僅依靠記憶(即模型微調的知識)來回答問題,而是可以查閱相關資料來提供答案。
RAG的優勢在於它可以解決大型語言模型在實際應用時可能出現的幻想(hallucination)問題,即生成的信息可能不準確或過時。通過檢索最新的資料,RAG能夠提高回答的正確性,並且因為它是在生成回答時才去搜尋資料,所以成本低、靈活度高、還有助於保護資料隱私和安全,因為資料庫本身具有權限管理功能,企業可以限制敏感資料的授權,從而避免大型語言模型意外泄露機密資料。
工作原理
假設使用一個問答系統來尋找關於「台灣的首都」的資訊。在這個例子中,RAG技術會這樣運作:
- 用戶輸入問題:你在問答系統中輸入問題「台灣的首都是哪裡?」。
- 檢索階段:系統首先會在一個外部資料庫中檢索相關資訊。這個資料庫可能包含了各種關於台灣的資料,包括地理、歷史和政治等方面的信息。
- 資料處理:從資料庫中檢索到的資料會被轉換成向量形式,這樣系統就可以更快地找到與問題最相關的資料。
- 生成階段:系統將檢索到的資料與用戶的問題結合起來,利用大型語言模型生成一個結構化的回答。在這個例子中,系統可能會生成這樣的回答:「台灣的首都是台北」。
通過這種方式,RAG技術能夠幫助系統利用最新的資料來生成更準確、更有用的回答。這種技術特別適合那些需要處理大量資料和需要即時更新資訊的應用場景。
這個例子展示了RAG如何結合檢索和生成兩個階段來提高問答系統的性能。它不僅提高了回答的準確性,還提供了一種靈活且成本效益高的方式來處理各種複雜的查詢。