Embeddings
发现嵌入 (Embeddings) 如何连接人类数据与机器逻辑。学习使用 Ultralytics YOLO26 为 AI 任务生成向量表示,并探索 Ultralytics Platform。
Embedding 是离散变量的稠密、低维、连续向量表示,是人类数据与机器逻辑之间的基本翻译器。在人工智能 (AI)领域,计算机无法直观地理解诸如文本、图像或音频之类的杂乱、非结构化数据。Embedding 通过将这些输入转换为实数列表(即存在于高维数学空间中的向量)来解决这个问题。与仅为对象分配随机 ID 的传统编码不同,Embedding 是通过训练学习得到的,它确保语义相似的项目(例如单词“king”和“queen”,或两张不同猫的图片)在向量空间中靠得很近。
嵌入的工作原理#
Embedding 的创建涉及将原始数据输入到专为特征提取设计的神经网络中。在训练过程中,模型学习将输入的本质特征压缩为紧凑的数字形式。例如,分析照片的计算机视觉 (CV)模型不仅能看到像素,还能将形状、纹理和颜色映射到多维图表中的特定坐标。在衡量相似度时,系统会使用余弦相似度或欧氏距离等指标计算这些坐标之间的距离。这种数学上的邻近性使算法能够高效地执行分类和聚类等复杂任务。
实际应用#
嵌入是现代软件产品中许多智能功能的引擎。
- 语义搜索:传统的搜索引擎通常依赖于精确的关键词匹配,如果用户查询“auto”但文档包含“car”,这种匹配就会失效。Embedding 捕捉了词语背后的含义。通过将搜索查询和数据库文档表示为向量,系统可以检索出符合用户意图的结果,即使具体词语有所不同。
- 推荐系统:流媒体服务和电商网站使用 Embedding 来个性化用户体验。如果用户观看了一部科幻电影,系统会识别该电影的 Embedding 向量,并在数据库中搜索向量相近的其他电影。这使得系统能够基于内容相似性(而不是仅仅依靠手动标签或分类)提供准确的推荐。
- 零样本学习:先进的模型使用联合 Embedding 来连接不同的模态,例如文本和图像。通过将图像 Embedding 与该对象名称的文本 Embedding 关联起来,系统能够识别在训练期间从未明确见过的对象。
使用 Python 生成嵌入#
诸如 YOLO26 态势先进的模型可以用于高效生成稳健的图像 Embedding。以下示例演示了如何使用 ultralytics Python 包从图像中提取特征向量。
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Generate embeddings for an image
# The embed() method returns the feature vector representing the image content
embedding_vector = model.embed("https://ultralytics.com/images/bus.jpg")
# Print the shape of the embedding (e.g., a vector of length 1280)
print(f"Embedding shape: {embedding_vector[0].shape}")嵌入与相关概念对比#
为了有效地实施 AI 解决方案,区分嵌入与密切相关的技术术语非常有帮助。
- Embedding 与向量搜索:Embedding 本身就是数据表示(数字列表)。向量搜索是随后查询数据库以找到该 Embedding 的最近邻居的过程。通常会使用被称为向量数据库的专业工具来大规模存储和搜索这些 Embedding。
- Embedding 与分词:在自然语言处理 (NLP)中,分词是将文本拆分为更小块(词元)的初步步骤。然后将这些词元映射到 Embedding。因此,分词负责准备数据,而 Embedding 则表示数据的含义。
- Embedding 与深度学习:深度学习是基于神经网络的更广泛的机器学习领域。Embedding 是深度学习架构中的特定输出或层,通常充当原始输入与模型决策层之间的桥梁。
希望管理其数据集生命周期的开发者(包括用于生成自定义 Embedding 的标注和模型训练)可以利用Ultralytics 平台。这个全面的工具简化了从数据管理到部署的工作流程,确保为您应用提供动力的 Embedding 源自高质量、精挑细选的数据。无论使用 PyTorch 还是 TensorFlow 等框架,掌握 Embedding 都是构建复杂模式识别系统的关键一步。






