彌補斯坦福70億參數「羊駝」短板,精通中文的大模型來了,已開源
距離 ChatGPT 的最初發布,過去差不多四個月的時間了。就在上星期 GPT-4 發布時,ChatGPT 第一時間上線了新版本。不過眾所周知的一個秘密是,不管是 ChatGPT 還是 GPT-4 都不大可能開源。加上巨大的算力投入以及海量的訓練數據等,都為研究界復制其實現過程設下重重關卡。
面對 ChatGPT 等大模型的來勢洶洶,開源平替是一個不錯的選擇。本月初,Meta「開源」了一個新的大模型系列 ——LLaMA(Large Language Model Meta AI),參數量從 70 億到 650 億不等。130 億參數的 LLaMA 模型「在大多數基準上」可以勝過參數量達 1750 億的 GPT-3,而且可以在單塊 V100 GPU 上運行。
時隔幾天,斯坦福基于 LLaMA 7B 微調出一個具有 70 億參數的新模型 Alpaca,他們使用了 Self-Instruct 論文中介紹的技術生成了 52K 條指令數據,同時進行了一些修改,在初步的人類評估中,Alpaca 7B 模型在 Self-Instruct 指令評估上的表現類似于 text-davinci-003(GPT-3.5)模型。
但遺憾的是,Alpaca 的種子任務都是英語,收集的數據也都是英文,因此訓練出來的模型未對中文優化。為了提升對話模型在中文上的效果,有沒有更好的方法呢?別急,接下來介紹的這個項目就能很好的解決這個問題。
開源中文對話大模型70 億參數的 BELLE(Bloom-Enhanced Large Language model Engine)來了。它基于斯坦福的 Alpaca 完成,但進行了中文優化,并對生成代碼進行了一些修改,不僅如此,模型調優僅使用由 ChatGPT 生產的數據(不包含任何其他數據)。
在數據方面,該項目開源了基于 Alpaca 的數據收集代碼,基于這段代碼生成了約 100 萬條中文數據,結合 Alpaca 的 5 萬條英文數據,在 BLOOMZ-7B 模型訓練得到的 checkpoint 上傳在 Hugging Face。
Hugging Face 地址:https://huggingface.co/BelleGroup
項目作者表示:該項目旨在促進中文對話大模型開源社區的發展。
項目地址:https://github.com/LianjiaTech/BELLE
項目介紹
該項目主要包含以下四部分內容:
- 175 個中文種子任務
- 生成數據的代碼
- 0.5M 生成的數據
- 基于 BLOOMZ-7B1-mt 優化后的模型
數據發布
1. zh_seed_tasks.jsonl:包含 175 個種子任務,樣例如下
{"id": "seed_task_20", "name": "horror_movie_opening", "instruction": "你需要為一部恐怖電影寫一個創意的開場場景。", "instances": [{"input": "","output":" 太陽已經落山,留下了一個黑暗的小鎮。微風吹拂空蕩的街道,讓每一個冒險走出門外的人感到一陣寒意。唯一的聲音是被風吹動的樹葉發出的輕微沙沙聲。突然,一聲令人毛骨悚然的尖叫聲劃破了寂靜,隨后是玻璃破碎的聲音。一所房子亮起了燈光,可以看到一個人影朝鎮中心奔跑。當> 那個人影越來越靠近時,清楚地看到那是一個年輕女子,她渾身血跡斑斑。"}],"is_classification": false}
2. prompt_cn.txt: 生成所使用的提示語
3. 0.5M 生成的數據
數據生成
沿用 Alpaca 的方式:
默認使用 Completion API,模型 text-davinci-003。如果想使用 Chat API 并使用 gpt-3.5-turbo 模型,可通過參數控制:
輸出文件在 Belle.train.json,可以人工篩選后再使用。
模型調優
該項目基于 BLOOMZ-7B1-mt 模型和 Belle.train.json 訓練模型,具體參數如下:
此外,該項目還采取了不同大小規模(20 萬、60 萬、100 萬和 200 萬樣本)的指令學習的數據集訓練模型,得到不同的模型版本如下所示:
模型使用例子
局限性和使用限制
基于當前數據和基礎模型訓練得到的 SFT 模型,在效果上仍存在以下問題:
- 在涉及事實性的指令上可能會產生違背事實的錯誤回答。
- 對于具備危害性的指令無法很好的鑒別,由此會產生危害性言論。
- 在一些涉及推理、代碼等場景下模型的能力仍有待提高。
- 基于以上模型局限性,該項目要求開發者僅將開源的代碼、數據、模型及后續用此項目生成的衍生物用于研究目的,不得用于商業,以及其他會對社會帶來危害的用途。