深圳Yolo 视觉
深圳
立即加入
词汇表

向量量化

探索向量量化在机器学习中的数据压缩与离散化应用。了解它如何优化 VQ-VAE、向量搜索以及Ultralytics 的部署。

向量量化是一种强大的数据压缩和离散化技术,在现代 机器学习(ML) 数字信号处理中得到了广泛应用。 其核心原理是 将大量连续点或向量划分为若干组,并用单个 “原型”向量来表示每组,这些向量共同构成一种称为码本的结构。通过将连续的 高维向量映射到这些离散的码本条目上,系统可以在 保留数据基本语义特征的同时大幅减少内存占用,从而实现有效的 降维

离散化在深度学习中的作用

在当代深度学习(DL)领域,这一概念 因向量量化变分自编码器(VQ-VAE)而广为人知。与标准 自编码器通过学习连续的潜在空间来 进行特征提取不同,VQ-VAE 学习的是 离散表示。 这使得生成模型能够将图像、音频或视频视为一串离散 令牌,类似于 大型语言模型(LLMs)处理文本 输入的方式。您可以探索关于离散表示学习的基础 研究,了解早期 实现如何为现代基于令牌的视觉系统铺平了道路。

实际应用

在许多现实世界的人工智能应用中,向量量化发挥着至关重要的作用,因为在这些应用中,性能和内存 效率至关重要:

区分相关概念

在设计高效的 计算机视觉(CV)架构时,理解向量量化与相关术语之间的细微差别会很有帮助:

  • 向量量化与模型量化:模型量化通常指降低神经网络权重的数值精度(例如,从 32 位浮点数降至 8 位整数),以加速如 Ultralytics 等模型在硬件上的推理过程。而向量量化则是将 数据向量聚类为一组固定的离散原型词汇表。
  • 向量量化与向量数据库:向量数据库是存储高维数据的实际基础设施。向量量化是 这些数据库常用的底层算法技术,旨在最大限度地减少内存占用,具体细节 请参阅Qdrant 对向量处理的说明
  • 向量量化与向量搜索:向量搜索是基于向量邻近性主动查找相似项的过程。量化则作为 一种结构优化层,使这种搜索在海量规模下在计算上可行。

基本实现示例

要了解向量量化在实际中是如何将连续输入映射到离散代号的,您可以使用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]

如需深入了解如何原生计算tensor 以及如何优化这些操作,请参阅官方 PyTorch 文档

借助Ultralytics 优化工作流程

要将优化后的嵌入向量集成到您的处理流程中,需要强大的工具支持。 Ultralytics 提供了一个端到端的环境,用于整理 训练数据并训练最先进的视觉 模型。通过优化数据管理并简化 模型部署,开发人员可以轻松 生成适合向量量化的高质量视觉特征,从而加速 物体检测和大规模媒体检索 应用的开发。

让我们一起共建AI的未来!

开启您的机器学习未来之旅