兩個人,三周做出開源模型新王Reflection 70B?靠譜嗎?
昨天,開源模型領(lǐng)域迎來一匹黑馬 —— 一個名為 Reflection 70B 的模型橫掃 MMLU、MATH、IFEval、GSM8K,在每項基準(zhǔn)測試上都超過了 GPT-4o,還擊敗了 405B 的 Llama 3.1,成為開源模型新王。
模型發(fā)布后,社區(qū)反應(yīng)強(qiáng)烈。官宣推文目前已經(jīng)有了超過 270 萬瀏覽量。
另外,該項目也是目前 HuggingFace 上最熱門的項目:
- Hugging Face:https://huggingface.co/mattshumer/Reflection-70B
- 試用網(wǎng)址:https://reflection-playground-production.up.railway.app/
出人意料的是,該模型僅由兩位開發(fā)者在 3 周的時間內(nèi)完成,一位是發(fā)帖的 HyperWrite CEO Matt Shumer,另一位是 AI 創(chuàng)業(yè)公司 Glaive AI 的創(chuàng)始人 Sahil Chaudhary。他們表示,Reflection 70B 的底層模型建立在 Meta 的 Llama 3.1 70B Instruct 上,并使用原始的 Llama Chat 格式,確保了與現(xiàn)有工具和 pipeline 的兼容性。
在通用能力之外,Reflection 70B 的亮點還包括「錯誤識別」和「錯誤糾正」。他們用到了一種名為「Reflection-Tuning(反思微調(diào))」的技術(shù),使得模型能夠在最終確定回復(fù)之前,先檢測自身推理的錯誤并糾正。關(guān)于該技術(shù),有網(wǎng)友翻出了 2023 年的一篇同名論文:
論文鏈接:https://arxiv.org/pdf/2310.11716
這篇論文背后的團(tuán)隊還在今年 6 月發(fā)布了另一篇新論文。不過,我們目前還無法確定這些論文與 Reflection 70B 的相關(guān)性。
論文鏈接:https://arxiv.org/pdf/2402.10110
此外,Reflection 70B 的優(yōu)秀表現(xiàn)還離不開高質(zhì)量的數(shù)據(jù)。這些數(shù)據(jù)由 Glaive 提供。該公司去年獲得了一輪 350 萬美元的種子輪融資,曾以高質(zhì)量、任務(wù)特定數(shù)據(jù)幫助一些小型模型取得過成功。
目前,不少網(wǎng)友已經(jīng)開始測試 Reflection 70B,并反饋了一些積極結(jié)果。比如面對一個關(guān)于杯子和硬幣的問題(先把硬幣放入杯子,再把杯子放到床上,然后把杯子翻轉(zhuǎn)過來,硬幣會在哪里?),模型會反復(fù)反思自己的答案,并給出一個考慮到各種特殊情況的最終答案。
不過,也有人測試后表示模型能力被夸大了。
當(dāng)要求模型思考 strawberry 中有多少個 r 時:
不過,Reflection 70B 的發(fā)布只是 Reflection 系列的開端,405B 版本也已經(jīng)在訓(xùn)練了。
在經(jīng)過了一天的發(fā)酵后,兩位作者也首次露面,在一檔訪談節(jié)目中披露了關(guān)于該模型的更多詳細(xì)信息,并表示將在下周發(fā)布 Reflection 70B 的技術(shù)報告。
視頻地址:https://www.youtube.com/live/5_m-kN64Exc
機(jī)器之心對視頻中的信息進(jìn)行了整理報道。
Reflection 70B 熱潮和它的開發(fā)者
首先,Shumer 和 Chaudhary 分別做了自我介紹。
Shumer 表示自己在 12 歲時就在創(chuàng)業(yè)了,但遺憾的是他并未分享有關(guān)這段有趣經(jīng)歷的更多細(xì)節(jié)。幾年前,他上大學(xué)時創(chuàng)立了 OthersideAI(HyperWrite 的前身),該公司目前依然很活躍。
Chaudhary 則說俺也一樣,在 AI 創(chuàng)業(yè)上工作好幾年了。在此之前,他曾在一家名為 Banana 的公司工作,該公司的業(yè)務(wù)包括構(gòu)建服務(wù)器等。那時候他意識到人們難以托管自定義模型,因為要擁有特定于用例的高性能自定義模型,就需要高質(zhì)量的數(shù)據(jù)。于是他決定創(chuàng)立 Glaive AI 。
Chaudhary 說該公司本質(zhì)上是一家平臺公司,可讓用戶使用他們的合成數(shù)據(jù)模擬管道流程構(gòu)建自己的特定數(shù)據(jù)集并持續(xù)進(jìn)行迭代。
對于 HyperWrite,Shumer 說:「最初關(guān)于 HyperWrite 的想法是,我們能不能創(chuàng)造一個能為你寫郵件的 AI?」他說實際上 HyperWrite 是第一家使用開放生成式 AI 模型來開展業(yè)務(wù)并獲得 VC 支持的公司。
目前,該公司已經(jīng)積累了數(shù)百萬用戶并且已經(jīng)有了上百萬收入(因此這是一個已盈利的可持續(xù)業(yè)務(wù))。
他說,最初這個想法是在一次度假時產(chǎn)生的。他那時想著做一些有利于生產(chǎn)力的事情 —— 實際上這個想法已經(jīng)持續(xù)了相當(dāng)長時間。但那時候他下定了決心,聯(lián)系了 Chaudhary 并開始合作。
而這件事其實僅僅發(fā)生在大概三周之前!
聽到是三周之前,讓主持人深感震驚。他不得不再次提問:「我們明確一下,所以你產(chǎn)生了這個想法,然后聯(lián)系 Sahil,整編數(shù)據(jù)集,微調(diào)模型并完成了發(fā)布,僅僅用了三周?」
Shumer 說:「是的,我知道這聽起來很瘋狂?!顾J(rèn)為現(xiàn)在很多人低估了現(xiàn)有資源所能達(dá)成的成就。人們都把目光放在大型 AI 實驗室身上 —— 他們有數(shù)十億美元的預(yù)算。少預(yù)算、少時間的小團(tuán)隊看起來似乎沒有希望?!傅?Sahil 和我還是做出了這個,而這甚至不算是我們的重點項目?!?/span>
他表示這其實一種思考問題的不同方式。而 Reflection 70B 成功的關(guān)鍵是數(shù)據(jù)集,Glaive AI 使這一切成為了可能。他說:「只要我們知道自己在追求什么,一旦想法成立,就很容易付諸實踐。」
Reflection 70B 的設(shè)計思路
Shumer 表示,人們普遍認(rèn)為 LLM 已經(jīng)到了有能力思考的程度。它們能在一定程度上反映人類的思維方式,就像是人在內(nèi)心與自己對話。當(dāng)今的 LLM 可以通過思維鏈(CoT)來做到這一點。
Shumer 提出了一個思路:人會犯錯,LLM 也會在思維過程中出錯。人在犯錯時會反思,然后回頭進(jìn)行修正。那么能不能將這個機(jī)制引入 LLM 呢?
但實際上 LLM 很難注意到自己的錯誤。他舉了個例子:他曾讓 LLM 計算 2+2 之后再乘以 7,結(jié)果 LLM 一開始就計算得出 2+2=5。這時候它就假設(shè)自己已經(jīng)是對的了,然后繼續(xù)執(zhí)行后面的操作。
這時候,如果能讓 LLM 反思自己每一步的答案,那么就能讓模型變得更聰明、更可靠、更準(zhǔn)確。
這就是 Reflection 70B 的訓(xùn)練思路,也是其得名 Reflection(反思)的原因。
他們創(chuàng)造了一種名為 spliting 的策略,就是讓模型犯錯了,就讓模型犯更多錯(這很容易),然后再去修正它們。這樣便能夠讓模型的性能保持不變乃至提升,畢竟模型就算犯錯了,也可以修正回來。不過 Shumer 也表示該策略還依然是首個版本,并不完美。但考慮到這個過程僅有三周時間,也著實讓人驚嘆了。
數(shù)據(jù)方面則主要由 Chaudhary 負(fù)責(zé),他表示他們使用的數(shù)據(jù)量并不如人們預(yù)期的那樣大,并且其中大多是他們生成的合成數(shù)據(jù)。
他說他們一開始只有 1 萬個樣本,他們檢查了一下效果,然后將其擴(kuò)增到了 10 萬個樣本,其中包括一些代碼數(shù)據(jù)和推理數(shù)據(jù)等。「我們的目標(biāo)并不是獲取大量數(shù)據(jù)并教會模型如何推理,而本質(zhì)上是教會模型認(rèn)識到自己的錯誤。」
他提到之前已有研究表明,通過讓常規(guī)的指令模型進(jìn)行反思,就能提升其性能。他舉例說,就算是 Claude 3.5 Sonnet 這樣的模型,輸出中也經(jīng)常出現(xiàn)很多偏見,模型總是相信自己的結(jié)果是正確的。
在生成合成數(shù)據(jù)時也會出現(xiàn)這樣的問題。具體來說,他們使用了微調(diào)過的語言模型來生成合成數(shù)據(jù)。Chaudhary 說:「當(dāng)我們第一次嘗試生成反思數(shù)據(jù)時,我們發(fā)現(xiàn)就算要求模型真正犯錯然后進(jìn)行反思,模型卻又很難做到這一點。」不讓模型犯錯時它老出錯,讓它出錯時它又做不到。于是微調(diào)的主要目標(biāo)是讓模型犯錯并反思和糾正錯誤。
當(dāng)被問到為什么這一策略優(yōu)于系統(tǒng)提示詞(system prompt)方法時,Shumer 談到了自己的經(jīng)歷:「我從 2019 年 GPT-2 時代開始就已經(jīng)在做提示詞工程了。我發(fā)現(xiàn)如果你只是要求模型這樣做,而不針對性地進(jìn)行訓(xùn)練,那就會出現(xiàn)一些問題?!?/span>
一個問題是模型過于自信。
另一個問題很奇怪:模型會故意犯一些本來不會犯的錯。由于系統(tǒng)提示詞中提到了反思錯誤,而模型可能又非常想要遵守這些系統(tǒng)提示詞。為了進(jìn)行系統(tǒng)提示詞中指示的「反思」,它就得犯錯。但實際上,我們只希望在有需要時讓模型反思。
事實證明這一策略的效果很好,讓 70B 模型的性能超過了 405B 模型。而該團(tuán)隊還在積極籌劃打造 405B 參數(shù)量的 Reflection 模型。Shumer 說:「我們預(yù)計 405B 會很瘋狂?!?/span>
這個策略的整體思路其實很簡單。Shumer 說:「這就是那些看似愚蠢又顯而易見的想法之一,沒有人真正想過要去做?!顾f很多實驗室的思維模式過于技術(shù)化,但實際上有時候簡單的方法也完全可行。就像 2018 年前后那段時間,很多人在忙著開發(fā)新架構(gòu),但實際上正確的做法是擴(kuò)展現(xiàn)有的架構(gòu)。
在實際的執(zhí)行過程中,這會用到一種名為思考標(biāo)簽(thinking tag)的機(jī)制。模型會在這個標(biāo)簽內(nèi)部進(jìn)行反思,直到它得到正確答案或認(rèn)為自己得到了正確答案。不同的用戶或服務(wù)商在開發(fā)應(yīng)用界面時,可以選擇是否向用戶展示這個標(biāo)簽的內(nèi)容 —— 畢竟很多用戶并不在意模型的思考過程,只想要最終的輸出結(jié)果。
Chaudhary 表示他們下周將發(fā)布一份技術(shù)報告來分享更多技術(shù)細(xì)節(jié),未來也將發(fā)布他們的反思數(shù)據(jù)集(至少在完成 405B 模型訓(xùn)練之后)。
然后,他們分享了實際部署 Reflection 70B 時可能遇到的問題,其中包括:
- token 數(shù)量比非反思模型多,Chaudhary 估計會達(dá)到原來的 1.5 到 2 倍
- 如果使用托管 API,則可能會有延遲問題。
至于 Reflection 是否會有支持一般用戶本地運行的 8B 版本,Shumer 表示他們其實首先就訓(xùn)練了一個 8B 版本,但其相較于非反思的 8B 模型提升不大。而 70B 模型的提升就非常明顯了。Shumer 認(rèn)為與其去優(yōu)化一個很快就會過時的 8B 版本,不如專注研究反思和其它可能超越反思的技術(shù),打造一些更卓越的模型。也就是說,短時間內(nèi) 8B 版無望。
最后,Shumer 表示他正在考慮一些不同的想法,其中一些甚至可能比反思還簡單,但也有望與反思結(jié)合起來。至于這些新想法又會給我們帶來什么驚喜,讓我們拭目以待。