Embeddings
了解嵌入如何连接人类数据与机器逻辑。学习如何使用 Ultralytics YOLO26 为 AI 任务生成向量表示,并探索 Ultralytics Platform。
嵌入是离散变量的稠密、低维、连续向量表示,充当人类数据与机器逻辑之间的基础翻译器。在人工智能 (AI)领域,计算机无法直观理解文本、图像或音频等杂乱的非结构化数据。嵌入通过将这些输入转换为实数列表(称为向量)来解决这一问题,这些向量存在于高维数学空间中。与可能只是为对象分配随机 ID 的传统编码不同,嵌入通过训练学习得到,从而确保语义相似的项目(例如“国王”和“王后”这两个词,或两只不同猫的图像)在向量空间中彼此靠近。
嵌入的工作原理#
嵌入的创建过程是将原始数据输入专为特征提取设计的神经网络。在训练期间,模型会学习将输入的关键特征压缩为紧凑的数值形式。例如,分析照片的计算机视觉 (CV)模型并不只是看到像素;它会将形状、纹理和颜色映射到多维图中的特定坐标。在衡量相似度时,系统会使用余弦相似度或欧氏距离等指标计算这些坐标之间的距离。这种数学上的接近关系使算法能够高效地执行分类和聚类等复杂任务。
实际应用#
嵌入是现代软件产品中许多智能功能的引擎。
- 语义搜索:传统搜索引擎通常依赖精确的关键词匹配,如果用户搜索“汽车”,而文档中包含的是“轿车”,这种方式就会失效。嵌入能够捕捉词语背后的含义。通过将搜索查询和数据库文档表示为向量,系统即使在具体词语不同时,也能检索出符合用户意图的结果。
- 推荐系统:流媒体服务和电子商务网站使用嵌入来实现个性化用户体验。如果用户观看了一部科幻电影,系统会识别该电影的嵌入向量,并在数据库中搜索向量相近的其他电影。这样,系统就能根据内容相似性而不仅仅是手动标签或类别提供准确的推荐。
- 零样本学习:高级模型使用联合嵌入来连接文本和图像等不同模态。这使系统能够识别训练期间从未明确见过的对象,方法是将图像嵌入与对象名称的文本嵌入关联起来。
使用 Python 生成嵌入#
YOLO26等先进模型可用于高效生成稳健的图像嵌入。以下示例演示了如何使用 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 解决方案,区分嵌入与密切相关的技术术语很有帮助。
- 嵌入与向量搜索:嵌入本身就是数据表示(数值列表)。向量搜索则是后续查询数据库、查找与该嵌入最近邻的过程。通常会使用称为向量数据库的专用工具,以大规模存储和搜索这些嵌入。
- 嵌入与分词:在自然语言处理 (NLP)中,分词是将文本拆分为更小片段(词元)的初步步骤。然后,这些词元会被映射为嵌入。因此,分词负责准备数据,而嵌入负责表示数据的含义。
- 嵌入与深度学习:深度学习是以神经网络为基础的机器学习更广泛领域。嵌入是深度学习架构中的特定输出或层,通常充当原始输入与模型决策层之间的桥梁。
希望管理数据集生命周期(包括用于生成自定义嵌入的标注和模型训练)的开发者可以使用Ultralytics Platform。这一综合工具简化了从数据管理到部署的工作流,确保为你的应用提供支持的嵌入源自高质量且经过精心整理的数据。无论使用 PyTorch 还是 TensorFlow 等框架,掌握嵌入都是构建复杂模式识别系统的关键一步。









