首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在类似ChatGPT的模型中,嵌入(embeddings)扮演着什么角色?(第三部分)

(接上文)

嵌入的各种应用

嵌入已经超越了最初在研究中的使用,成为现实世界机器学习应用的关键组成部分。它们广泛应用于自然语言处理(NLP)、推荐系统和计算机视觉等各个领域。通过在低维空间中高效表示数据,嵌入已经提高了许多机器学习模型在各种现实世界应用中的性能。例如,嵌入已被用于改进搜索引擎、提供语音助手的功能和增强图像识别系统。

推荐系统

在推荐系统中,目标是预测用户对各种产品或实体的偏好和评级。推荐系统的两种常见方法是协同过滤和基于内容的过滤。协同过滤利用用户行为进行训练和生成推荐。现代的协同过滤系统通常使用嵌入,如前面描述的SVD方法,来建立用户和产品之间的关系。通过将用户嵌入与项目嵌入相乘,生成评级预测,从而可以将类似的项目推荐给类似的用户。嵌入还可以在下游模型中使用,例如YouTube的推荐系统,它使用嵌入作为神经网络的输入,以预测观看时间。

语义搜索

为了提供更准确的搜索结果,基于BERT的嵌入考虑了单词的上下文和含义,使搜索引擎能够理解语言的细微差别并提供更好的结果。例如,当搜索"How to make pizza"时,使用BERT的语义搜索引擎会理解用户正在寻找制作披萨的指导,而不仅仅是有关披萨的一般信息。这提高了搜索结果的相关性和准确性,从而带来更好的用户体验。

计算机视觉

在计算机视觉中,嵌入在连接不同上下文之间起着关键作用。在自动驾驶汽车等实际应用中,图像可以转化为嵌入,并根据嵌入的上下文做出决策。这实现了迁移学习,允许使用来自视频游戏的生成图像来训练模型,而不是使用昂贵的真实世界图像。特斯拉已经在利用这一技术。另一个有趣的例子是AI图像处理,它可以根据用户输入的文本生成图像。通过将文本和图像转化为相同潜在空间中的嵌入,我们可以使用嵌入作为中间表示在两者之间进行转换。采用这种方法,可以通过多个转换,如图像->嵌入、文本->嵌入、嵌入->文本和图像->文本,实现从文本到图像和图像到文本的转换。

在类似ChatGPT的模型中,嵌入是如何工作的?

Transformer模型示意图

ChatGPT(与所有语言模型一样)利用自然语言处理技术和机器学习生成文本。当您向ChatGPT提出像“写一首关于猫的诗”这样的指令时,文本首先被分词为单个单位,这种情况下可能包括“写”,“一”,“首”,“诗”,“关于”和“猫”。

由于计算机无法直接理解文本,分词后的文本被转换为嵌入。这些嵌入是通过训练神经网络来预测给定单词或短语的上下文,基于周围单词或短语的上下文来创建的。嵌入使模型更容易比较和关联不同的单词或短语,因为语义上相似的单词被转化为相似的数字列表。

ChatGPT是一种因果语言模型,根据先前所有的标记预测序列中的下一个标记。为此,ChatGPT使用了变压器(transformer)架构。变压器是一种在处理数据序列(如文本)方面表现出色的神经网络。变压器通过使用一种称为注意力机制的机制来确定在生成响应时要关注哪些提示中的单词。在训练过程中,变压器层被提供了数十亿字节的文本数据,以便它们可以学习不同标记之间的正确关联。这个训练过程可能需要数千个GPU并耗时数月才能完成。

在进行预测时,变压器层将输入的嵌入通过一系列计算,生成正确的输出嵌入。然后,输出的嵌入被转换回文本标记,可以作为模型的响应呈现出来。由于ChatGPT逐个标记地进行预测,它逐词生成文本而不是一次性生成所有文本。为了生成更长的文本,ChatGPT采用自回归方法。在预测一个标记后,它将该标记添加回提示中,并将更新后的提示输入模型以生成下一个标记。此过程重复进行,直到模型输出一个特殊的“停止”标记,表示它已经完成文本的生成。

OpenAI的嵌入在ChatGPT中发挥着关键作用。当用户输入提示或问题时,ChatGPT将文本转化为标记,然后将其转化为嵌入。OpenAI的语言模型使用一种称为变压器(transformer)的神经网络架构来生成这些嵌入。这些嵌入本质上是文本的数值表示,其中语义上相似的单词具有相似的数值。嵌入然后通过多个变压器层,这些层经过训练可以确定要关注哪些单词以生成响应。每个变压器层的输出是一组新的嵌入,然后将其馈送到下一个变压器层。这个过程一直持续到最后一个变压器层输出一个特殊的标记,称为停止标记,表示响应已经完成。

更详细地解释,在ChatGPT中,嵌入用于将文本表示为高维数值向量。这些嵌入捕捉了文本的语义和句法含义,对于训练神经网络生成连贯且上下文相关的响应至关重要。

在ChatGPT中应用嵌入时,通常会使用预训练的语言模型,如GPT-2或GPT-3,这些模型已经在大量文本数据上进行了训练。然后,您将您的提示或问题输入模型,模型将将文本标记化为单个单元,将这些单元转化为嵌入,然后使用它们生成响应。

以下是一个实际应用的示例:

假设您想使用ChatGPT来对提示“告诉我一个关于猫的笑话”生成响应。首先,将文本标记化为单个单元:

[“Tell”, “me”, “a”, “joke”, “about”, “cats”]

接下来,使用预训练的语言模型将每个标记转化为嵌入:

[0.23, -0.12, 0.54, …, 0.76](“Tell”的嵌入) [0.45, 0.21, -0.34, …, 0.09](“me”的嵌入) [0.67, -0.09, 0.81, …, -0.56](“a”的嵌入) [-0.87, 0.76, 0.12, …, 0.43](“joke”的嵌入) [0.56, 0.34, -0.21, …, -0.09](“about”的嵌入) [0.76, -0.56, -0.34, …, 0.21](“cats”的嵌入)

然后,这些嵌入经过多个变压器层,利用注意机制确定要关注哪些单词以生成响应。最后,变压器层的输出被转化回文本,生成一个响应:

“为什么猫害怕树?因为它害怕被树上的东西吓到!”

在这个示例中,预训练的语言模型能够生成一个幽默的响应,与用户关于猫的提示在语境上相关。嵌入在使模型理解文本含义并生成连贯响应方面发挥了关键作用。

(未完待续)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230530A04DK300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券