〔探索AI的无限可能,微信关注“AIGCmagic”公众号,让AIGC科技点亮生活〕
本文作者:AIGCmagic社区 刘一手
前言
AI多模态大模型发展至今,每年都有非常优秀的工作产出,按照当前模型设计思路,多模态大模型的架构主要包括以下几个部分:
-
模态编码器(Modality Encoder, ME):负责将不同模态的输入编码成特征。常见的编码器包括图像的NFNet-F6、ViT、CLIP ViT等,音频的Whisper、CLAP等,视频编码器等。
-
输入投影器(Input Projector):负责将其他模态的特征投影到文本特征空间,并与文本特征一起输入给语言模型。常用的投影器包括线性投影器、MLP、交叉注意力等。
-
语言模型骨架(LLM Backbone):利用预训练的语言模型,负责处理各种模态的特征,进行语义理解、推理和决策。常用的语言模型包括Flan-T5、ChatGLM、LLaMA等。
-
输出投影器(Output Projector):负责将语言模型输出的信号转换成其他模态的特征,以供后续模态生成器使用。常用的投影器包括Tiny Transformer、MLP等。
-
模态生成器(Modality Generator, MG):负责生成其他模态的输出。常用的生成器包括图像的Stable Diffusion、视频的Zeroscope、音频的AudioLDM等。
本文一手会详细解读AI多模态架构中的语言模型骨架(LLM Backbone),并从ChatGLM系列、Qwen系列、LLaMA系列三个代表性工作,总结当前主流的工作方案!持续更新,欢迎关注。
在当今人工智能时代,大模型无疑是最引人注目的焦点之一。它们以其强大的自然语言处理能力和广泛的应用场景,正在逐渐改变我们的工作和生活方式。
一、ChatGLM的前世今生
在这些引人注目的大模型中,ChatGLM系列无疑是一个值得关注的存在。本文将深入探讨ChatGLM大模型系列的前世今生,揭示其背后的技术原理和发展历程,以及它如何成为当今自然语言处理领域的一颗璀璨明珠。
1.1 背景
主流的大模型预训练框架主要有三种:AutoRegressive自回归模型(AR模型)、AutoEncoding自编码模型(AE模型)和Encoder-Decoder(Seq2seq模型)。这三种模型各有其独特的特点和应用场景。
(1) AutoRegressive自回归模型(AR模型)的代表作是GPT。这种模型本质上是一个left-to-right的语言模型,主要应用于生成式任务。在长文本生成方面,AR模型取得了巨大的成功,例如在自然语言生成(NLG)领域的任务,如摘要、翻译或抽象问答。当扩展到十亿级别参数时,AR模型表现出了少样本学习能力。然而,其单向注意力机制也存在一定的局限性,在自然语言理解(NLU)任务中,无法完全捕捉上下文的依赖关系。
(2) AutoEncoding自编码模型(AE模型)的代表作是BERT。这种模型是通过某个降噪目标(比如MLM)训练的双向文本编码器。编码器会产出适用于NLU任务的上下文表示,但在文本生成方面,AE模型无法直接应用。
(3) Encoder-Decoder(Seq2seq模型)的代表作是T5。这种模型采用双向注意力机制,主要应用于条件生成任务,如文本摘要、机器翻译等。
这三种预训练框架各有利弊,没有一种框架在自然语言理解(NLU)、无条件生成以及条件生成这三种领域的表现最佳。T5曾经尝试使用多任务学习(MTL)的方式统一上述框架,然而自编码和自回归目标天然存在差异,简单的融合自然无法继承各个框架的优点。
在这个天下三分的僵持局面下,GLM模型应运而生。GLM模型基于Autoregressive Blank Infilling(自回归空格填充法),结合了上述三种预训练模型的思想。
1.2 GLM预训练框架
GLM(General Language Modeling)模型是一种结合了自编码和自回归思想的预训练框架:
(1) 自编码:在输入文本中随机删除连续的tokens,然后顺序重建这些连续的tokens。这种自编码的思想使得GLM能够有效地捕捉文本的内在结构信息。
(2) 自回归:在重建过程中,GLM采用自回归的方式预测缺失的tokens。这意味着模型在预测时既可以访问已经被corrupted的文本,又可以访问之前已经被预测的spans。这种设计使得GLM在处理长文本时具有更高的效率和准确性。
(3)Span shuffling和二维位置编码技术:此外,GLM还引入了Span shuffling和二维位置编码技术。Span shuffling通过改变缺失spans的数量和长度,为条件生成以及无条件生成任务预训练语言模型。二维位置编码则能够更好地捕捉文本中的位置信息,提高模型在理解文本序列中的位置关系的能力。
概念解释:
(1) Span shuffling
"Span shuffling"是一种在预训练语言模型中用来增强模型对文本结构理解的技术。具体来说,Span shuffling涉及在输入文本中随机选择并删除一些连续的tokens(词或子词单元),然后模型需要预测并重建这些被删除的部分。
这个过程可以这样理解:
随机选择和删除:在原始文本中,随机选择一些连续的tokens(称为"spans")并将其删除。这些spans的长度和数量是随机变化的,这样可以模拟不同类型的文本损坏情况。
预测和重建:模型需要根据上下文信息预测并重建这些被删除的spans。由于spans的删除是随机的,模型必须学习如何根据周围的上下文来恢复这些缺失的部分,这要求模型能够理解文本的内在结构和语义。
增强模型能力:通过这种方式,span shuffling迫使模型不仅仅关注局部信息,还要考虑整个文本的结构和上下文关系。这有助于提高模型在处理各种自然语言处理任务时的性能,尤其是在理解和生成长文本方面。
(2)二维位置编码
Transformer使用位置编码来标记tokens中的绝对和相对位置。在GLM中,使用二维位置编码,第一个位置id用来标记Part A中的位置,第二个位置id用来表示跨度内部的相对位置。这两个位置id会通过embedding表被投影为两个向量,最终都会被加入到输入token的embedding表达中。
(1) 自回归空格填充任务
给定一个输入文本,可以采样得到多个文本spans 。为了充分捕捉各spans之间的相互依赖关系,可以对spans的顺序进行随机排列,得到所有可能的排列集合,其中:。所以预训练目标很清晰:
自回归空格填充任务的技术细节:输入x可以被分成两部分:Part A是被mask的文本Part B由masked spans组成。假设原始输入文本是 ,采样的两个文本片段是以及。那么mask后的文本序列是: , 即Part A;同时需要对 Part B的片段进行shuffle。每个片段使用 [S]填充在开头作为输入,使用 [E]填充在末尾作为输出。
以上内容通俗理解就是:
给定一个输入文本,我们可以从中选取多个片段(称为spans)。为了更好地理解这些片段之间的关系,我们可以随机改变这些片段的顺序,得到所有可能的排列组合。我们希望训练一个模型,使得在所有可能的片段顺序下,每个片段在已知被掩盖的文本和之前的片段情况下,被正确预测的概率最大
技术细节:
(1) 输入的文本可以分成两部分:Part A是被掩盖(masked)的文本,Part B是由被掩盖的片段组成的部分。比如,原始输入文本是 "x1, x2, x3, x4, x5, x6"。如果我们选择两个片段 "x3" 和 "x5, x6" 进行掩盖,那么掩盖后的文本序列就是 "x1, x2, [M], x4, [M]",这就是Part A。
(2) Part B 是被掩盖的片段部分,即 "x3" 和 "x5, x6"。对这些片段进行随机排列(shuffle),并且每个片段开头加上特殊标记 [S] 作为输入,结尾加上特殊标记 [E] 作为输出。
简单来说,这个方法通过掩盖输入文本的一部分并尝试预测这些掩盖的片段,同时随机排列这些片段,来训练模型更好地理解和预测文本内容。
下图是GLM论文中对上述过程的可视化展示:
(2) 多目标预训练
为了训练一个既能够解决自然语言理解(NLU)任务,又具备文本生成能力的模型,作者在GLM预训练框架中采用了多目标预训练策略。这种策略不仅包括之前提到的空格填充目标,还增加了两个额外的预训练目标,分别针对长文本生成和seq2seq任务。
首先,文档级别的预训练目标专注于生成长文本的能力。在这一目标中,模型从整个文档中采样一个文本片段进行mask操作,而这个片段的长度设定为文档长度的50%至100%。这样的设计迫使模型学习如何在较长的上下文中生成连贯和有意义的文本,从而提高其在处理长文本生成任务时的性能。
其次,句子级别的预训练目标旨在增强模型在seq2seq任务中的表现,特别是在预测完整句子或段落的能力上。在这一目标中,被mask的片段必须是完整的句子,并且多个这样的片段需要覆盖原始文本tokens的15%。这样的设计使得模型能够更好地理解句子结构,并学会在给定上下文中生成连贯的句子或段落。
通过这两种多目标预训练策略,GLM模型不仅能够在NLU任务上表现出色,还能够有效地处理文本生成任务,包括生成长文本和完成句子或段落的seq2seq任务。这种多目标预训练方法使得GLM模型成为一种更加通用和灵活的语言模型,能够适应多种不同的自然语言处理需求。
(3) 模型结构
GLM模型在原始的单一Transformer结构上进行了一些关键性的修改,以优化其性能和效率。这些修改包括:
(1) 重组LN和残差连接的顺序:在标准的Transformer模型中,层归一化(Layer Normalization, LN)通常位于残差连接之后。但在GLM中,这一顺序被调整,使得LN位于残差连接之前。这种重组有助于稳定训练过程,尤其是在处理非常长的序列时。
(2) 使用单个线性层对输出token进行预测:GLM模型在预测输出token时,使用了一个单独的线性层。这种方法简化了模型结构,减少了计算复杂度,同时保持了预测的准确性。
(3) 激活函数从ReLU换成了GeLU:在激活函数的选择上,GLM从传统的ReLU(Rectified Linear Unit)改为了GeLU(Gaussian Error Linear Unit)。GeLU被认为能够提供更好的非线性特性,有助于模型学习更复杂的特征表示。
尽管这些结构上的修改对模型的性能有显著影响,但GLM模型的核心和亮点仍然是其空格填充任务的设计。这种设计使得GLM能够有效地结合自编码和自回归的优势,同时通过span shuffling等技术增强模型对文本结构理解的能力。这些特点使得GLM在处理自然语言理解和文本生成任务时表现出色,成为一种强大且灵活的预训练语言模型。
(4) GLM微调
在将预训练模型应用于下游的自然语言理解(NLU)任务时,通常存在一个不一致性:预训练模型产出的是序列或tokens的表达,而下游任务往往需要使用线性分类器来预测label。为了解决这种不一致性,作者借鉴了PET(Prompt-Enriched Tuning)方法的思想,将下游的NLU任务重新表述为空白填充的生成任务。
具体来说,对于给定的一个已标注样本(x, y),作者将输入的文本x转换成一个包含mask token的完形填空问题。例如,在情感分类任务中,一个样本可以被表述为:“{SENTENCE}. It’s really [MASK]." 这里,[MASK]代表需要填写的部分。输出label y也会被映射到完形填空的答案中。例如,“positive” 和 “negative” 对应的标签可能是“good” 和 “bad”。
这种方法实际上是将NLU任务转换成了生成任务,以适应预训练时的目标。在预训练阶段,GLM模型对较长的文本片段进行mask,以确保其文本生成能力。而在微调阶段,通过将NLU任务转换为生成任务,模型可以更好地利用其在预训练阶段学到的知识。
然而,这种做法也引发了一些争议。一些人认为,将NLU任务转换为生成任务可能会显得有些牵强,因为它并不完全符合NLU任务的本质。此外,这种转换可能会引入额外的复杂性和计算成本。尽管如此,这种方法在许多实际应用中仍然取得了良好的效果,表明它是一种有效的策略,可以弥合预训练和下游任务之间的差距。
二、ChatGLM第二代模型
2.1 主要创新点
ChatGLM2是开源中英双语对话模型ChatGLM的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,ChatGLM2引入了如下新特性:
(1) 更长的上下文
基于 FlashAttention 技术,将基座模型的上下文长度(Context Length)由 ChatGLM-6B 的 2K 扩展到了 32K。这一技术的应用,显著提升了模型处理长文本的能力,使其能够更好地理解和回应用户的复杂问题。在对话阶段,使用了 8K 的上下文长度进行训练,这样可以确保模型在处理实际对话时,既能捕捉到足够的上下文信息,又能保持高效的响应速度。
为了满足对更长上下文处理的需求,发布了 ChatGLM2-6B-32K 模型。这个模型在处理长文本时的表现尤为突出,能够更准确地理解和回应用户的问题。这一点在 LongBench 的测评结果中得到了验证。LongBench 是一个专门用于评估大型语言模型处理长文本能力的基准测试,它通过一系列复杂的任务来测试模型的性能。
在 LongBench 的测评中,ChatGLM2-6B-32K 显示出了明显的竞争优势。与同等级别的其他开源模型相比,ChatGLM2-6B-32K 在处理长文本时的性能更胜一筹。这一结果不仅证明了模型在技术上的先进性,也为用户提供了更多的选择。对于那些需要处理长文本的应用场景,ChatGLM2-6B-32K 无疑是一个更好的选择。
(2) 更强大的性能
在开发 ChatGLM2-6B 的过程中,我们充分利用了基于 ChatGLM 初代模型的开发经验,对基座模型进行了全面升级。这一升级不仅包括了模型架构的优化,还涉及了训练数据和训练方法的改进。ChatGLM2-6B 采用了 GLM 的混合目标函数,这一函数结合了多种训练目标,旨在提升模型在理解和生成文本方面的能力。
为了进一步提升模型的性能,我们对 ChatGLM2-6B 进行了大量的预训练。这一过程涉及了 1.4T 中英标识符的数据,这些数据包括了大量的中文和英文文本,使得模型能够更好地理解和处理中英双语环境下的任务。此外,我们还进行了人类偏好对齐训练,这一训练方法旨在使模型的输出更加符合人类的偏好和期望。
在模型的评测环节,我们使用了多个数据集来评估 ChatGLM2-6B 的性能。评测结果显示,相比于初代模型,ChatGLM2-6B 在多个数据集上都取得了显著的性能提升。例如,在 MMLU 数据集上,ChatGLM2-6B 的性能提升了 23%;在 CEval 数据集上,性能提升了 33%;在 GSM8K 数据集上,性能提升了惊人的 571%;在 BBH 数据集上,性能提升了 60%。这些结果充分证明了 ChatGLM2-6B 在理解和处理复杂任务方面的强大能力。
(3) 更高效的推理
ChatGLM2-6B 模型采用了 Multi-Query Attention 技术,这一技术的应用显著提升了模型的推理速度和降低了显存占用。Multi-Query Attention 技术是一种改进的注意力机制,它通过减少注意力计算中的复杂度,从而提高了模型的推理效率。
在官方的模型实现中,ChatGLM2-6B 的推理速度相比初代模型提升了 42%。这对于需要快速响应的应用场景来说是非常重要的。例如,在在线客服、实时翻译等场景中,更快的响应速度能够带来更好的用户体验。
此外,ChatGLM2-6B 在 INT4 量化下,6G 显存支持的对话长度由 1K 提升到了 8K。这一改进意味着在相同的硬件资源下,ChatGLM2-6B 能够处理更长的对话,这对于需要处理长文本的应用场景来说是非常有价值的。例如,在聊天机器人、问答系统等场景中,更长的对话长度能够带来更丰富的交互体验。
2.2 与初代模型的变化
(1) 使用旋转位置编码(RoPE)
RoPE 是 GLM 中提出的一个亮点设计,它通过旋转机制来引入位置信息,能够更好地处理长序列。虽然目前大部分主流的 LLMs 都在使用 RoPE,但我们仍然采用了最初的 RoPE 设计。实际上,RoPE 经过了多次进化,包括 xPOS、线性内插、NTK-Aware Scaled RoPE 等多个版本,但我们的模型仍然保留了最初的设计,以保持模型的一致性和稳定性。
(2) 采用Multi-Query Attention 技术
这是一种共享机制的 Attention,与传统的 Multi-Head Attention 相比,它的 Query 部分没有区别,但 Key 和 Value 可以只使用一个 Head。在计算时,通过对 Key 和 Value 进行 expand 或 repeat 操作,使它们填充到与 Query 一样的维度,后续计算就与 Multi-Head Attention 没有区别。这一技术的应用,不仅提升了模型的推理效率,也降低了显存占用。
(3) 改进Attention Mask
在 V1 版本中,attention mask 分为两部分:Part A 和 Part B。Part A 部分是双向 Attention,Part B 部分是 Causal Attention。但在 V2 版本中,我们全部换成了 Causal Attention,不再区分是 Part A 还是 Part B,完全变成了 decoder-only 的架构。这一变化使得模型的结构更加简洁,也提高了模型的推理效率。
补充知识点:
Causal Attention(因果注意力,简称CATT)是一种新的注意力机制,它在传统的注意力机制中增加了因果推理算法。这种机制由南洋理工大学和澳大利亚莫纳什大学联合发表在2021年的CVPR顶会上的一篇论文中提出。CATT的主要目的是解决训练数据中存在的虚假相关性问题,通过使用因果推断中的“前门准则”来提高模型的可解释性,并在不牺牲性能的前提下增强模型的因果推理能力。论文出处:http://arxiv.org/abs/2103.03493
(4) 改进多目标任务
在 Chat 版本中,我们主要使用了 gMask 生成式任务。但在 V1 版本的代码中,还能看到 mask、gMask 等字样。在 V2 版本中,我们已经摒弃了这些特殊 token,原因与 Attention Mask 的改进一致,均因为模型变成了 decoder-only 的架构,不再需要区分 Part A 和 Part B。
三、ChatGLM第三代模型
一句话总结:ChatGLM2与ChatGLM3模型架构完全一致。在细节上略有不同。
3.1 更强大的基础模型
ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用了更多样的训练数据、更充分的训练步数和更合理的训练策略。在语义、数学、推理、代码、知识等不同角度的数据集上测评显示,ChatGLM3-6B-Base 具有在 10B 以下的基础模型中最强的性能。
3.2 更完整的功能支持
ChatGLM3-6B 采用了全新设计的 Prompt 格式,除正常的多轮对话外。同时原生支持工具调用(Function Call)、代码执行(Code Interpreter)和 Agent 任务等复杂场景。
补充:
ChatGLM3 对话的格式由若干对话组成,其中每个对话包含对话头和内容,一个典型的多轮对话结构如下:
<|system|> You are ChatGLM3, a large language model trained by Zhipu.AI. Follow the user's instructions carefully. Respond using markdown. <|user|> Hello <|assistant|> Hello, I'm ChatGLM3. What can I assist you today?
更多提示词格式,参考链接:ChatGLM3/PROMPT.md at main · THUDM/ChatGLM3 · GitHub
3.3 更全面的开源序列
除了对话模型ChatGLM3-6B之外,还开源了基础模型ChatGLM3-6B-Base和长文本对话模型ChatGLM3-6B-32K。这一系列模型的权重对学术研究完全开放,为研究人员提供了丰富的资源,以便于进行深入的研究和探索。此外,对于商业用途,只需填写问卷进行登记,即可免费使用这些模型。这种开放政策不仅促进了技术的共享和交流,还降低了企业和个人开发者使用先进人工智能技术的门槛。
四、GLM第四代模型
[GLM-4=ChatGLM4+多模态能力]
一共开源了四个模型,Base版本模型(GLM-4-9B)、Chat版本模型(GLM-4-9B-Chat和GLM-4-9B-Chat-1M)和多模态模型(GLM-4V-9B-Chat)。
其中,模型为多语言模型除了支持中文、英文之外,还支持日语,韩语,德语在内的26种语言;Chat系列模型支持网页浏览、代码执行、自定义工具调用(Function Call)的能力;GLM-4V-9B模型支持中英双语多轮对话能力。
一直以来,GLM团队专攻于10B以下的小模型,从23年3月14日开源的首代chatglm,到23年10月27日chatglm3,一直是6B大小。为了兼备性能和资源消耗,GLM团队此次将模型规模提升至9B。
4.1 基本信息
-
单尺寸预训练和微调模型:GLM-4-9B,以及一个多模态模型 GLM-4V-9B-Chat;
-
支持包括日语、韩语、德语在内的26种语言;
-
GLM-4-9B-Chat的上下文长度扩展到128k,另外 GLM-4-9B-Chat-1M支持1M上下文长度;
-
Function call(函数调用能力)相比上一代提升了 40%,在 Berkeley Function-Calling Leaderboard 上的overall acc为81.00;
-
GLM-4-9B模型的结构与GLM-3-6B模型结构一致,主要修改为模型层数、词表大小、支持更长的上下文。
-
词表由65024增加到151552;
-
模型层数由28增加到40;
4.2 长文本能力
GLM-4-9B 模型的上下文从 128K 扩展到 1M,这意味着模型能同时处理大约 200 万字的输入,大概相当于 2 本红楼梦或者 125 篇论文的长度。
在大海捞针实验中(考验模型在海量信息中找到相关内容的能力),GLM-4-9B 能够完美处理1M 上下文长度内的信息抽取任务,效果全绿。
4.3 多模态能力
基于GLM-4-9B的多模态模型GLM-4V-9B,具备1120×1120高分辨率下的中英双语多轮对话能力,支持8K上下文长度,在中英文综合能力、感知推理、文字识别和图表理解等多方面表现卓越,多模态比肩 GPT-4V,同时全面领先前一阵爆火的面壁MiniCPM-Llama3-V2.5多模态模型。
五、总结
作为国内最早入局大模型赛道的创业公司之一,智谱 AI 现在已成为国内 AI 技术公司的代表。它不仅是国产大模型技术的领军者,也是大模型学术界、开源生态中不可忽视的中国力量。智谱在 AI 领域已拥有广泛影响力,开源模型累计下载量高达 1600 万次,支持开源社区是智谱坚定不移的承诺。
GLM系列的开源精神值得点赞。开源模型的核心在于拥抱开放性,它们更有可能在各个行业中实现应用,推动AI赋能的产品落地。专业人士与AI的结合,比普通人加上AI,甚至是AI专家与不熟悉领域的结合,能够产生更大的效能。而开源的特点,使每个行业都能进行微调和定制化,每个行业都有可能激发出不同的需求和创新思维,从而推动整个行业的进步。
推荐阅读:
《AIGCmagic星球》,五大AIGC方向正式上线!让我们在AIGC时代携手同行!限量活动
《三年面试五年模拟》版本更新白皮书,迎接AIGC时代
AIGC |「多模态模型」系列之OneChart:端到端图表理解信息提取模型
AI多模态模型架构之模态编码器:图像编码、音频编码、视频编码
AI多模态模型架构之输入投影器:LP、MLP和Cross-Attention
AI多模态教程:从0到1搭建VisualGLM图文大模型案例
智谱推出创新AI模型GLM-4-9B:国家队开源生态的新里程碑
技术交流:
加入「AIGCmagic社区」群聊,一起交流讨论,涉及 「AI视频、AI绘画、Sora技术拆解、数字人、多模态、大模型、传统深度学习、自动驾驶」等多个不同方向,可私信或添加微信号:【lzz9527288】,备注不同方向邀请入群!!
欢迎加入知识星球,赠送立减100元优惠券!!
标签:模态,6B,GLM,训练,模型,LLM,ChatGLM,文本 From: https://blog.csdn.net/AIGCmagic/article/details/139537115