嵌入工作原理的简单示例让我们通过一个简化的过程来了解如何使用基本的机器学习概念开发这样的模型。我们将使用一种非常基本的方法,重点是清晰度而不是性能或可扩展性。假设你有一小部分句子,每个句子都包含“cat”、“dog”、“fish”、“run”和“swim”等单词。这些句子形成一个语料库,一个微型世界,其中“cat and dog are pets”或“fish swim in water”是典型的场景。现在,考虑分析这些句子,将它们分解成单个单词。这有点像标记化,每个单词都独立存在。你甚至可以决定放弃一些常用词,那些没有增加太多趣味的词,比如“and”或“are”。接下来,以二维向量的形式赋予每个单词自己的身份。这些向量最初是随机的,有点像不假思索地为每个单词分配一个独特的指纹。真正的魔力始于你为每个单词定义上下文。想象一下选择一个窗口大小,比如说目标单词两侧的两个单词。这是每个单词的直接邻域,是它们在句子世界中的社交圈。然后,你开始一个简单的学习过程。目标是让共享上下文的单词也共享相似的向量。这有点像在数值空间中将它们推得更近。你可以通过调整单词的向量来做到这一点,使其更像其邻居的向量。同时,将其推离不共享其上下文的随机单词的向量。这个过程不是一次性的事情。它更像是一个循环。你浏览语料库中的每个单词,根据其邻居更新其向量。有时,你还会让它与随机的、不相关的单词略有不同。随着你不断重复这个过程,迭代一次又一次,向量开始稳定下来。它们会找到一种平衡点,在这个点上调整会变得越来越小。这就是收敛,向量现在不仅代表随机分配,还代表基于单词出现的上下文的有意义的关系。这个过程重复足够多次后,就会揭示出你的语料库中隐藏的结构,即从头开始构建的单词关系图。 在 GPT 等大型模型中的工作原理与 Word2Vec 等模型中的传统词嵌入相比,GPT 等模型中的嵌入工作方式有所不同。GPT 是一种基于转换器的模型,它使用更复杂且更能感知上下文的方法进行嵌入。以下是OpenAI Embedding之后转化成的向量示例