术语●●○3 分钟 · +25 XP
Embeddings——文本变数字
Embeddings 将文本转化为数字向量,使 AI 能够用数学方法比较语义相似度。
什么是 embedding?
Embedding 是一组数字(一个向量),用来在多维空间中表示一段文本——一个词、一句话、一整段——的含义。生成这些数字的是一个专门的 embedding 模型,而不是之后回答你问题的那个语言模型本身。
为什么这很有用
含义相近的文本,其向量在数字空间中的位置也会彼此靠近。"狗"和"小狗"的向量很接近,"狗"和"报税单"的向量则相距很远。计算机可以计算这种远近关系(例如用余弦相似度),而无需真正"理解"语言——纯数学计算就足够了。
Embeddings 的用途
- 语义搜索:即使没有任何一个词完全匹配,也能找到内容相关的文档
- RAG:为一次请求寻找相关文本片段的基础
- 聚类:自动将相似的文本归类
- 推荐:"相关文章"功能
Embeddings 存储在哪里
数据量较大时,embeddings 会存储在向量数据库中(例如 Pinecone、Weaviate,或 Postgres 的扩展 pgvector),这类数据库专为在数百万个向量中进行快速相似度搜索而优化。
示例
embed('狗') ≈ [0.12, -0.44, 0.81, ...] embed('小狗') ≈ [0.14, -0.41, 0.79, ...] → 彼此接近 embed('报税单') ≈ [-0.9, 0.33, -0.1, ...] → 相距很远
小测验
如果两个 embeddings 彼此接近,这意味着什么?
来源
- OpenAI-Doku: Embeddings ↗ platform.openai.com
- Claude-Doku: Embeddings ↗ docs.claude.com
- Wikipedia: Worteinbettung ↗ de.wikipedia.org