目录
大语言模型、AIGC、ChatGPT
01 概述
最近几个月,大型语言模型(LLM)引起了广泛的关注,这种需求导致了利用语言模型的网站和解决方案的不断发展。ChatGPT 在2023年1月创造了用户增长最快的记录,证明了大语言模型的强大和发展速度。
大语言模型
大语言模型(Large Language Model,LLM)是一种基于人工智能(Artificial Intelligence,AI)算法的模型,利用深度学习技术和大规模数据集来理解、总结、生成和预测新的内容。LLM与生成人工智能密切相关,实际上,LLM是一种专门设计用于生成基于文本内容的生成人工智能。LLM是语言模型概念在人工智能领域的演进,它通过扩展用于训练和推理的数据集,显著提升了人工智能模型的能力。尽管没有一个普遍接受的数据集大小标准,但一个典型的LLM通常具有至少10亿个或更多的参数。参数是机器学习中的术语,用于表示模型中存在的变量,这些变量可以用来推断生成新的内容。
02 大模型的应用
-
文本生成:大语言模型可以用于生成各种类型的文本,包括文章、新闻报道、诗歌、故事等。它可以根据输入的提示或上下文生成连贯的文本,并具备一定的创造性。
-
语言翻译:大语言模型可以用于实时语言翻译,将一种语言翻译成另一种语言。它可以处理复杂的句子结构和语义,并生成高质量的翻译结果。
-
对话系统:大语言模型可以用于构建智能对话系统,与用户进行自然语言交互。它可以回答问题、提供信息、执行任务,并具备一定的对话能力和上下文理解能力。
-
自动摘要和信息提取:大语言模型可以自动提取文本中的关键信息,并生成简洁的摘要。它可以帮助人们更快地获取信息,并从大量文本中筛选出有用的内容。
-
智能客服和虚拟助手:大语言模型可以应用于智能客服系统和虚拟助手,为用户提供实时帮助和答案。它可以理解用户的问题和需求,并做出相应的回应和建议。
-
内容生成和创作助手:大语言模型可以帮助作家、编辑和内容创作者生成创意、改善写作风格,并提供实时建议和反馈。它可以成为一个有用的创作助手,提高创作效率和质量。
-
数据分析和决策支持:大语言模型可以处理和分析大规模的文本数据,并从中提取有价值的信息。它可以帮助企业做出决策、进行市场分析、挖掘用户反馈等。
03 大模型的原理
大语言模型(Large Language Model,LLM)是基于深度学习技术的模型,它的原理主要涉及两个关键方面:模型架构和训练方法。
-
模型架构:
-
以Transformer为例,大语言模型通常采用Transformer架构。Transformer模型由编码器(Encoder)和解码器(Decoder)组成。
-
编码器和解码器由多个相同层堆叠而成,每个层都包含多头自注意力机制(Self-Attention)和前馈神经网络(Feed-Forward Neural Network)。
-
自注意力机制允许模型根据输入序列的不同位置之间的关系,动态地分配注意力权重。这使得模型能够对上下文信息进行建模,并捕捉长距离依赖关系。
-
前馈神经网络通过多层感知机对每个位置的特征进行非线性映射和变换。
-
训练方法:
-
大语言模型的训练通常采用监督学习方法,即使用有标签的文本数据来进行训练。
-
训练过程中,模型接收输入序列,并通过前向传播生成预测输出序列。
-
预测输出序列与真实目标序列进行比较,通过损失函数(如交叉熵)计算损失。
-
使用反向传播算法和优化器(如Adam)对模型的参数进行调整,以最小化损失函数。
-
在训练过程中,通常使用批量训练和梯度累积等技巧来处理大规模数据和大模型的训练。
通过逐渐增加数据量和模型规模,并进行大规模的预训练和微调,大语言模型可以提高对语言的理解和生成能力。模型的参数数量通常是十亿级别甚至更多,这使得模型能够处理复杂的语言结构和丰富的语义信息。
神经网络
大型语言模型是使用一种特殊的神经网络架构建立的,称为基于变压器的大型语言模型,它类似于人类大脑中神经元的连接方式。这使得 LLM 能够以惊人的准确性和速度预测和处理语言。
神经网络(Neural Network)是一种由人工神经元组成的计算模型,模拟了生物神经系统中神经元之间的连接和信息传递。它是人工智能领域的重要组成部分,被广泛用于解决各种复杂问题,如图像识别、语音识别、自然语言处理等。
神经网络由多个层次组成,包括输入层、隐藏层和输出层。每个层都由多个神经元(或称为节点)组成,这些神经元之间通过连接权重进行信息传递。输入层接收外部输入,隐藏层对输入进行处理和转换,最终输出层生成最终的预测结果。
变压器结构
变压器结构(Transformer)是一种基于注意力机制的神经网络模型,最初被提出用于机器翻译任务,但后来广泛应用于自然语言处理等领域。它在处理序列数据方面相比传统的循环神经网络(RNN)和卷积神经网络(CNN)具有很多优势。
变压器结构的主要组成部分是自注意力机制(Self-Attention)和前馈神经网络(Feed-Forward Neural Network)。
自注意力机制:自注意力机制是变压器结构的核心,用于对输入序列中的不同位置之间的关系进行建模。通过计算每个位置与其他所有位置的相关性得分,自注意力机制能够为每个位置分配不同的注意力权重。这样,模型可以捕捉到序列中不同部分之间的长距离依赖关系。自注意力机制由三个线性变换(查询、键和值)和注意力计算组成。
前馈神经网络:在变压器结构中,每个位置的特征都通过前馈神经网络进行非线性映射和变换。前馈神经网络通常由两个全连接层和激活函数组成,能够在每个位置上对特征进行逐元素的映射。
变压器结构的特点包括:
-
并行计算:由于自注意力机制的特性,变压器能够并行计算序列中的不同位置,而不像RNN那样需要按顺序处理。这使得变压器在训练和推理阶段的计算效率更高。
-
长距离依赖关系:通过自注意力机制,变压器能够捕捉到输入序列中不同位置之间的长距离依赖关系。这使得模型能够更好地理解整个序列的上下文和语义信息。
-
多头注意力:变压器可以使用多个注意力头来计算注意力权重,每个头都可以关注不同的特征子空间。这种多头机制有助于模型更好地捕捉不同层次和不同方面的特征表示。
-
适用性广泛:由于其出色的建模能力和并行计算的优势,变压器结构被广泛应用于自然语言处理任务,如机器翻译、文本生成、文本分类等。
变压器结构的引入对于深度学习在自然语言处理领域的发展起到了重要的推动作用,它已成为当前最先进的语言模型和序列建模的主流架构之一。
自主学习
这些类型的语言模型通过非监督式学习训练大量的数据(称为训练数据) ,这意味着模型不知道它在看什么。这种训练允许模型通过一种称为自我监督学习的技术来学习如何准确地处理语言。
转移学习
大型语言模型也使用迁移学习,这意味着他们可以利用从一个任务中学到的知识来训练他们执行另一个任务。例如,一个大型语言模型经过了将英语翻译成法语的培训,可以利用其学到的知识将英语翻译成中文。
大型语言模型的特点
大型语言模型(Large Language Model,LLM)具有以下几个特点:
-
参数数量巨大:大型语言模型通常具有非常大的参数数量,达到数十亿甚至数百亿的级别。这使得模型能够更好地表示复杂的语言结构和语义信息。
-
上下文理解能力强:大型语言模型通过自注意力机制(Self-Attention)等机制,能够对输入文本的上下文进行建模和理解。它可以捕捉长距离的依赖关系,从而更好地理解语义和句子之间的关系。
-
生成能力强大:大型语言模型在生成文本方面具有很高的能力。它可以根据输入提示或上下文生成连贯、流畅的文本,并且在某种程度上具备创造性。它能够生成文章、新闻、故事、对话等多种类型的文本内容。
-
多样性和灵活性:大型语言模型可以生成多样性的文本,因为它们具有多个采样路径或生成策略。通过调整温度参数或采样方法,可以控制生成文本的创造性和多样性。
-
学习能力和迁移能力强:大型语言模型在大规模的预训练阶段中学习到的知识和语言模式,使其具备很强的迁移能力。这意味着它可以在各种任务和领域中进行微调和应用,适应不同的需求。
-
对数据需求高:大型语言模型对大规模数据的需求较高。通过训练模型的方式,它可以利用大量的文本数据进行预训练,从而提高其性能和泛化能力。
-
计算资源消耗大:由于参数数量庞大,大型语言模型需要大量的计算资源进行训练和推理。训练这些模型需要强大的计算能力和大规模的分布式计算系统。
-
可能存在偏见:大型语言模型从大规模的数据中学习,其中可能存在一些偏见。这些模型可能会反映出数据集中的偏见和不平衡性,因此在使用和应用时需要进行适当的调整和纠正。
04 大模型促进AIGC发展
AIGC(人工智能生成内容Artificial Intelligence Generated Content)是一种利用人工智能技术创建内容的方法,被认为是专业生成内容(PGC)和用户生成内容(UGC)之后的新型内容创作方式。AIGC在文本、图像、音频/视频、软件开发等领域得到快速发展。近年来涌现了许多专注于AIGC的创作体验平台,用户可以通过输入一个句子,让AI合成与之相关的图片,或者输入一篇文章的描述,甚至只是一个故事的开头,让人工智能为其完成整篇文章。
AIGC在需要撰写或创建内容的各个领域都有广泛应用,比如撰写财务报告、开发代码或创建销售/营销材料等。它帮助人们更快地理解和分析复杂的信息,从而帮助他们做出更好的决策并创造显著的价值。随着技术的进步,这些提高生产力的愿景正在逐渐成为现实。大语言模型的发展确实促进了AIGC领域的发展。
接下来我们介绍几个常见大模型
01 RNN Seq2Seq
AIGC 一直以基于 RNN 的 Seq2Seq 模型为主,该模型由两个 RNN 网络组成,第一个 RNN 是编码器,第二个 RNN 是解码器。由 RNN Seq2Seq 生成的文本质量通常较差,常常伴有语法错误或语义不清,主要原因是错误的传递和放大。
2017年,变压器模型结构被引入,并迅速得到普及,因为它能够捕获复杂的特征表示和改进的训练效率相比,RNN 模型。因此开发了一系列预训练模型,成为目前 AIGC 的主流技术。变压器模型特别有用,因为它可以并行处理序列,从而将文本写入算法的研究重点转向了变压器模型。
02 UniLM
UniLM 是统一语言模型(Unified Language Model)的缩写,是微软研究院(Microsoft Research Institute)于2019年开发的生成式 BERT 模型。与传统的 Seq2Seq 模型不同,它只使用 BERT,没有解码器组件。它结合了 L2R-LM (ELMo,GPT)、 R2L-LM (ELMo)、 BI-LM (BERT)和 Seq2Seq-LM 等模型的训练方法,因此得名为“统一”模型。
UniLM 的预训练分为三个部分: 从左到右、双向和从继续到继续。这三种方法的区别仅仅在于变压器掩模矩阵的改变:
-
对于 Seq-to-Seq,前一句的注意力被下一句所掩盖,因此前一句只能关注它自己,而不能关注下一句; 下一句中每个词对其后续词的注意力被掩盖,它只能关注它前面的词;
-
对于从左到右,变压器的注意力只集中在单词本身和前面的单词上,而不注意后面的单词,所以掩码矩阵是一个较低的三角形矩阵;
-
对于双向,变压器的注意力注意所有的词,包括 NSP 任务,就像原来的 BERT。
在 UniLM 的预训练过程中,这三种方法中的每一种都要训练三分之一的时间。与原有的 BERT 相比,增加的单向 LM 预训练提高了文本表示能力,增加的 Seq-to-Seq LM 预训练也使 UniLM 在文本生成/写作任务中表现良好。
03 T5
T5,全名为文本到文本传输转换器,是 Google 在2020年提出的一个模型结构,其总体思想是使用 Seq2Seq 文本生成来解决所有下游任务: 例如,问答、摘要、分类、翻译、匹配、延续、指称消歧等。这种方法使所有任务能够共享相同的模型、相同的损失函数和相同的超参数。
T5的模型结构是基于多层变压器的编解码结构。T5与其他模型的主要区别在于,GPT 族是一个只包含解码器结构的自回归语言模型(AutoRegressive LM) ,BERT 是一个只包含编码器的自编码语言模型
T5的预训练分为无监督预训练和有监督预训练两部分。
-
无人监督的训练
无监督部分是类似于 BERT 的 MLM 方法,只不过 BERT 是屏蔽一个单词,而 T5是屏蔽一段连续的单词,即文本跨度。被屏蔽的文本跨度只被一个掩码字符替换,也就是说,掩码的序列长度对于掩码后的文本也是未知的。在解码器部分,只输出掩码的文本跨度,其他字被集合、符号和符号统一替换。这种方法有三个优点: 一是增加了预训练的难度,显然预测未知长度的连续文本长度比预测单个单词更困难,这也使得训练语言模型的文本表示能力更加通用,更适合于对低质量数据进行微调; 二是对于生成任务,输出序列未知长度,T5的预训练效果良好。
-
监督训练
监督部分使用 GLUE 和 SuperGLUE 中包含的四大类任务: 机器翻译、问答、总结和分类。微调的核心是将这些数据集和任务结合起来作为一个任务,为了实现这一点,人们认为应该为每个任务设计一个不同的前缀,这个前缀与任务文本一起输入。例如,对于翻译任务,翻译“ That is good。”从英语到德语,然后“翻译英语到德语: 这是好的。目标: 很好进行培训,并且“将英语翻译成德语: 这很好。目标: “ ,模型输出预测“达斯是好的。”.其中“将英语翻译成德语:”是为此翻译任务添加的前缀。
04 BART
BART 代表双向和自回归变压器。这是 Facebook 在2020年提出的一种模式结构。顾名思义,它是一种结合了双向编码结构和自回归解码结构的模型结构。BART 模型结构吸收了 BERT 中双向编码器和 GPT 中左向右解码器的特点,建立在标准的 Seq2Seq 变压器模型基础上,比 BERT 更适合文本生成场景。同时,与 GPT 相比,它还具有更多的双向上下文信息。
BART 的预训练任务采用了恢复文本中[噪声]的基本思想。
-
令牌屏蔽: 与 BERT 一样,随机选择一个要用[ MASK ]替换的令牌;
-
令牌删除: 随机删除一个令牌,模型必须确定哪个输入丢失;
-
文本填充: 类似于 T5方法,屏蔽一个文本跨度,每个文本跨度由一个[ MASK ]标记替换。
-
句子排列: 用句点作为分隔符,将输入的句子分成多个句子,然后对它们进行随机排列;
-
文档旋转: 随机、均匀地选择一个标记,并以选定的标记作为新的开始旋转输入,这个任务训练模型识别文档的开始。
可以看出,与 BERT 或 T5相比,BART 在编码器端尝试了各种[噪声] ,其原因和目的也很简单:
-
BERT 中使用的简单替换导致编码器输入携带有关序列结构(例如序列的长度)的一些信息,这些信息通常在文本生成任务中不提供给模型。
-
BART 使用了更加多样化的[噪声]集合,目的是破坏关于序列结构的这些信息,并防止模型“依赖”它。对于各种输入[噪声] ,BART 在译码器端使用统一的重构形式,即输出正确的原始句子。BART 使用的预训练任务也被称为 FTR (全文重建)。
05 GPT
GPT(Generative Pre-trained Transformer)是一种基于变压器(Transformer)架构的大型语言模型。它是由OpenAI开发的一系列语言模型的命名简写,包括GPT、GPT-2和GPT-3。
GPT模型的核心思想是通过大规模的预训练来学习语言的统计规律和上下文信息,然后利用这些学习到的知识来生成文本或执行其他自然语言处理任务。
GPT模型在自然语言处理领域有广泛的应用,如文本生成、机器翻译、对话生成等。随着模型规模和数据集的增大,GPT-3.5和GPT-4等版本的模型在生成质量和语言理解方面取得了显著的进展,并在多个任务上展现出强大的性能。
GPT-1
第一代 GPT 是 OpenAI 在2018年提出的一个预训练语言模型。它的诞生早于 BERT,其核心思想是基于大量未注释的数据进行生成式预训练学习,然后针对特定任务对其进行微调。由于 GPT 模型侧重于产生式预训练,因此只使用变压器的译码部分,其标准结构包括掩蔽多头注意和编译码注意。GPT 的预训练任务是 SLM (标准语言模型) ,它基于前一个上下文(窗口)预测单词的当前位置,因此有必要保留面具多头注意来阻止单词的下面的上下文以防止信息泄露。由于不使用编码器,因此从 GPT 结构中移除了编码器-解码器注意力。
GPT-2
第一代 GPT 的问题是,微调下游任务缺乏可传递性,而且微调层不能共享。为了解决这个问题,OpenAI 在2019年引入了 GPT 家族的一个新成员: GPT-2。
GPT-2的学习目标是使用一个无监督的预训练模型来完成一个有监督的任务。与第一代 GPT 相比,GPT-2有以下变化:
模型结构去掉了微调层,通过为语言模型设计合理的语句对所有任务进行预训练,训练需要保证每个任务的损失函数收敛;
将图层归一化的位置移动到每个子块的输入端,并在最后一次自注意之后添加图层归一化;
采用改进的初始化方法,在初始化时将残余层的权重缩放到1/√ N 次,其中 N 为残余层数;
词汇表范围扩展到50257,输入上下文的大小从512扩展到1024,并且使用更大的批量大小进行训练。GPT-2的多任务训练使它具有更强的泛化能力,当然,这也是由于它使用了高达40G 的训练语料库。GPT-2的最大贡献是验证了用海量数据和大量参数训练的模型能够在不需要额外训练的情况下转移到其他类别的任务。
GPT-3
2020年,OpenAI 进一步推出了基于 GPT-2的 GPT-3。GPT-3的方法更简单和粗糙,模型的总体结构和培训目标与 GPT-2相似,但 GPT-3将模型大小增加到1750亿个参数(比 GPT-2大115倍) ,并使用45TB 的数据进行培训。由于参数的惊人数量,GPT-3可以学习和预测使用零样本和少样本没有梯度更新。
InstructGPT
超大型模型 GPT-3确实在生成任务方面取得了前所未有的成果,特别是在零样本和少样本情景下,但 GPT-3面临着一个新的挑战: 模型的输出并不总是有用的,它可能输出不真实的、有害的或反映负面情绪的结果。这种现象是可以理解的,因为预训练的任务是一种语言模型,预训练的目标是在输入约束下最大限度地提高输出为自然语言的可能性,而不需要“用户需要安全性和有用性”。为了解决这个问题,OpenAI 在2022年发布了基于 GPT-3的重要研究成果。
就模型本身而言,虽然指令 GPT 与 GPT-3相比没有太大的变化,但主要的变化是在培训策略上。总体思想是让注释器为调用示例提供演示应答,然后使用这些数据对模型进行微调,以便它能够做出更适当的响应。它的培训步骤分为三个步骤:
-
收集演示数据,用监督训练法训练模型。为手动注释采样提示数据集的一部分,并将其用于微调 GPT-3。
-
收集对比数据,建立奖励模型。取样一批数据并将其输入到步骤1中微调的模型中。注释者根据模型的优点对模型的输出进行排序,并利用这些数据来训练一个奖励模型。
-
使用强化学习优化模型的输出。使用步骤2中获得的奖励模型,通过强化学习优化步骤1中微调的模型的输出,以便模型能够输出更合适的响应。
在遵循指令方面,由此产生的 DirectGPT 比 GPT-3好得多,而且 DirectGPT 不太可能凭空捏造事实,有害输出的产生有小的下降趋势。
ChatGPT
2022年11月30日由 OpenAI 正式发布的最新研究“ChatGPT”,ChatGPT 是一个交互式聊天机器人,它使用预先训练好的语言模型(包括 GPT-3)来生成对用户输入的人声响应。该模型由多个隐藏层组成,这些层负责处理和生成模型输出。ChatGPT 能够理解和响应上下文中的新数据,因此可以针对特定用例进行微调,或者为文本摘要、语言任务和其他研究目的对新数据进行培训。
可以看出,ChatGPT 的培训过程与 DirectGPT 的培训过程是一致的,区别在于翘舌 GPT 在 GPT-3上进行微调,而 ChatGPT 在 GPT-3.5上进行微调(GPT-3.5是 OpenAI 在2021年第四季度培训的一个模型,具有很强的自动代码编写能力)。
在从第一代 GPT 到 ChatGPT 的整个开发过程中,OpenAI 已经证明,使用超大数据来训练超大模型,得到的预训练语言模型足以处理自然语言理解和自然语言生成的各种下游任务,即使没有微调,仍然可以处理零/少样本任务。就输出的安全性和可控性而言,OpenAI 的回答是基于人工强化学习的: 雇佣40名全职注释员工作近2年 ,为模型的输出提供注释反馈,只有这些数据才能用于指导模型的优化强化学习。
05 总结
大语言模型的出现使得开发团队能够探索新的产品功能和应用。通过与大语言模型集成,产品可以提供更强大的自然语言处理能力,如智能搜索、自动摘要、语义理解等。可以借助大语言模型改进产品的用户界面和交互方式,通过使用自然语言处理和生成能力,产品可以提供更智能、更自然的对话和指导,从而提升用户体验,产品运营可以利用大语言模型生成高质量的文本内容,节省时间和资源,并为用户提供个性化的、即时的内容。
人工智能的发展改变最大的是我们的思维方式,还是那句话,干掉你的不是人工智能而是掌握了人工智能的人。