مكتبة PyTorch الرسمية "الجديدة"، TorchMultimodal تساعد الذكاء الاصطناعي متعدد الوسائط

الذكاء الاصطناعي المتعدد الوسائط هو نموذج جديد للذكاء الاصطناعي يشير إلى أنواع متعددة من البيانات مثل الصور والنصوص والصوت والفيديو، جنبًا إلى جنب مع خوارزميات معالجة ذكية متعددة لتحقيق أداء أعلى.
أصدرت PyTorch مؤخرًا رسميًا مكتبة النطاق TorchMultimodal.التدريب على نطاق واسع للنماذج متعددة المهام ومتعددة الوسائط لـ SoTA.
توفر المكتبة:
- كتل بناء قابلة للتكوين (وحدة، تحويلات، دالة الخسارة) لتسريع تطوير النموذج
- هندسة نموذج SoTA المستخرجة من الأبحاث المنشورة ونصوص التدريب والتقييم (FLAVA وMDETR وOmnivore)
- دفاتر لاختبار هذه النماذج
لا تزال مكتبة TorchMultimodal قيد التطوير النشط، يرجى الانتباه إلى:
https://github.com/facebookresearch/multimodal#installation
خلفية تطوير Torch متعدد الوسائط
مع تقدم التكنولوجيا، تكتسب نماذج الذكاء الاصطناعي القادرة على فهم أنواع متعددة من المدخلات (النصوص والصور ومقاطع الفيديو والإشارات الصوتية) واستخدام هذا الفهم لتوليد أشكال مختلفة من المخرجات (الجمل والصور ومقاطع الفيديو) المزيد والمزيد من الاهتمام.
أظهرت الأعمال الأخيرة من FAIR (مثل FLAVA وOmnivore وdata2vec) أنتتفوق النماذج متعددة الوسائط للفهم على النماذج أحادية الوسائط وفي بعض الحالات تضع معايير جديدة لـ SOTA.
تعمل النماذج التوليدية مثل Make-a-video و Make-a-scene على إعادة تعريف قدرات أنظمة الذكاء الاصطناعي الحديثة.
لتعزيز تطوير الذكاء الاصطناعي المتعدد الوسائط في نظام PyTorch البيئي، لقد ظهرت مكتبة TorchMultimodal، وحلها هو:
- يوفر كتل بناء قابلة للتكوين، وباستخدام هذه العناصر الأساسية، يستطيع الباحثون تسريع تطوير النماذج والتجريب في سير العمل الخاص بهم. كما يقلل التصميم المعياري أيضًا من صعوبة الانتقال إلى بيانات نموذجية جديدة.
- يقدم أمثلة شاملة للتدريب وتقييم النماذج الحديثة من الأبحاث. تستخدم هذه الأمثلة بعض الميزات المتقدمة مثل FSDP المتكامل ونقاط تفتيش التنشيط لنموذج التوسع وأحجام الدفعات.
نظرة أولى على TorchMultimodal
TorchMultimodal هي مكتبة نطاق PyTorch.للتدريب على نطاق واسع للنماذج متعددة المهام ومتعددة الوسائط. ويوفر:
1. كتلة البناء
الوحدات النمطية عبارة عن مجموعات من كتل البناء القابلة للتكوين مثل النماذج وطبقات المجموعة ووظائف الخسارة ومجموعات البيانات والأدوات المساعدة، على سبيل المثال:
- الخسارة التباينية مع درجة الحرارة: الوظائف المستخدمة عادة في نماذج التدريب، مثل CLIP وFLAVA. ويتضمن أيضًا متغيرات مثل ImageTextContrastiveLoss المستخدمة في نماذج مثل ALBEF.
- طبقة كتاب التعليمات البرمجية: يعد ضغط البيانات عالية الأبعاد من خلال البحث عن أقرب جار في مساحة المتجه أيضًا أحد المكونات المهمة لـ VQVAE.
- نافذة محولة انتبه: تعتمد النافذة على الاهتمام الذاتي متعدد الرؤوس وهي مكون مهم في أجهزة الترميز مثل Swin 3D Transformer.
- مكونات CLIP: تم إصداره بواسطة OpenAI، وهو نموذج فعال للغاية لتعلم النصوص وتمثيلات الصور.
- GPT متعدد الوسائط: عند دمجه مع مولد، يمكن توسيع بنية GPT الخاصة بـ OpenAI إلى تجريد أكثر ملاءمة للتوليد متعدد الوسائط.
- MultiHeadAttention: مكون رئيسي في نماذج الاهتمام التي تدعم الانحدار التلقائي وفك التشفير.
2. مثال
تُظهر مجموعة من الأمثلة كيفية الجمع بين كتل البناء مع مكونات PyTorch والبنية الأساسية العامة (Lightning وTorchMetrics) لتكرار نماذج SOTA المنشورة في الأدبيات. هناك خمسة أمثلة متوفرة حاليًا، بما في ذلك:
- نكهة: الكود الرسمي للأوراق المقبولة في CVPR، بما في ذلك البرنامج التعليمي حول ضبط FLAVA.
عرض الورقة:https://arxiv.org/abs/2112.04482
- مديتر: التعاون مع مؤلفي جامعة نيويورك لتقديم مثال يخفف من نقاط الضعف المتعلقة بالتوافق في نظام PyTorch البيئي، بما في ذلك دفتر ملاحظات لتأريض العبارات والإجابة على الأسئلة المرئية باستخدام MDETR.
عرض الورقة:https://arxiv.org/abs/2104.12763
- آكل اللحوم والنباتات: أول مثال لنموذج في TorchMultimodal لمعالجة الفيديو والبيانات ثلاثية الأبعاد، بما في ذلك دفتر ملاحظات لاستكشاف النموذج.
عرض الورقة:https://arxiv.org/abs/2204.08058
- موغن: عمل أساسي حول التوليد والاسترجاع الانحداري التلقائي، بما في ذلك عرض توضيحي لتوليد واسترجاع النصوص والفيديو باستخدام مجموعة البيانات الاصطناعية الغنية واسعة النطاق من OpenAI coinrun.
عرض الورقة:https://arxiv.org/abs/2204.08058
- ألبيف: نموذج الكود، بما في ذلك دفتر ملاحظات لاستخدام النموذج لحل مشكلة الإجابة على سؤال مرئي.
عرض الورقة:https://arxiv.org/abs/2107.07651
يُظهر الكود التالي استخدام العديد من مكونات TorchMultimodal المتعلقة بـ CLIP:
# instantiate clip transform
clip_transform = CLIPTransform()
# pass the transform to your dataset. Here we use coco captions
dataset = CocoCaptions(root= ..., annFile=..., transforms=clip_transform)
dataloader = DataLoader(dataset, batch_size=16)
# instantiate model. Here we use clip with vit-L as the image encoder
model= clip_vit_l14()
# define loss and other things needed for training
clip_loss = ContrastiveLossWithTemperature()
optim = torch.optim.AdamW(model.parameters(), lr = 1e-5)
epochs = 1
# write your train loop
for _ in range(epochs):
for batch_idx, batch in enumerate(dataloader):
image, text = batch
image_embeddings, text_embeddings = model(image, text)
loss = contrastive_loss_with_temperature(image_embeddings, text_embeddings)
loss.backward()
optimizer.step()
تثبيت TorchMultimodal
Python ≥ 3.7، مع أو بدون دعم CUDA المثبت.
يأخذ الكود التالي تثبيت conda كمثال
المتطلبات الأساسية
1. تثبيت بيئة conda
conda create -n torch-multimodal python=\<python_version\>
conda activate torch-multimodal
2. قم بتثبيت PyTorch و torchvision و torchtext
راجع وثائق PyTorch:
https://pytorch.org/get-started/locally/
# Use the current CUDA version as seen [here](https://pytorch.org/get-started/locally/)
# Select the nightly Pytorch build, Linux as the OS, and conda. Pick the most recent CUDA version.
conda install pytorch torchvision torchtext pytorch-cuda=\<cuda_version\> -c pytorch-nightly -c nvidia
# For CPU-only install
conda install pytorch torchvision torchtext cpuonly -c pytorch-nightly
التثبيت من ملف ثنائي
في Linux، تتوفر الثنائيات الليلية لـ Python 3.7 و3.8 و3.9 عبر عجلات pip. في الوقت الحالي، يتم دعم منصات Linux فقط عبر PyPI.
python -m pip install torchmultimodal-nightly
تثبيت المصدر
يمكن للمطورين أيضًا إنشاء الأمثلة وتشغيلها من المصدر:
git clone --recursive https://github.com/facebookresearch/multimodal.git multimodal
cd multimodal
pip install -e .
ما ورد أعلاه هو مقدمة موجزة عن TorchMultimodal. بالإضافة إلى الكود،أصدرت PyTorch رسميًا برنامجًا تعليميًا أساسيًا حول ضبط النماذج متعددة الوسائط. ومدونة حول كيفية توسيع نطاق هذه النماذج باستخدام تقنيات PyTorch Distributed PyTorch (FSDP ونقطة تفتيش التنشيط).
سوف نقوم بترجمة هذه المدونة إلى اللغة الصينية في وقت لاحق. مرحبًا بكم في مواصلة متابعة الحساب الرسمي لمجتمع مطوري PyTorch!
-- زيادة--