CLIP (Contrastive Language-Image Pre-training)
CLIP هو نموذج OpenAI الذي يضمّن الصور والنصوص في فضاء مشترك واحد، ما يتيح تصنيف الصور باستخدام تسميات نصية عادية. تعرّف على آلية التدريب والتعلّم دون أمثلة.
CLIP (التدريب المسبق التقابلي للغة والصورة) نموذج من OpenAI يتعلم مطابقة الصور مع أوصافها النصية. يجمع النموذج بين مُرمّز للصور ومُرمّز للنصوص، ويدرّبهما بحيث تُسقط الصورة والوصف الذي يشرحها على متجهات متقاربة في فضاء تضمين مشترك. تدرب CLIP على 400 مليون زوج من الصور والتعليقات التوضيحية المجمعة من الإنترنت، ويمكنه تصنيف الصور إلى فئات لا تُعطى إلا على شكل نص، من دون أمثلة معلّمة لتلك الفئات؛ وتُسمى هذه القدرة التعلّم من دون أمثلة. في ورقة 2021 البحثية، حقق أفضل نموذج له دقة صفرية اللقطات من المرتبة الأولى بلغت 76.2% على ImageNet، مماثلةً لدقة ResNet-50 الأصلية المدرّبة بإشراف كامل، من دون استخدام أي من الصور المعلّمة البالغ عددها 1.28 مليون صورة التي تدرب عليها ResNet-50.
كيف يُدرّب CLIP#
يحتوي CLIP على مُرمّزين. مُرمّز الصور هو ResNet أو المحوّل البصري (ViT)، ومُرمّز النصوص هو محوّل مؤلف من 12 طبقة ويضم 63 مليون معامل في حجمه الأساسي. ويسقط إسقاط خطي مخرجات كل مُرمّز في الفضاء المشترك، حيث يُطبّع كل متجه ليكون طوله وحدة واحدة.
يستخدم التدريب التعلّم التقابلي على دفعات من 32,768 زوجًا من الصور والتعليقات التوضيحية. تحسب CLIP، لدفعة تضم N من الأزواج، التشابه الجيبي بين كل صورة وكل تعليق توضيحي، لتكوين مصفوفة N×N يحتوي قطرها على الأزواج الحقيقية. وتطلب خسارة الانتروبيا المتقاطعة القائمة على دالة softmax في كل صف من كل صورة اختيار تعليقها التوضيحي من بين N، بينما تطلب خسارة ثانية في كل عمود من كل تعليق توضيحي اختيار صورته. وتُستخدم درجة حرارة متعلّمة لمعايرة أوجه التشابه قبل تطبيق softmax.
لأن التعليقات التوضيحية نصوص حرة الصياغة، تتعلم CLIP مما يصفه الويب، بما يشمل الكائنات والمشاهد والأساليب الفنية والنصوص داخل الصور والأفعال، بدلًا من قائمة ثابتة من الفئات.
التصنيف من دون أمثلة#
لتصنيف صورة، تدمج CLIP كل تسمية مرشحة في جملة قصيرة، مثل "a photo of a dog"، وتدمج الصورة، ثم تختار التسمية ذات أعلى تشابه جيبي. وتؤثر صياغة الموجّه في النتيجة: إذ تذكر الورقة أن القالب "A photo of a {label}." وحده حسّن دقة ImageNet بنسبة 1.3%، وأن أخذ متوسط تضمينات النصوص الناتجة من 80 قالبًا أضاف 3.5% أخرى. ويضع مسار Hugging Face Transformers أدناه كل تسمية ضمن القالب "This is a photo of {}."، ثم يشغّل النموذج الأصلي ViT-B/32:
from transformers import pipeline
# Load OpenAI's CLIP ViT-B/32 for zero-shot image classification
classifier = pipeline("zero-shot-image-classification", model="openai/clip-vit-base-patch32")
# The classes are free-form text, chosen at inference time
labels = ["a city bus", "a tram", "a delivery truck", "a bicycle"]
predictions = classifier("https://ultralytics.com/images/bus.jpg", candidate_labels=labels)
# Scores are a softmax over the image's similarity to each caption
for prediction in predictions:
print(f"{prediction['label']}: {prediction['score']:.3f}")يطبع البرنامج a city bus: 0.657 وa tram: 0.341 وa delivery truck: 0.001 وa bicycle: 0.000. ويستحوذ الترام، وهو أيضًا مركبة كبيرة لنقل الركاب، على معظم الاحتمال المتبقي، ولا تتطلب مجموعة التسميات الجديدة سوى قائمة جديدة من السلاسل النصية.
تطبيقات عملية#
- البحث الدلالي: تُدمج مجموعات الصور مرة واحدة وتُخزّن في قاعدة بيانات متجهية. ويُدمج استعلام نصي مثل "حذاء رياضي أحمر على أرضية خشبية" عند البحث، ثم تُطابق الصور معه، فتُعثر الصور وفق محتواها من دون وسوم يدوية.
- توليد الصور من النص: يستخدم Stable Diffusion 1.x تضمينات CLIP ViT-L/14 النصية لتهيئة مولّد الصور، ويُستخدم تشابه CLIP على نطاق واسع لتقييم مدى اتباع الصورة المولّدة للموجّه.
- الكشف بمفردات مفتوحة: ترمّز نماذج YOLO-World من Tencent AI Lab، المتاحة ضمن حزمة Ultralytics، أسماء الفئات الممررة إلى
set_classesباستخدام مُرمِّز النص ViT-B/32 في CLIP، ولذلك يستطيع كاشف دُرّب مرة واحدة العثور على "حقيبة ظهر حمراء" أو "رافعة شوكية" بالاسم. ويعتمد OWLv2 من Google على مُرمِّزي الصور والنصوص المدرّبين مسبقًا في CLIP، وتقارنه لوحة صدارة VLM بكواشف المفردات المفتوحة ونماذج VLM أخرى على مجموعات بيانات كشف واقعية. - مُرمّزات الرؤية لنماذج VLM: تبدأ كثير من نماذج الرؤية واللغة بمُرمّز صور CLIP مدرّب مسبقًا. فعلى سبيل المثال، يُدخل LLaVA سمات CLIP ViT-L/14 إلى نموذج لغوي.
- تصفية مجموعات البيانات: لا تحتفظ مجموعات بيانات الصور والنصوص المفتوحة الكبيرة، مثل LAION-5B، إلا بأزواج الويب التي يتجاوز فيها تشابه CLIP بين الصورة والنص عتبةً معينة، فتحذف التعليقات التوضيحية التي لا تصف صورها.
CLIP مقارنةً بالأساليب ذات الصلة#
- مصنّفات التعلّم الخاضع للإشراف: يخصص المصنّف التقليدي مخرجًا لكل فئة تدريب، ولا يستطيع تقييم فئة لم يرها من قبل. أما «مصنّف» CLIP فهو مجموعة تضمينات النصوص، لذا يتغير كلما تغيرت التسميات.
- SigLIP: يستبدل هذا النموذج المعدّل من Google دالة softmax على مستوى الدفعة في CLIP بخسارة sigmoid تُقيّم كل زوج من الصور والنصوص على حدة، ما يقلل استهلاك الذاكرة ويحسن الأداء مع أحجام الدفعات الصغيرة.
- التعلّم التقابلي ذاتي الإشراف: تقارن أساليب مثل SimCLR بين نسختين معززتين من الصورة نفسها، وتتعلم من الصور وحدها. أما CLIP فتقارن بين وسيطتين، ما يربط سمات الصور بالكلمات.
- نماذج VLM التوليدية: تقيّم CLIP التشابه بين الصور والنصوص، ولا تستطيع كتابة تعليق توضيحي أو الإجابة عن سؤال. أما النماذج التوليدية فتربط نموذجًا لغويًا بمُرمّز صور، وغالبًا ما يكون مُرمّز CLIP نفسه.
القيود#
تنخفض دقة CLIP في التصنيف من دون أمثلة عند التعامل مع الفئات الدقيقة، مثل طرازات الطائرات أو السيارات، وعدّ الكائنات، والمهام المجردة مثل تقدير المسافات. كما تتعلم CLIP تحيزات التعليقات التوضيحية المنشورة على الويب. ولأن CLIP تعلمت قراءة النصوص داخل الصور، يمكن خداعها بها: ففي بحث OpenAI عن العصبونات متعددة الوسائط، صُنّفت تفاحة تحمل تسمية مكتوبة بخط اليد عليها كلمة "iPod" على أنها جهاز iPod.










