Meta開(kāi)源的ChatGPT平替到底好不好用?測(cè)試結(jié)果、加料改裝方法已出爐,2天5.2k星
ChatGPT 的持續(xù)爆火,早已讓各大科技公司坐不住了。
就在剛剛過(guò)去的一周,Meta「開(kāi)源」了一個(gè)新的大模型系列 ——??LLaMA???(Large Language Model Meta AI),參數(shù)量從 70 億到 650 億不等。因?yàn)?LLaMA 比之前發(fā)布的很多大模型參數(shù)更少,但性能更好,所以一經(jīng)發(fā)布讓很多研究者興奮不已。
例如,130 億參數(shù)的 LLaMA 模型「在大多數(shù)基準(zhǔn)上」可以勝過(guò)參數(shù)量達(dá) 1750 億的 GPT-3,而且可以在單塊 V100 GPU 上運(yùn)行;而最大的 650 億參數(shù)的 LLaMA 模型可以媲美谷歌的 Chinchilla-70B 和 PaLM-540B。
參數(shù)量的減少對(duì)于普通研究者和商業(yè)機(jī)構(gòu)來(lái)說(shuō)都是好事,但 LLaMA 真的像論文中說(shuō)得那樣表現(xiàn)那么好嗎?和當(dāng)前的 ChatGPT 相比,LLaMA 是否可以勉強(qiáng)一戰(zhàn)?為了解答這些疑問(wèn),有些研究者已經(jīng)對(duì)這一模型進(jìn)行了測(cè)試。
還有公司已經(jīng)在嘗試補(bǔ)齊 LLaMA 短板,想看能不能通過(guò)添加 RLHF 等訓(xùn)練方法讓 LLaMA 表現(xiàn)更好。
LLaMA 初步評(píng)測(cè)
這份評(píng)測(cè)結(jié)果來(lái)自一位名叫 @Enryu 的 Medium 作者。它比較了 LLaMA 和 ChatGPT 在解釋笑話、零樣本分類(lèi)和代碼生成三個(gè)頗具挑戰(zhàn)性的任務(wù)中的效果。相關(guān)博客文章為《Mini-post: first look at LLaMA》。
作者在 RTX 3090/RTX 4090 上運(yùn)行 LLaMA 7B/13B 版本,在單個(gè) A100 上運(yùn)行 33B 版本。
需要注意的是,與 ChatGPT 不同,其他模型并不是基于指令微調(diào),因此 prompt 的結(jié)構(gòu)有所不同。
解釋笑話
這是谷歌原始 PaLM 論文中展示的一個(gè)用例:給出一個(gè)笑話,讓模型來(lái)解釋它為什么好笑。該任務(wù)需要將世界知識(shí)和一些基本邏輯相結(jié)合。PaLM 之前的所有模型都無(wú)法做到這一點(diǎn)。作者從 PaLM 論文中提取了一些示例,比較了 LLaMA-7B、LLaMA-13B、LLaMA-33B 與 ChatGPT 的表現(xiàn)。
可以看到,結(jié)果很糟糕。這些模型 get 到了一些笑點(diǎn),但無(wú)法真正理解,它們只是隨機(jī)生成一些相關(guān)的文本流。ChatGPT 雖與 LLaMA-33B 一樣表現(xiàn)很差(其他幾個(gè)模型更差),但它遵循了不一樣的策略:生成了一大堆文本,希望自己的回答至少有一部分是正確的(但大部分顯然不是),是不是很像大家考試時(shí)應(yīng)對(duì)問(wèn)答題的策略?
不過(guò),ChatGPT 起碼 get 到了關(guān)于 Schmidthuber 的笑話。但總的來(lái)說(shuō),這些模型在零樣本笑話解釋任務(wù)上的效果與 PaLM 相差甚遠(yuǎn)(除非 PaLM 的示例是精心挑選)。
零樣本分類(lèi)
作者考慮的第二項(xiàng)任務(wù)更具挑戰(zhàn)性 —— 標(biāo)題黨(clickbait)分類(lèi)。由于連人類(lèi)也無(wú)法就什么是標(biāo)題黨達(dá)成一致,作者在 prompt 中為這些模型提供了一些示例(因此實(shí)際上是小樣本而非零樣本)。如下為 LLaMa 的 prompt:
下圖為 LLaMA-7B、LLaMA-13B、LLaMA-33B 與 ChatGPT 的更多示例結(jié)果。
很明顯,贏家為 LLaMA-33B,它是唯一一個(gè)能夠遵循所有請(qǐng)求格式(yes/no)的模型,并且預(yù)測(cè)合理。ChatGPT 也還可以,但有些預(yù)測(cè)不太合理,格式也有錯(cuò)誤。較小的模型(7B/13B)不適用于該任務(wù)。
代碼生成
雖然 LLM 擅長(zhǎng)人文學(xué)科,但在 STEM 學(xué)科上表現(xiàn)糟糕。LLaMA 雖然有基準(zhǔn)測(cè)試結(jié)果,但作者在代碼生成領(lǐng)域嘗試了一些特別的東西,即將人類(lèi)語(yǔ)言零樣本地轉(zhuǎn)換為 SQL 查詢(xún)。這并不是很實(shí)用,在現(xiàn)實(shí)生活中直接編寫(xiě)查詢(xún)會(huì)更有效率。這里只作為代碼生成任務(wù)的一個(gè)示例。
在 prompt 中,作者提供表模式(table schema)以及想要實(shí)現(xiàn)的目標(biāo),要求模型給出 SQL 查詢(xún)。如下為一些隨機(jī)示例,老實(shí)說(shuō),ChatGPT 看起來(lái)效果更好。
從測(cè)試結(jié)果來(lái)看,LLaMA 在一些任務(wù)上表現(xiàn)還不錯(cuò),但在另一些任務(wù)上和 ChatGPT 還有一些差距。如果能像 ChatGPT 一樣加入一些「訓(xùn)練秘籍」,效果會(huì)不會(huì)大幅提升?
加入 RLHF,初創(chuàng)公司 Nebuly AI 開(kāi)源 ChatLLaMA 訓(xùn)練方法
雖然 LLaMA 發(fā)布之初就得到眾多研究者的青睞,但是少了 RLHF 的加持,從上述評(píng)測(cè)結(jié)果來(lái)看,還是差點(diǎn)意思。
在 LLaMA 發(fā)布三天后,初創(chuàng)公司 Nebuly AI 開(kāi)源了 RLHF 版 LLaMA(ChatLLaMA)的訓(xùn)練方法。它的訓(xùn)練過(guò)程類(lèi)似 ChatGPT,該項(xiàng)目允許基于預(yù)訓(xùn)練的 LLaMA 模型構(gòu)建 ChatGPT 形式的服務(wù)。項(xiàng)目上線剛剛 2 天,狂攬 5.2K 星。
項(xiàng)目地址:https://github.com/nebuly-ai/nebullvm/tree/main/apps/accelerate/chatllama
ChatLLaMA 訓(xùn)練過(guò)程算法實(shí)現(xiàn)主打比 ChatGPT 訓(xùn)練更快、更便宜,我們可以從以下四點(diǎn)得到驗(yàn)證:
- ChatLLaMA 是一個(gè)完整的開(kāi)源實(shí)現(xiàn),允許用戶(hù)基于預(yù)訓(xùn)練的 LLaMA 模型構(gòu)建 ChatGPT 風(fēng)格的服務(wù);
- 與 ChatGPT 相比,LLaMA 架構(gòu)更小,但訓(xùn)練過(guò)程和單 GPU 推理速度更快,成本更低;
- ChatLLaMA 內(nèi)置了對(duì) DeepSpeed ZERO 的支持,以加速微調(diào)過(guò)程;
- 該庫(kù)還支持所有的 LLaMA 模型架構(gòu)(7B、13B、33B、65B),因此用戶(hù)可以根據(jù)訓(xùn)練時(shí)間和推理性能偏好對(duì)模型進(jìn)行微調(diào)。
圖源:https://openai.com/blog/chatgpt
更是有研究者表示,ChatLLaMA 比 ChatGPT 訓(xùn)練速度最高快 15 倍。
不過(guò)有人對(duì)這一說(shuō)法提出質(zhì)疑,認(rèn)為該項(xiàng)目沒(méi)有給出準(zhǔn)確的衡量標(biāo)準(zhǔn)。
項(xiàng)目剛剛上線 2 天,還處于早期階段,用戶(hù)可以通過(guò)以下添加項(xiàng)進(jìn)一步擴(kuò)展:
- 帶有微調(diào)權(quán)重的 Checkpoint;
- 用于快速推理的優(yōu)化技術(shù);
- 支持將模型打包到有效的部署框架中。
Nebuly AI 希望更多人加入進(jìn)來(lái),創(chuàng)造更高效和開(kāi)放的 ChatGPT 類(lèi)助手。
該如何使用呢?首先是使用 pip 安裝軟件包:
然后是克隆 LLaMA 模型:
一切準(zhǔn)備就緒后,就可以運(yùn)行了,項(xiàng)目中介紹了 ChatLLaMA 7B 的訓(xùn)練示例,感興趣的小伙伴可以查看原項(xiàng)目。