目录
- 前言
- LLaMA
- stanford Alpaca
- Guanaco
- Vicuna
- Chinese-LLaMA-Alpaca
- Chinese-Vicuna
- Luotuo-Chinese
- Falcon
- OpenBuddy-Falcon
- ChatGLM && VisualGLM
- MOSS
- Aquila
- PandaGPT
- TigerBot
- 模型微调策略
- LoRA
- QLORA
- P-tuningv2
前言
自从ChatGPT出世以来,各个大厂/研究院都纷纷推出自己的大模型,大模型领域发展一日千里。随着“百模大战”热度的降低,有必要梳理一下目前主流的大模型以及其变种模型,为大家梳理一下当前开源模型的工作。
LLaMA
GitHub地址:
https://github.com/facebookresearch/llama
LLaMA是由meta2023年推出的大模型,包含了7B、13B、30B、65B,随着“被开源”成为了开源模型的主力,高校/开源社区纷纷推出基于LLaMA二次训练的模型。
stanford Alpaca
GitHub地址:
https://github.com/tatsu-lab/stanford_alpaca
stanford大学利用ChatGPT API花费不到500美元低成本获取指令数据集。
Guanaco
GitHub地址:
https://github.com/Guanaco-Model/Guanaco-Model.github.io
Guanaco是一个基于Meta的LLaMA 7B模型构建的高级指令遵循语言模型。在 Alpaca 模型最初的 52K 数据集的基础上,又合并了 534,530 个条目,涵盖英语、简体中文、繁体中文(台湾)、繁体中文(香港)、日语、德语以及各种语言和语法任务。这些丰富的数据使Guanaco能够在多语言环境中表现出色。
Vicuna
GitHub地址:
https://github.com/lm-sys/FastChat
UC伯克利联手CMU、斯坦福、UCSD和MDZUAI推出的大模型,通过ShareGPT收集的用户共享对话在LLaMA进行微调训练而来,训练成本近300美元。
一般来说,vicuna不能直接获取,需要LLaMA原模型权重和delate权重合并获取,由于LLaMA原权重下载不是很方便,所以我上传了合并后的模型权重。
https://huggingface.co/ls291/vicuna-13b-v1.1
Chinese-LLaMA-Alpaca
GitHub地址:
https://github.com/ymcui/Chinese-LLaMA-Alpaca
该项目开源了中文LLaMA模型和指令精调的Alpaca大模型。这些模型在原版LLaMA的基础上扩充了中文词表并使用了中文数据进行二次预训练,进一步提升了中文基础语义理解能力。同时,中文Alpaca模型进一步使用了中文指令数据进行精调,显著提升了模型对指令的理解和执行能力。
Chinese-Vicuna
GitHub地址:
https://github.com/Facico/Chinese-Vicuna
鉴于llama,alpaca,guanaco等羊驼模型的研发成功,我们希望基于LLaMA+instruction数据构建一个中文的羊驼模型,并帮助大家能快速学会使用引入自己的数据,并训练出属于自己的小羊驼(Vicuna)
Luotuo-Chinese
GitHub地址:
https://github.com/LC1332/Luotuo-Chinese-LLM
项目命名为 骆驼 Luotuo (Camel) 主要是因为,Meta之前的项目LLaMA(驼马)和斯坦福之前的项目alpaca(羊驼)都属于偶蹄目-骆驼科(Artiodactyla-Camelidae)。而且骆驼科只有三个属,再不起这名字就来不及了。
基于各个大模型做的二次衍生开发,开发项目如下:
Falcon
HF地址:
https://huggingface.co/tiiuae
是阿联酋大学推出的,最大的是40B,在AWS上384个GPU上,使用了1万亿的token训练了两个月。
由于是最近开源的模型,二次衍生的模型较少。
OpenBuddy-Falcon
HF地址:
https://huggingface.co/OpenBuddy
详细信息请见:
https://mp.weixin.qq.com/s/VimLdVmZ27t4S8_C0Jlzjg
ChatGLM && VisualGLM
GitHub地址:
https://github.com/THUDM/ChatGLM-6B
是由智源和清华大学联合开发,释放出ChatGLM-6B,目前是较为主流的中文大模型。
VisualGLM是基于ChatGLM-6B+BLIP2模型联合训练得到多模态大模型。
MOSS
GitHub地址:
https://github.com/OpenLMLab/MOSS
由复旦大学开发,释放了MOSS-16B模型以及8-bit和4-bit量化模型,同时开源了训练数据
Aquila
GitHub地址:
https://github.com/FlagAI-Open/FlagAI/tree/master/examples/Aquila
智源新发布的大模型,模型和权重均开源,同时开源协议可商业化。
Aquila语言大模型在技术上继承了GPT-3、LLaMA等的架构设计优点,替换了一批更高效的底层算子实现、重新设计实现了中英双语的tokenizer,升级了BMTrain并行训练方法,在Aquila的训练过程中实现了比Magtron+DeepSpeed zero-2将近8倍的训练效率。Aquila语言大模型是在中英文高质量语料基础上从0开始训练的,通过数据质量的控制、多种训练的优化方法,实现在更小的数据集、更短的训练时间,获得比其它开源模型更优的性能。
PandaGPT
GitHub地址:
https://github.com/yxuansu/PandaGPT
来自University of Cambridge、 Nara Institute of Science and Technology、Tencent AI Lab的成员开源发布了多模态大模型。该大模型能够接收文本、图像、语音模态,并可进行模态之间转换。
TigerBot
GitHub地址:
https://github.com/TigerResearch/TigerBot
由虎博科技基于BLOOM模型开发的大语言模型,在BLOOM模型架构和算法上做了如下优化:
- 指令完成监督微调的创新算法以获得更好的可学习型(learnability),
- 运用 ensemble 和 probabilistic modeling 的方法实现更可控的事实性(factuality)和创造性(generativeness),
- 在并行训练上,我们突破了 deep-speed 等主流框架中若干内存和通信问题,
- 对中文语言的更不规则的分布,从 tokenizer 到训练算法上做了更适合的算法优化。
模型微调策略
LoRA
GitHub地址:
https://github.com/huggingface/peft
Lora主要在模型中注入可训练模块,大模型在预训练完收敛之后模型包含许多进行矩阵乘法的稠密层,这些层通常是满秩的,在微调过程中其实改变量是比较小的,在矩阵乘法中表现为低秩的改变,注入可训练层的目的是想下游微调的低秩改变由可训练层来学习,冻结模型其他部分,大大减少模型训练参数。
QLORA
GitHub地址:
https://github.com/artidoro/qlora
QLORA通过冻结的4位量化预训练语言模型向低秩适配器(LoRA)反向传播梯度。
P-tuningv2
GitHub地址:
https://github.com/THUDM/ChatGLM-6B/tree/main/ptuning
p-tuning v2简单来说其实是soft prompt的一种改进,soft prompt是只作用在embedding层中,实际测试下来只作用在embedding层的话交互能力会变弱,而且冻结模型所有参数去学习插入token,改变量偏小使得效果有时候不太稳定,会差于微调。p tuning v2则不只是针对embedding层,而是将连续型token插入每一层,增大改变量和交互性。