Retrieval Augmented Generation (RAG) 介紹
LLM具有強大的自然語言處理能力,許多應用也開始加入LLM來提升與人的互動能力。然而LLM也有其侷限性。他可能會產生幻覺且不會有來源佐證,且資訊不一定是up to date的,因為他的訓練資料以經是固定的。
這樣的侷限性會導致沒辦法好好利用他很厲害的語言能力,所以有一些研究者提出了一些方法來解決這個問題,其中一個方法就是使用Retriever Augmented Generation (RAG)。
如何讓如何讓LLM更精準跟即時?
LLM的問題有幾個:
- 沒有source,可能會有hallucination的問題
- 不即時、資訊不up to date
那麼存在的Specialized方式有:
- Instruction Fine-tuning
- Reinforcement Learning from human feedback (RLFH)
- Retriever Augmented Generation (RAG)
相較於fine-tune或重新訓練,RAG的優點可以快速解決上面的兩點問題,且不需要花費太多時間和運算資源。
RAG是什麼?
RAG透過結合檢索(Retrieval)和生成(Generation)的方法來擴展LLM的能力。其工作流程可以分為以下幾個步驟:
Retrieval 階段:當收到一個查詢(query/prompt)時,RAG首先從一個 vector database 中取出相關的資訊(詳細可以看該連結)。這些資訊就是用來幫助LLM生成更精準的回答。
Augmented 階段:接著,RAG將找到的內容與prompt一起整合成一個新的輸入(prompt)。這個prompt會包含:
- retrieved content
- The instruction to pay attention to retrieved content and to give evidence
- The user’s original question
Generation 生成階段:最後,這個整合後的輸入會餵給LLM。模型利用retrieve到的資訊和其自身強大的自然語言對話能力,就可以生成一個既考慮了User問題又融合了相關證據的回答。
Retrieval Augmented Generation (RAG) 介紹