Kanchil(鼷鹿)是世界上最小的偶蹄目动物,这个开源项目意在探索小模型的潜力,通过instruct-tuning、RLHF从零开始赋予模型对齐人类偏好的能力。
GPT4发布后是大规模语言模型的吃鸡赛场,头部瞄准千亿级别,大量力量猛攻百亿级别。我们愿做一股清流,探索下能够对齐人类偏好的小模型,以及如何将千亿百亿规模工作上的经验应用于小模型能力的提升。
p.s. 我们也在chatGLM-6B等模型上进行了继续微调的尝试,可以利用模型原本的能力+新数据集+我们调通的训练脚本进一步开发属于自己的模型。ChatGLM-chinese-insturct。
- [2023-03-29] 完成1B的MT5-base在BELLE数据集上的微调,其具备了读指令的能力,但是经常胡说八道。开源了微调后的权重
- [2023-03-29] 完成2B的MT5-large在BELLE数据集上的微调。开源了微调后的权重
MT5-base是一个仅有1B的模型,一张16G的显卡就可以轻松训练、部署,我们测试发现这个规模的模型已经能够通过instruct-tuning获得一定对齐人类偏好的能力。但是受限于模型的规模,其存储的知识并不多,经常会生成事实性/逻辑性有问题的文本。感兴趣的朋友或许可以尝试将一些自己领域的数据用于进一步微调模型,让它成为“领域专家”。
MT5-large是一个2B的模型,它读指令的能力略强于MT5-base,受限于资源,MT5-large训练的轮次只有base的一半。
参考 requirements.txt
目前主要使用huggingface Trainer进行训练,支持deepspeed多卡训练。模型本身的规模比较小,因而也不需要特别的优化,一张16G的显卡可以跑起来。
单卡训练: sh train.sh
deepspeed sh deepspeed.sh
python chatwithT5.py
-
优化代码结构,对路径、数据处理等解耦,方便感兴趣的朋友复用我们的代码
-
在更多不同模型架构、参数量级(不超过6B)的模型上进行instruct-tuning尝试
-
引入RLHF、检索增强等技术,提高小模型的能力