免费体验阿里云高性能向量检索服务:https://www.aliyun.com/product/ai/dashvector
大语言模型可以通过概率来指导生成内容,当预测概率低于一个阈值时,模型可以通过查询及利用相似性寻找接近的本地数据。这样,即使在面对未知的本地数据时,大型语言模型也能生成高质量的内容,寻找与上下文和任务目标相似的向量,并从中获取有用的信息。
为了深入理解这个问题,我们需要先了解大语言模型的训练和生成过程。
大语言模型(如GPT),通过大量数据训练来学习语言规则,并通过调整神经网络中的函数参数的值(权重)来将这些规则固化在模型中,训练前参数的值是随机的。这些规则形成了一个复杂的神经网络,该网络能够根据用户的输入生成高质量的回答。这个过程涉及到对输入数据的编码,通过神经网络的传递和转换,以及最后的解码生成输出。
大语言模型内部神经网络构成示意图:
用户感知的神经网络示意图:
大语言模型的生成过程,利用了概率论。'概率'是模型预测词序列的一种方式。模型通过函数预测各个可能的词,每一个词都有一个出现的概率。模型挑选概率最高的词作为预测的内容,并输出。
概率的计算基于模型对语言的理解和当前的上下文。例如,在“我今天早上吃了一个......”的上下文中,模型可能会预测出“苹果”这个词出现在这里的概率最高。这是因为在模型的训练数据中,'苹果’可能经常出现在这样的情境中。
像GPT这样的大语言模型,能够有效地生成训练数据范围内相关问题的答案,并尝试根据已学习的规则生成新的、未见过的内容。然而,当模型遇到与训练数据差异大的本地数据时,模型的生成能力可能会降低,即模型预测的各个词,出现的概率都很低,大模型生成的内容质量就会变得很差。为了生成与这些本地数据相关的高质量内容,通常会采用两种主要的策略。
策略一:可以通过微调模型中函数的参数来适应本地数据。微调是一种训练技术,它在原有模型基础上进一步训练,以适应新数据。如果有足够的计算资源和数据,我们可以使用这种方法优化模型。
策略二:我们可以使用一个外置数据库来存储本地数据,通过查询本地数据库内容来提高生成的质量,避免高消耗的微调。当这个概率低于某个阈值时,大模型会调用内部的查询函数。这个过程通常涉及到生成查询、搜索数据库、解析结果和生成回答等步骤。'相似性'是指两个实体在某种度量下的接近程度,这个度量在模型生成查询和处理查询结果的过程中起到了关键作用。这样,模型就可以利用外部数据库中的信息来生成更准确、更相关的内容。这个阈值通常由模型设计者设定,并可以根据实际需求进行调整。
目前,最适合大语言模型使用的数据形态是向量数据,因为向量和向量数据库在处理复杂数据和大语言模型应用中有独特优势。
下面我们来详细的看下,大语言模型是怎么使用向量数据库来完成工作的。这个过程涉及到多个步骤:
本地数据向量化:原始数据通过词嵌入技术(Embedding)转化为向量形式,这个过程称为数据“向量化”。向量化的数据可以是任意维度,维度取决于数据的复杂性和数据间关系的复杂性。处理复杂数据时,可能需要使用高维向量来捕捉和表达复杂的数据和关系。
向量表示:每个词或数据可以用向量表示,其中每个数字是向量的一个元素,代表了词或数据在特定维度上的特征值。向量的维度可以很高,但为了简洁起见,只显示了部分元素。在简单上下文语境时,women可以用2维向量表示[2,1],在复杂上下文语境时,可能需要128维向量来表示它:women = [1, 2, 0, ..., 23]。这里的每个数字都是向量的一个元素,代表了"women"这个词在某个特定维度上的特征值。
这个向量有128个这样的元素,但为了简洁,我们只显示了前三个和最后一个元素,中间的元素用"..."表示。这个向量捕捉了"women"这个词的语义特征,在向量空间中,向量之间的距离或角度代表了语义的相似度。例如,'women'和'man'这两个词的向量可能在向量空间中非常接近,因为它们具有类似的语义特质。
women作为二维向量的示例:
向量数据库查询:大模型根据当前上下文生成预测,如果预测的概率高于阈值,则直接使用预测结果。这里的"概率"是指模型预测下一个词的可能性,基于模型的训练数据和当前上下文。如果预测的概率低于阈值,则启动查询过程。模型生成查询向量,代表当前上下文和预测目标,并发送给向量数据库。
向量数据库搜索:在这个过程中,'相似性'变得非常重要。向量数据库会搜索存储的数据,并找出与查询向量最相似的向量。这个过程是找出与上下文最相关、最相似的信息。搜索结果是一组与查询向量最相似的向量,代表与当前上下文和预测目标最相关的信息。
评估查询结果:模型对查询结果进行评估,包括计算相似度、匹配上下文、与原始预测比较等方式。如果查询结果与当前上下文和预测目标相关,模型会使用查询结果辅助预测。这部分流程实际上是典型的'相似性'问题,模型需要找出最具语义相关性的数据。否则,模型可能忽略查询结果,只使用预测函数的结果。
预测函数与查询函数协同工作:预测函数生成基于模型训练数据的预测。查询函数则从外部数据库中获取额外信息来辅助预测。预测函数和查询函数的协同工作使模型能够在处理训练数据以外的信息时生成高质量的内容。
选定输出内容:在评估查询结果并结合预测函数的结果后,模型会生成最终的预测结果。这个结果是模型对于给定上下文的最佳预测,它可能是基于模型的原始预测,也可能是结合了向量数据库查询结果的预测。
向量解码并输出:模型将最终的选定的输出内容转化回原始的数据形式,通过“解嵌入”(De-embedding)的技术完成,这个过程叫做“向量解码”。完成向量解码的数据会被输出给用户,作为模型的最终响应。这个响应可以是文本、图像或其他形式的数据,取决于模型的设计和任务需求。
通过这种方式,大型语言模型能够挖掘向量数据库的潜力,即使在没有进行微调或没有大量计算资源的情况下,也能生成与本地数据相关的高质量内容。这是通过充分利用'概率'和'相似性'两个概念,以及它们在向量数据库查询过程中的作用实现的。
了解更多阿里云向量检索服务DashVector的使用方法,请点击:
https://help.aliyun.com/product/2510217.html?spm=a2c4g.2510217.0.0.54fe155eLs1wkT