拓冰建站拓冰建站
首页 / 资讯中心 / 正文

大白话讲清楚GPT嵌入(Embedding)的基本原理,看不懂你就。。再看一遍!!

前言嵌入Embedding是机器学习中的一个基本概念尤其是在自然语言处理 (NLP) 领域但它们也广泛应用于其他领域。通常嵌入是一种将离散的分类数据转换为连续向量的方法通常在高维空间中将复杂、难以处理的项目如单词、图像或用户 ID转换为机器学习模型可以理解和更有效地处理的形式。什么是向量在数学中向量也称为欧几里得向量、几何向量、矢量指具有大小magnitude和方向的量。它可以形象化地表示为带箭头的线段。箭头所指代表向量的方向。线段长度代表向量的大小。与向量对应的量叫做数量物理学中称标量数量或标量只有大小没有方向。通常我们在坐标系中用一个有长度、带箭头的线段表示一个向量。一般来讲在笛卡尔坐标平面坐标系中我们喜欢将向量的起点放在原点终点就是坐标系中的某个点然后我们从原点往那个点画一根带有箭头的线段。既然是两段从坐标原点出发的有长度、带箭头的线段那么我们就可以计算两个向量的夹角。当然通常的计算机中的向量是多维的比如OpenAI Embeddings就是1536维但是逻辑是一致的。向量夹角跟嵌入和搜索有什么关系下面借用吴军老师在数学通识的讲解通俗易懂。非常佩服吴军老师即使我作为当年数学专业科班出身听他的课还是收获满满换个角度理解可以让学识更丰满更立体。算出两个向量的夹角有什么用它其实有很多的应用比如可以对文本进行自动分类。这两件事情看似不相干怎么会联系到一起呢下面我们就大致介绍一下计算机进行文本自动分类的原理。我们知道一篇文章的主题和内容其实是由它所使用的文字决定的不同的文章使用的文字不同但是主题相似的文章使用的文字有很大的相似性。比如讲金融的文章里面可能会经常出现“金融”、“股票”、“交易”、“经济”等词讲计算机的则会经常出现“软件”、“互联网”、“半导体”等词。假如这两部分关键词没有重复那么我们很容易把这两类文本分开。假如它们有重复怎么办那么我们就要看这两类文章中各个词的频率了。根据我们的经验即使在金融类的文章中混有一些计算机类的词那么它们的词频不会太高反之亦然。为方便说明如何区分这两类文章我们就假设汉语中只有“金融”、“股票”、“交易”、“经济”、“计算机”、“软件”、“互联网”和“半导体”这八个词。假设有一篇经济学的文章这八个词出现的次数分别是233214101032另一篇是计算机的文章这八个词出现的次数是324041303112这样它们就各自形成一个八维的向量我们称之为V1和V2。如果我们能够在八维空间中将它们画出来你就会发现它们之间的夹角非常大。我算了一下大概是82度近乎垂直或者说正交。由于这些向量每一个维度都是正数因此它们最大的夹角就是90度不会更大了。这说明两类不同文章所对应的向量之间的夹角应该很大。如果我们再假设另有一篇文章八个词的词频是V3130225231410那么它和上述第二篇文章对应的向量的夹角只有7.5度。我用二维的坐标将这三个向量的关系大致示意如下。从图中可以看出第一个和第二个向量的角度很大而第二个、第三个的夹角很小。由此我们大致可以判定第三篇文章应该和第二篇主题相近也属于计算机类的。接下来我们需要思考一个问题什么样的向量之间夹角会比较小什么样的会几乎正交呢如果你对比上面三个向量就会发现这样一个特点当两个向量在同样的维度上的分量都比较大时它们的夹角就很小。反之当两个向量在不同维度上分量较大时就近乎正交。比如第二个、第三个向量它们在后四个维度分量值都较大因此它们的夹角就小。而第一个向量在前四个维度的分量较大在后四个很小和第二个向量的情况正好错开因此就近乎正交。关于向量的夹角有两个特殊情况大家需要留心一下如果两个向量在各个维度的分量成比例则它们的夹角为零。如果一个向量在所有的维度都相等比如像1010101010101010这样的向量它可能和任何一个向量都不太接近。这个性质我们后面还要用到。当然在真实的文本分类中不止这8个词有10万这个数量级的词汇因此每一篇文章对应的向量大约有10万维左右这些向量我们称之为特征向量。通过利用余弦定理计算特征向量之间的夹角我们就能判断哪些文本比较接近该属于同一类。向量不仅可以对文章进行分类而且还可以对人进行分类。今天很多大公司在招聘员工时由于简历特别多会先用计算机自动筛选简历其方法的本质就是把人根据简历向量化然后计算夹角。One-hot独热编码接下来讲讲把文本变成向量的方法一种常见且众所周知的表示分类数据的方法是独热编码。此方法将数据集中的每个项目转换为一个由零和一个“1”组成的向量。想象一个词汇表其中每个单词在向量中都被分配一个唯一的位置。例如在一个由三个单词_“苹果”、“香蕉”、“樱桃”组成的简单词汇表中_ _“苹果”一词可能表示为 [1, 0, 0]“香蕉”表示为 [0, 1, 0]“樱桃”_表示为 [0, 0, 1]。这种方法简单易懂但它有很大的局限性。独热编码的主要问题是效率低下尤其是在词汇量较大的情况下。每个单词都需要一个与整个词汇量一样长的向量这会导致内存消耗高和表示稀疏。此外这种方法无法捕捉单词之间的任何语义关系。_“Apple”和“banana”可能比“apple”和“cherry”_更相似都是水果但在独热编码中所有单词彼此等距。这正是嵌入发挥作用的地方它提供了一种更细致、更高效的数据表示方式。嵌入将独热编码向量映射到低维空间其中相似的项目会更紧密地放在一起。这种转换是从数据中学习而来的使模型能够辨别和编码数据中的关系和模式。例如在嵌入空间中“_苹果”和“香蕉”_可能会更紧密地放在一起反映出它们作为水果的语义相似性与其他非水果词不同。通过利用嵌入机器学习模型可以更深入地了解数据从而获得更准确、更有洞察力的结果。无论是捕捉 NLP 任务中的语言细微差别还是识别用户行为模式嵌入都提供了一种更高效、更复杂的处理复杂数据的方法。嵌入如何工作表示在 NLP 中语言中的每个唯一单词都表示为连续向量空间中的密集向量。这些向量通常具有固定大小如 100、300 或 512 维与词汇量大小无关。语境含义与提供稀疏且无信息量的独热编码其中每个单词只是长向量中的不同索引不同嵌入可以捕获有关单词的更多信息。具有相似含义或在相似语境中使用的单词在嵌入空间中往往更接近。例如“国王”和“王后”可能由彼此接近的向量表示。训练可以使用 Word2Vec、GloVe 等算法或 BERT用于上下文嵌入等更高级的方法在大型文本语料库如新闻文章、维基百科或网页上对嵌入进行预训练。该模型会学习将具有相似含义的单词放在这个高维空间中。降维此表示允许降维。该模型不再处理数千或数百万个唯一单词而是处理维度空间小得多的向量。模型中的使用这些向量表示随后可以被输入到各种机器学习模型如神经网络中用于情感分析、机器翻译或内容推荐等任务。超越词语嵌入的概念超越了词语包括句子、段落、用户 ID、产品等其中相似的项目由嵌入空间中的接近的向量表示。它为什么有用效率它们提供了紧凑、密集的表示。语义含义它们捕捉单词或事物的深层语义含义。灵活性可以用于各种机器学习任务。迁移学习预先训练的嵌入可用于提高数据有限任务的性能。让我们以词嵌入的简单例子来说明嵌入的工作原理。假设我们的词汇量非常小只有五个单词[“cat”、“dog”、“fish”、“run”、“swim”]。在传统方法中我们可能使用独热编码来表示这些单词其中每个单词都由一个向量表示该向量在与该单词对应的位置上为“1”其他地方为“0”。例如cat[1,0,0,0,0]dog[0,1,0,0,0]fish[0,0,1,0,0]run[0,0,0,1,0]swim[0,0,0,0,1]在独热编码中每个单词与其他单词的距离相等没有相似性或上下文的概念。嵌入过程训练我们使用模型来学习嵌入。假设我们的模型学习二维嵌入实际上它们的维度要高得多但为了简单起见我们使用二维。得到的嵌入模型可能会学习以如下方式表示这些单词cat[0.90.1]dog[0.85,0.15]fish[0.1,0.8]run[0.2,0.7]swim[0.15,0.85]嵌入提供了一种捕捉单词之间语义关系和相似性的方法这是独热编码所不具备的现在我们有了相似性请注意“cat”和“dog”在这个嵌入空间中彼此接近两者在第一个维度上的值都较高在第二个维度上的值较低。这反映了它们作为宠物的相似性。差异性相比之下“cat”和“swim”相距较远表明相似性较低。上下文分组 “rum”和“swim”等活动彼此之间距离更近并且与“fish”在上下文上与游泳相关的距离比与“cat”或“dog”的距离更近。嵌入工作原理的简单示例让我们通过一个简化的过程来了解如何使用基本的机器学习概念开发这样的模型。我们将使用一种非常基本的方法重点是清晰度而不是性能或可扩展性。假设你有一小部分句子每个句子都包含“cat”、“dog”、“fish”、“run”和“swim”等单词。这些句子形成一个语料库一个微型世界其中“cat and dog are pets”或“fish swim in water”是典型的场景。现在考虑分析这些句子将它们分解成单个单词。这有点像标记化每个单词都独立存在。你甚至可以决定放弃一些常用词那些没有增加太多趣味的词比如“and”或“are”。接下来以二维向量的形式赋予每个单词自己的身份。这些向量最初是随机的有点像不假思索地为每个单词分配一个独特的指纹。真正的魔力始于你为每个单词定义上下文。想象一下选择一个窗口大小比如说目标单词两侧的两个单词。这是每个单词的直接邻域是它们在句子世界中的社交圈。然后你开始一个简单的学习过程。目标是让共享上下文的单词也共享相似的向量。这有点像在数值空间中将它们推得更近。你可以通过调整单词的向量来做到这一点使其更像其邻居的向量。同时将其推离不共享其上下文的随机单词的向量。这个过程不是一次性的事情。它更像是一个循环。你浏览语料库中的每个单词根据其邻居更新其向量。有时你还会让它与随机的、不相关的单词略有不同。随着你不断重复这个过程迭代一次又一次向量开始稳定下来。它们会找到一种平衡点在这个点上调整会变得越来越小。这就是收敛向量现在不仅代表随机分配还代表基于单词出现的上下文的有意义的关系。这个过程重复足够多次后就会揭示出你的语料库中隐藏的结构即从头开始构建的单词关系图。在 GPT 等大型模型中的工作原理与 Word2Vec 等模型中的传统词嵌入相比GPT 等模型中的嵌入工作方式有所不同。GPT 是一种基于转换器的模型它使用更复杂且更能感知上下文的方法进行嵌入。以下是OpenAI Embedding之后转化成的向量示例想象一下GPT 是一位语言大师首先将文本分解成标记。与使用整个单词的简单方法不同GPT 通常选择子词单元例如字节对编码。这种细致入微的方法使其能够高效处理大量单词即使是那些罕见或从未见过的单词。然后每个 token 都会被赋予一个初始身份即以嵌入向量形式呈现的数字 DNA。这些嵌入并不是随机分配的它们是在 GPT 训练过程中精心学习的为每个 token 提供了基础理解。现在让我们来思考一下理解语言的挑战这不仅关乎单词还关乎单词的顺序。GPT 通过在其嵌入中注入位置编码来解决这个问题。这些就像秘密信号对于序列中的每个位置都是唯一的确保单词的顺序永远不会丢失。当这些初始嵌入和位置编码进入 GPT 的转换层时真正的语境化就开始了。在这里在并行处理过程中模型会在每个其他标记的上下文中检查每个标记。这是通过自注意力机制完成的这是一种复杂的工具可以让每个标记了解其与其他标记的相关性。随着输入文本穿过 Transformer 的连续层嵌入也会不断演变。随着每一层它们会吸收更多上下文从而丰富其表示。这不仅仅是表面层次的理解它是对每个 token 的深入、情境化的洞察受到整个输入序列的影响。当文本到达最后一层时每个标记都会出现一个向量表示。这些向量表示不仅仅是独立的含义它们具有深刻的语境不仅反映了标记本身还反映了它与序列中其他每个标记的关系。这些最终的嵌入可以用于多种任务 - 文本生成、语言翻译、问答等。GPT 嵌入的主要特点是它们具有上下文感知、动态、分层并且受益于子词标记化。这使得 GPT 对语言的理解丰富而细致入微远远超越了更简单的模型。从本质上讲GPT 的嵌入机制是语言学和技术的复杂融合可以捕捉对语言的深刻而多方面的理解。最后嵌入代表了机器学习和自然语言处理领域的一项重要进步。它们提供了一种将分类数据例如单词或图像转换为机器学习模型可以处理的数字格式的有效方法。从基本的独热编码到更复杂的嵌入技术的转变反映了机器处理大型复杂数据集的显着改进。随着该领域的不断发展嵌入在处理和解释大量数据方面的作用可能会变得更加突出。它们与 GPT 等高级模型的集成凸显了它们在当前和未来 AI 技术中的重要性。因此嵌入仍然是持续开发更复杂、更高效的机器学习系统的重要组成部分。最后的最后感谢你们的阅读和喜欢我收藏了很多技术干货可以共享给喜欢我文章的朋友们如果你肯花时间沉下心去学习它们一定能帮到你。因为这个行业不同于其他行业知识体系实在是过于庞大知识更新也非常快。作为一个普通人无法全部学完所以我们在提升技术的时候首先需要明确一个目标然后制定好完整的计划同时找到好的学习方法这样才能更快的提升自己。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】大模型知识脑图为了成为更好的 AI大模型 开发者这里为大家提供了总的路线图。它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。经典书籍阅读阅读AI大模型经典书籍可以帮助读者提高技术水平开拓视野掌握核心技术提高解决问题的能力同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说阅读经典书籍是非常有必要的。实战案例光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。面试资料我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门