ChatGPT关联技术
- 一、前馈神经网络
- 二、序列到序列模型(Seq2Seq)
- 三、自注意力机制
- 四、多头自注意力机制
- 五、自监督学习
- 六、Transformer模型
- 七、语言生成技术
- 八、多语种语言模型
- 九、预训练语言模型
- 十、生成式预训练模型(GPT)
- 十一、近端策略优化算法(PPO)
- 十二、词嵌入
- 十三、Softmax分类器
- 十四、指示学习和提示学习
- 1. 指示学习
- 2. 提示学习
- 3. 比较
- 十五、人类反馈强化学习(RLHF)
- 十六、多模态
- 十七、生成式对抗网络
- 十八、知识图谱与实体链接
ChatGPT在技术路径上采用了“大数据+大算力+强算法=大模型”路线,又在“基础大模型+指令微调”方向探索出新范式,其中基础大模型类似大脑,指令微调是交互训练,两者结合实现接近人类的语言智能。ChatGPT应用了“基于人类反馈的强化学习”的训练方式,用人类偏好作为奖励信号训练模型,促使模型越来越符合人类的认知理解模式。
在大数据、大模型和大算力的工程性结合下,ChatGPT展现出统计关联能力,可洞悉海量数据中单词-单词、句子-句子等之间的关联性,体现了语言对话的能力。
ChatGPT使用了多种技术,如前馈神经网络、序列到序列模型(Seq2Seq)、自注意力机制、多头自注意力机制、自监督学习、Transformer模型、语言生成技术、多语言模型、预训练语言模型、生成式预训练模型(GPT)、近端策略优化算法(PPO)、词嵌入、Softmax分类器、指示学习和提示学习、人类反馈强化学习(RLHF)、多模态、生成式对抗网络、知识图谱与实体链接等技术,训练还大量运用了GPU\TPU\云GPU。
一、前馈神经网络
前馈神经网络(Feedforward Neural Network)是一种基本的人工神经网络模型,也被称为多层感知机(Multilayer Perception,MLP)。它由一个或多个称为隐含层的中间层组成,每个隐含层都由多个神经元组成,结构示意图如下图:
在前馈神经网络中,信息只能从输入层流向输出层,不存在反馈或循环。每个神经元的输出是通过将输入与该神经元的权重相乘,在加上一个偏差,并通过某种非线性激活函数进行转换得到的。
前馈神经网络通常用语解决分类和回归问题,其中输入和输出均为向量。在训练过程中,前馈神经网络通过反向传播算法对每个权重进行调整,以最小化预测输出与真实输出之间的误差。
二、序列到序列模型(Seq2Seq)
序列到序列(sequence-to-sequence, Seq2Seq)是指一类神经网络模型,其主要目标是将一个可变长的输入序列映射到另一个可变长的输出序列,通常用于机器翻译、语音识别、对话系统等自然语言处理任务中。
Seq2seq模型通常包括一个编码器Encoder和解码器Decoder。编码器将输入序列压缩成一个固定维度的向量(通常称为上下文向量),然后解码器根据向量逐个生成目标序列的各个元素。
编码器和解码器通常是基于循环神经网络或者Transformer实现的,不需要对输入序列进行固定长度的处理,同时可以充分利用上下文信息进行序列生成。根据深度学习技术的发展,新Seq2seq模型也在不断涌现,如Transformer、BERT(Bidirectional Encoder Representations from Transformers, 双向Transformer编码器表达)等,已经成为自然语言处理领域的重要研究方向之一。
三、自注意力机制
自注意力机制(Self-Attention Mechanism)是一种用于计算序列中各个元素之间关联程度的技术。在自然语言处理中,这些元素可以是句子的单词或者字符。自注意力机制的主要思想是将输入序列中的各个元素表示成一个向量,然后使用这些向量之间的相似性来计算每个元素的权重,以获得一个表示整个序列的向量。
在自注意力机制中,每个元素的向量表示可以通过对输入序列的所有元素进行加权平均来计算。每个元素的权重由Softmax函数进行归一化处理得到,Softmax函数的分母是该元素的向量与所有输入元素向量的点积和。
这个权重向量可以用加权计算每个元素的向量表示,得到一个表示整个序列的向量。这个表示向量可以在很多NLP任务中用来代表输入序列的语义信息,如机器翻译、文本分类和语言模型等。
可以将自注意力机制形象地比作一个人在理解一篇文章的过程。首先阅读全文,然后针对每个单词,想想自己对这个单词的理解需要考虑哪些上下文信息。之后,将这些上下文信息对该单词的影响程度作为权重,分配给与当前单词相关的其他单词,以便更好地理解当前单词的含义。比如,当我们看到“猫”这个词时,就会考虑出现在它前后的单词,如“跑”“跳”“鱼”等,以帮助理解他的含义。
四、多头自注意力机制
多头注意力机制(Multi-head Self-attention)是Transformer模型中一种重要的机制,用于将输入的序列编码成高维向量表示。在自注意力机制中,每个输入单元都与其他单元进行交互,以确定该单元对整个序列的重要性,而多头注意力机制则在此基础上进行了扩展。
多头注意力机制是将自注意力机制中的注意力机制进行多次并行运算,每次运算都是一个不同的“头”,从而提高模型对不同语义信息的学习能力。每个注意力头都会计算出一组注意力权重,并用于对输入序列进行加权求和,从而生成多个新的表示向量。这些向量最终被收尾相连连接在一起,形成一个更丰富和抽象的表示。
在多头注意力机制中,每个头的参数都是独立的,因此可以学习到不同的语义表示。这允许Transformer模型在处理不同种类的任务时,可以通过多头注意力机制同时学习到多个方面的信息,从而提高模型的表现和泛化能力。
五、自监督学习
自监督学习是一种无须手动标注标签,通过利用输入数据中的结构或信息进行学习的机器学习方法。在自监督学习中,模型从输入数据中学习一些任务,这些任务在一定程度上与原始任务相关联。因此,这些任务可以被认为是自我监督的。
自监督学习的关键在于设计用于训练模型的自监督任务。常见的自监督任务包括填补遮挡物、预测缺失的数据、生成图像剪切等。这些任务的目标是使模型学习到数据中的结构,如图像中的几何形状、颜色分布、像素之间的关系等。通过学习这些结构,模型可以为其他任务,如分类、分割、检测等提供更好的特征表示。
与传统的监督学习不同,自监督学习通常不需要手动标注标签。这使得自监督学习更加高效,因为手动标注标是一个耗时、耗资的过程。同时,自监督学习还可以利用未标记的数据进行学习,这些数据通常比标记数据更易于获取。
自监督学习在自然语言处理(NLP)中的应用十分广泛,已经成为该领域中的一个热门研究方向。下面是NLP中一些常见的自监督学习方法:
语言模型预训练:语言模型作为自然语言处理中的一种技术或模型,其主要目的是对自然语言文本进行概率建模,以便预测一个句子或文本中的下一个单词或字符。语言模型预训练是一种自监督学习方法,其目的是在大量未标记的文本数据的基础上训练出一个好的语言模型。在预训练后,模型可以被微调用于其他任务,如文本分类、命名实体识别、机器翻译等。
掩码语言模型(MaskedLanguage Model,MLM):其目的是通过掩盖句子中的某些单词,使模型从中预测缺失的单词。在训练过程中,随机掩盖一些单词,使模型学习上下文和语言的语法、句法结构。MLM类似于语言模型预训练,但与之不同的是,它不需要句子级别的标签,而是需要标记每个句子中缺失的单词。
句子对预训练(Sentence-pair Pre-training):句子对预训练是一种无监督学习方法,其目的是通过预测两个句子之间的关系来训练模型。在训练过程中,模型会接收一对句子作为输入,然后预测它们之间的关系(如是否属于同一主题或是否具有相同的情感)。这种方法可以帮助模型学习句子之间的语义和上下文关系,从而提高模型在一些NLP任务中的性能。
序列到序列模型预训练(Sequence-to-Sequence Pre-training):序列到序列模型预训练是一种无监督学习方法,其目的是训练一个序列到序列的模型,该模型可以从一个序列生成另一个序列。例如,可以将一句话作为输入序列,然后生成相同意义的另一句话。这种方法可以帮助模型学习生成自然语言的能力,从而提高模型在机器翻译、问答等任务中的性能。
这些自监督学习方法在NLP领域中取得了很好的结果,例如 BERT、GPT和RoBERTa等模型,这些模型已经在很多NLP任务中取得了十分先进的结果。
自监督学习和无监督学习都是无须人工标注数据的机器学习方法,自监督学习是一种特殊的无监督学习方法,它利用自身数据中的隐式标签或自身任务来训练模型,而无监督学习则没有这样的先验任务或标签。自监督学习通常需要明确定义的任务,以便模型学习有意义的表示,而无监督学习则可以通过学习数据中的结构和模式来构建表示。自监督学习可以提供更好的特征表示,因为它使用的任务是从自身数据中自动生成的,并且任务与应用程序相关,而无监督学习则更加通用,可以用于不同类型的数据和应用程序。
六、Transformer模型
Transformer是一种用于自然语言处理的深度学习模型,属于Seq2seq模型之一,由谷歌团队在2017年提出,在一篇名为Attention is all you need论文中,作者首次提到基于自注意力机制的转换器(Transformer)模型,首次用于理解人类语言。
在此之前,自然语言处理中的Seq2seq模型主要基于循环神经网络和长短时间记忆网络LSTM实现的。虽然这些模型在一定程度上解决了机器翻译任务中的序列建模问题,但是由于CNN和LSTM存在较强的时序依赖性,对长序列的处理存在一定限制,并且计算速度较慢。
Transformer模型不存在时序依赖性,而是使用自注意力机制来捕捉输入序列中不同位置之间的依赖关系。自注意力机制可以同时计算输入序列中所有位置的相似性得分,并在输入序列中相应地分配不同位置的权重,从而实现更精准和高效的序列建模。
除了自注意力机制外,Transformer还引入了多头注意力机制、残差连接和层归一化等技术,以进一步提高模型的性能和训练速度。经过改进后的Transformer模型在自然语言的多个任务中取得了卓越的成果。Transformer架构如下图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/1549aee0d3cf46329f7d04b3a23c3e82.png =500)
Transformer模型有编码器和解码器两部分组成,编码器将输入序列映射到隐层表示,解码器将隐层表示映射为输出序列。每个编码器和解码器都包含多个模块,每个模块由两部分组成:
①多图自注意力机制:将输入序列映射到多个空间,每个空间有不同权重,从而提取多个不同的特征表示;
②前馈神经网络:对特征表示进行线性变换和激活函数处理。
在解码器中处理上述两部分之外,还添加了第三个部分:
③编码器-解码器注意力机制(Encoder-Decoder Attention),用于在解码时对编码器中的隐层表示进行注意力分配,将输入序列的表示与解码器中的每个位置的表示进行联系。
通过这种方式,Transformer模型能够捕获到输入序列和输出序列之间的关系,从而实现机器翻译、文本生成等任务。在训练过程中,Transformer模型通过最小化损失函数,如交叉熵损失,来优化模型参数,以最大化地提高任务的性能。
Transformer模型的优点在于:①可以处理长序列②计算效率高③表示能力强(自注意力机制允许模型对不同位置的信息进行不同程度的关注,因此可以更好地捕获输入序列中的信息,提高模型的表示能力)。
七、语言生成技术
语言生成技术是指利用人工智能技术生成自然语言文本的过程。这些技术可以根据给定的上下文或语言模型,自动地生成符合语法、语义规则的连续文本,用于各种自认语言处理任务,如机器翻译、摘要生成、对话系统等。
语言生成技术同城包括两个主要步骤:模型训练和生成。在模型训练阶段,需要大量的标注数据训练处一个高质量的语言模型,如循环神经网络、Transformer、GPT等。这些模型的训练通常使用深度学习技术,其中输入数据是标注好的文本数据,输出是对应的概率分布,用于预测下一个单词的可能性。通过不断迭代训练,得到一个具有高度泛化能力的语言模型。
在生成阶段,根据训练好的模型,利用贪心算法、束搜索等方式,从已有的文本中预测下一个最可能的单词,并将其添加到文本中,模型逐渐生成出一段符合语法、语义规则的文本。机器翻译是一个经典的语言生成例子,具体来说,机器翻译模型可以使用Seq2seq模型来实现,该模型有两部分组成:编码器和解码器,编码器负责将源语言文本编码成一个向量,解码器将这个向量作为输入,逐步生成目标语言的文本。
八、多语种语言模型
传统自认语言处理模型只能处理单一语言,多语种语言模型是一种能够处理多种语言的自然语言处理模型,可以同时理解并处理不同语言的语言特征,从而实现跨语言的自然语言处理任务。
这些模型使用大规模的多语言数据集进行预训练,学习多语言的语言特征,并根据具体的自然语言处理任务进行微调和优化。
九、预训练语言模型
在自然语言处理中,预训练(Pre-taining)是指在大规模数据集上训练通用的语言模型,以学习语言的通用表示,以便在下游任务中进行微调或迁移学习。这种无监督学习的方法可以从大量的未标注文本中发现模式和规律,从而产生通用的语言理解能力。与传统的有监督学习不同,预训练语言模型不需要人工标注数据,而是采用了自监督学习的方法。
预训练可以使用多种模型和方法,例如基于神经网络的语言模型,如GPT系列、BERT 等以及基于传统机器学习方法的词嵌入模型,如Word2Vec和 GloVe等。这些模型通常在大规模语料库上进行预训练,以捕捉单词和文本之间的语义和上下文关系,并产生通用的表示。
在自然语言处理中,预先训练的模型可以用于多个下游任务,如文本分类、命名实体识别、机器翻译等。通过对预先训练模型进行微调或迁移学习,可以在下游任务上获得更好的性能和效果,同时减少数据标注和训练成本。预先训练在NLP领域中的应用已经成了当前研究的热点和趋势。
预训练中需要用到多项技术,比如自编码器(Autoencoder)、生成式对抗网络(GAN)、词嵌入(Word Embedding)、*迁移学习(Transfer Learning)*等。
目前,许多先进的自然语言处理技术都基于预训练语言模型,如GPT、BERT、ROBERTa、ELECTRA等。这些模型都使用大规模未标注的语料库进行预训练,然后通过微调和特定任务的训练来进行优化。这种方法已经取得了很好的效果,成为自然语言处理领域的研究热点之一。
作为两种主要的预先训练的语言模型,GPT和BERT的主要区别包括以下几个方面:
- 预训练任务:GPT通过==掩码语言建模(masked language modeling,MLM)==的方式进行预训练,即模型在输入序列中随机掩盖一些单词,并预测这些单词。BERT中使用的MLM与GPT中使用的 MLM 相同,而 BERT增加的NSP(Next Sentence Predict)任务用于训练模型以判断两个输入句子是否相邻。
- 模型结构:GPT采用的是自回归式的Transformer 模型,即只能根据前面的单词生成后面的单词。而 BERT则采用双向 Transformer 编码器,可以同时考虑输入序列的前后文信息。
- 输入表示:GPT和 BERT对输入表示的处理方式不同。GPT在输入序列中增加特殊的起始符号,然后将整个序列作为模型的输入。而BERT则将输入序列分成两部分,分别用不同的嵌入向量表示,即标记嵌入(tokenem beddings)和句子嵌入(segment embeddings)。
- 应用场景:由于BERT可以同时考虑前后文信息,因此在一些需要对输入序列进行双向分析的任务上表现较好,如问答、文本推荐等。而GPT则更适用于生成型任务,如文本生成、对话生成等。
十、生成式预训练模型(GPT)
GPT(Generative Pre-trained Transformer)是一个基于Transformer结构的预训练语言模型,使用大量的文本数据进行预训练,然后在特定任务上进行微调。
GPT的开发历史课追溯到2015年,当时Seq2seq模型在处理较长序列时会存在信息丢失和模型饱和问题,Transformer采用自注意力机制来处理序列信息,避免了信息丢失和模型饱和问题。
OpenAI团队提出了GPT模型,采用基于Transformer结构的自回归预训练方式,在海量的文本语料库上进行训练,可以生成高质量的自然语言文本。ChatGPT是基于GPT-3模型开发的一款聊天机器人应用,是GPT系列模型的一个具体应用。
ChatGPT相比于GPT-3,主要在应用上有所区别,ChatGPT的预训练数据集和GPT-3相同,但是在微调阶段,ChatGPT采用了一种特殊的微调方法,通过对机器人对话进行数据增强和动态控制相应长度等技术,ChatGPT在生成自然语言对话时表现更好,更符合人类对话的逻辑性和连贯性。
十一、近端策略优化算法(PPO)
在强化学习中,策略梯度(Policy Gradient)是一种优化策略的方法。强化学习的目标是通过不断地与环境交互来获得最大累计奖励。
强化学习中求解最优策略有多重方法,包括值函数方法、策略梯度方法、深度强化学习方法、演化策略方法以及基于模型的规划方法等,每种方法都有其独特的优势和适用场景。策略梯度方法采用直接优化策略函数,通过计算梯度来更新策略参数;值函数方法采用间接优化策略,即先估计状态或状态-动作对的价值函数,然后使用贪心策略来选择最优动作。
策略梯度方法基于一个假设:如果我们能够计算出一个分数函数,他可以对每个动作评分,那么我们可以使用根据这个分数函数来优化策略。具体来说,我们可以使用策略梯度方法来计算策略的梯度,并沿着梯度方向更新策略。
策略梯度方法的优点在于它们能够处理连续的动作空间,并且可以直接优化策略。与值函数方法不同,策略梯度方法不需要对值函数进行近似,从而避免了值函数方法中可能出现的一些近似误差。然而,策略梯度方法也存在一下缺点,如可能出现高方差和收敛速度慢。
近端策略优化(Proximal Police Optimization,PPO)算法是一种新型的策略梯度算法,旨在优化连续和离散控制任务中的策略。PPO算法的核心是在策略优化中使用一个剪切函数(Clipping Function),它可以控制策略更新的幅度,从而避免更新过大的问题。此外,PPO算法还使用了一个价值函数来帮助优化策略。PPO在训练过程中利用采样数据来更新策略和价值函数,这种方法称为在线学习。
十二、词嵌入
词嵌入是一种将单词映射到向量空间的技术,通常用于自然语言处理任务,如文本分类、命名实体识别、情感分类等。
传统的NLP方法中,单词通常被表示为“独热向量”(One-hot Vectors),即每个单词对应一个唯一的位置,向量中只有一个元素为1,其他元素为0。这种表示方法的缺点是向量维度很高,且不能表达单词之间的语义关系。
词嵌入可以将每个单词表示为一个稠密的向量,这种表示的维度远低于独热向量。词嵌入的向量空间同城被设计为能够捕获单词之间的语义关系,例如“男人”和“女人”在向量空间中的距离应该比“男人”和“狗”的距离更近。因此,词嵌入不仅可以提高NLP模型的性能,还可以让模型更好的理解自然语言。
词嵌入实现的方式有很多种,其中最常见的方式是使用神经网络训练一个词嵌入模型。这种方法在训练过程中,可以通过最小化单词在上下文中的预测误差来学习单词的向量表示。最流行的单词嵌入模型是Word2Vec和GloVe。
词嵌入在GPT-3引擎中起着非常重要的作用,它是实现GPT-3引擎自然语言处理能力的基础之一。
十三、Softmax分类器
Sonmax 分类器是一种常见的多分类模型,通常用于将输入向量映射到一个预定义的类别集合中的一个类别。在自然语言处理任务中,softmax分类器常用于文本分类、情感分析、语言模型等任务。Softmax分类器的核心思想是基于概率的分类。Softmax分类器通常采用交叉熵损失函数(cross entropy loss)作为目标函数,用于度量预测的概率分布和实际的标签之间的差距。在训练阶段,Sofmax 分类器通过最小化交叉熵损失函数来优化模型参数,以使模型的预测结果尽可能接近真实标签。在测试阶段,sonmax 分类器根据输入向量和模型参数,计算输出概率分布,然后将概率最大的类别作为预测结果。
一个使用 Sofmax分类器的例子是情感分类任务。给定一段文本,我们需要将其分类为积极、消极或中性等情感类别之一。在这种情况下,Somax分类器的作用是将文本的特征向量映射到不同情感类别的概率分布上,以确定文本的情感类别。
具体来说,我们可以使用词嵌入技术和卷积神经网络或循环神经网络等模型提取文本的特征向量,并将其传递给一个全连接神经网络进行情感分类。全连接层的输出向量将被送入Softmax分类器,以计算文本在不同情感类别下的概率分布,最终确定其情感类别。例如,对于给定的文本,如果在积极情感类别下的概率最大,则将其分类为积极情感。
假设我们有一个情感分类模型,它可以将一段文本分类为积极、消极或中性情感之一。当输入一段文本后,模型的输出可能如下所示:
输入文本:这部电影太好看了,情节紧凑,演员表现出色。
输出:
积极:0.92
中性:0.06
消极:0.02
在这个例子中,模型将输入的文本分类为积极情感,因为在积极情感类别下的概率最高为0.92,而在中性和消极情感类别下的概率分别为0.06和0.02。这些概率值表示了模型对每个情感类别的置信度,因此可以用于解释模型的分类结果。
在 GPT-3 中,Softmax 分类器既被用在建立语言模型,也被广泛应用于多种自然语言处理任务,例如文本生成、文本分类等。
除了语言模型,Sofmax分类器还可以用于GPT-3的其他任务。例如,在文本分类任务中,模型可以使用 Sofmax 分类器将输入文本映射到不同的类别上,以预测文本所属的类别。在文本生成任务中,模型可以使用Sofmax分类器将生成的词汇映射到概率分布上,以选择生成最可能的下一个词汇。总的来说,Sofmax分类器在 GPT-3 中扮演了一个关键的角色,使模型能够输出准确和有意义的结果。
十四、指示学习和提示学习
1. 指示学习
指示学习(Instruct Learning)是谷歌 Deepmind 的 Quoc VLe 团队在 2021 年的一篇名为《微调语言模型是零样本学习器》(Finetuned Language Models Are Zero-ShotLearners)文章中提出的思想。
在这种学习方式中,人类或其他智能体为机器学习模型提供已知的输入和输出示例,让机器学习模型基于这些示例进行学习,并从中发现规律和模式,以便能够对未知的输入做出正确的输出。让机器学习模型基于这些示例进行学习,并从中发现规律和模式,以便能够对未知的输入做出正确的输出。
指示学习通常用于解决特定的任务,例如语音识别、图像分类、自然语言处理、机器翻译等。指示学习还可以通过人类教师提供实时反馈来加速学习过程,以便模型能够更快速地调整和改进。需要注意的是,指示学习通常需要大量的标注数据和指示示例,这可能需要大量的人工工作和时间成本,因此在实践中,通常会结合其他的学习方法,例如强化学习和自主学习,以提高学习效率和精度。
2. 提示学习
提示学习(Prompt Learning)是一种自监督学习方法,它是由 OpenAI提出的一种新颖的学习方法。在提示学习中,模型的训练数据是自动生成的,而不是由人工标注的数据集。这种方法的目标是通过生成的提示(Prompt)和任务(Task)来训练模型,使其具备对一系列任务的适应能力。
提示学习的核心思想是在模型的输入中添加有关任务特征和模式的提示,以帮助模型更好地理解和学习任务。这些提示可以是自然语言描述、问题、关键词、样本输入等,具体取决于所处理的问题和任务类型。在提示学习中,模型不需要直接看到训练数据,而是通过在提示和任务之间进行交互来学习如何处理任务。
提示学习已经在自然语言处理、计算机视觉等领域得到了广泛的应用。与传统的监督学习相比,提示学习具有更广泛的适用性和更强的可扩展性。同时,它还可以提高模型的鲁棒性和泛化能力,减少数据偏差的影响,从而提高模型的性能。
3. 比较
指示学习和提示学习的目的都是去挖掘语言模型本身具备的知识。
不同点:
- 提示学习是激发语言模型的补全能力,如根据上半句生成下半句,或是完形填空等;
- 指示学习是激发语言模型的理解能力,它通过给出更明显的指令,让模型去做出正确的行动。
通过下面的例子来理解这两个不同的学习方式:
提示学习:给女朋友买了这个项链,她很喜欢,这个项链太_____了。
指示学习:判断这句话的情感:给女朋友买了这个项链,她很各欢。
选项:A = 好;B = 一般;C = 差。
指示学习的优点是它经过多任务的微调后,也能够在其他任务上做零样本(Zero-shot)学习。
而提示学习都是针对一个任务的,其泛化能力不如指示学习。
十五、人类反馈强化学习(RLHF)
人类反馈强化学习(Reinforcement Learning with Human Feedback,RLHF)是一种结合了强化学习和人类反馈的学习方法。在RLHF中,代理(Agent)不仅能够从环境中获得奖励信号还可以从人类专家获得反馈信息来指导其行动。基本原理如下图:
RLHF 最早可以追溯到谷歌在2017年发表的《利用人类偏好的深度强化学习》(DeepReinforcement Learning.Jrom Human Preferences),它通过人工标注作为反馈,提升了强化学习在模拟机器人以及雅达利游戏上的表现效果。
通常情况下,强化学习代理需要不断与环境交互来学习最佳策略。但是,在现实世界中,有些任务可能过于复杂或危险,代理无法直接从环境中学习。此时,我们可以将人类专家的知识和经验加入到代理的学习过程中,从而提高代理的学习效率和性能。人类专家加入后,强化学习就变成人类反馈强化学习(RLHF)。人类专家可以提供多种形式的反馈信息,如对代理的动作进行评估、提供示范行为、给出状态和动作之间的映射等。代理可以将这些反馈信息与环境奖励信号相结合,从而学习更加优秀的策略。此外,代理还可以通过与环境交互来进一步改进其策略,从而逐步减少人类反馈的依赖性。
RLHF 主要有以下几种技术:
- 人类反馈的采集与整合:在RLHF中,人类反馈信息的质量和多样性对代理的学习效果至关重要。因此,RLHF 需要高效采集和整合人类反馈信息。
- 人类反馈的表示与处理:在RLHF 中,人类反馈信息通常需要转换成代理能够处理的形式例如,人类反馈可以表示为状态一动作偏好、状态一动作对的值等形式,代理可以通过这些形式来学习策略。
- 人类反馈的整合方式:在RLHF中,人类反馈信息可以与环境奖励信号相结合,也可以作为代理的补充学习信号。因此,RLHF 需要有效整合不同类型的反馈信息。
- 人类反馈的利用方式:在RLHF 中,人类反馈信息可以作为初始化、指导、评估、调整等不同的用途。因此,RLHF 需要灵活地利用不同类型的反馈信息。
- 自适应人类反馈:在 RLHF中,代理的学习效果受到人类反馈信息的质量和多样性的限制。如何根据代理的学习状态和需求来适应人类反馈,从而提高代理的学习效率和性能是RLHF中的一个重要技术。
这些技术可以相互结合,形成不同的 RLHF 方法和算法,用于解决不同的应用场景和问题一个使用 RLHF 的例子是 AlphaGo Zero,一种基于深度强化学习的围棋人工智能。AlphaGoZero 在 RLHF 的帮助下,通过与人类围棋高手对弈获取人类反馈信息,并将其融合到深度神经网络中,进一步优化模型,从而实现了无监督自我学习和强化学习。
在 AlphaGo Zero 中,人类反馈主要以两种形式出现:一种是利用围棋高手的棋谱作为代理的初始化数据,另一种是人类评估代理在对弈中的表现,并提供指导性反馈信息。在与人类围棋高手对弈的过程中,代理从高手的走法中获取灵感,然后将学到的知识应用到对弈中,最终取得了很好的效果。
AlphaGoZero 的成功表明,RLHF 能够充分利用人类知识和经验,帮助代理更快地学习和优化策略。除了围棋,RIHF 在其他游戏、机器人控制、自然语言处理等领域也有广泛应用。
十六、多模态
多模态指的是多种形式的感官输入或输出方式。人类的大脑是多感官的,因此我们生活在一个多模态的世界中。在计算机科学领域,多态通常用于描述涉及多个感官通道的数据处理和交互方式。例如,图像、音频、视频和文本等形式的数据可以视为不同的感官通道。同时。计算机也可以通过多个感官通道进行输出,例如,在一个虚拟现实环境中,计算机可以同时输出图像、声音和触觉等信息。
多模态技术可以将多种形式的感官数据融合在一起,从而更全面地描述和解释现实世界的信息。在图像识别任务中,多模态技术结合声音和文本等多种输入方式可以提高识别的准确性和效率。在人机交互方面,多模态技术通过结合语音、图像和手势等多种输入方式,系统可以提供更自然、更丰富的交互体验。
一次只以一种模态感知世界极大地限制了人工智能理解世界的能力,人们认为深度学习的未来是多模态模型。因此,多模态技术在机器学习和人工智能等领域,如多模态情感分析、多模态机器翻译和多模态交互等方面也得到了广泛的应用。多模态技术的发展和应用,将会进一步拓展计算机在感知和认知方面的能力,并为人们提供更加自然、智能的计算机交互体验。
ChatGPT是一种基于自然语言处理技术的纯文本机器人,它能够理解和生成文本,并通过文本与用户进行交互。目前,它还不能够识别语音、图像、视频等多模态数据,因此它还不是一个多模态产品。GPT4.0引擎已经扩展为多模态产品,但只能接受文字和图片输入。
良好的多模态模型比良好的纯语言或纯视觉模型更难构建。将视觉和文本信息组合成单一的表征是一项非常艰巨的任务。我们对大脑如何做到这一点的认知还非常有限,难以在神经网络中实现它。目前已经有一些技术可以将自然语言转化为图像、语音和手势等多种形式,如果将这些技术与ChatGPT结合起来,就可以实现多模态交互。此外,ChatGPT还可以通过学习多模态数据集和算法来提高自己的多模态处理能力,以更好地应对未来的多模态交互需求。
十七、生成式对抗网络
生成式对抗网络(GAN)是一种深度学习模型,由伊恩·古德费洛等人于2014年提出。
GAN 由两个神经网络组成,一个是生成器(Generator),另一个是判别器(Discriminator)。
生成器的任务是将随机噪声向量作为输入,输出一个与真实数据相似的样本。判别器则负责判断输入的样本是真实的还是由生成器生成的假样本。两个网络之间进行博弈,生成器的目标是生成越来越逼真的样本,而判别器则要尽可能地区分真实样本和假样本
GAN 的训练过程可以用以下几个步骤描述:
(1)生成器随机生成一个噪声向量,将其作为输入,生成一批样本。
(2)判别器将这批样本和真实数据混合在一起,判断每个样本是真实的还是假的。
(3)生成器根据判别器的输出来更新自己的参数,目标是生成更加逼真的样本。
(4)判别器根据生成器生成的新样本来更新自己的参数,目标是更好地区分真实样本和生成样本。
(5)重复步骤1到步骤4,直到生成器生成的样本足够逼真,或者训练达到预设的迭代次数。
GAN 可以应用于图像生成、语音生成、自然语言处理等领域,目前已取得了很好的效果。但是GAN的训练过程非常复杂,需要仔细调参,否则可能会出现模式崩溃(ModeCollapse)等问题。
十八、知识图谱与实体链接
知识图谱和实体链接都是自然语言处理中的重要概念。
知识图谱是一种结构化的知识表示方法,它通过将实体、关系和属性等知识以图形化的方式表示出来,构建出一个以实体为中心的知识网络,可以帮助机器更好地理解人类语言和语义知识图谱通常基于 RDF(Resource Description Framework)三元组表示法构建,即(主体,谓词,客体)的形式,其中主体表示实体,谓词表示实体之间的关系,客体则表示与主体相关的属性或实体。例如,“北京是中国的首都”可以表示为(北京,是,中国的首都)。
实体链接是指将文本中的实体链接到知识图谱中的对应实体,以便进行语义理解和知识查询。实体链接的目标是将文本中的实体识别出来,并将其与知识图谱中的实体进行匹配。例如,对于句子“约翰·史密斯在哈佛大学获得了博士学位”,实体链接可以将“约翰·史密斯”链接到知识图谱中的“约翰·史密斯(John Smith)”实体,将“哈佛大学”链接到知识图谱中的’哈佛大学(Haryard University)”实体。
实体链接通常是通过对文本进行命名实体识别(NamedEntityRecognition,NER)来实现的,然后将 NER结果与知识图谱中的实体进行匹配。实体链接可以帮助机器更好地理解文本中的实体,并将其与相关的知识和实体进行关联,从而提高自然语言处理的准确性和效率。