AIUnlimited
🌳

AI基础

🌱
AI 种子

从零开始

🌿
AI 萌芽

打好基础

🌳
AI 枝干

付诸实践

🏕️
AI 树冠

深入探索

🌲
AI 森林

精通AI

🔨

AI精通

✏️
AI 草图

从零开始

🪨
AI 雕刻

打好基础

⚒️
AI 匠心

付诸实践

💎
AI 打磨

深入探索

🏆
AI 杰作

精通AI

📘

AI实战

📖
理解开源模型

开源模型的基础知识和资源

🎯
问题到模型任务

将业务问题转化为模型任务

⚡
跑通第一个模型

30分钟快速看到第一个结果

🔧
微调与评测

微调模型并评估性能

🚀
应用系统

构建实际AI应用系统

🎨
生成式AI

探索AIGC的开源模型

🤖
Agent智能体

学习Agent框架和MCP工具

📐
基础补充

LLM基础知识和评测

🎓

Claude 学院

🤖
Claude 101 入门

用 Claude 学习 AI 基础知识

💻
Claude Code 101 入门

让 Claude 成为你的结对编程伙伴

🤝
Claude Cowork 入门

与 Claude 协作完成复杂项目

⚙️
Claude 平台 101

使用 Claude API 构建应用

实验室

已加载 7 个实验
🧬神经网络沙盒🤖AI 还是人类?🥋提示工程道场🏁算法竞速🧠AI 知识挑战🏗️系统设计画布
🎯模拟面试进入实验室→
🚀

职业发展

🚀
面试发射台

开启你的旅程

🌟
行为面试精通

掌握软技能

💻
技术面试

通过编程轮次

🤖
AI与ML面试

ML面试精通

🏆
Offer与未来

拿下最好的Offer

立即开始
AIUnlimited

AI 教育平台

沪ICP备18025655号-11

学习

  • AI基础
  • AI实战
  • Claude学院
  • 实验室
  • 职业发展

社区

  • 关于
  • 常见问题

支持

  • 服务条款
  • 隐私政策
  • 联系我们
AI & 工程学习计划›🌿 AI 萌芽›课程›嵌入与向量数据库
🧭
AI 萌芽 • 中级⏱️ 16 分钟阅读

嵌入与向量数据库

嵌入 - AI 如何理解含义

标记化后,每个标记只是一个数字 - 词汇表中的索引。但索引 4,821 没有告诉模型任何有关含义的信息。人工智能如何知道“国王”和“女王”是相关的,或者“银行”可以表示河岸或金融机构?答案是嵌入。

One-Hot 编码的问题

简单的方法将每个单词表示为一个包含一个 1 和数千个 0 的向量。 “猫”可能是[0, 0, 1, 0, ..., 0],“狗”是[0, 0, 0, 1, ..., 0]。

这有两个致命的缺陷:

  • 没有相似之处: “猫”和“狗”之间的距离与“猫”和“民主”之间的距离一样远。编码捕获零语义信息。
  • 海量: 拥有 50,000 个单词的词汇量,每个单词需要一个 50,000 维的向量。效率极低。

词嵌入 - 几何意义

嵌入将每个标记映射到一个密集向量,例如 256 或 768 维。与 one-hot 向量不同,这些维度是在训练和编码过程中学习的。

在相似的上下文中使用的单词最终在这个空间中紧密结合在一起。 “小狗”落在“小猫”附近。 “伦敦”降落在“巴黎”附近。空间的几何形状就是意义。

显示集群的词嵌入的 2D 投影:动物(猫、狗、鱼)分组在一起,城市(伦敦、巴黎、东京)分组在一起,以及著名的国王-王后类比向量算术
在嵌入空间中,意义变成了几何。相似的概念聚集在一起。

Word2Vec - 国王 − 男人 + 女人 = 女王

2013 年的 Word2Vec 论文展示了一些非凡的东西。在大型文本语料库上进行训练,学习到的向量表现出算术关系:

vector("king") − vector("man") + vector("woman") ≈ vector("queen")

从“男人”到“女人”的方向抓住了性别的概念。将其添加到“国王”移动到“女王”。这不是编程的——它是从语言模式中产生的。

其他示例:Paris − France + Italy ≈ Rome、bigger − big + small ≈ smaller。

🤯

Word2Vec 由 Tomáš Mikolov 在 Google 于 2013 年创建。该论文被引用超过 40,000 次,被认为是有史以来发表的最具影响力的 NLP 论文之一。它证明了在原始文本上训练的简单神经网络可以学习惊人的语义关系。

嵌入尺寸

现代模型使用不同的嵌入大小:

|型号|嵌入尺寸| |--------|---------------------| | Word2Vec | 100–300 | |伯特 | 768 | 768 | GPT-3 | 12,288 | 12,288 | OpenAI 文本嵌入-3-大 | 3,072 | 3,072

更多维度可以捕捉更精细的区别,但需要更多内存和计算。可以把它想象成描述一个人:3个维度(身高、体重、年龄)给出了一个粗略的草图; 768个维度描绘出一幅细致的肖像。

🧠小测验

著名的方程式”国王−男人+女人≈女王”说明了什么?

从单词到句子

词嵌入代表单个单词,但我们经常需要比较整个句子或文档。 句子嵌入(来自 Sentence-BERT 或 OpenAI 的嵌入 API 等模型)将整个段落压缩为单个向量。

第 9 课,共 16 课已完成 0%
←分词

讨论

登录 参与讨论

“如何重置密码?”和“我忘记了我的登录凭据”将具有非常相似的句子嵌入,即使它们几乎没有共享单词。嵌入捕获意图,而不仅仅是词汇。

测量相似度 - 余弦相似度

为了比较两个嵌入,我们使用余弦相似度 - 两个向量之间角度的余弦。它的范围从-1(相反)到+1(同向)。

  • “快乐”和“快乐”:余弦 ≈ 0.85(非常相似)。
  • “快乐”和“桌子”:余弦 ≈ 0.10(无关)。
  • “爱”和“恨”:余弦可能是 ≈ 0.40(相关但相反)。

余弦相似度忽略矢量大小,纯粹关注方向——这就是意义所在。

🤔
Think about it:

“爱”和“恨”在含义上是相反的,但可能具有适度的余弦相似性,因为它们出现在相似的上下文(情感、关系)中。这告诉我们什么关于纯粹根据单词共现训练的嵌入的局限性?

矢量数据库 - 按含义搜索

矢量数据库存储数百万个嵌入并以极快的速度检索最相似的嵌入。您不用关键字匹配(“查找包含‘机器学习’的文档”),而是按含义(“查找有关人工智能教育的文档”)进行搜索。

流行的矢量数据库包括:

  • Pinecone - 完全托管,轻松扩展。
  • Weaviate - 具有混合搜索(向量+关键字)的开源。
  • ChromaDB - 轻量级,非常适合原型设计。
  • pgvector - 将矢量搜索添加到 PostgreSQL。

这些数据库使用 HNSW(分层可导航小世界)等算法在几毫秒内搜索数十亿个向量。

🧠小测验

向量搜索相对于传统的关键词搜索有什么优势?

RAG - 检索增强生成

RAG 是现代人工智能中最重要的模式之一。它将向量搜索与语言模型结合起来:

  1. 嵌入您的文档并将其存储在矢量数据库中。
  2. 当用户提出问题时,嵌入查询。
  3. 通过向量搜索检索最相似的文档块。
  4. 将这些块作为上下文输入到语言模型中。
  5. 模型生成基于您的数据的答案。

RAG 让语言模型回答有关“您的”特定数据(公司文档、产品目录、研究论文)的问题,而无需重新训练。它极大地减少了幻觉,因为该模型有真实的来源可供参考。

🧠小测验

在RAG系统中,向量数据库扮演什么角色?

实际应用

嵌入为无数现实世界的系统提供支持:

  • 语义搜索 - 查找相关结果,无论确切的措辞如何。
  • 推荐 - 通过嵌入相似性“喜欢这个的用户也喜欢......”。
  • 聚类 - 自动对类似的支持票证、评论或文档进行分组。
  • 异常检测 - 发现远离任何集群的异常值。
  • 重复检测 - 在大型语料库中查找几乎相同的内容。
🤯

Spotify 使用音频嵌入来推荐歌曲。每首曲目都根据其声学特征进行嵌入,建议来自于查找附近的向量 - 在嵌入空间中“听起来相似”的歌曲。

🤔
Think about it:

如果您将每个产品嵌入在线商店中,您如何构建一个推荐系统,在不依赖购买历史记录的情况下说“查看过该商品的客户可能也喜欢......”?

要点

  • 嵌入是密集的向量表示,其中意义变成了几何。
  • 相似的概念聚集在一起;关系表现为方向。
  • 余弦相似度衡量两个含义的接近程度。
  • 矢量数据库支持大规模意义搜索。
  • RAG 将向量搜索与语言模型相结合,以回答您自己的数据中的问题。

📚 进一步阅读

  • Jay Alammar - Word2Vec 插图 - 直观、直观地介绍词嵌入的工作原理
  • 松果学习中心 - 什么是嵌入? - 嵌入和向量搜索实用指南
  • OpenAI 嵌入指南 - 如何通过 OpenAI API 生成和使用嵌入