Vector Quantization
探索向量量化在 ML 数据压缩和离散化中的应用。了解它如何优化 VQ-VAEs、向量搜索和 Ultralytics YOLO26 部署。
矢量量化是一种强大的数据压缩与离散化技术,广泛应用于现代机器学习(ML)和数字信号处理领域。其核心原理是将大量连续点或矢量划分为多个组,并用单个“原型”矢量表示每个组,这些原型共同构成一种称为码本的结构。通过将连续的高维矢量映射到这些离散的码本条目,系统可以大幅降低内存使用量,同时保留数据的关键语义特征,从而有效实现降维。
离散化在深度学习中的作用#
在当代深度学习(DL)中,这一概念因矢量量化变分自动编码器(VQ-VAE)而广为人知。不同于通过学习连续潜在空间来执行特征提取的标准自动编码器,VQ-VAE 学习的是离散表示。这使生成模型能够将图像、音频或视频视为离散 token 序列,类似于大型语言模型(LLMs)处理文本输入的方式。你可以研究离散表示学习的基础研究,了解早期实现如何为现代基于 token 的视觉系统铺平道路。
实际应用#
在性能和内存效率至关重要的多个现实世界 AI 应用中,矢量量化发挥着关键作用:
- 生成式 AI 与媒体压缩:通过将复杂的视觉数据压缩为离散潜在编码,矢量量化能够实现高效的图像和视频生成。将连续像素映射到离散 token 的模型可以大幅降低计算开销,从而支持潜在扩散模型等先进架构。
- 高速矢量检索:为了执行快速的相似性搜索,现代系统必须查询数百万个嵌入。矢量量化可以压缩这些海量数据集,使检索引擎能够快速执行近似最近邻(ANN)搜索,这对零售领域的 AI和产品推荐系统非常有益。你可以查看OpenAI 关于嵌入的指南,进一步了解高维数据处理。
区分相关概念#
在设计高效的计算机视觉(CV)架构时,理解矢量量化与相近术语之间的细微差别很有帮助:
- 矢量量化与模型量化:模型量化通常是指降低神经网络权重的数值精度(例如,从 32 位浮点数降至 8 位整数),以加快Ultralytics YOLO26等模型在硬件上的推理速度。然而,矢量量化是将数据矢量聚类到由离散原型组成的固定词汇表中。
- 矢量量化与矢量数据库:矢量数据库是存储高维数据的实际基础设施。矢量量化则是一种底层算法技术,这些数据库通常会采用它来缩小内存占用,具体内容可参阅Qdrant 对矢量处理的解释。
- 矢量量化与矢量搜索:矢量搜索是根据矢量邻近程度查找相似项目的主动过程。量化则充当结构优化层,使这种搜索能够在超大规模下实现计算可行。
基础实现示例#
要了解矢量量化在实践中如何将连续输入映射到离散 token,你可以使用 PyTorch 计算欧氏距离,并在预定义的码本中找到最近的原型:
import torch
# Define a continuous input batch and a discrete codebook vocabulary
inputs = torch.randn(4, 128) # 4 input vectors of dimension 128
codebook = torch.randn(10, 128) # 10 discrete prototype vectors
# Compute distances and find the nearest codebook index for each input
distances = torch.cdist(inputs, codebook)
quantized_indices = torch.argmin(distances, dim=1)
# Retrieve the discrete quantized vectors corresponding to the inputs
quantized_vectors = codebook[quantized_indices]如需深入了解如何原生计算张量距离并优化这些操作,请参阅官方的 PyTorch cdist 文档。
借助 Ultralytics Platform 增强工作流#
将优化后的嵌入集成到你的流水线中需要可靠的工具支持。Ultralytics Platform 提供端到端环境,用于整理训练数据和训练先进的视觉模型。通过简化数据管理和模型部署,开发者可以轻松生成适用于矢量量化的高质量视觉特征,从而支持更快速的目标检测和大规模媒体检索应用。









