为什么对ChatGPT、ChatGLM这样的大语言模型说“你是某某领域专家”(11)


我们刚刚讨论了如何根据图像的相似性来创建图像的特征化(从而形成嵌入),通过确定它们是否(根据我们的训练集)对应于相同的手写数字 。如果我们有一个训练集,能够确定每个图像是5000个常见物体类型(猫、狗、椅子等)中的哪一种,我们也可以更一般地对图像进行相同的操作 。通过这种方式,我们可以创建一个图像嵌入,它以我们对常见物体的识别为“锚点”,然后根据神经网络的行为“在此基础上进行泛化” 。关键在于,只要该行为与人类对图像的感知和解释方式相符,这将成为一个“看起来正确”的嵌入,并且在实践中对于执行“类似人类判断”的任务非常有用 。
好的,那么我们如何按照相同的方法为单词找到嵌入呢?关键是从一个关于单词的任务开始,我们可以很容易地进行训练 。标准的任务是“单词预测” 。想象一下,我们得到了“the ___ cat” 。基于大量的文本语料库(比如网络文本内容),不同可能“填空”的单词的概率是多少?或者,另一种情况是,给定“___ black ___”,不同“两侧单词”的概率是多少?
我们如何为神经网络设置这个问题?最终,我们必须用数字来表示所有内容 。一种方法是为英语中的大约5万个常见单词分配唯一的数字 。因此,例如,“the”可能是914,“ cat”(前面有一个空格)可能是3542 。(这些是GPT-2使用的实际数字 。)因此,对于“the ___ cat”的问题,我们的输入可能是{914, 3542} 。输出应该是一个包含大约5万个数字的列表,有效地给出了每个可能的“填充”单词的概率 。再次提到,为了找到嵌入,我们希望“截取”神经网络在“得出结论之前”的“内部状态”,然后获得在那里出现的列表,我们可以将其视为“描述每个单词”的列表 。
那么,这些描述是什么样的?在过去的10年中,已经开发出一系列不同的系统(、GloVe、BERT、GPT等),每个系统都基于不同的神经网络方法 。但归根结底,它们都是通过数百到数千个数字的列表来描述单词 。
这些“嵌入向量”在原始形式下并不具备信息量 。例如,下面是GPT-2为三个特定单词生成的原始嵌入向量的示例:
通过测量这些向量之间的距离,我们可以找到单词之间的“相似度” 。稍后我们将详细讨论这些嵌入的“认知”意义 。但目前的重点是我们有一种有效的方法,可以将单词转化为“神经网络友好”的数字集合 。
实际上,我们不仅可以将单词表示为数字集合,还可以将单词序列或整个文本块表示为数字集合 。在内部,它正是这样处理的 。它使用当前已有的文本生成一个嵌入向量来表示它 。然后,它的目标是找到可能出现在接下来的单词中的不同单词的概率 。它将其答案表示为一个数字列表,这些数字基本上给出了大约5万个可能单词的概率 。
(严格来说,并不处理单词,而是处理“标记”——方便的语言单位,可以是整个单词,也可以只是像“pre”、“ing”或“ized”这样的部分 。使用标记使得更容易处理罕见的、复合的和非英语的单词,并且有时可以更好地或更糟地创造新词 。)
【为什么对ChatGPT、ChatGLM这样的大语言模型说“你是某某领域专家”】(注:这部分内容涉及深度学习的概念和技术太多,极其不好消化,大致了解一下即可,也不影响使用大模型 。)???????????????????????????