每一個(gè)人的大模型:開(kāi)源BELLE項(xiàng)目集訓(xùn)練、數(shù)據(jù)、模型、評(píng)估、APP一體
最近一段時(shí)間,以 “羊駝” 家族為代表的各類(lèi) ChatGPT 替代模型不斷涌現(xiàn)。一方面,開(kāi)源社區(qū)也有了可以與 ChatGPT “一較高下” 的開(kāi)源模型;而另一方面,各模型在如何提升 LLM 的指令表現(xiàn)方面以及評(píng)估 LLM 效果的方法不盡相同。
此前,一個(gè)基于斯坦福的 Alpaca 、并進(jìn)行了中文優(yōu)化的項(xiàng)目受到大家關(guān)注,即開(kāi)源中文對(duì)話大模型 70 億參數(shù)的 ??BELLE??(Be Everyone's Large Language model Engine)。它基于斯坦福的 Alpaca 完成,但進(jìn)行了中文優(yōu)化,并對(duì)生成代碼進(jìn)行了一些修改,不僅如此,模型調(diào)優(yōu)僅使用由 ChatGPT 生產(chǎn)的數(shù)據(jù)(不包含任何其他數(shù)據(jù))。
BELLE 的目標(biāo)是促進(jìn)中文對(duì)話大模型開(kāi)源社區(qū)的發(fā)展,愿景是成為能夠幫到每一個(gè)人的 LLM Engine。
相比如何做好大語(yǔ)言模型的預(yù)訓(xùn)練,BELLE 更關(guān)注如何在開(kāi)源預(yù)訓(xùn)練大語(yǔ)言模型的基礎(chǔ)上,幫助每一個(gè)人都能夠得到一個(gè)屬于自己的、效果盡可能好的具有指令表現(xiàn)能力的語(yǔ)言模型,降低大語(yǔ)言模型、特別是中文大語(yǔ)言模型的研究和應(yīng)用門(mén)檻。為此,BELLE 項(xiàng)目會(huì)持續(xù)開(kāi)放指令訓(xùn)練數(shù)據(jù)、相關(guān)模型、訓(xùn)練代碼、應(yīng)用場(chǎng)景等,也會(huì)持續(xù)評(píng)估不同訓(xùn)練數(shù)據(jù)、訓(xùn)練算法等對(duì)模型表現(xiàn)的影響。
BELLE 項(xiàng)目亮點(diǎn)包括:
- 研究報(bào)告:從指令微調(diào)策略到模型評(píng)估范式等多方面探究提升大語(yǔ)言模型指令表現(xiàn)能力的因素
- 數(shù)據(jù)開(kāi)放:豐富、大量且持續(xù)完善的訓(xùn)練和評(píng)估數(shù)據(jù)
- 開(kāi)箱即用的多種模型和指令微調(diào) / LoRA / 量化代碼
- 多終端 LLM 推理和聊天 app,無(wú)需聯(lián)網(wǎng),離線運(yùn)行
還有其他功能,請(qǐng)移步 Github 項(xiàng)目 。
項(xiàng)目地址:https://github.com/LianjiaTech/BELLE
BELLE 項(xiàng)目的研究方向著眼于提升中文指令調(diào)優(yōu)模型的指令跟隨、指令泛化效果,降低模型訓(xùn)練和研究工作的門(mén)檻,讓更多人都能感受到大語(yǔ)言模型帶來(lái)的幫助。
為此 BELLE 進(jìn)行了一系列研究,涵蓋模型評(píng)估方法、影響模型指令表現(xiàn)效果的因素、模型調(diào)優(yōu)等多方面。
最近,兩篇相關(guān)論文已經(jīng)公開(kāi),下面我們看看論文內(nèi)容。
論文介紹
論文 1:Towards Better Instruction Following Language Models for Chinese: Investigating the Impact of Training Data and Evaluation
論文地址:https://arxiv.org/pdf/2304.07854.pdf
為了推動(dòng)開(kāi)源大語(yǔ)言模型的發(fā)展,大家投入了大量精力開(kāi)發(fā)能夠類(lèi)似于 ChatGPT 的低成本模型。首先,為了提高模型在中文領(lǐng)域的性能和訓(xùn)練 / 推理效率,我們進(jìn)一步擴(kuò)展了 LLaMA 的詞匯表,并在 34 億個(gè)中文詞匯上進(jìn)行了二次預(yù)訓(xùn)練。
此外,目前可以看到基于 ChatGPT 產(chǎn)生的指令訓(xùn)練數(shù)據(jù)方式有:1)參考 Alpaca 基于 GPT3.5 得到的 self-instruct 數(shù)據(jù);2)參考 Alpaca 基于 GPT4 得到的 self-instruct 數(shù)據(jù);3)用戶使用 ChatGPT 分享的數(shù)據(jù) ShareGPT。在這里,我們著眼于探究訓(xùn)練數(shù)據(jù)類(lèi)別對(duì)模型性能的影響。具體而言,我們考察了訓(xùn)練數(shù)據(jù)的數(shù)量、質(zhì)量和語(yǔ)言分布等因素,以及我們自己采集的中文多輪對(duì)話數(shù)據(jù),以及一些公開(kāi)可訪問(wèn)的高質(zhì)量指導(dǎo)數(shù)據(jù)集。
為了更好的評(píng)估效果,我們使用了一個(gè)包含一千個(gè)樣本和九個(gè)真實(shí)場(chǎng)景的評(píng)估集來(lái)測(cè)試各種模型,同時(shí)通過(guò)量化分析來(lái)提供有價(jià)值的見(jiàn)解,以便更好地促進(jìn)開(kāi)源聊天模型的發(fā)展。
這項(xiàng)研究的目標(biāo)是填補(bǔ)開(kāi)源聊天模型綜合評(píng)估的空白,以便為這一領(lǐng)域的持續(xù)進(jìn)步提供有力支持。
實(shí)驗(yàn)結(jié)果如下:
其中 BELLE-0.5M-CLEAN 是從 230 萬(wàn)指令數(shù)據(jù)中清洗得到 0.5M 數(shù)據(jù),其中包含單輪和多輪對(duì)話數(shù)據(jù),和之前開(kāi)放的 0.5M 數(shù)據(jù)不是同一批數(shù)據(jù)。
需要強(qiáng)調(diào)指出的是,通過(guò)案例分析,我們發(fā)現(xiàn)我們的評(píng)估集在全面性方面存在局限性,這導(dǎo)致了模型分?jǐn)?shù)的改善與實(shí)際用戶體驗(yàn)之間的不一致。構(gòu)建一個(gè)高質(zhì)量的評(píng)估集是一個(gè)巨大的挑戰(zhàn),因?yàn)樗枰诒3制胶怆y易程度的同時(shí)包含盡可能多樣的使用場(chǎng)景。如果評(píng)估樣本過(guò)于困難,那么所有模型的表現(xiàn)將會(huì)很差,更難辨別各種訓(xùn)練數(shù)據(jù)和策略的效果;相反,如果評(píng)估樣本都相對(duì)容易,評(píng)估將失去其比較價(jià)值。同樣地,評(píng)估集多樣性不夠的時(shí)候,容易出現(xiàn)評(píng)估有偏(例如當(dāng)某個(gè)模型的訓(xùn)練和評(píng)估領(lǐng)域或任務(wù)類(lèi)型十分一致)。二者的聯(lián)合分布還可能導(dǎo)致部分任務(wù)上難易區(qū)分度高,部分任務(wù)上難易區(qū)分度低,進(jìn)一步加大評(píng)估的難度和有效性。此外,必須確保評(píng)估數(shù)據(jù)與訓(xùn)練數(shù)據(jù)保持獨(dú)立。
圖 1 評(píng)估集的難易度與多樣性分布示意圖
基于這些觀察,我們謹(jǐn)慎地提醒不要假設(shè)模型僅通過(guò)在有限數(shù)量的測(cè)試樣本上獲得良好結(jié)果就已經(jīng)達(dá)到了與 ChatGPT 相當(dāng)?shù)男阅芩?。我們認(rèn)為,優(yōu)先發(fā)展全面評(píng)估集的持續(xù)發(fā)展具有重要意義。
這篇工作中的相關(guān)數(shù)據(jù)和模型將會(huì)于近日在 BELLE 項(xiàng)目中開(kāi)源。
論文 2:A Comparative Study between Full-Parameter and LoRA-based Fine-Tuning on Chinese Instruction Data for Instruction Following Large Language Model
論文地址:https://arxiv.org/pdf/2304.08109.pdf
為了實(shí)現(xiàn)對(duì)大語(yǔ)言模型的指令調(diào)優(yōu),受限于資源和成本,許多研究者開(kāi)始使用參數(shù)高效的調(diào)優(yōu)技術(shù),例如 LoRA,來(lái)進(jìn)行指令調(diào)優(yōu),這也取得了一些令人鼓舞的成果。相較于全參數(shù)微調(diào),基于 LoRA 的調(diào)優(yōu)在訓(xùn)練成本方面展現(xiàn)出明顯的優(yōu)勢(shì)。在這個(gè)研究報(bào)告中,我們選用 LLaMA 作為基礎(chǔ)模型,對(duì)全參數(shù)微調(diào)和基于 LoRA 的調(diào)優(yōu)方法進(jìn)行了實(shí)驗(yàn)性的比較。
實(shí)驗(yàn)結(jié)果揭示,選擇合適的基礎(chǔ)模型、訓(xùn)練數(shù)據(jù)集的規(guī)模、可學(xué)習(xí)參數(shù)的數(shù)量以及模型訓(xùn)練成本均為重要因素。
我們希望本文的實(shí)驗(yàn)結(jié)論能對(duì)大型語(yǔ)言模型的訓(xùn)練提供有益的啟示,特別是在中文領(lǐng)域,協(xié)助研究者在訓(xùn)練成本與模型性能之間找到更佳的權(quán)衡策略。
實(shí)驗(yàn)結(jié)果如下:
其中的 Average Score 是基于本項(xiàng)目集目前開(kāi)放的 1000 條評(píng)估集合得到的(見(jiàn)下文評(píng)估數(shù)據(jù)部分)。LLaMA-13B + LoRA (2M) 代表使用 LLaMA-13B 作為基礎(chǔ)模型和 LoRA 訓(xùn)練方法,在 2M 指令數(shù)據(jù)上進(jìn)行訓(xùn)練的模型;而 LLaMA-7B + FT (2M) 代表了一個(gè)使用全參數(shù)微調(diào)進(jìn)行訓(xùn)練的模型。所有這些實(shí)驗(yàn)都是在 8 塊 NVIDIA A100-40GB GPU 上進(jìn)行的,實(shí)驗(yàn)細(xì)節(jié)請(qǐng)參考我們的論文。
根據(jù)評(píng)估,我們的模型在數(shù)學(xué)任務(wù)上表現(xiàn)不佳,得分大多低于 0.5。為了驗(yàn)證 LoRA 在特定任務(wù)上的適應(yīng)能力,我們使用增量 0.25M 數(shù)學(xué)數(shù)據(jù)集(math_0.25M)來(lái)提升模型的數(shù)學(xué)能力,并與增量微調(diào)方法作為對(duì)比。從實(shí)驗(yàn)結(jié)果可以看出,增量微調(diào)仍然表現(xiàn)更好,但需要更長(zhǎng)的訓(xùn)練時(shí)間。LoRA 和增量微調(diào)都提高了模型的整體性能。從論文附錄中的詳細(xì)數(shù)據(jù)可以看出,LoRA 和增量微調(diào)都在數(shù)學(xué)任務(wù)中顯示出顯著的改進(jìn),而只會(huì)導(dǎo)致其他任務(wù)的輕微性能下降。
總體而言:1) 選擇基礎(chǔ)模型對(duì)于 LoRA 調(diào)整的有效性具有顯著影響;2)增加訓(xùn)練數(shù)據(jù)量可以持續(xù)提高 LoRA 模型的有效性;3)LoRA 調(diào)整受益于模型參數(shù)的數(shù)量。對(duì)于 LoRA 方案的使用,我們建議可以在已經(jīng)完成了指令學(xué)習(xí)的模型的基礎(chǔ)上針對(duì)特定任務(wù)做 loRA 的自適應(yīng)訓(xùn)練。
同樣地,該論文中的相關(guān)模型也會(huì)盡快開(kāi)放在 BELLE 項(xiàng)目中。
持續(xù)完善的訓(xùn)練和評(píng)估數(shù)據(jù)
目前 BELLE 已經(jīng)開(kāi)放的數(shù)據(jù)分為兩部分:最近開(kāi)放的 10M 中文數(shù)據(jù)集與早前開(kāi)放的 1.5M 中文數(shù)據(jù)集。
10M 中文數(shù)據(jù)集
包含數(shù)個(gè)由 BELLE 項(xiàng)目產(chǎn)生的不同指令類(lèi)型、不同領(lǐng)域的子集。目前正在逐步整理中,將會(huì)逐漸發(fā)布。
- School Math:包含約 25 萬(wàn)條生成的中文數(shù)學(xué)題數(shù)據(jù),包含解題過(guò)程
- Multiturn Chat:包含約 80 萬(wàn)條生成的用戶與助手的多輪對(duì)話
- Generated Chat:包含約 40 萬(wàn)條生成的給定角色的多輪對(duì)話
- train_2M_CN:包含約 200 萬(wàn)條生成的多樣化指令任務(wù)數(shù)據(jù)
評(píng)估數(shù)據(jù)
如上文所述,評(píng)估數(shù)據(jù)的質(zhì)量對(duì)評(píng)估 LLM 的效果十分關(guān)鍵。BELLE 項(xiàng)目開(kāi)放的中文評(píng)估集包含由 BELLE 項(xiàng)目產(chǎn)生的約 1000 條不同指令類(lèi)型、不同領(lǐng)域的評(píng)估樣例,并試圖兼顧評(píng)估集的多樣性與難易度。評(píng)估集的數(shù)據(jù)分布見(jiàn)圖 2。
多樣性方面,評(píng)估集涵蓋 extract、open qa、closed qa、rewrite、generation、summerization、classification、brainstorming、others 9 種任務(wù)類(lèi)型,并涵蓋市場(chǎng)銷(xiāo)售、健康飲食、語(yǔ)言文學(xué)、旅行、多種編程語(yǔ)言、環(huán)保、音樂(lè)、歷史、廚藝、影視、體育賽事、醫(yī)學(xué)、金融、科技等多個(gè)主題。任務(wù)類(lèi)型分布見(jiàn)圖 2 (a)。
難易度方面,評(píng)估集目前盡可能加入了一些難度偏高的樣本,并且平衡評(píng)估集與標(biāo)注回復(fù)的平均指令長(zhǎng)度分布。
多終端模型推理和聊天應(yīng)用 ChatBELLE
開(kāi)源社區(qū)中已經(jīng)誕生了如 llama.cpp、GPT4ALL、WebLLM 等 LLM 離線部署加速方案。雖然這些項(xiàng)目已經(jīng)將動(dòng)輒幾十 GB 的顯存需求和專業(yè) GPU 的算力需求降低至一般的消費(fèi)電子設(shè)備也可運(yùn)行,但大多仍然需要一些技能才可部署及體驗(yàn)。
BELLE 希望進(jìn)一步拓展大語(yǔ)言模型的使用場(chǎng)景,讓更多用戶即使沒(méi)有專業(yè)設(shè)備也能感受到 LLM 帶來(lái)的幫助。提供了純離線、跨平臺(tái)的 BELLE 聊天應(yīng)用:結(jié)合 4bit 量化后的 ChatBELLE 模型、llama.cpp 和 Flutter 跨平臺(tái) UI,用戶僅需安裝 app、下載模型,即可在各類(lèi)移動(dòng)設(shè)備上不需聯(lián)網(wǎng)本地體驗(yàn) ChatBELLE 模型。
首先來(lái)看看效果:
macOS
在 M1 Max Macbook 上僅使用 CPU 實(shí)時(shí)運(yùn)行,無(wú)論是加載還是推理都十分迅速:
相信隨著 LLM 端上推理相關(guān)算法和軟硬件技術(shù)的逐步發(fā)展,純離線端上模型的效果將越來(lái)越好。BELLE 項(xiàng)目將持續(xù)優(yōu)化 ChatBELLE 模型的性能和 App 功能,努力為更多用戶帶來(lái)更優(yōu)質(zhì)更豐富的體驗(yàn)。
小結(jié)
近兩個(gè)月,LLM 開(kāi)源社區(qū)在基礎(chǔ)模型研究、模型指令微調(diào)、模型應(yīng)用場(chǎng)景等多方面的進(jìn)展稱得上日新月異、百花齊放。BELLE 項(xiàng)目組對(duì)這些進(jìn)展感到欣喜之余,也希望貢獻(xiàn)自己微薄之力,促進(jìn)開(kāi)源 LLM,特別是中文開(kāi)源 LLM 的發(fā)展。
雖然在大家不懈努力下開(kāi)源模型在效果方面已經(jīng)取得了長(zhǎng)足進(jìn)步,甚至一些模型在個(gè)別方面已經(jīng)與 ChatGPT 甚至 GPT-4 效果比肩,我們?nèi)匀恍枰泵媾c OpenAI 的差距。目前,ChatGPT 的能力之多樣、指令跟隨和泛化能力之強(qiáng)、安全性之高,仍然需要開(kāi)源社區(qū)腳踏實(shí)地地不斷提升來(lái)追趕。在全社區(qū)的共同努力下,希望大語(yǔ)言模型將真正屬于每一個(gè)人,能夠幫助到每一個(gè)人。