ChatGPT类模型汇总
当今的自然语言处理领域,基于Transformer架构的大型语言模型(LLM)成为了研究的热点,其中ChatGPT类模型更是备受关注。这类模型以OpenAI GPT系列模型为代表,具有无监督预训练和有监督微调的能力,可以为对话系统、问答系统等任务提供强大的语言生成和理解能力。本篇博客将对当前较为知名的ChatGPT类模型进行汇总,从模型结构、训练数据、微调效果等方面进行比较和介绍,旨在为研究者和开发者提供参考和帮助。
OPT
OPT 是由 Meta AI 研究人员发布的一系列大规模预训练语言模型,模型包括125M、350M、1.3B、2.7B、6.7B、13B、30B、66B、175B 9个不同的参数规模和版本,除了 175B 的版本需要填写申请获取外,其它规模版本的模型都完全开放下载,可以免费获得。OPT-175B 和 GPT-3 的性能相当,并且部署只需要损耗 GPT-3 1/7 的能量损耗。OPT 系列模型开源的目的是为促进学术研究和交流,因为绝大多数大语言模型训练成本高昂,导致大部分研究人员都无法负担大语言模型的训练或使用;同时,各大企业发布的大语言预训练模型由于商业目的也都无法完整访问模型权重,只能通过 API 调用获取结果,阻碍了学术的交流与研究。
github链接:https://github.com/facebookresearch/metaseq/tree/main/projects/OPT
LLaMA
LLaMA 是 Meta AI 发布的包含 7B、13B、33B 和 65B 四种参数规模的基础语言模型集合,LLaMA-13B 仅以 1/10 规模的参数在多数的 benchmarks 上性能优于 GPT-3(175B),LLaMA-65B 与业内最好的模型 Chinchilla-70B 和 PaLM-540B 比较也具有竞争力。
这项工作重点关注使用比通常更多的 tokens 训练一系列语言模型,在不同的推理预算下实现最佳的性能,也就是说在相对较小的模型上使用大规模数据集训练并达到较好性能。Chinchilla 论文中推荐在 200B 的 tokens 上训练 10B 规模的模型,而 LLaMA 使用了 1.4T tokens 训练 7B的模型,增大 tokens 规模,模型的性能仍在持续上升。
github链接:https://github.com/facebookresearch/llama
BLOOM
BLOOM 是 BigScience(一个围绕研究和创建超大型语言模型的开放协作研讨会)中数百名研究人员合作设计和构建的 176B 参数开源大语言模型,同时,还开源了BLOOM-560M、BLOOM-1.1B、BLOOM-1.7B、BLOOM-3B、BLOOM-7.1B 其他五个参数规模相对较小的模型。BLOOM 是一种 decoder-only 的 Transformer 语言模型,它是在 ROOTS 语料库上训练的,该数据集包含 46 种自然语言和 13 种编程语言(总共 59 种)的数百个数据来源。 实验证明 BLOOM 在各种基准测试中都取得了有竞争力的表现,在经过多任务提示微调后取得了更好的结果。BLOOM 的研究旨在针对当前大多数 LLM 由资源丰富的组织开发并且不向公众公开的问题,研制开源 LLM 以促进未来使用 LLM 的研究和应用。
huggingface链接:https://huggingface.co/bigscience/bloom
Flan-PaLM
Flan-PaLM 540B在几个基准测试中实现了最先进的性能,例如在五次训练下,MMLU达到了75.2%。我们还公开发布了Flan-T5检查点,1即使与PaLM 62B等更大的模型相比,也实现了强大的少量训练性能。总体而言,指令微调是一种通用方法,可以提高预训练语言模型的性能和可用性。
github链接:https://huggingface.co/google/flan-t5-xxl
Cerebras-GPT-13B
Cerebras-GPT是一个由Cerebras公司推出的大型语言模型家族,旨在通过开放式架构和数据集,以及展示在Cerebras软件和硬件堆栈上训练大型语言模型的简单性和可扩展性,促进LLM缩放定律的研究。所有Cerebras-GPT模型都可在Hugging Face上获取。
github链接:https://huggingface.co/cerebras/Cerebras-GPT-13B
相关介绍:https://www.cerebras.net/blog/cerebras-gpt-a-family-of-open-compute-efficient-large-language-models/
Flan-UL2
Flan-UL2是基于T5架构的编码器解码器模型,使用了去年早些时候发布的UL2模型相同的配置。它使用了“Flan”提示微调和数据集收集进行微调。
原始的UL2模型只使用了512的感受野,这使得它对于N-shot提示,其中N很大,不是理想的选择。
Flan-UL2 checkpoint使用2048的感受野,使其更适用于少量的上下文学习。
原始的UL2模型还有一些模式切换标记,这对于获得良好性能是相当必要的。然而,它们有点繁琐,因为这在推理或微调过程中经常需要一些更改。在这次更新/更改中,我们继续训练UL2 20B进行额外的100k步(使用小批量)来忘记“模式标记”,然后应用Flan指令微调。这个Flan-UL2检查点不再需要模式标记了。
github链接:https://huggingface.co/google/flan-ul2
LMFlow
LMFlow是一个可扩展、方便、高效的工具箱,用于微调大型机器学习模型,旨在提供用户友好、快速、可靠且对整个社区开放的服务。该工具箱提供了在线服务、Colab聊天机器人(shell和web)、本地部署等四种演示。其中在线服务提供了预训练好的模型供用户试用,Colab聊天机器人提供了两种交互式机器人,可轻松在Colab上部署。此外,如果用户资源充足,还可以使用本地部署方式部署更大的模型。需要注意的是,该工具箱并不保证数据和预训练模型的准确性、完整性、适用性或合法性,用户必须对其自身使用行为承担所有责任和风险,并在使用前获得法律、商业和技术咨询。工具箱不对用户不当数据准备和预训练模型而导致的任何直接、间接、特殊、偶然或后果性损害负责。此外,提供的检查点仅供研究目的使用,不鼓励或支持商业用途。用户应该保证正确和适当地使用这些检查点,使用过程中产生的任何风险和责任需自行承担。模型生成的结果基于概率模型,与LMFlow工具箱无直接关联。因此,用户需要对模型生成的结果自行承担风险和责任,并在依赖模型生成的结果前获得法律、商业和技术咨询。工具箱不对用户依赖模型生成的结果而导致的任何直接、间接、特殊、偶然或后果性损害负责。
github链接:https://github.com/OptimalScale/LMFlow
ChatGLM
ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答,更多信息请参考我们的博客。
为了方便下游开发者针对自己的应用场景定制模型,我们同时实现了基于 P-Tuning v2 的高效参数微调方法 (使用指南) ,INT4 量化级别下最低只需 7GB 显存即可启动微调。
不过,由于 ChatGLM-6B 的规模较小,目前已知其具有相当多的局限性,如事实性/数学逻辑错误,可能生成有害/有偏见内容,较弱的上下文能力,自我认知混乱,以及对英文指示生成与中文指示完全矛盾的内容。请大家在使用前了解这些问题,以免产生误解。更大的基于 1300 亿参数 GLM-130B 的 ChatGLM 正在内测开发中。
github链接:https://github.com/THUDM/ChatGLM-6B
Alpaca
Alpaca是一个基于LLaMA预训练模型,使用Self-Instruct技术生成的5.2万条指令跟随数据进行微调的聊天机器人模型。在初步的人类评估中,Alpaca 7B模型的表现与Self-Instruct指令跟随评估套件上的text-davinci-003模型相似。
Alpaca仍在不断发展中,还有许多需要解决的限制。重要的是,我们尚未对Alpaca模型进行安全和无害微调。因此,我们鼓励用户在与Alpaca交互时要保持谨慎,并报告任何有关行为,以帮助改进模型的安全和道德考虑。
github链接:https://github.com/tatsu-lab/stanford_alpaca