تحويلات الرؤية والبدائية ذات الرمز المزدوج
Type: Learn
Languages: Python (stdlib, patch tokenizer + geometry calculator)
Prerequisites: Phase 7 (Transformers), Phase 4 (Computer Vision)
Time: ~120 minutes
أهداف التعلم
- تحويل صورة HxWx3 إلى تسلسل من رموز الإصطلاحات مع التشفير الموضعي الصحيح.
- حساب طول تسلسل، عدد المعلمات، و FLOPs ل ViT من المحدد (حجم المقطوعة، القرار، الضوء الخفية، العمق).
- أسمائ ثلاثة تحديثات أخذت ViT من أبحاث 2020 إلى إنتاج 2026: التدريب المسبق للإشراف الذاتي (DINO / MAE) ، ورمز التسجيل ، والإغلاع القرار الأصلي.
- اختر بين جمع CLS، المعدل المجمع، وتسجيل الرموز لعمل أسفل.
المشكلة
تعمل المحولات على تسلسلات من المتجهات. النص هو بالفعل تسلسل (بايت أو رموز). صورة هي شبكة 2D من البيكسلات مع ثلاثة قنوات ملونة ليس تسلسلًا. إذا قمت بتسطيح كل برمجية، تصبح صورة RGB 224x224 150,528 رمزاً، والاهتمام الذاتي في هذا الطول غير بدائي (رباعي في طول الترتيب).
تمت إعادة تشغيل نظام التشغيل في شبكة ResNet قبل عام 2020، حيث تم وضع خريطة خاصية لـ CNN على الجبهة الأمامية: تنتج ResNet خريطة خاصية 7x7 من متجهات 2048 طولًا، وتغذية تلك ال 49 رمزًا إلى محول. يعمل هذا ولكن يتحلف على تحيزات CNN (مساواة الترجمة ، وحقول الاستقبال المحلية) ويخسر شهية المحول للمقياس.
دوسويتسكي وآخرون (2020) طرح السؤال الصريح: ماذا لو تجاوزنا CNN؟ تقسيم الصورة إلى ملصقات ذات الحجم الثابت (قول 16 × 16 بكسل) ، وترجمة خطية كل ملصقة إلى متجه، وإضافة إضافة وضعية تضمين، وتغذية التسلسل إلى محول فانيلا. في ذلك الوقت كان هذا الهجرة رؤية بدون تحوّل. مع بيانات كافية (JFT-300M ، ثم LAION) انه ضرب ResNet على ImageNet واستمر في التحسين.
بحلول عام 2026 ، يكون البرج الرئيسي لـ VLM من كل وزن مفتوح نذير (DINOv2 ، SigLIP 2 ، CLIP ، EVA ، InternViT). لم يعد السؤال "هل يجب استخدام المفاتيح؟" ولكن "ما هو حجم المفاتيح ، ما هو جدول القرار ، ما هو هدف التدريب ، ما هو التشفير الموضعي".
المفهوم
اللصقات كرموز
نظراً للوحةxمن الشكل(H, W, 3)و حجم اللصقP، أنت نقش الصورة في شبكة من(H/P) x (W/P)الملامح غير المتداخلة. كل ملصق هوP x P x 3مكعب من البيكسلات. سطح كل مكعب إلى 3 P^2متجه. تطبيق عرض خطي مشترك W_Eمن الشكل(3 P^2, D)لتحديد كل مساحة في الأبعاد الخفية للنموذجD. . .
بالنسبة لـ ViT-B/16 التكوين القديسي:
- القرار 224، حجم اللصوص 16 → الشبكة 14x14 → 196 رموز اللصوص.
- كل ملصق هو
16 x 16 x 3 = 768قيم البيكسل، المتوقعةD = 768. . . - إضافة قابلة للتعلم
[CLS]طول التسلسلة = رمز 197.
إنّ إلقاء المزج هو نفس المُقارنة الرياضية مع صُحبة ثنائية الأبعاد بحجم النواةP، خطوةPوDقنوات الخروج. هكذا ينفذها بالفعل رمز الإنتاجnn.Conv2d(3, D, kernel_size=P, stride=P). إطار "التنبيه الخطى" مفهومي؛ إطار النواة فعال.
التوابل الموضعية
لا يوجد لهما ترتيب متأصل ينظر المحول إليها كحقيبة. أضاف الفيتس المبكر إضافة موضعية 1D قابلة للتعلم (متجه واحد 768-dim لكل موقف ، 197 منهم). يعمل ، ولكن يربط النموذج بحل التدريب: عند الاستنتاج عليك إدخال جدول المواقف إذا قمت بتغيير الشبكة.
تستخدم العظام الفقرية الرؤية الحديثة 2D-RoPE (M-RoPE من Qwen2-VL ، افتراض SigLIP 2) أو مواقف 2D معززة. يدور 2D-RoPE المفاوضات والمتجهات الرئيسية بناءً على مؤشر اللصمة (السلسلة والعمود) ، لذلك يقوم النموذج بإستثمار وضع 2D النسبي من زاوية الدوران. لا يوجد جدول موقف. يتعامل النموذج بحجم الشبكة التعسفي عند الاستنتاج.
رمز CLS، الناتج المجمّع، ورمز السجل
ما هو تمثيل مستوى الصورة؟ ثلاثة خيارات تشترك:
[CLS]رمز. قم بتعليم متجه قابل للتعلم إلى تسلسل اللصوص. بعد كل كتلة المحول، الحالة الخفية لرمز CLS هي تمثيل الصورة. ورثت من BERT. تستخدم من قبل ViT الأصلي، CLIP.- متوسط المجموعة، متوسط وضع الخروج من رموز الإصلاح الخفية، يستخدمها SigLIP، DINOv2، معظم VLM الحديثة.
- أشار دارسيت وزملاءه (2023) إلى أن الفيتات المدربة دون أسلحة غسيل صريحة تطوير ملصقات "مصنوعات" عالية المعايير التي تسرق الاهتمام الذاتي. إضافة 416 أسلحة سجل قابلة للتعلم تتناول هذا الحمل وتحسن جودة التنبؤ الكثيف (التقسيم ، العمق). DINOv2 و SigLIP 2 كل من السفينة مع السجلات.
يعتبر الاختيار مهمًا للمهام المتدفقة. CLS جيدًا للتصنيف. بالنسبة لشركات VLM التي تدعم رموز المزق في LLM ، تتخطى التجميع بالكامل كل ملصق يصبح رمزا إدخالًا لشركة LLM. يتم التخلص من السجلات قبل التسليم (إنها منصة ، وليس محتوى).
التدريب المسبق: المشرف عليه، المضاد، المخفي، المزروع بنفسه
تم تدريب ViT 2020 مسبقاً بتصنيف مشرف على JFT-300M. تم استبداله بسرعة بواسطة:
- CLIP (2021): صورة نصية متناقضة على 400 مليون زوج. الدروس 12.02.
- MAE (2021, He et al.): تغطي 75% من الملامح، إعادة بناء البكسلات.
- DINO (2021) / DINOv2 (2023): التطهير الذاتي مع الطالب والمعلم، لا تسميات، لا عناوين. 2023 DINOv2 ViT-g/14 هي أقوى العمود الفقري بصريًا بحتة وتعتبر القاعدة الافتراضية لحالات استخدام "الميزات الكثيفة".
- SigLIP / SigLIP 2 (2023, 2025): CLIP مع فقدان sigmoid و NaFlex لنسبة الجانب الأصلي. برج الرؤية المهيمن في 2026 VLMs مفتوحة (Qwen ، Idefics2 ، LLaVA-OneVision).
اختيارك للتدريب المسبق يحدد ما هو الخلية الخلفية جيدة: CLIP/SigLIP للتطابق الدلالي مع النص، DINOv2 للميزات البصرية الكثيفة، MAE كمبدأ للتحديد الدقيق في النهر.
قوانين التوسع
أقر استحداثات ViT (Zhai et al. 2022) أن جودة ViT تتبع قوانين قابلة للتنبؤ بحجم النموذج وحجم البيانات والحساب. في الحساب الثابت:
- نموذج أكبر + المزيد من البيانات → جودة أفضل.
- حجم اللمسات هو مفيد على طول التسلسل مقابل الوفاء. اللمسة 14 (معتادة على DINOv2/SigLIP SO400m) يعطي المزيد من الرموز لكل صورة من اللمسة 16; أفضل ل OCR والمهام الكثيفة، أسوأ للسرعة.
- القرار هو الرافعة الكبرى الأخرى. الانتقال من 224 إلى 384 إلى 512 يساعد دائما تقريباً، بتكلفة مربعة في FLOPs.
ViT-g/14 (1B Params ، المزج 14 ، قرار 224 → 256 رموز) و SigLIP SO400m/14 (400M Params ، المزج 14) هي مبرمجين حصان العمل لعمليات VLM مفتوحة 2026 .
عدد المعايير لـ ViT
الحساب الكامل يعيش فيcode/main.py. لـ ViT-B/16 عند 224:
patch_embed = 3 * 16 * 16 * 768 + 768 = 591k
cls + pos = 768 + 197 * 768 = 152k
block = 4 * 768^2 (QKVO) + 2 * 4 * 768^2 (MLP) + 2 * 2*768 (LN)
= 12 * 768^2 + 3k = 7.1M
12 blocks = 85M
final LN = 1.5k
total ≈ 86Mإقامة كرة كل فايت بهذه الطريقة قبل أن تحملي نقطة التفتيش. حجم العمود الفقري يحدد الأرضية VRAM في أي VLM أسفل التيار.
2026 تشكيل الإنتاج
إن المُشفّر الأكثر فتحًا في VLMs الذي يتم شحنه في عام 2026 هو SigLIP 2 SO400m/14 عند القرار الأصلي (NaFlex).
- -أوّل 400 مليون
- حجم اللصوص 14، قرار افتراضي 384 → 729 رموز اللصوص لكل صورة.
- المجموعة المتوسطة لمهام على مستوى الصورة؛ جميع 729 إصلاحات تدفق في ماجستير القانونية ل VQA.
- 4 رموز تسجيل، تم التخلص منها قبل تسليم الجامعة.
- 2D-RoPE مع مقياس مستوى الصورة لتنسيق نسبة الجوانب الأصلية.
كل قرار في هذا الملف يعود إلى ورقة يمكنك قراءتها
استخدمها
code/main.pyهو رمزية المزج وتحاسب هندسي. يأخذ (الصورة H، W، المزج P، D الخفية، عمق L) ويُبلاغ:
- شكل الشبكة وطول التسلسل بعد التصبغ.
- تسلسل رمز لصور لعبة مصنوعة ب 8 × 8 بكسلات (مشي عبر مسطح + مسار المشروع).
- عدد المعايير مقسمة حسب إدخال المفاتيح، إدخال الموقف، كتلة المحول، والرأس.
- (فلو) لكل مرسلة إلى الأمام عند الحل المستهدف.
- جدول مقارنة عبر ViT-B/16 @ 224 ، ViT-L/14 @ 336 ، DINOv2 ViT-g/14 @ 224 ، SigLIP SO400m/14 @ 384 .
إشغله، تطابق معدل العد مع الأرقام المنشورة، تلعب مع حجم اللصقة والقرار لمعرفة تكلفة إحصاء الرمز.
أرسله
هذا الدرس يُنتجoutputs/skill-patch-geometry-reader.md. بالنظر إلى تكوين ViT (حجم اللقطة ، والقرار ، والضعف الخفي ، والعمق) ، فإنه ينتج عدد الرموز ، وعدد المعلمات ، وتقدير VRAM مع التبرير. استخدم هذه المهارة كلما اخترت العمود الفقري للنظر ل VLM فإنه يمنع "الرموز انفجرت وتملأ سياق LLM الخاص بي" مفاجآت.
التمارين
- حساب طول تسلسل علامة اللصوص ل Qwen2.5-VL في المدخل الأصلي 1280x720 مع حجم اللصوص 14. كيف يُقارن ذلك بعرض CLS فقط؟
- كم عدد الرموز التي تنتجها إطار 1080p (1920x1080) في الرسم 14؟ في 30 فب/س على مدى 5 دقائق من الفيديو، كم عدد الرموز البصرية الإجمالية؟ أي تكلفة توفر لك أكثر: جمع، أخذ عينات الإطار، أو دمج الرموز؟
- تنفيذ المجموعة المتوسطة على رموز الإصلاح في بيثون النقي. التحقق من أن المجموعة المتوسطة على 196 رمزا من إصدار DINOv2 تتطابق مع ما هو النموذج
forwardيعود عندما تطلب إضافة مشتركة
- اقرأ القسم 3 من "تحول الرؤية تحتاج إلى سجلات" (arXiv:2309.16588). وصف في جملتين ما هي الأثاث التي تتناولها السجلات ولماذا هي مهمة للتنبؤ الكثيف في النهر التدريجي.
- تغيير
code/main.pyدعم المزج: مع إعطاء قائمة من الصور ذات الارتفاعات المختلفة، قم بتصنيع تسلسل واحد معبأ وواجهة التركيز على خط الكتل. تحقق من الدروس 12.06 عند الوصول إليها.
الشروط الرئيسية
| Term | What people say | What it actually means |
|---|---|---|
| Patch | "16x16 pixel square" | A fixed-size non-overlapping region of the input image; becomes one token |
| Patch embedding | "Linear projection" | A shared learned matrix (or Conv2d with stride=P) mapping flattened patch pixels to D-dim vectors |
| CLS token | "Class token" | Prepended learnable vector whose final hidden state represents the whole image; optional in 2026 |
| Register token | "Sink token" | Extra learnable tokens that absorb the high-norm attention artifacts ViTs develop during pretraining |
| Position embedding | "Positional info" | Per-position vector or rotation making the sequence-order-aware; 2D-RoPE is the modern default |
| Grid | "Patch grid" | The (H/P) x (W/P) 2D array of patches for a given resolution and patch size |
| NaFlex | "Native flexible resolution" | SigLIP 2 feature: single model serves multiple aspect ratios and resolutions without retraining |
| Backbone | "Vision tower" | The pretrained image encoder whose patch-token outputs feed the LLM in a VLM |
| Pooling | "Image-level summary" | Strategy to turn patch tokens into one vector: CLS, mean, attention pool, or register-based |
| Patch 14 vs 16 | "Finer vs coarser grid" | Patch 14 produces more tokens per image, better fidelity for OCR, slower; patch 16 is the classic default |
المزيد من القراءة
- Dosovitskiy et al. — An Image is Worth 16x16 Words (arXiv:2010.11929) الفيلم الأصلي
- He et al. — Masked Autoencoders Are Scalable Vision Learners (arXiv:2111.06377) MAE، التدريب المسبق تحت إشراف ذاتي
- Oquab et al. — DINOv2 (arXiv:2304.07193)- التطهير الذاتي على نطاق واسع، لا تسمية
- Darcet et al. — Vision Transformers Need Registers (arXiv:2309.16588) تسجيل الرموز والتحليلات الأثرية.
- Tschannen et al. — SigLIP 2 (arXiv:2502.14786)برج الرؤية الافتراضي لعام 2026
- Zhai et al. — Scaling Vision Transformers (arXiv:2106.04560)قوانين التوسع التجريبي
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.