BELLE 基于 Stanford Alpaca,对中文做了优化,模型调优仅使用由 ChatGPT 生产的数据(不包含任何其他数据)。
距离 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
该项目主要包含以下四部分内容:
数据发布
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 的方式:
pip install -r requirements.txt
export OPENAI_API_KEY=YOUR_API_KEY
python generate_instruction.py generate_instruction_following_data
默认使用 Completion API,模型 text-davinci-003。如果想使用 Chat API 并使用 gpt-3.5-turbo 模型,可通过参数控制:
python generate_instruction.py generate_instruction_following_data
--api=chat --model_name=gpt-3.5-turbo
输出文件在 Belle.train.json,可以人工筛选后再使用。
模型调优
该项目基于 BLOOMZ-7B1-mt 模型和 Belle.train.json 训练模型,具体参数如下:
此外,该项目还采取了不同大小规模(20 万、60 万、100 万和 200 万样本)的指令学习的数据集训练模型,得到不同的模型版本如下所示:
模型使用例子
局限性和使用限制
基于当前数据和基础模型训练得到的 SFT 模型,在效果上仍存在以下问题:
以上是弥补斯坦福70亿参数「羊驼」短板,精通中文的大模型来了,已开源的详细内容。更多信息请关注PHP中文网其他相关文章!