揭秘 ChatGPT:构建 AI 搜索的不同方法

2023年 8月 1日 29.5k 0

作者:Sherry Ger

什么是 ChatGPT?

首先,ChatGPT 太棒了! 它可以帮助你更高效地工作 —— 从总结 10,000 字的文档到提供竞争产品之间的差异列表,以及许多其他任务。 

ChatGPT 是最著名的基于 Transformer 架构的大型语言模型 (LLM)。 但你可能听说过其他 LLM,包括 BERT(来自 Transformer 的双向编码器表示)、Bard(对话应用程序语言模型)或 LLaMA(LLM 元人工智能)。 LLMs 拥有多层神经网络,它们协同工作来分析文本和预测输出。 他们接受了从左到右或双向转换器的训练,可以最大限度地提高在上下文中跟随和前面单词的概率,以找出句子中接下来可能出现的内容。 LLMs 还拥有一种注意力(attention)机制,使他们能够有选择地关注文本的某些部分,以便识别最相关的部分。 例如,雷克斯很可爱,他是一只猫。 在这句话中,“他” 指的是 “猫” 和 “雷克斯”。

更多就是更多

大型语言模型通常通过参数数量进行比较 —— 越大越好。 参数的数量是模型大小和复杂性的度量。 模型拥有的参数越多,它可以处理、学习和生成的数据就越多。 然而,拥有更多的参数也意味着需要更多的计算和内存资源。 在训练过程中,通过使用优化算法来学习或更新参数,该算法试图最小化预测输出与实际输出之间的误差或损失。 通过调整参数,模型可以提高其在给定任务或领域的性能和准确性。

LLM 的培训费用昂贵

现代 LLMs 拥有数十亿个参数,这些参数是在数万亿个代币上进行训练的,成本高达数百万美元。 训练 LLM 包括识别数据集,确保数据集足够大以使其能够像人类一样执行功能,确定网络层配置,使用监督学习来学习数据集中的信息,最后进行微调。 不用说,对特定领域数据的 LLMs 进行再培训也非常昂贵。

GPT 模型如何运作?

生成式预训练 Transformer (GPT) 模型是一种神经网络,它使用 Transformer 架构从大量文本数据中学习。 该模型有两个主要组件:编码器和解码器。 编码器处理输入文本并将其转换为称为嵌入的向量序列,这些向量表示数字中每个单词/子词的含义和上下文。 然而,解码器通过基于嵌入和先前的单词预测序列中的下一个单词来生成输出文本。

GPT 模型使用一种称为 “注意力(attention)” 的技术来关注输入和输出文本中最相关的部分,并捕获单词之间的远程依赖性和关系。 该模型的训练方法是使用大量文本语料库作为输入和输出,并最小化预测单词和实际单词之间的差异。 然后可以通过使用更小、更专业的数据集对其进行微调或适应特定的任务或领域。

标记(token)

标记是 LLM 用来处理和生成语言的文本或代码的基本单位。 标记可以是字符、单词、子词或文本或代码的其他片段,具体取决于所选的标记化方法或方案。 它们被分配数值或标识符,并按序列或向量排列,然后输入模型或从模型输出。 标记化是将输入和输出文本分割成可由 LLM 模型处理的较小单元的过程。

例如,句子 “A quick brown fox jumps over a lazy dog” 可以标记为以下标记:“a”、“quick”、“brown”、“fox”、“jumps”、“over”、“a” ”、“lazy” 和 “dog”。

嵌入(Embeddings)

嵌入是向量或数字数组,表示模型处理和生成的标记的含义和上下文。 它们源自模型的参数,用于对输入和输出文本进行编码和解码。 嵌入有助于模型理解标记之间的语义和句法关系,并生成更相关和连贯的文本。 它们是基于 GPT 的模型使用的 Transformer 架构的重要组成部分。 它们的大小和尺寸也可能有所不同,具体取决于模型和任务。

预训练的 LLM 至少包含数万个单词、标记和术语的嵌入。 例如,ChatGPT-3 的词汇量为 14,735,746 个单词,维度为 1,536。 以下来自一个名为 distilbert-based-uncased 的小模型。 尽管这是一个小模型,但它的大小仍然有 100 兆字节。

转换器 - Transformer

Transformer 模型是一种神经网络,它通过跟踪序列数据(例如这句话中的单词)中的关系来学习上下文或含义。 在最简单的形式中,transformer 将接受输入并预测输出。 在 transformer 内,有一个编码器堆栈和一个解码器堆栈。

让我们深入研究编码器块和解码器块。 在编码器块中,有两个重要组成部分:自注意力神经网络(self-attention neural network)和前馈神经网络(feed-forward neural network)。

自注意力层至关重要,因为它建立在与当前单词相关的前一个单词对当前单词的 “理解” 之上。 例如,“it” 指的是 “the chicken crossed the road because it wants to know what the jokes are all about(小鸡过马路,因为它想知道笑话是什么)”中的小鸡。

编码器中的另一个重要层是前馈神经网络 (FFNN)。 FFNN 预测当前标记之后出现的单词。

转到解码器一侧,编码器-解码器注意力层脱颖而出。 编码器-解码器层专注于输入句子的相关部分,同时考虑到其下方的层和编码器堆栈的输出。

把它们放在一起:

Transformer 模型的抽象图

我们将获取 input,对输入进行标记,并获取标记的标记 ID,然后将其转换为每个标记的嵌入。 从那里,我们将嵌入传递到 transformer 块中。 在该过程结束时,transformer 将预测一系列输出标记。 下图详细介绍了 transformer 模型。

解码器堆栈输出浮点数向量。 线性层(linear)将解码器堆栈生成的浮点向量投影为称为 Logits 向量的更大向量。 如果模型有 10,000 个单词的词汇,则线性层将解码器输出映射到 10,000 个单元向量。 Softmax 层将这些分数从 Logit 向量转换为概率(均为正值),并且加起来为 100%。 选择概率最高的单元格,并生成与其关联的单词作为此步骤的输出。

ChatGPT 和 LLMs 面临的挑战

  • 他们接受的数据训练没有领域知识并且可能已经过时。 例如,幻觉是给出错误的答案,就好像它们是正确的一样,这在 LLMs 中很常见。
  • 模型本身不具有从输入中应用或提取过滤器的天然能力。 示例包括时间、日期和地理过滤器。
  • 对于用户可以查看的文档内容没有访问控制。
  • 存在严重的隐私和敏感数据控制问题。
  • 使用自己的数据进行训练并使其保持最新是很慢且非常昂贵的。
  • ChatGPT 或其他 LLMs 的响应可能很慢。 通常,Elasticsearch® 会有毫秒级的查询响应。 对于 LLMs,最多可能需要几秒钟才能得到回复。 但这是预料之中的,因为 LLMs 正在执行复杂的任务。 此外,ChatGPT 按处理的 token 数量收费。 如果你有像电子商务网站的黑色星期五商品搜索这样的高速工作负载,那么它很快就会变得非常昂贵。 更不用说,它可能无法满足 = 0; 0 if ∑w1x1 + b < 0

    一旦确定了输入层,就分配权重(w)。 这些权重有助于确定任何给定变量的重要性,与其他输入相比,较大的变量对输出的贡献更大。 然后将所有输入乘以各自的权重,然后求和。 然后,输出通过激活函数,该函数决定输出。 如果该输出超过给定阈值,它将激活该节点并将数据传递到网络中的下一层。 这导致一个节点的输出成为下一个节点的输入。 这种将数据从一层传递到下一层的过程就是前馈网络。 这只是神经网络的一种类型。

    LLM 参数

    权重(weights)是定义模型中不同层神经元之间连接强度的数值。 偏差是在通过激活函数之前添加到输入加权和中的附加数值。

    SPLADE

    SPLADE 是一种后期交互模型。 SPLADE 模型背后的想法是,使用像 BERT 这样的预训练语言模型可以识别单词之间的联系,并使用这些知识来增强稀疏向量嵌入。 当你有一个涵盖广泛主题的文档(例如关于二战电影的维基百科文章)时,你可以使用它 - 它包含情节、演员、历史和发行电影的工作室。

    仅使用嵌入检索技术,文档与查询的相关性就成为一个问题,因为文档可以投影到大量维度上并使其接近于任何查询。 SPLADE 通过将所有标记级概率分布组合成一个分布来解决该问题,该分布告诉我们词汇表中每个标记与输入句子的相关性,类似于 BM25 方法。 Elastic Learned Sparse Encoder 是 SPLADE 模型的 Elastic 版本。

    RRF

    RRF 是一种混合搜索查询,它将具有不同相关指标的多个搜索结果集标准化并组合成单个结果集。 根据我们自己的测试,结合 RRF(BM25 + Elastic Learned Sparse Encoder)可产生最佳的搜索相关性。

    总结

    通过将 ChatGPT 等技术的创新能力与专有数据的业务环境相结合,我们可以真正改变客户、员工和组织的搜索方式。

    检索增强生成 (Retrieval augmented generation,RAG) 弥合了支持生成式 AI 的大型语言模型与私有数据源之间的差距。 大型语言模型的众所周知的局限性可以通过基于上下文的检索来解决,使你能够构建深度参与的搜索。

    原文:Demystifying ChatGPT: Different methods for building AI search | Elastic Blog

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论