盘点开源大语言模型LLMs
1.大语言模型演化
上图是来自Harnessing the Power of LLMs in Practice A Survey on ChatGPT and Beyond
, 该图很好的概述了自然语言模型的演化。
由此可知,自然语言处理(NLP)在Transformer出现之前以词向量为代表的模型:word2vec。
所谓word2vec就是一个词用一个紧凑的向量的来表示(而不是一个one-hot编码),可以认为是将一个one-hot映射到一个低维空间中;那如何映射才是有意义?谷歌在Efficient Estimation of Word Representations in Vector Space
提出两个方法CBOW和skip-gram。两者的本质区别:
- CBOW是利用中心词的前面和后面的词(即上下文)来预测该中心词,从而得到一个向量
- skip-gram是跟进中心词去预测周围的词,skip-gram利用构建中心词矩阵和周围词矩阵,来建立中心词和周围词的关系从而得到词向量
在Transformer之后,出现了三个较大的分支,一个是以bert为代表的以decoder-only的模型,另一个是以GPT为代表的encoder模型;第三个分支则是encoder+decoder的模型(就是整个Transformer),这里有清华系的GLM和chatGLM
各自的模型特点描述下:
简要的说:
bert模型在预测时是做完形填空,即一句话,遮住某一个词,用未遮住的词来预测遮住的词,bert在预测时知道前面的词和后面的词,这一点和CBOW是很像的
GPT模型则是词生成,用前面的词来预测后面的词,显然这比bert要难。
无疑,与人类知识对齐的ChatGPT获得的巨大的成功,但是chatGPT是封闭的,只提供API(GPT3也是封闭的),谷歌的Bard和PaLM也是封闭的。大厂里视乎只有meta提供了大模型的开源,如OPT、BLOOM、LLaMa。
2.开源GPT
有meta在前,开源社区对GPT也做出的很多优秀的工作,目的就是用更小的参数量来逼近chatGPT的效果,同时更友好的部署。
我们来看下有哪些值得关注的开源GPT
- 斯坦福大学的Alpaca
首先是斯坦福大学的Alpaca(羊驼),目前的Alpaca模型是根据Self instruction论文中的技术生成的52K指令数据,在7B LLaMA模型进行微调的,并进行了一些修改。效果上,在一项初步的人类评估中,发现Alpaca 7B模型的表现与text-davinci-003(GPT3)模型相似。
清华系的ChatGLM-6B
ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。ChatGLM同时实现了基于 P-Tuning v2 的高效参数微调方法 (使用指南) ,INT4 量化级别下最低只需 7GB 显存即可启动微调
Vicuna
Vicuna: An Open-Source Chatbot Impressing GPT-4 with 90% ChatGPT Quality。受 Meta LLaMA 和 Stanford Alpaca 项目的启发,来自加州大学伯克利分校、CMU、斯坦福大学和加州大学圣地亚哥分校的成员,共同推出了一个 Vicuna-13B 开源聊天机器人,由增强的数据集和易于使用、可扩展的基础设施支持
- MOSS
MOSS是复旦大学的开源的一个拥有160亿参数的开源对话语言模型。它由约7000亿中英文及代码单词预训练得到,精度要求不那么高的话,甚至可以在单张3090显卡上运行
- Lamini
Lamini: The LLM engine for rapidly customizing models。来自斯坦福的一群开发者发布了 Lamini,号称可以为每个开发人员提供从 GPT-3 带到 ChatGPT 的超能力;使用Lamini,开发人员使用很多公司、机构的基础模型快速构建定制化模型。
- https://github.com/lamini-ai/lamini/
- mini-GPT4
mini-GPT4提供了在Vicuna-7B上对齐的预训练模型。显存消耗可以低到12GB
- https://github.com/Vision-CAIR/MiniGPT-4