Embeddings Magic

嵌入向量将语言转化为数学。

它们是现代 AI 的基石。许多人将其视为黑盒。本文将解释它们的工作原理。

当词汇不匹配时,关键词搜索就会失效。

如果你搜索 "How do I reset my password?",关键词搜索会寻找这些完全相同的词。如果文档中写的是 "Steps to recover your account credentials",搜索可能会失败。你知道它们的含义是一样的,但计算机并不知道。

嵌入向量解决了这个问题。

嵌入向量是一组数字列表。这些数字代表了文本的含义。嵌入模型将词汇映射到一个高维空间中。

单个词汇如 "cat" 会变成一个向量: [0.18, -0.42, 0.91, ...]

单纯的数字本身没有任何意义。重要的是向量的位置。

想象一张地图。地理位置接近的城市通常拥有相似的气候和边界。嵌入向量的工作原理也是如此。含义相似的文本在向量空间中彼此靠近。

  • 狗 (Dog) 和猫 (Cat) 靠得很近。
  • 汽车 (Car) 和卡车 (Truck) 靠得很近。
  • 汽车 (Car) 和狗 (Dog) 离得很远。

这些点之间的距离代表了相似度。

这实现了语义搜索。你可以根据意图而非拼写来查找信息。

为了比较这些向量,我们使用余弦相似度 (cosine similarity)。该指标衡量两个向量之间的夹角。

  • 夹角小意味着相似度高。
  • 夹角大意味着相似度低。

嵌入向量还为检索增强生成 (RAG) 提供动力。在 RAG 流水线中,过程如下:

  1. 使用嵌入模型将文档转换为向量。
  2. 将向量存储在向量数据库中。
  3. 将用户查询转换为向量。
  4. 在数据库中找到最接近的向量。
  5. 将相关的文档发送给 LLM。

LLM 并不会直接搜索你的文件。它是在嵌入空间中搜索最匹配的内容。

如果你构建 AI 应用,就必须理解嵌入向量。从搜索引擎到推荐系统,一切都由它们驱动。它们的强大之处在于它们组织意义的方式。

Source: https://dev.to/tahaboussaden/embeddings-magic-2hlb

Optional learning community: https://t.me/GyaanSetuAi