Vector Quantization
يستبدل تكميم المتجهات كل متجه بفهرس أقرب مدخل إليه في دفتر الرموز. يتناول هذا النص دفاتر الرموز المبنية باستخدام k-means، والتكميم المنتج، ورموز VQ-VAE.
التكميم المتجهي (VQ) تقنية ضغط تستبدل كل متجه في مجموعة بيانات بفهرس أقرب عنصر إليه ضمن مجموعة صغيرة من المتجهات التمثيلية تُسمى دفتر الرموز. يخزّن الترميز الفهرس فقط، ويسترجع فك الترميز العنصر باستخدام الفهرس، ويكون خطأ إعادة البناء هو المسافة بين المتجه الأصلي ورمز تمثيله. يحتاج دفتر الرموز الذي يضم K عنصرًا إلى log₂(K) بت لكل متجه، مهما بلغ عدد أبعاده، لذا يخزّن دفتر رموز يضم 256 عنصرًا أي متجه في بايت واحد. نشأ VQ في معالجة الإشارات: خوارزمية Stuart Lloyd لعام 1957 في Bell Labs لتصميم المكمّمات القياسية، التي نُشرت عام 1982، هي الخوارزمية التي تُعرف عادةً الآن باسم k-means، وقد وسّعها Yoseph Linde وAndrés Buzo وRobert Gray لتشمل المتجهات عام 1980. وفي التعلم العميق، أصبح VQ الطريقة القياسية لتحويل الصور والصوت والفيديو إلى رموز من أجل الذكاء الاصطناعي التوليدي.
آلية عمل التكميم المتجهي#
يُتعلّم دفتر الرموز عادةً باستخدام تجميع k-means: يُسنَد كل متجه تدريب إلى أقرب كلمة رمز، ثم تُنقل كل كلمة رمز إلى متوسط المتجهات المسندة إليها، وتتكرر العملية، ما لا يزيد التشوه المتوسط أبدًا. ويوضح تكميم الألوان الدورة كاملةً على وحدات بكسل صورة، باستخدام وحدة scipy.cluster.vq من SciPy:
import numpy as np
from scipy.cluster.vq import kmeans2, vq
from sklearn.datasets import load_sample_image
image = load_sample_image("china.jpg") # 427 x 640 RGB photo bundled with scikit-learn
pixels = image.reshape(-1, 3).astype(np.float64) # one 3-D color vector per pixel
# Learn a 16-entry codebook with k-means (Lloyd's algorithm) on a sample of pixels
rng = np.random.default_rng(0)
codebook, _ = kmeans2(rng.choice(pixels, 5000), 16, minit="++", seed=0)
# Encode: replace each pixel with the index of its nearest codeword (4 bits instead of 24)
indices, _ = vq(pixels, codebook)
# Decode: look each index up in the codebook
reconstruction = codebook[indices]
rmse = np.sqrt(((pixels - reconstruction) ** 2).mean())
print(f"{len(pixels):,} pixels, {len(codebook)} codewords, 24 -> 4 bits per pixel")
print(f"Reconstruction RMSE: {rmse:.1f} on the 0-255 scale")تُخزّن وحدات البكسل الـ273,280 كلها على هيئة فهارس من 4 بت إلى 16 لونًا، أي بيانات ألوان أقل بست مرات من RGB ذي 24 بت، مع خطأ جذر متوسط المربعات يبلغ 11.3 مستوى شدة من أصل 255.
التكميم القياسي هو الحالة أحادية البعد، ويطبّقه تكميم النماذج على الشبكات العصبية. وتستخدمه Ultralytics YOLO26 عند التصدير: إذ يقرّب quantize=8 كل وزن وتنشيط على حدة إلى واحد من 256 مستوى صحيح، مع رصد نطاقات التنشيط في مرور معايرة واحد على الصور ضمن data. ويستفيد تكميم المتجهات كاملةً معًا من الترابط بين الأبعاد، وبمعدل البت نفسه لا يكون تشوه المكمّم المتجهي الأمثل أعلى أبدًا من تشوه مكمّم قياسي أمثل يُطبّق على كل قيمة.
التكميم بالجداء والتكميم المتبقي#
ينمو دفتر الرموز الواحد نموًا أسيًا مع عدد البتات، إذ يتطلب تمثيل 64 بتًا 2⁶⁴ رمزًا. ويقسّم التكميم بالمنتجات، الذي قدّمه Hervé Jégou وMatthijs Douze وCordelia Schmid عام 2011، كل متجه إلى m متجهات فرعية، ويكمّم كلًّا منها باستخدام دفتر رموز خاص به يضم 256 عنصرًا. عند m = 8، ينكمش تضمين float32 ذو 128 بُعدًا من 512 بايتًا إلى 8 بايتات، وتُستخرج المسافات إلى استعلام من جداول بحث صغيرة. وتقرن مكتبة FAISS التابعة لـMeta هذه الطريقة بفهرس ملفات معكوس، وهو مكمّم k-means خشن يقيّد كل استعلام بعدد قليل من العناقيد، لإجراء بحث متجهي على نطاق المليارات.
يرصّ التكميم المتبقي دفاتر الرموز بدلًا من ذلك: يكمّم دفتر الرموز الثاني الخطأ المتبقي من الأول، والثالث الخطأ المتبقي من الثاني، وهكذا. وتستخدمه مرمّزات الصوت العصبية SoundStream التابعة لـGoogle (2021) وEnCodec التابعة لـMeta (2022) لضغط الكلام والموسيقى إلى بضعة كيلوبتات في الثانية، كما يطبّقه النمذجة الذاتية الانحدارية البصرية (VAR) عبر دقات الصور.
VQ-VAE ورموز الصور#
قدّم آرون فان دن أورد وأوريول فينيالس وكوراي كافوكوغلو من DeepMind نموذج VQ-VAE في بحث التعلّم التمثيلي المتقطع العصبي عام 2017. ويُستبدل خرج مُرمِّز المُرمِّز التلقائي عند كل موضع مكاني بأقرب كلمة رمز، ثم يعيد مفكّك الترميز بناء المُدخل من كلمات الرموز. ولا يملك بحث أقرب جار تدرجًا، لذا ينسخ مقدّر المرور المستقيم تدرج مفكّك الترميز متجاوزًا إياه أثناء الانتشار العكسي، كما هو مكتوب في PyTorch بصيغة z_q = z + (z_q - z).detach(). ويقرّب حدا الخسارة الإضافيان كلمات الرموز من مخرجات المُرمِّز، ويلزمان المُرمِّز بكلمات الرموز التي اختارها؛ ويُضرب الحد الثاني في 0.25 في البحث.
تغذّي شبكات الرموز الناتجة نموذجًا ثانيًا، غالبًا محوّلًا، يتعلّم توليدها. أضاف VQGAN (2021) خسائر تنافسية وإدراكية للحصول على رموز أوضح، وأصبح المرمّز المستخدم وراء كثير من نماذج تحويل النص إلى صورة. ومن حالات الإخفاق الشائعة انهيار دفتر الرموز، حيث لا يُختار معظم كلمات الرموز ويتقلص المعجم الفعلي. وتحدّ منه تهيئة k-means وتحديثات دفتر الرموز بالمتوسط المتحرك وإعادة ضبط الرموز غير المستخدمة. أما التكميم القياسي المحدود من Google (FSQ، 2023) فيتجنبه عبر تقريب كل بُعد من بضعة أبعاد كامنة إلى عدد قليل من المستويات الثابتة، بحيث يصبح الوصول ممكنًا إلى كل رمز في دفتر الرموز الضمني.
التكميم المتجهي والمصطلحات ذات الصلة#
- قواعد البيانات المتجهية: تخزّن التضمينات وتفهرسها، وغالبًا ما تطبّق التكميم بالجداء داخليًا لتلائمها في الذاكرة.
- تقليل الأبعاد: يحوّل المتجهات إلى عدد أقل من الأبعاد المستمرة، كما يفعل PCA، في حين يحوّل VQ كل متجه إلى رمز متقطع واحد.
- التقسيم إلى رموز: يقسّم النص إلى وحدات من معجم ثابت؛ ويبني VQ معجمًا مكافئًا للإشارات المستمرة مثل رقع الصور وإطارات الصوت.










