Vector Quantization
Изучи векторное квантование для сжатия и дискретизации данных в ML. Узнай, как оно оптимизирует VQ-VAE, векторный поиск и развёртывание Ultralytics YOLO26.
Векторное квантование — это мощный метод сжатия и дискретизации данных, широко применяемый в современном машинном обучении (ML) и цифровой обработке сигналов. В основе метода лежит разделение большого набора непрерывных точек или векторов на группы, каждая из которых представляется одним «прототипным» вектором; вместе они образуют структуру, известную как кодовая книга. Отображая непрерывные многомерные векторы на дискретные элементы этой кодовой книги, системы могут значительно сократить использование памяти, сохраняя при этом основные семантические характеристики данных для эффективного снижения размерности.
Роль дискретизации в глубоком обучении#
В современном глубоком обучении (DL) эта концепция получила широкую известность благодаря вариационному автокодировщику с векторным квантованием (VQ-VAE). В отличие от стандартных автокодировщиков, которые обучаются непрерывному латентному пространству для выполнения извлечения признаков, VQ-VAE обучаются дискретному представлению. Это позволяет генеративным моделям обрабатывать изображения, аудио или видео как последовательность дискретных токенов — подобно тому, как большие языковые модели (LLMs) обрабатывают текстовые входные данные. Ознакомься с фундаментальными исследованиями обучения дискретным представлениям, чтобы понять, как первые реализации проложили путь современным системам компьютерного зрения на основе токенов.
Практические применения#
Векторное квантование играет важную роль в нескольких реальных приложениях ИИ, где первостепенное значение имеют производительность и эффективность использования памяти:
- Генеративный ИИ и сжатие медиаданных: Сжимая сложные визуальные данные в дискретные латентные коды, векторное квантование обеспечивает высокоэффективную генерацию изображений и видео. Модели, отображающие непрерывные пиксели на дискретные токены, значительно сокращают вычислительные затраты и поддерживают продвинутые архитектуры, такие как латентные диффузионные модели.
- Высокоскоростной поиск по векторам: Для быстрого выполнения поиска сходства современным системам необходимо запрашивать миллионы эмбеддингов. Векторное квантование сжимает эти огромные наборы данных, позволяя поисковым системам быстро выполнять приближённый поиск ближайших соседей (ANN), что особенно полезно для ИИ в розничной торговле и систем рекомендаций товаров. Ознакомься с руководством OpenAI по эмбеддингам, чтобы получить дополнительные сведения об обработке многомерных данных.
Различие между связанными понятиями#
Понимание различий между векторным квантованием и схожими терминами помогает при проектировании эффективной архитектуры компьютерного зрения (CV):
- Векторное квантование и квантование модели: Квантование модели обычно означает снижение числовой точности весов нейронной сети (например, с 32-битных чисел с плавающей запятой до 8-битных целых чисел) для ускорения вывода при развёртывании таких моделей, как Ultralytics YOLO26. Векторное квантование, напротив, группирует векторы данных в фиксированный словарь дискретных прототипов.
- Векторное квантование и векторная база данных: Векторная база данных — это непосредственно инфраструктура для хранения многомерных данных. Векторное квантование — это базовый алгоритмический метод, который часто применяют такие базы данных для уменьшения занимаемого ими объёма памяти, как подробно описано в объяснении 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]Чтобы подробно изучить нативное вычисление расстояний между тензорами и оптимизацию этих операций, обратись к официальной документации PyTorch по cdist.
Оптимизация рабочих процессов с помощью платформы Ultralytics#
Интеграция оптимизированных эмбеддингов в твой конвейер требует надёжных инструментов. Платформа Ultralytics предоставляет комплексную среду для подготовки данных для обучения и обучения современных моделей компьютерного зрения. Оптимизируя управление данными и упрощая развёртывание моделей, разработчики могут легко создавать высококачественные визуальные признаки, подходящие для векторного квантования, что обеспечивает более быстрое обнаружение объектов и работу приложений для широкомасштабного поиска по медиаданным.









