Phase 12: Multimodal AI

التدريبات المسبقة على لغة الرؤية

أثبتت CLIP (2021) من OpenAI فكرة واحدة كبيرة بما يكفي لتشغيل السنوات الخمس المقبلة: تحديد مُرمّد الصورة ومُرمّد النص في نفس المساحة المتجهة باستخدام أزواج الصور المُضوضعة فقط على شبكة الإنترنت. صفر علامات مراقبة 400 مليون زوج الفضاء الإضافي الناتج يقوم بتصنيف الصور والنصوص الصورة، ويقوم بتوصيل كل VLM عام 2026 كبرج الرؤية. استبدل SigLIP 2 (2025) softmax بـ sigmoid ووصلت إلى CLIP بعد ذلك بتكلفة أقل. هذا الدروس يمر الرياضيات من InfoNCE إلى sigmoid ضياع زوجية و يبني خطوة التدريب في stdlib Python.

Type: Build

Languages: Python (stdlib, InfoNCE + sigmoid loss implementations)

Prerequisites: Phase 12 · 01 (ViT patches), Phase 7 (Transformers)

Time: ~180 minutes

أهداف التعلم

  • استنباط خسارة InfoNCE من المعلومات المتبادلة وتنفيذ نسخة متجهة مستقرة عدديًا.
  • شرح لماذا تخسير sigmoid زوجية (SigLIP) يتحرك إلى 32768+ بدون متطلبات التكامل العلوي المشترك.
  • تشغيل تصنيف ImageNet الصفر الصوت عن طريق بناء نماذج نصية (a photo of a {class}) و أخذ argmax على شبيهة كوزين.
  • أسمائ أربعة مفاعلات CLIP / SigLIP قبل التدريب يعطيك: حجم الحزمة، درجة الحرارة، نموذج الاستعلام، جودة البيانات.

المشكلة

تم الإشراف على رؤية ما قبل CLIP. جمع مجموعات بيانات معينة (ImageNet: 1.2M صور ، 1000 فئة) ، تدريب CNN ، شحنها. العلامات مكلفة ، والعلامات تعصب إلى ما يمكن للمعاطفين الاتفاق عليه ، والعلامات لا تنتقل إلى مهام جديدة دون ضبط.

يحتوي شبكة عنوان الصور على مليار زوج من أزواج مع علامات فضفاضة مجانا. صورة من الذهبية الاحتياطي مع نص متبادل "كلبي ماكس في الحديقة" تحمل إشارة إشرافية يصف النص الصورة. السؤال: هل يمكنك تحويل هذا إلى تدريب مفيد؟

الإجابة من CLIP: تعامل أزواج الصور والأسماء كمهمة مطابقة. مع وجود مجموعة من الصور N و أسماء N ، تعلم أن تطابق كل صورة مع أسمائها الخاصة ضد إلهاء N-1. الإشراف هو "هذه الأشياء الاثنتين تنتمي إلى بعضها البعض ؛ هذه N-1 لا". لا تسميات الفئة. لا تلاحظ البشر. مجرد خسارة مُقارنة.

الفضاء الذي ينتج عنه يزيد من كل ما تم تدريب CLIP عليه. يعمل ImageNet صفر الصور لأن "صورة قطة" تضم بالقرب من صور القطط التي لم يتم وضع علامة صريحة على القطط. هذه هي الرهان الذي أدى إلى كل 2026 VLM.

المفهوم

المُشفّر المزدوج

كليب لديه برجين:

  • مُشفّر الصور f: ViT أو ResNet، يخرج متجه D-dim لكل صورة.
  • مُشفّر النصg: محول صغير، يخرج متجه D-dim لكل عنوان.

كل من البرجين يطبقان إصداراتها إلى طول الوحدةcos(f(x), g(y)) = f(x)^T g(y)لأن كلاهما هو القاعدة الوحدة.

لفرقة من زوجات N (الصورة، الفقرة) ، قم ببناء ماتريكية التشابه Sمن الشكل(N, N):

S[i, j] = cos(f(x_i), g(y_j)) / tau

أينtauهو درجة حرارة تعلم (CLIP يبدأ إلى 0.07; تعلم في الفضاء السجل).

خسارة InfoNCE

يستخدم CLIP تعقيد متناظر على الصفوف والعمود:

loss_i2t = CE(S, labels=identity)     # each image's positive is its own caption
loss_t2i = CE(S^T, labels=identity)   # each caption's positive is its own image
loss = (loss_i2t + loss_t2i) / 2

هذا InfoNCE. يضطر اللون اللون في CE لكل صورة لتطابق عنوانها أكثر من أي عنوان آخر في المجموعة. "النسفي" هو جميع عناصر المجموعة الأخرى. المجموعات الكبيرة = المزيد من السلبيات = إشارة أقوى. CLIP تدرب في المجموعة 32k؛ المسألة النطاقية.

درجة الحرارة

tauيسيطر على حدة softmax. توزيع منخفض tau → حاد, تأثير التعدين السلبي الصعب tau → الرقيق, جميع العينات تساهم. CLIP تعلم log(1/tau), قصف لمنع الانهيار. SigLIP 2 يصلح tau الأولي واستخدام التحيز تعلم بدلا من ذلك.

لماذا تتحسن مقاييس سيغمايد (SigLIP)

تحتاج Softmax إلى المصفوفة المماثلة بأكملها في المزامنة. في التدريب الموزع يجب عليك جمع كل إضافة إلى كل نسخة، ثم القيام به softmax. هذا مربع في حجم العالم للاتصال.

سيجليب يبدل softmax بـ sigmoid ذي العناصر: لكل زوج (i, j)، الخسارة هي تصنيف ثنائي من "هل هذه زوج المقابلة؟" علامات الفئة الإيجابية هي التناحية، كل شيء آخر هو سلبي. الخسارة هي:

L = -1/N sum over (i, j) [ y_ij log sigmoid(S[i,j]) + (1-y_ij) log sigmoid(-S[i,j]) ]

y_ij = 1إذاi == jكل زوج من الخسائر مستقلة. لا حاجة إلى جمع كل. كل GPU يحسب كتله المحلي والكميات. siglip 2 مقياسات ل 32k-512k على نطاق رخيص حيث CLIP سوف تحتاج إلى أكثر اتصالات نسبيا.

تصنيف الصفر

مع إعطاء أسماء فئة N، لكل فئة بناء نموذج نصي:

"a photo of a {class}"

ضم كل قالب مع رمز النص. ضم صورة مع رمز الصورة. Argmax تشابه كوسين = فئة متوقعة. لا تدريب على فئات الهدف.

تعتبر القوالب السريعة مهمة. استخدم ورقة CLIP الأصلية 80 قوالب لكل فئة (سطح ، فني ، صورة ، رسومات ، إلخ) ومتوسط التوابل. +3 نقاط ImageNet. الاستخدام الحديث عادة ما يختار قوالب واحدة أو اثنتين.

أجهزة التحليل الخطي والتحديد

الصفر الصوت هو خط أساسي. صفقة خطية (تدريب طبقة خطية واحدة فوق ميزات CLIP المجمدة لمجموعات هدفك) تفوق الصفر الصوت على المهام داخل النطاق. التنظيم الكامل الصفح يفوق الصفقة الخطية على النطاق داخل النطاق ولكن يمكن أن يؤذي نقل الصفر الصوت. ثلاثة أنظمة مع ثلاثة تعادلات.

SigLIP 2: NaFlex وخصائص كثيفة

إضافة SigLIP 2 (2025):

  • NaFlex: نموذج واحد يتعامل مع نسبة الجوانب والتحديات المتغيرة.
  • ميزات كثيفة أفضل للتقسيم وتقدير العمق، استهداف الاستخدام كعمود الفقري المجمد في VLMs.
  • متعددة اللغات: تدرب على أكثر من 100 لغة حيث كان CLIP باللغة الإنجليزية فقط.
  • 1B مقياس المعلم حيث CLIP انتهيت في 400M.

في 2026 VLMs مفتوحة، SigLIP 2 SO400m/14 هي برج الرؤية الافتراضية. CLIP لا يزال الافتراضي لاسترداد الصورة النصية النقية حيث يطابق توزيع تدريب خاص LAION-2B نمط استفسارك.

ALIGN، BASIC، OpenCLIP، EVA-CLIP

ALIGN (Google, 2021): نفس الفكرة مثل CLIP، 1.8B مقياس زوج، 90% ضجيج. مقياس البيانات الضوضاء المثبتة. OpenCLIP (LAION): إعادة إنتاج مفتوحة من CLIP على LAION-400M / 2B، مقياس متعددة، نقطة التفتيش المفتوحة. EVA-CLIP: يبدأ من نمذجة الصورة المخاطئة؛ العمود الفقري القوي لشركات VLM. BASIC: CLIP + ALIGN هجينة من Google. جميع نفس العائلة، بيانات مختلفة وتأقيم.

السقف الصفر

تتطلب نماذج CLIP-class حوالي 76% ImageNet صفر-shot (CLIP-G ، OpenCLIP-G). يتطلب ما بعد ذلك إما بيانات أكبر بكثير (SigLIP 2 يحصل على 80% +) أو تغييرات في الهندسة المعمارية (رؤوس مراقبة ، المزيد من المعلمات). يبلغ المعيار الاكتفاء ؛ القيمة الحقيقية هي مساحة التضمين التي تستهلكها VLMs أسفل التيار.

استخدمها

code/main.pyتطبيقات:

  1. مرموز لعبة مزدوج (ميزات الصورة القائمة على الهاش، ميزات الرسم البياني النصي) حتى تتمكن من رؤية شكل InfoNCE دون numpy.
  2. خسارة InfoNCE في Python النقي (استقرار الرقمية عبر log-sum-exp).
  3. خسارة سيغمويد بالتزاوج للمقارنة
  4. روتين تصنيف صفر: حساب تشابه الكوسين ضد مجموعة من طلبات النص، argmax للتنبؤ.

إشغله وشاهد منحنى الخسارة الأرقام المطلقة هي لعبة، الشكل يطابق ما ينبعث منه مدرب CLIP الحقيقي.

أرسله

هذا الدرس يُنتجoutputs/skill-clip-zero-shot.md. بالنظر إلى مجموعة من الصور (من خلال المسار) وقائمة من الفئات المستهدفة ، فإنه يخلق طلبات نصية مع قالب CLIP ، ويشمل كلا الجانبين مع نقطة تفتيش محددة (مثل ، openai/clip-vit-large-patch14ويعود التنبؤات الأولى / الأولى 5 مع درجات التشابه. يرفض المهارة أن تدعي عن الفصول غير في القائمة المطلوبة.

التمارين

  1. تنفيذ InfoNCE لفرقة من 4 أزواج يدويا. بناء ماتريكس الشبيهة 4x4، تشغيل softmax، اختيار المقاطع، الحساب المتقاطع الانتروبية. التحقق من تنفيذ Python الخاص بك ضد هذا الحساب يدوي.
  1. سيجليب يستخدم مُعيار التحيز bبالإضافة إلى درجة الحرارة: S'[i,j] = S[i,j]/tau + bما الدور الذي يقوم بهbإذا كان هناك توازن كبير في الفئة (أكثر من السلبيات بكثير من الإيجابيات في كل صف) ، فلنقرأ القسم 3 من إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار إطار
  1. قم ببناء تصنيف صفر للكلاب مقابل القطط، و حاولي اثنين من الشكلات السريعة:a photo of a {class}وa picture of a {class}. قياس الدقة على 100 صورة اختبار. هل مجموعة من الشكلات ضرب واحد؟
  1. حساب تكلفة الاتصال من InfoNCE المضافة إلى sigmoid بالتزاوج ل 512-GPU تشغيل في دفعة 32k. أي مقياسات مثل O(N) ، التي مثل O(N^2)؟
  1. اقرأ ورقة OpenCLIP قوانين التوسع (arXiv:2212.07143, Cherti et al.). استعاد نتيجة التوسع البيانات من الأرقام: عند حجم النموذج الثابت، ما هي العلاقة السجلية بين دقة الصور الصفرة في ImageNet وحجم بيانات التدريب؟

الشروط الرئيسية

TermWhat people sayWhat it actually means
InfoNCE"Contrastive loss"Cross-entropy over a batch's similarity matrix; each item's positive is its paired item, negatives are everything else
Sigmoid loss"SigLIP loss"Per-pair binary cross-entropy; no softmax, no all-gather, scales cheaply in distributed training
Temperature"tau"Scalar that scales logits before softmax/sigmoid; controls sharpness of the distribution
Zero-shot"no-finetune classification"Use text prompts to construct class embeddings and classify by cosine similarity; no training on target classes
Prompt template"a photo of a ..."Text scaffold around a class name; affects zero-shot accuracy by 1-5 points
Dual encoder"Two-tower"One image encoder + one text encoder, outputs in shared D-dim space
Hard negative"Tough distractor"A negative similar enough to the positive that the model has to work to separate them
Linear probe"Frozen + one layer"Train only a linear classifier on top of frozen features; measures feature quality
NaFlex"Native flexible resolution"SigLIP 2 capability to ingest images at any aspect ratio and resolution without resizing
Temperature scaling"log-parametrized tau"CLIP parametrizes log(1/tau) so gradients behave; clips to prevent collapse to near-zero tau

المزيد من القراءة

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.