Skip to content

Embeddings (嵌入) ​

OpenAI 的 Embeddings API 将文本转换为浮点数列表(向量)。向量之间的距离衡量了它们的相关性:距离越小(通常使用余弦相似度),表示语义越相关;距离越大,表示语义差异越大。

什么是 Embeddings? ​

Embedding 是一个浮点数向量(列表)。 例如:[0.00230642, -0.00932729, ...]

如果两个文本的 Embedding 向量在多维空间中距离很近,说明它们含义相似。这对于关键词匹配无法解决的场景(例如“猫”和“喵星人”)非常有用。

常见用例 ​

  • 搜索 (Search) : 根据相关性对结果进行排序。
  • 聚类 (Clustering) : 将文本分组。
  • 推荐 (Recommendations) : 推荐具有相关文本字符串的项目。
  • 异常检测 (Anomaly detection) : 识别相关性极低的离群值。
  • 多样性测量 (Diversity measurement) : 分析相似度分布。
  • 分类 (Classification) : 将文本归类到最相似的标签。

如何使用 ​

获取 Embeddings ​

python

from openai import OpenAI
client = OpenAI()

response = client.embeddings.create(
    input="Your text string goes here",
    model="text-embedding-3-small"
)

print(response.data[0].embedding)

模型选择 ​

OpenAI 推荐使用第三代模型(v3):

模型用途性能成本
text-embedding-3-small高效、低成本,适合大多数任务优于 v2极低
text-embedding-3-large最高精度,适合需要极致效果的场景最佳较高
text-embedding-ada-002上一代模型 (v2)良好-

降维 (Reducing dimensions) ​

text-embedding-3 系列模型支持通过 dimensions 参数缩减输出向量的维度(例如从 1536 降至 256),而不会显著损失性能。这有助于节省向量数据库的存储空间。

局限性与风险 ​

  • Social Bias (社会偏见) : 模型可能包含训练数据中的偏见或刻板印象。
  • Blindness to recent events : Embeddings 模型也是静态的,不知道最新的事件(但这通常影响不大,因为它们主要理解语义关系)。

Pager

Previous pageAssistants API 开发指南

Next pageFine-tuning(微调)

分享到:

微博微信QQQQ空间豆瓣复制链接

免责声明:本站仅提供信息导航服务,不对第三方站点内容负责