Vector Quantization
Khám phá vector quantization để nén và rời rạc hóa dữ liệu trong ML. Tìm hiểu cách nó tối ưu hóa VQ-VAE, tìm kiếm vector và triển khai Ultralytics YOLO26.
Lượng tử hóa vectơ là một kỹ thuật nén và rời rạc hóa dữ liệu mạnh mẽ, được sử dụng rộng rãi trong machine learning (ML) hiện đại và xử lý tín hiệu số. Về cốt lõi, nó hoạt động bằng cách chia một tập hợp lớn các điểm hoặc vectơ liên tục thành các nhóm và biểu diễn mỗi nhóm bằng một vectơ "nguyên mẫu" duy nhất, cùng nhau tạo thành một cấu trúc gọi là codebook (từ điển mã). Bằng cách ánh xạ các vectơ chiều cao liên tục vào các mục codebook rời rạc này, hệ thống có thể giảm đáng kể việc sử dụng bộ nhớ trong khi vẫn bảo tồn các đặc tính ngữ nghĩa thiết yếu của dữ liệu để phục vụ việc giảm chiều dữ liệu hiệu quả.
Link to this sectionVai trò của sự rời rạc hóa trong Deep Learning#
Trong deep learning (DL) đương đại, khái niệm này đã trở nên nổi tiếng nhờ Vector Quantized Variational Autoencoder (VQ-VAE). Không giống như các autoencoder tiêu chuẩn học một không gian tiềm ẩn liên tục để thực hiện trích xuất đặc trưng, VQ-VAE học một biểu diễn rời rạc. Điều này cho phép các mô hình tạo sinh xử lý hình ảnh, âm thanh hoặc video dưới dạng một chuỗi các token rời rạc, tương tự như cách các Large Language Models (LLMs) xử lý đầu vào văn bản. Bạn có thể khám phá nghiên cứu nền tảng về học biểu diễn rời rạc để xem cách các triển khai ban đầu mở đường cho các hệ thống thị giác dựa trên token hiện đại.
Link to this sectionCác ứng dụng trong thực tế#
Lượng tử hóa vectơ đóng vai trò quan trọng trong một số ứng dụng AI thực tế nơi mà hiệu suất và hiệu quả bộ nhớ là ưu tiên hàng đầu:
- Generative AI và nén truyền thông: Bằng cách nén dữ liệu hình ảnh phức tạp thành các mã tiềm ẩn rời rạc, lượng tử hóa vectơ cho phép tạo hình ảnh và video hiệu quả cao. Các mô hình ánh xạ pixel liên tục sang các token rời rạc giúp giảm đáng kể chi phí tính toán, hỗ trợ các kiến trúc tiên tiến như latent diffusion models.
- Truy xuất vectơ tốc độ cao: Để thực hiện tìm kiếm tương đồng nhanh chóng, các hệ thống hiện đại phải truy vấn hàng triệu embeddings. Lượng tử hóa vectơ nén các tập dữ liệu khổng lồ này, cho phép các công cụ truy xuất thực hiện các tìm kiếm xấp xỉ láng giềng gần nhất (ANN) nhanh chóng, điều này cực kỳ có lợi cho AI trong bán lẻ và các hệ thống gợi ý sản phẩm. Hãy xem hướng dẫn của OpenAI về embeddings để biết thêm ngữ cảnh về cách xử lý dữ liệu chiều cao.
Link to this sectionPhân biệt các khái niệm liên quan#
Hiểu được sự khác biệt giữa lượng tử hóa vectơ và các thuật ngữ tương tự rất hữu ích khi thiết kế một kiến trúc computer vision (CV) hiệu quả:
- Lượng tử hóa vectơ so với Lượng tử hóa mô hình: Lượng tử hóa mô hình thường đề cập đến việc giảm độ chính xác số học của trọng số mạng thần kinh (ví dụ: từ dấu phẩy động 32-bit xuống số nguyên 8-bit) để tăng tốc suy luận cho các triển khai phần cứng của các mô hình như Ultralytics YOLO26. Ngược lại, lượng tử hóa vectơ phân cụm các vectơ dữ liệu thành một từ vựng cố định gồm các nguyên mẫu rời rạc.
- Lượng tử hóa vectơ so với Cơ sở dữ liệu vectơ: Cơ sở dữ liệu vectơ là hạ tầng thực tế lưu trữ dữ liệu chiều cao. Lượng tử hóa vectơ là một kỹ thuật thuật toán cơ bản thường được các cơ sở dữ liệu này sử dụng để giảm thiểu dung lượng bộ nhớ, như đã được trình bày chi tiết trong lời giải thích của Qdrant về cách xử lý vectơ.
- Lượng tử hóa vectơ so với Tìm kiếm vectơ: Tìm kiếm vectơ là quá trình chủ động tìm kiếm các mục tương tự dựa trên sự gần gũi của vectơ. Lượng tử hóa đóng vai trò như một lớp tối ưu hóa cấu trúc để làm cho quá trình tìm kiếm này khả thi về mặt tính toán ở quy mô lớn.
Link to this sectionVí dụ về triển khai cơ bản#
Để thấy cách lượng tử hóa vectơ ánh xạ các đầu vào liên tục sang các token rời rạc trong thực tế, bạn có thể sử dụng PyTorch để tính toán khoảng cách Euclidean và tìm nguyên mẫu gần nhất trong một codebook được xác định trước:
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]Để có cái nhìn sâu sắc về cách tính toán khoảng cách tensor nguyên bản và tối ưu hóa các thao tác này, hãy tham khảo tài liệu PyTorch cdist chính thức.
Link to this sectionNâng cao quy trình làm việc với Nền tảng Ultralytics#
Việc tích hợp các embedding đã tối ưu hóa vào pipeline của bạn đòi hỏi các công cụ mạnh mẽ. Ultralytics Platform cung cấp một môi trường end-to-end để giám tuyển dữ liệu huấn luyện và huấn luyện các mô hình thị giác hiện đại nhất. Bằng cách tinh giản quản lý dữ liệu và đơn giản hóa việc triển khai mô hình, các nhà phát triển có thể dễ dàng tạo ra các đặc trưng hình ảnh chất lượng cao phù hợp cho lượng tử hóa vectơ, dẫn đến các ứng dụng phát hiện đối tượng và truy xuất truyền thông quy mô lớn nhanh hơn.






