大模型——GLM大模型介绍
随着人工神经网络和深度学习技术的不断发展和应用场景的不断拓展,大型语言模型已经成为了自然语言处理领域中的重要研究方向之一。清华大学作为国内领先的科研机构之一,一直在该领域不断探索和创新。2022年,清华大学发布了一款具有重要意义的 GLM 大模型,它不仅在中文语言处理方面取得了显著的进展,还在英文语言处理方面表现出了强大的能力。GLM大模型区别于OpenAI GPT在线大模型只能通过API方式获取在线支持的窘境,GLM大模型属于开源大模型,可以本地部署进行行业微调、也可通过API方式在线获取GLM模型能力。因此对于开发者而言,GLM开源大模型更值得去探索和研究。本文将着重介绍GLM大模型的研究成果和应用,探讨GLM开源大模型在发展历程、技术原理、应用场景等内容,以帮助我们能够更加深刻的了解GLM大模型在人工智能领域的重要性和影响力,以及给世界带来的可能性。
1. GLM大模型产生的背景
随着Google 2017年发布的一篇名为“Attention is All You Need”的论文开始,人们便开始了基于Transformer架构的自注意力机制(self-attention mechanism)的前馈神经网络模型在自然语言处理领域的突飞猛进的探索,Google Transformer 逐渐成为自然语言处理领域的重要研究方向,后续提出的BERT、GPT大模型均是基于 Transformer 模型,这些模型在各种自然语言处理任务上都取得了非常好的效果。
而就在GPT-3、BERT、T5等大模型发布之后,预训练语言模型大体可分为GPT系列的自回归模型、BERT系列的自编码模型、T5系列的编码-解码模型,它们每一个都在各自的领域上表现不俗,但是没有一个预训练模型能够很好地完成所有任务。为了应对这一挑战,由清华大学实验室和智谱 AI 共同研发的一款通用预训练语言模型GLM(Generative Language Model)也紧随其后陆续登场,它在自然语言理解NLU、条件文本生成conditional 和非条件文本生成unconditional generation任务上都有着不错的表现。从而在竞争激烈的大模型领域呈现着一抹中国色。
智谱AI是一家清华大学技术成果转化的公司,致力于打造新一代认知智能通用模型,他和清华大学的深度合作,将技术成果在具体产品上落地和推广。在大模型领域,2022年发布了双语千亿级超大规模预训练模型GLM-130B,构建了高精度通用知识图谱,形成数据与知识双轮驱动的认知引擎。且在斯坦福大学基础模型中心的评测中,GLM-130B在准确性和公平性指标上与GPT-3 175B (davinci) 接近或持平,鲁棒性、校准误差和无偏性优于GPT-3 175B。基于GLM-130B 模型的对话模型ChatGLM-6B通过有监督微调等技术初步实现与人类意图对齐,初具理解人类指令意图的能力,并支持在单张 2080Ti 上进行推理使用。开源ChatGLM-6B具备独立部署潜质,可以成为千行百业大模型业务落地的基石。
智谱AI相继推出认知大模型平台Bigmodel.ai,其中包括CodeGeeX和CogView等产品,提供智能API服务,链接物理世界的亿级用户、赋能元宇宙数字人、成为具身机器人的基座,赋予机器像人一样“思考”的能力。可见在智谱AI大模型行业应用的推动下,基于GLM大模型的技术深入和应用探索会有更大的想象空间,值得期待…
2. GLM大模型的发展历程
自然语言处理NLP 技术中通常包含三类任务:自然语言理解NLU(包括文本分类、分词、句法分析、信息抽取等)、有条件生成任务(seq-seq,如翻译任务、QA)和无条件生成任务(用预训练模型直接生成内容)。当前预训练模型也主要包括三类:自编码模型、自回归模型和编码解码模型。但这些预训练模型都不足以在所有 NLP 任务中都能展现出良好的性能。清华大学针对上述三种任务提出了一种基于自回归空白填充的通用语言模型(GLM),在兼顾三方面任务,且性能表现良好。在持续的探索中,GLM系列模型发布了GLM-130B、ChatGLM、ChatGLM-6B、ChatGLM2-6B等大模型组。
GLM-130B
GLM-130B由清华智谱AI于2022年8月开源发布。它是GLM系列模型中最大的模型,拥有1300亿参数,支持中英文双语,其目标是能够训练出开源开放的高精度千亿中英双语语言模型,让每个人都能用的上的千亿模型。
GLM-130B其表现性能上与GPT3相当,相比于百亿或更小参数规模的模型来说,千亿模型显得尤为难以训练,在训练过程中会遇到很多意想不到的技术与工程相关的问题,因此千亿规模大模型的训练过程和模型参数对公众是难以获得的,而清华大学完全开源了GLM-130B的参数、代码和训练过程,揭示了如何成功地预训练一个高质量的千亿参数大语言模型的方法和过程。
GLM-130B大模型第一次将千亿模型量化到int4层次,并且在没有量化感知训练的条件下,性能损失也很少,这让模型能够在4块3090(24G)或8块2080Ti(11G)就可以推理GLM-130B模型。且GLM-130B从预训练到评估都是可复现的,所有评估代码也是开源的。这对于不具备大语言业务深耕经验的开发者而言带来了本地快速部署的可能,为行业大语言模型提供了重要的基石支撑。
ChatGLM千亿模型
ChatGLM千亿模型于2023年3月开启申请内测,目前已暂停了公开申请。该模型是为了解决大基座模型在复杂问题、动态知识、人类对齐场景的不足,基于GLM-130B,引入面向对话的用户反馈,进行指令微调后,得到的对话机器人。
ChatGLM-6B
ChatGLM-6B在进行ChatGLM千亿模型内测的同时,清华团队也开放出了同样技术的小参数量的版本,方便开发者和研发者们进行学习和开发,并于2023年3月进行了开源。ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。并且62亿的小参数规模模型可以支持在单张 2080Ti 上进行推理使用,这也使得个人开发者和研究者自己微调和部署 ChatGLM-6B 成为可能。
ChatGLM-6B 开源三个月,Hugging Face 全球下载量达到 300 万,GitHub 星标数达到 3 万。科技部在23年中关村论坛上发布的《中国人工智能大模型地图研究报告》显示ChatGLM-6B位列大模型开源影响力第一名。
ChatGLM2-6B
2023年6月25日ChatGLM-6B的二代模型 ChatGLM2-6B 模型开源发布,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上具有更强大的性能表现:
更强大的性能:基于 ChatGLM 初代模型的开发经验,全面升级了 ChatGLM2-6B 的基座模型。ChatGLM2-6B 使用了 GLM 的混合目标函数,经过了 1.4T 中英标识符的预训练与人类偏好对齐训练,评测结果显示,相比于初代模型,ChatGLM2-6B 在 MMLU(+23%)、CEval(+33%)、GSM8K(+571%) 、BBH(+60%)等数据集上的性能取得了大幅度的提升,在同尺寸开源模型中具有较强的竞争力。
更长的上下文:基于 FlashAttention 技术,将基座模型的上下文长度(Context Length)由 ChatGLM-6B 的 2K 扩展到了 32K,并在对话阶段使用 8K 的上下文长度训练,允许更多轮次的对话。但当前版本的 ChatGLM2-6B 对单轮超长文档的理解能力有限,会在后续迭代升级中着重进行优化。
更高效的推理:基于 Multi-Query Attention 技术,ChatGLM2-6B 有更高效的推理速度和更低的显存占用:在官方的模型实现下,推理速度相比初代提升了 42%,INT4 量化下,6G 显存支持的对话长度由 1K 提升到了 8K。
更开放的协议:ChatGLM2-6B 对学术研究完全开放,在获得官方的书面许可后,亦允许商业使用。
近几年来,大模型技术已在全球形成庞大技术群,衍生出涵盖各种参数规模、技术架构、模态和场景的大模型家族。从全球大模型发展态势来看,美国谷歌、OpenAI等企业机构不断引领大模型技术前沿发展,欧洲、俄罗斯、以色列等地的研发团队也投入到大模型研发中。从全球已发布的大模型分布来看,中国和美国大幅领先,超过全球总数的80%,美国的大模型数量居全球之首,中国自2020年起进入大模型快速发展期,整体增长态势与美国保持同步。美国以ChatGPT为代表的人工智能大模型引领新一轮全球人工智能技术发展浪潮,大模型相关新研究、新产品竞相涌现。目前,中国在大模型方面已建立起涵盖理论方法和软硬件技术的体系化研发能力,形成了紧跟世界前沿的大模型技术群,涌现出多个具有行业影响力的预训练大模型。清华大学的开源大模型GLM为中国大模型的发展贡献者积极的力量,更是为行业应用的大模型的本地部署提供的重要的基石,GLM系列模型还在不断的更新和迭代,未来定会有不俗的表现。
3. 智谱AI大模型组分类
智谱AI搭建了基于GLM系列大模型MaaS开放平台,新一代认知智能大模型,生成式AI时代的基座,基于领先的千亿级多语言、多模态预训练模型,打造高效率、通用化的“模型即服务”AI开发新范式。
3.1 ChatGLM语言大模型
ChatGLM系列模型,经过大量标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术对齐人类意图,具备问答、多轮对话、代码生成等能力。在逻辑推理、内容创作、代码生成和信息提取等各业务场景上有着出色的表现。详细信息如下:
注入知识及代码预训练,初具推理能力。ChatGLM系列模型具备广博的知识面以及灵活的知识关联能力,并通过注入代码预训练加强了推理能力;可以根据输入的指令提示,迅速联想出相关的大量知识及概念,并找出最适合的推理链条。
海量数据预训练,极具潜力的创作能力。ChatGLM大模型基于海量数据预训练,获得了关于语言、知识和创作技巧的深入理解;使得大模型能够释放出极具潜力的创作能力,能够持续源源不断的产生丰富、广泛、新颖的高质量原创内容。
根据指令生成代码,并给出代码解释。ChatGLM系列模型经过代码数据的预训练,支持根据自然语言提示快速生成代码,并给出代码解释;同时支持多种编程语言,支持续写、翻译、注释、bugfix等能力。
强大的语言理解能力,智能信息提取。ChatGLM系列模型具备强大的语言理解能力,可以深入理解文本信息之间的逻辑关系,从非结构化的文本信息中抽取所需的结构化信息。
3.2 CodeGeeX代码大模型
CodeGeeX是一个具有130亿参数的多编程语言代码生成预训练模型。支持20多种编程语言,具备代码生成、续写、翻译等能力。CodeGeeX采用华为MindSpore框架实现,在鹏城实验室“鹏城云脑II”中的192个节点(共1536个国产昇腾910 AI处理器)上训练而成。CodeGeeX具有以下功能:
支持生成代码、补全代码,提高编程效率。CodeGeeX可以根据自然语言注释描述的功能自动生成代码,也可以根据已有的代码自动生成后续代码,补全当前行或生成后续若干行,帮助开发者提高编程效率。
一键自动生成注释,中英文注释随意选。一次性解决程序员最讨厌的两件事,一是编写程序时要写注释,二是看别人编写的程序里没写注释。把程序员的幸福感瞬间拉满。
语义级代码翻译,支持多种语言互译。基于AI大模型对代码进行语义级翻译,支持多种编程语言互译,准确率高。
CodeGeeX插件现已上架VSCode插件市场(完全免费),用户可以通过其强大的少样本生成能力,自定义代码生成风格和能力,更好辅助代码编写。CodeGeeX所有代码和模型权重开源开放,用作研究用途。CodeGeeX同时支持昇腾和英伟达平台,可在单张昇腾910或英伟达V100/A100上实现推理。
3.3 CogView图像大模型
CogView图像多模态大模型,基于Transformer架构的文本生成图像模型,支持根据指令生成和编辑图像,实现“以文生图”和“以文改图”的功能。
以文生图:CogView模型经过大规模预训练,获得了理解图片实质属性、场景组成和画面风格的能力。可以根据自然语言描述生成全新的、独特又真实的高质量图片。
以文改图:CogView模型不仅可以根据文本描述生成图片,它也可以根据文本修改现有的图片。用户输入想要修改的图片以及对应的文本描述,CogView会自动理解文本中的指令并对图片进行相应修改,输出修改后的结果图片。
以上关于ChatGLM、CodeGeeX、CogView等模型组的信息来自于智谱AI开放平台介绍(https://open.bigmodel.cn/)
4. GLM大模型基本原理
预训练语言模型是在大量的未标注文本数据上进行训练的模型。其目标是通过学习大规模文本的统计规律和语义信息,以学习语言的通用表示,为自然语言理解和生成任务提供预先学习的知识。在实际应用中,预训练语言模型通常需要进行微调,以适应特定的任务和数据集。微调可以通过在少量标记数据上进行训练来完成,这使得预训练语言模型非常易于使用和适应不同的自然语言处理任务。
预训练语言模型的优势在于它们能够捕捉语言本身的特性和普遍规律,而不需要针对具体任务进行精准标注。这样的预训练模型可以作为初始模型,然后通过微调(fine-tuning)的方式,在特定任务上调整模型参数,以提升任务性能。因此,预训练模型使得自然语言处理任务更加高效,并在各种文本相关的应用中取得了显著的改进和推动效应。
4.1 自然语言处理技术中的主要三类任务
预训练语言模型所要解决自然语言处理的三类任务,如自然语言理解NLU,有条件生成任务和无条件生成任务:
自然语言理解(Natural Language Understanding,NLU)任务是指对自然语言文本进行理解和解析的任务。包括文本分类、分词、句法分析和信息抽取。
有条件生成任务(Conditional Generation)是指根据给定的输入条件生成相应的输出文本。如:序列到序列(Sequence-to-Sequence)任务,将一个序列映射到另一个序列,如翻译任务;问答任务(Question Answering),根据给定的问题,在给定的文本中找到相应的答案。
无条件生成任务(Unconditional Generation)是指在没有明确的输入条件下,直接生成文本或内容。如:文本生成(Text Generation):使用预训练模型或生成模型直接生成语义上连贯的文本。例如,生成新闻报道、故事、诗歌等。
4.2 预训练模型的三种建模方式
上述三类任务代表了自然语言处理中常见的任务类型,涵盖了对文本的理解、生成和转换等方面。通过这些任务,可以实现从文本的语义理解到自动问答、翻译、生成等各种应用。预训练语言模型可以完成这三类任务,现有预训练模型中主要有三种建模方式,分别为自编码模型、自回归模型、编码-解码模型。它们在不同的任务和应用中具有不同的特点和适用性。
自编码模型(Autoencoder Model)是一种无监督学习的模型,旨在通过输入数据的重构来学习抽取特征。即对学习数据进行压缩表示,并重建原始数据的过程。编码器将输入数据压缩编码为低维表示,解码器将这个低维表示转换回原始数据空间。自编码模型的目标是最小化重建误差,即输入数据与解码器重建的数据的差异。如BERT模型就是一种自编码器,它通过 Mask 改变了部分 Token,然后试图通过其上下文的其它Token 来恢复这些被 Mask 的 Token。自编码模型通过去噪目标学习双向上下文编码器,在语言理解相关的文本表示效果很好。但是存在不能直接用于文本生成的缺点。
自回归模型(Autoregressive Model)是一种条件生成模型,使用上下文信息预测下一项,通过在生成序列时考虑先前生成的单词或标记来建模序列的联合概率分布。在生成每个单词时,模型会依赖于前面已经生成的单词。这种模型通常采用序列式的生成方式,对于文本生成任务而言尤为常见。自回归模型通常采用循环神经网络(Recurrent Neural Network,RNN)或者转换器模型(Transformer)来建模序列数据。GPT系列语言模型就是自回归模型。自回归模型从左到右学习语言模型,适合于长文本生成和少样本学习,但不能捕捉上下文词之间的双向依赖关系。
编码解码模型(Encoder-Decoder Model)是一种用于序列到序列(Sequence-to-Sequence)任务的模型,它由一个编码器和一个解码器组成。编码器将输入序列编码为一个固定长度的向量,解码器将这个向量作为输入,生成目标序列。编码解码模型通常使用注意力机制(Attention)来捕捉输入序列和输出序列之间的对应关系,编码器使用双向注意力,解码器使用单向注意力,并且有交叉注意力连接两者,在有条件生成任务(seq-seq)中表现良好(文本摘要,回答生成)。经典的编码解码模型是机器翻译模型,其中最著名的是基于Transformer模型的模型。
这三种模型方式在预训练模型中都有广泛的应用,每种模型都有自己的优势和适用性。根据不同的任务和需求,选择适当的模型方式可以帮助提高模型的性能和表现。
4.3 GLM通用预训练模型
以上三种预训练模型框架都不足以在所有 NLP 任务中具有出色的表现力。以往的尝试通过多任务学习将不同的框架的目标结合起来,从而获得多方的优势,但实际上,由于自编码和自回归目标性质上的不同,简单方案结合不能充分继承两者的优势。基于此,清华大学提出了一种基于自回归空白填充的通用语言模型(GLM),来解决这一挑战。
GLM是一种用于自然语言理解和生成的通用预训练框架,是一种基于自回归空白填充的模型,用于生成文本或完成填空任务,以此来兼容三种训练目标。自回归空白填充模型中,对于采样输入文本中的部分片段,将其进行掩码留白标记,然后预测掩码留白标记所对应的文本片段。与自编码语言模型不同的是,预测的过程是采用自回归的方式,即需要考虑上下文信息。这样即具有自回归模型特性优势,也具备自编码模型的特性。
GLM通过引入二维位置编码(2D position embedding)和允许任意顺序的去预测跨度(span),使得它在 NLU 任务上的表现优于 Bert、T5。同时GLM可以通过改变空白的数目和长度来训练不同类型的任务。在同等模型参数大小和训练数据的情况下,GLM的表现在 NLU 、条件生成和非条件生成这三类任务上的表现都超过 Bert、T5、GPT 。
详细设计原理可以参考清华大学论文《GLM: General Language Model Pretraining with Autoregressive Blank Infilling》,论文链接:https://arxiv.org/pdf/2103.10360.pdf
5. GLM大模型应用场景
当前AI大模型的发展根据模型开发方式可以分为在线大模型和开源大模型。
在线大模型是指部署在云端或网络上的大型机器学习或深度学习模型。这些模型通常由云服务提供商或在线平台提供,并通过接口或API的方式进行访问和使用。在线大模型的优点是用户无需关注底层的硬件和软件架构,只需通过网络请求即可获得模型的预测结果。在线大模型还可以实现实时或按需的模型调用,适用于各种应用场景,如语音识别、图像处理和自然语言处理等。OpenAI的GPT系列大模型就是典型的在线大模型,用户可以使用OpenAI的相关产品而享受大模型的服务,而开发者可以通过大模型开放的API接口来访问获取大模型的服务从而提升产品的能力。
开源大模型是基于开源软件许可协议发布的大型深度学习模型。通常由研究者、开发者或社区共同开发和维护,并在公开的代码库中提供。优点是可以免费获取和使用,开放的代码使得用户可以自由地查看、修改和定制模型,以适应特定的需求和任务。开源大模型也促进了学术界和业界之间的知识共享和合作。GLM系列大模型就属于这样的开源大模型。因此对于GLM系列模型的应用场景大体可以分为如下三类:
用户直接使用GLM系列模型产品化功能
这种场景下用户使用GLM大模型产品化的业务功能,这些功能来源于清华大学或智谱AI公司提供的产品。如:ChatGLM是一款初具问答和对话能力的千亿基座对话模型机器人;CodeGeeX是一款具有130亿参数,支持20多种编程语言,具备代码生成、续写、翻译等能力的编程大模型;CogView是一款图像多模态大模型,基于Transformer架构的文本生成图像模型,支持根据指令生成和编辑图像,实现“以文生图”和“以文改图”的功能。产品体验链接如下:
ChatGLM:https://chatglm.cn
CodeGeeX:https://codegeex.cn
CogView:https://cogview.ai/
开发者通过API获取GLM系列模型在线服务
智谱AI将GLM系列模型产品均提供了可供开发者使用的API,并且创立了AI开放平台,搭建了基于GLM系列大模型MaaS开放平台,新一代认知智能大模型,生成式AI时代的基座,基于领先的千亿级多语言、多模态预训练模型,打造高效率、通用化的“模型即服务”AI开发新范式。
智谱AI为方便用户使用,提供了 SDK 和原生 HTTP 来实现模型 API 的调用,开发者可以使用 SDK 进行调用以获得更好的编程体验。详见:https://open.bigmodel.cn/。企业用户已经开始使用GLM大模型API接入功能来提升自身产品能力,举例如下:
2023年3月10日竹间智能科技接入 GLM-130B API 开发智能客服产品;
2023年5月15日中国民航信息网络公司基于GLM-130B API 开发航旅智能产品
2023年5月25日联想基于GLM-130B API 开发智能打印产品
…
开发者本地部署GLM系列模型服务并进行私有化定制模型业务
GLM系列模型属于开源大模型,可支持开发者进行本地部署GLM系列大模型,本地部署可根据具体的行业特性进行深度定制微调,私有化定制属于行业自己的大模型应用,让大模型能够在行业内快速落地和赋能,如利用ChatGLM+Langchain进行本地知识库的搭建、行业版的ChatGLM-6B微调等。很多企业用户已经开始使用开源GLM大模型进行私有化部署来提出行业版大模型,举例如下:
2023年4月14日美团私有化部署 GLM-130B,联合研发“美团GLM”;
2023年4月15日值得买部署 GLM-130B,私有化用于电商平台产品;
2023年4月24日360基于 GLM-130B 联合研发千亿级大模型“360GLM”;
…
GLM属于开源大模型,同时具备开源大模型和在线大模型的所有开发范式,为用户、开发者、企业提供了强大的千亿级规模大模型快速在行业内落地生花的基石和指导,相信基于GLM开源大模型的人工智能的开发和应用会有新的突破,也期待创新技术和应用的不断涌现。
6. 结语
近几年来,大模型技术已在全球形成庞大技术群,衍生出涵盖各种参数规模、技术架构、模态和场景的大模型家族。美国谷歌、OpenAI等企业机构不断引领大模型技术前沿发展,美国的大模型数量居全球之首,中国自2020年起进入大模型快速发展期,整体增长态势与美国保持同步。美国以ChatGPT为代表的人工智能大模型引领新一轮全球人工智能技术发展浪潮,大模型相关新研究、新产品竞相涌现。目前,中国在大模型方面已建立起涵盖理论方法和软硬件技术的体系化研发能力,形成了紧跟世界前沿的大模型技术群,涌现出多个具有行业影响力的预训练大模型。
清华大学研发的 GLM 大模型是一款具有重要意义的语言模型,它在中文和英文语言处理方面均表现出了强大的能力,为中国大模型的发展贡献着积极的力量,更是为行业应用的大模型的本地部署提供的重要的基石。未来,随着 GLM 大模型的不断完善和升级,将会在更多领域得到应用,推动自然语言处理技术的发展和进步。