GenAI: 如何讓你的 GPT 更聰明 (2)
我們在上一篇文章中介紹了如何有系統地提供問題資訊,
讓 GPT 或是其他 LLM 模型可以更精確地回答,
考慮到 LLM 在各應用中的便利性, 以及其高昂的訓練成本,
透過提示 (prompting) 提升回答精確度的方法, 被廣泛的應用與討論,
其中, 最基本也最廣為人知的也就是 RAG (Retrieval-Augmented Generation).
Retrieval-Augmented Generation 於 2020 年由 Facebook AI 提出,
是將生成式模型 (Generative Model) 與檢索模型 (Retrieval Model) 結合的架構.
其設計的核心任務包含了:
- 解決 LLM 記憶受限問題 (context window 大小限制)
- 提升回應準確性與可追溯性 (根據外部知識檢索來源回答)
- 減少 hallucination (幻覺生成) 現象
RAG 的工作流程, 包含了以下的步驟:
- Query Encoding: 將輸入的問題進行向量化 (embedding), 使用相容的 embedding model 處理
- Retrieval: 透過向量相似度搜尋 (vector similarity search) 從外部知識庫檢索最相關的段落
- Context Fusion: 將檢索結果與原始 query 進行 prompt engineering,形成完整輸入
- Generation: 將結合 context 的 prompt 輸入 LLM, 生成基於外部知識與語言模型推理的答案
來自: https://medium.com/data-science/retrieval-augmented-generation-rag-from-theory-to-langchain-implementation-4e9bd5f6a4f2 (2,3 併入 Augment 步驟)
RAG 技術最大的技術特點即是在設計時是針對一個普及的使用.
為了面對多樣不同的查詢, 用以提供範例的資料庫也將十分龐大,
因此, 如何根據當前的資料查詢, 找到相對應的範例就是一個重要的問題.
在 RAG 中使用兩個技術: embedding 將輸入的語意編碼,
vector database, 使得編碼的結果可以快速找到相似的範例用以查詢.
RAG 可以廣泛的用在建立專家系統, 或是針對內部資料提供檢索,
甚至, 也可以針對提供的範例進行溯源, 找出有效與無效的範例,
尤其針對於資料私密性, 或是專業應用場域, 可以更有效借力 LLM 的推理能力提供答案,
然而, RAG 的使用也包含了以下的限制:
- 語境對齊: 如果範例與 query 不一致,LLM 可能生成錯誤推論
- Embedding 準確度與更新頻率: 影響檢索準確度
- Prompt 長度限制: 會限制檢索文件的數量與細節
總結來說, RAG 為 LLM 的應用開闢了一個新的戰場,
尤其對於專業領域的資料, 如何進行 embedding 增加查詢的效率與準確度,
將會影響 RAG 與 LLM 互動後生成結果的好壞,
這一部分的演算法, 也是各家可用有限算力, 做出差異化的地方.
留言
張貼留言