【每周一读】LLM Embeddings — Explained Simply

原文🔗:https://pub.aimind.so/llm-embeddings-explained-simply-f7536d3d0e4b

原文作者:Sandi Besen

今天这篇文章非常简练,逐词解释了“embeddings are vectors stored in an index within a vector database”的意思。

翻译一下这句话,“嵌入是存储在向量数据库中索引中的向量”。

如果是对概念不熟悉的读者,听到这里或许已经开始头晕了。没关系,我们慢慢来。

Embedding

第一个词,embedding,翻译过来通常叫“嵌入”。

嵌入是一种将所有类型的数据(包括图像、音频文件、文本、文档等)存储在称为“向量”的数字数组中的方法。

例如,“销售周期中有 7 个阶段:寻找潜在客户、建立联系、确定潜在客户资格、培养潜在客户、提出报价、克服异议和完成销售”这句话可以表示为嵌入 [ 0.00049438 0.11941205 0.00522949 ... 0.01687654 -0.02386115 0.00526433],其中省略号代表了成百上千个其它数字。这些数字的确切含义只有生成它们的transformer模型才知道,但我们可以确定它们代表了单词、单词的上下文(单词彼此之间和其他嵌入的关系)以及单词的含义

嵌入存储LLM模型所需的所有信息,以便能够根据用户的查询搜索和生成相关输出。

Vector

第二个词,vector,也就是“向量”。

向量是一种用于组织具有含义的嵌入的方式。尽管这些embedding在计算机屏幕上是以一维方式表示的,但它们实际上具有许多维度。人类很难将超过三维的空间可视化。一维是一条线,二维可以用图形表示,三维是一个立方体,但四维及以上?……

在一个向量中,维数取决于向量的长度 — “n”。因此,如果一个嵌入有 150 个数字或 n=150 ,则该向量有 150 维。我们的大脑无法想象那会是什么样子,但这里有一张五维空间的图像以供参考。

Index

index或许可以翻译为“索引”,索引是向量存储的顺序。

为什么顺序很重要呢?原点(向量开始的地方)、方向(向量的移动方向)和大小(向量的长度)决定了向量与其他向量的关系和接近程度。这种关系是LLM快速“理解”和生成相关内容的基础。

例如,表示“布达佩斯”市的嵌入向量可能存储在表示“伦敦”市的嵌入向量附近,因为它们都是国家首都。它们在索引中的距离展示了它们之间的关系。因此,当你询问 LLM “匈牙利和英国的首都是什么”时,它可以根据它们向量之间的关系快速查询到答案:布达佩斯和伦敦。

Vector database

存储向量化索引最有效的方法是在向量数据库(vector database)中,有时也称为vector store。

与传统数据库将信息存储在行和列中不同,向量数据库用算法来索引向量(就像上一节讨论的那样)。从传统数据库中提取信息时,算法会查找与特定搜索匹配的行。在向量化数据库中,使用函数近似来查找与查询最相似的向量,此过程称为检索增强生成(RAG)。然后,LLM用上下文和预先嵌入的向量来帮助快速计算输出,从而提高性能。

现在,就可以将句子“嵌入是存储在向量数据库索引中的向量”分解为易于理解的块,再看一下数据处理的流程图。

posted @ 2024-02-01 12:54  Aikoin  阅读(146)  评论(0编辑  收藏  举报