iT邦幫忙

2024 iThome 鐵人賽

DAY 27
0
自我挑戰組

NLP 新手的 30 天入門養成計畫系列 第 27

[Day 27] - 把 IR 也加進來!檢索增強生成 (1)

  • 分享至 

  • xImage
  •  

當我們打開 OpenAI 官方網站,找到對於 ChatGPT 的介紹,可以得知它是從 GPT3.5 模型微調而來,經過某些監督式的訓練以及強化學習的方式,讓它更適合處理和人類對話相關的任務,無論是聊天、問答或是創作,它都有辦法生成出一段回應。

然而像 ChatGPT 這樣的模型也存在著侷限性,正因為它被訓練出來的目標是對使用者生成流暢、有意義的文字,在提供資訊的部分反而沒有辦法保證內容的正確性,因此在一些情況下,它可能會生成一些似是而非的內容。

比方說我對 ChatGPT (4o-mini) 問了這麼一個問題:

中華民國憲法第 166 條的正確條文是什麼?

這是它的回答:

中華民國憲法第 166 條的正確條文如下:
第 166 條:法院之組織及職掌,由法律定之。

看起來有模有樣的,但其實正確的條文是:

第 166 條:國家應獎勵科學之發明與創造,並保護有關歷史、文化、藝術之古蹟、古物。

像遇到這樣的幻覺 (Hallucination) 現象,我反而還要花時間上網驗證這些內容的正確性,也讓 ChatGPT 的可信度大幅降低。

PS : 不過我對 4o 測試了幾個問題,雖然沒有到每個字都一樣,但內容基本正確了

而這一兩年包括 ChatGPT、Gemini、Claude 等 LLM 也不斷的在進化,讓模型回答的越來越好。

不過我今天想要聊的是如何在不進行微調的情況下,使用這些模型來生成更準確和更有針對性的內容,而且大家都可以做做看的方式,也就是我在 Day 24 提到的檢索增強生成技術。

檢索增強生成 ( Retrieval-Augmented Generation, RAG ) 是一種結合了資訊檢索和生成模型的技術,它的概念就是通過檢索的方式找出正確的資訊,再將這些資訊提供給 LLM 生成回應。

這種方法就好像我們在寫題目的時候不知道該怎麼回答,就會想辦法去找到正確資料來參考一樣,而這也是我之前想要介紹資訊檢索 ( IR ) 的原因之一。

由於 LLM 本身可能對一些比較專業或最新的知識沒那麼熟悉,就像我剛剛提的例子,而 RAG 的優勢就在於它可以解決 LLM 在這方面的困擾,同時兼顧敘述的流暢性和內容的正確性,也因此直到現在都是一個蠻不錯的解決方案。

說了那麼多,接著就來看看 RAG 的架構吧!

在 2020 年的論文《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》中介紹了 RAG 的兩個區塊,檢索器(Retriever)和生成器(Generator)。

其中,Retriever 負責把使用者的問題編碼成向量,然後在文檔中進行檢索,找出最相關的內容,接著,這些資料會再傳入 Generator,讓模型基於這些資料來生成合適的回應。

https://ithelp.ithome.com.tw/upload/images/20240901/201590881rNgonHKLR.png

不過在使用 RAG 的同時,也需要注意一些隱藏的問題:

  1. LLM 會更依賴於 Retriever 所提供的資訊,如果沒有檢索到正確文章,就有可能生出錯誤的回應
  2. Retriever 不僅要非常精確,還要非常迅速,不然整個從 input 到 output 的時間會變得很長

通過 RAG 技術,我們可以用相較於微調代價更小的方式,來讓模型生出更正確的內容,這對於即時性資料或特定領域知識的問答任務來說非常好用,而現在許多研究的確也有朝著「檢索+生成」的趨勢前進,比方說 Perplexity 或最近討論比較多的 SearchGPT。

那麼今天就先到這邊啦,明天來介紹如何用 Langchain 的工具實作 RAG 吧!

推薦文章


上一篇
[Day 26] - 認識 Langchain:提示工程實作
下一篇
[Day 28] - 把 IR 也加進來!檢索增強生成 (2)
系列文
NLP 新手的 30 天入門養成計畫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言