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