自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

模型也能“知其然知其所以然”——看SimRAG如何通過提問提升自己 精華

發(fā)布于 2024-10-30 14:52
瀏覽
0收藏

1. 引言部分

今天要給大家分享一篇很有意思的論文。這篇論文主要解決的是什么問題呢?就是如何讓大語言模型在專業(yè)領(lǐng)域,比如醫(yī)療、科學(xué)領(lǐng)域表現(xiàn)得更好。

你們有沒有想過,雖然現(xiàn)在的ChatGPT、Claude這些大模型很厲害,但在專業(yè)領(lǐng)域它們的表現(xiàn)還是不夠好,對吧?比如說,當(dāng)我們問它一個(gè)關(guān)于"支氣管擴(kuò)張"的專業(yè)問題時(shí),它可能就答不太準(zhǔn)確了。這是為什么呢?

主要原因是這樣的 - 這些專業(yè)領(lǐng)域有很多特殊的知識和術(shù)語,普通模型可能理解得不夠深入。就像我們普通人看醫(yī)學(xué)論文一樣,沒有專業(yè)背景的話,很多術(shù)語都看不懂,是不是?

那么現(xiàn)在有一個(gè)很好的技術(shù)叫RAG(檢索增強(qiáng)生成),這個(gè)技術(shù)的原理其實(shí)很像我們?nèi)祟惒橘Y料的過程。比如當(dāng)我們要回答一個(gè)問題時(shí),會先去查找相關(guān)的資料,然后再基于這些資料來回答,對不對?RAG就是讓模型也這樣做 - 先檢索相關(guān)文檔,再基于這些文檔來回答問題。

但是呢,這里又出現(xiàn)了一個(gè)新的問題。就算用了RAG技術(shù),在專業(yè)領(lǐng)域的表現(xiàn)還是不夠理想。這是為什么呢?因?yàn)槟P涂赡懿惶萌绾握_使用檢索到的專業(yè)文獻(xiàn)。就像一個(gè)醫(yī)學(xué)院新生,即使給他一堆醫(yī)學(xué)文獻(xiàn),他也不一定能準(zhǔn)確理解和應(yīng)用這些知識,對吧?那現(xiàn)在已經(jīng)有哪些解決方案呢?主要有這么幾種:

  1. 在專業(yè)文獻(xiàn)上繼續(xù)預(yù)訓(xùn)練,就像讓模型多讀點(diǎn)專業(yè)書籍
  2. 用專業(yè)領(lǐng)域的指令來微調(diào)模型
  3. 用GPT-4這樣的強(qiáng)大模型來生成訓(xùn)練數(shù)據(jù)

但這些方法都有什么問題呢?

  • 第一個(gè)方法成本很高,就像要付很多學(xué)費(fèi)一樣
  • 第二個(gè)方法需要大量標(biāo)注數(shù)據(jù),這個(gè)在專業(yè)領(lǐng)域特別難獲取
  • 第三個(gè)方法不但貴,而且在一些涉及隱私的領(lǐng)域(比如醫(yī)療)可能還有安全隱患

這就是為什么我們需要一個(gè)更好的解決方案。那作者是怎么解決的呢?他們提出了一個(gè)叫SimRAG的方法。這個(gè)方法最有趣的地方是它讓模型同時(shí)學(xué)會了兩個(gè)能力:一個(gè)是回答問題,一個(gè)是提出問題。

你們覺得為什么要讓模型同時(shí)具備這兩種能力呢?這就像我們學(xué)習(xí)一樣,不僅要會答題,還要會出題,對吧。只有真正理解了知識,才能提出好的問題。這兩個(gè)能力相輔相成,可以幫助模型更好地理解專業(yè)知識。

2. 相關(guān)工作

在講具體方法之前,我們先來了解一下相關(guān)的研究工作。這就像我們做研究之前,要先知道前人都做了什么。首先是RAG技術(shù)。它是怎么工作的呢?就像我們寫論文要先查文獻(xiàn)一樣,RAG也是先去找相關(guān)的資料,然后再基于這些資料來回答問題。近期有很多研究者在改進(jìn)這個(gè)技術(shù),比如說:

  • 有的在研究如何找到更相關(guān)的文檔,就像圖書館員幫我們找最合適的參考資料一樣
  • 有的在研究如何過濾掉無關(guān)的內(nèi)容,就像我們寫論文時(shí)要去掉不相關(guān)的引用一樣
  • 還有的在研究如何讓模型更好地理解和使用這些資料

第二個(gè)重要的技術(shù)叫自訓(xùn)練。這個(gè)概念聽起來可能有點(diǎn)陌生,但其實(shí)很好理解。它就像是“教學(xué)相長”的過程 - 模型一邊學(xué)習(xí),一邊用學(xué)到的知識來教自己。具體怎么做呢?

  • 先讓模型學(xué)習(xí)一些基礎(chǔ)知識
  • 然后讓它自己生成一些訓(xùn)練數(shù)據(jù)
  • 再用這些數(shù)據(jù)來提升自己

但這個(gè)過程也有個(gè)問題,就像我們自學(xué)時(shí)可能會學(xué)到一些錯(cuò)誤的知識一樣,模型生成的訓(xùn)練數(shù)據(jù)也可能有錯(cuò)誤。所以研究者們想了很多辦法來解決這個(gè)問題:

  • 有的會仔細(xì)篩選生成的數(shù)據(jù),只用質(zhì)量好的
  • 有的會給不同的數(shù)據(jù)分配不同的重要性

第三個(gè)是領(lǐng)域特定的大語言模型?,F(xiàn)在已經(jīng)有很多專門針對特定領(lǐng)域的模型了,比如醫(yī)療領(lǐng)域的、法律領(lǐng)域的。他們是怎么訓(xùn)練這些模型的呢?主要有兩種方式:

  • 一種是讓模型不斷地讀專業(yè)文獻(xiàn),就像醫(yī)學(xué)生要不斷學(xué)習(xí)專業(yè)知識一樣
  • 另一種是用特定領(lǐng)域的問題來訓(xùn)練模型,就像針對性地做習(xí)題

但這些方法都有什么問題呢?

  • 成本太高了,就像請個(gè)一對一家教一樣貴
  • 效率不夠高,投入了很多資源可能效果卻不理想
  • 有些方法還依賴GPT-4這樣的大模型來生成訓(xùn)練數(shù)據(jù),這就更貴了

現(xiàn)在大家應(yīng)該能明白為什么需要一個(gè)新的解決方案了吧。就是因?yàn)楝F(xiàn)有的這些方法都不夠完美。

3. SimRAG的具體方法

接下來要講的是本文最核心的部分了 - SimRAG具體是怎么工作的。這個(gè)方法很巧妙,分為兩個(gè)主要階段。

模型也能“知其然知其所以然”——看SimRAG如何通過提問提升自己-AI.x社區(qū)

3.1 第一階段:基礎(chǔ)訓(xùn)練

第一階段是做什么呢?就是先教會模型一些基本功。這就像我們學(xué)習(xí)任何新東西一樣,要先掌握基礎(chǔ)知識,對吧。具體來說,要讓模型學(xué)習(xí)三類知識:

  1. 首先是基本的指令理解能力。這就像我們要先學(xué)會聽懂老師的話一樣。用了哪些訓(xùn)練數(shù)據(jù)呢?

OpenAssistant的數(shù)據(jù)

Dolly的數(shù)據(jù)

SODA的數(shù)據(jù)

這些數(shù)據(jù)都是幫助模型理解人類指令的。

  1. 然后是問答能力的訓(xùn)練。用了很多問答數(shù)據(jù)集,比如:

Squad數(shù)據(jù)集,這是關(guān)于閱讀理解的

DROP數(shù)據(jù)集,這需要一些推理能力

NQ(自然問題)數(shù)據(jù)集,這些都是真實(shí)用戶的提問

這就像給學(xué)生做各種類型的習(xí)題,幫助他們提高解題能力。

  1. 最后是檢索相關(guān)的訓(xùn)練。這個(gè)訓(xùn)練分兩部分:

教模型怎么從文檔中找到可能的答案

教模型怎么根據(jù)文檔和答案來提出好問題

就像教會學(xué)生不僅要會做題,還要會出題一樣。

3.2 第二階段:自我提升

這個(gè)階段是最有意思的部分。模型要用第一階段學(xué)到的能力來提升自己,具體怎么做呢?首先是答案生成。模型會讀一段專業(yè)文獻(xiàn),然后找出里面可能成為答案的內(nèi)容。比如讀到這樣一段醫(yī)學(xué)文獻(xiàn):

For its survival, the body needs to ensure a continuous delivery of energy despite highly variable supplies of nutrients from the external environment.

模型就會找出重要的概念,比如"continuous delivery of energy"這樣的關(guān)鍵信息。然后是問題生成?;谡业降拇鸢?,模型會生成相應(yīng)的問題。而且,模型會生成不同類型的問題:

  • 有的是簡單的填空題
  • 有的是多選題
  • 有的是判斷對錯(cuò)的題

這樣做的好處是什么呢?就像我們復(fù)習(xí)時(shí)用不同類型的題目來測試自己,可以全面地掌握知識。最后還有個(gè)重要的步驟 - 質(zhì)量控制。不是所有生成的問題都會被用來訓(xùn)練,而是要經(jīng)過篩選:

  • 會檢查答案是否能在相關(guān)文檔中找到
  • 會看問題是否清晰合理,就像老師出題也要經(jīng)過反復(fù)推敲一樣。

4. 實(shí)驗(yàn)結(jié)果分析

好,現(xiàn)在到了最激動人心的部分了 - 我們來看看這個(gè)方法到底效果如何。

4.1 實(shí)驗(yàn)設(shè)置

首先,作者選擇了三個(gè)非常重要的領(lǐng)域來測試:

  1. 醫(yī)療領(lǐng)域:選了7個(gè)數(shù)據(jù)集

PubMedQA:這是關(guān)于醫(yī)學(xué)研究的問答

BioASQ:這是生物醫(yī)學(xué)領(lǐng)域的問題

MedQA:這個(gè)更專業(yè),是醫(yī)學(xué)執(zhí)照考試的題目

還有其他幾個(gè)數(shù)據(jù)集

就像是讓模型去參加不同類型的醫(yī)學(xué)考試一樣。

  1. 科學(xué)領(lǐng)域:用了3個(gè)數(shù)據(jù)集

ARC:這是中學(xué)級別的科學(xué)題目

SciQ:這包含了物理、化學(xué)、生物等各種科學(xué)問題

MMLU-sci:這個(gè)更全面,包含了14個(gè)科學(xué)學(xué)科

相當(dāng)于是從基礎(chǔ)到高等的科學(xué)知識都測試了一遍。

  1. 計(jì)算機(jī)科學(xué)領(lǐng)域:

用了最新的CS-Bench數(shù)據(jù)集

包含了編程、算法等各種計(jì)算機(jī)科學(xué)的問題

這就像是給模型來了次計(jì)算機(jī)系的期末考試。那模型用什么"教材"來學(xué)習(xí)呢?

  • 醫(yī)療領(lǐng)域:用了醫(yī)學(xué)教科書、維基百科、PubMed的文章
  • 科學(xué)領(lǐng)域:主要用維基百科的內(nèi)容
  • 計(jì)算機(jī)領(lǐng)域:用了維基百科的CS部分和arXiv上的論文

4.2 比較對象

作者找了好幾類模型來比較,就像舉辦一場比賽一樣:

  1. 通用大模型選手:這些就像是全能型選手。

GPT-3.5

GPT-4

Llama3-8B

  1. 專業(yè)領(lǐng)域選手:這些就像是專攻某個(gè)領(lǐng)域的專家。

醫(yī)療領(lǐng)域有PMC-llama、MEDITRON

科學(xué)領(lǐng)域有SciTulu

  1. RAG技術(shù)選手:這些是專門做檢索增強(qiáng)的高手。

Self-RAG

ChatQA

4.3 實(shí)驗(yàn)結(jié)果

在醫(yī)療領(lǐng)域:

模型也能“知其然知其所以然”——看SimRAG如何通過提問提升自己-AI.x社區(qū)

在科學(xué)領(lǐng)域:

模型也能“知其然知其所以然”——看SimRAG如何通過提問提升自己-AI.x社區(qū)

在計(jì)算機(jī)科學(xué)領(lǐng)域:

模型也能“知其然知其所以然”——看SimRAG如何通過提問提升自己-AI.x社區(qū)

雖然分?jǐn)?shù)看起來不是很高,但要知道CS-Bench的題目是很難的,這個(gè)成績已經(jīng)很不錯(cuò)了。

4.4 深入分析

作者還做了一些很有意思的分析:

  1. 不同問題類型的表現(xiàn):

多選題表現(xiàn)最好,因?yàn)檫x項(xiàng)可以提供線索

開放性問題稍微差一點(diǎn),這很正常,因?yàn)樾枰杂砂l(fā)揮嘛

判斷題介于兩者之間

  1. 生成數(shù)據(jù)的質(zhì)量分析,讓我們看個(gè)例子:

模型也能“知其然知其所以然”——看SimRAG如何通過提問提升自己-AI.x社區(qū)

生成的問題很自然,答案也很準(zhǔn)確,不是簡單的復(fù)制粘貼。

  1. 一個(gè)很有趣的發(fā)現(xiàn):如果不做數(shù)據(jù)過濾,性能會下降約2%。這說明什么?說明質(zhì)量控制真的很重要,就像我們學(xué)習(xí)也要注意區(qū)分哪些是對的,哪些是錯(cuò)的信息。

5. 局限性和未來展望

當(dāng)然,這個(gè)方法也不是完美的,還有一些可以改進(jìn)的地方:

  1. 目前只做一輪生成:

就像我們復(fù)習(xí),多復(fù)習(xí)幾遍效果會更好

未來可以嘗試迭代式的生成方式

  1. 計(jì)算開銷問題:

生成和過濾數(shù)據(jù)需要不少時(shí)間

但好在這些都是訓(xùn)練時(shí)的開銷,用的時(shí)候不會變慢

  1. 還可以用更強(qiáng)的模型:

比如說用70B的模型可能效果會更好

但這樣就需要更多計(jì)算資源了

這種自我提升的思路其實(shí)在很多領(lǐng)域都能用。比如說,我們學(xué)習(xí)新知識的時(shí)候,也可以先掌握基礎(chǔ),然后自己出題來檢驗(yàn),這樣不是很像SimRAG的思路嗎?

原文:《SimRAG: Self-Improving Retrieval-Augmented Generation for Adapting Large Language Models to Specialized Domains

本文轉(zhuǎn)載自 ??芝士AI吃魚??,作者: 雷厲風(fēng)行

標(biāo)簽
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦