Retrieval Augmented Generation (RAG) 介紹

LLM具有強大的自然語言處理能力,許多應用也開始加入LLM來提升與人的互動能力。然而LLM也有其侷限性。他可能會產生幻覺且不會有來源佐證,且資訊不一定是up to date的,因為他的訓練資料以經是固定的。
這樣的侷限性會導致沒辦法好好利用他很厲害的語言能力,所以有一些研究者提出了一些方法來解決這個問題,其中一個方法就是使用Retriever Augmented Generation (RAG)。

如何讓如何讓LLM更精準跟即時?

LLM的問題有幾個:

  1. 沒有source,可能會有hallucination的問題
  2. 不即時、資訊不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會包含:

    1. retrieved content
    2. The instruction to pay attention to retrieved content and to give evidence
    3. The user’s original question
  • Generation 生成階段:最後,這個整合後的輸入會餵給LLM。模型利用retrieve到的資訊和其自身強大的自然語言對話能力,就可以生成一個既考慮了User問題又融合了相關證據的回答。

Retrieval Augmented Generation (RAG) 介紹

https://blog.ytli.tw/2024/02/22/RAG-intro/

作者

Yen-Ting Li

發表於

2024-02-22

更新於

2024-03-06

許可協議

評論