VCD: التخفيف من هلوسة الكائنات في نماذج لغة الرؤية الكبيرة من خلال فك تشفير التباين البصري
سيكونج لينج، هانج زانج، جوانزينج تشين، شين لي، شيجيان لو، تشونيان مياو، ليدونج بينج
VideoLLaMA 2: تطوير النمذجة المكانية والزمانية وفهم الصوت في دورات LLM للفيديو
زيسين تشينج، سيكونج لينج، هانج تشانج، ييفي شين، شين لي، جوانزينج تشن، يونجكسين تشو، وينكي تشانج، زيانج لو، ديلي تشاو، ليدونج بينج
لعنة الوسائط المتعددة: تقييم الهلوسة للنماذج المتعددة الوسائط الكبيرة عبر اللغة والمرئية والصوت
سيكونج لينج، يون شينغ، زيسين تشينج، يانغ تشو، هانغ تشانغ، شين لي، ديلي تشاو، شيجيان لو، تشونيان مياو، ليدونغ بينج
[2024.10.18] إطلاق أكواد التدريب والتقييم الخاصة بـ Inf-CLIP.
التبعيات الأساسية:
بايثون >= 3.8
بيتورتش >= 2.0.0
إصدار كودا >= 11.8
[عن بعد] تثبيت Inf-CL:
# التثبيت عن بعدpip install inf_cl -i https://pypi.org/simple
[محلي] تثبيت Inf-CL:
تثبيت النقطة -e .
تثبيت الحزم المطلوبة:
استنساخ البوابة https://github.com/DAMO-NLP-SG/Inf-CLIPcd Inf-CLIP تثبيت النقطة -r متطلبات.txt
inf_cl
هو تطبيق تريتون لخسارة Inf-CL:
حلقة-CL (inf_cl/ring.py#L238)
الوقود النووي المشع-CL (inf_cl/ring.py#L251)
inf_clip
هي قاعدة بيانات تدريب CLIP مع فقدان Inf-CL وميزات التدريب الأخرى:
تراكم التدرج (inf_clip/train/train.py#L180)
ذاكرة التخزين المؤقت المتدرجة (inf_clip/train/train.py#L292)
مثال بسيط حول كيفية اعتماد فقدان Inf-CL الخاص بنا للتعلم المتباين. استخدام هذا الأمر لمحاولة:
torchrun --nproc_per_node 2 tests/example.py
استيراد torchimport torch.nn.functional كـ Fimport torch.distributed كـ distimport numpy كـ npfrom inf_cl import cal_inf_lossdef create_cl_tensors(rank,world_size):# Parametersdtype = torch.float32num_heads = 3 # عدد مرات الاهتمام headseq_length_q = 32768 # Sequence lengthseq_length_k = 32768d_model = 256 # أبعاد كل رأس (يجب أن تكون 16 أو 32 أو 64 أو 128)# تهيئة عشوائية inputsq = torch.rand((seq_length_q //world_size, num_heads * d_model), dtype=dtype, devices=f"cuda:{rank}" )k = torch.rand((seq_length_k //world_size, num_heads * d_model), dtype=dtype, devices=f"cuda:{rank}")l = torch.ones([], dtype=dtype, devices=f" cuda:{rank}") * np.log(1 / 0.07)q = F.normalize(q, p=2, dim=-1).requires_grad_() # Queryk = F.normalize(k, p=2, dim=-1).requires_grad_() # Keyl = l.requires_grad_() # Logitscalereturn q, k, lif __name__ == "__main__":# افترض أنه تمت تهيئة البيئة الموزعةdist.init_process_group("nccl")rank = dist.get_rank()world_size = dist.get_world_size()torch.cuda.set_device(rank)# على سبيل المثال من خلال التعلم التقابلي بين الصور والنص، q هي ميزات الصورة العامة، # k هي ميزات النص، و l هو المقياس اللوغاريتمي. q, k, l = create_cl_tensors(rank,world_size)# التسميات هي عناصر قطرية بشكل افتراضي. # التسميات = torch.arange(q.shape[0])loss = cal_inf_loss(q, k,scale=l.exp())print(loss)
* يدل على اعتماد استراتيجية "تفريغ البيانات".
يحتاج التدريب باستخدام نطاق بيانات أكبر إلى حجم دفعة أكبر.
لتسهيل المزيد من التطوير على قاعدة التعليمات البرمجية الخاصة بنا، نقدم دليل البدء السريع حول كيفية استخدام Inf-CLIP لتدريب CLIP مخصص وتقييم النموذج المُدرب وفقًا لمعايير المقطع السائدة.
هيكل بيانات التدريب:
Inf-CLIP ├── مجموعات البيانات │ ├── cc3m/ # https://github.com/rom1504/img2dataset/blob/main/dataset_examples/cc3m.md| | ├──0000.قطر| | ├── 0001.tar| | ├── ...| | └── 0301.tar │ ├── cc12m/ # https://github.com/rom1504/img2dataset/blob/main/dataset_examples/cc12m.md| | ├──0000.قطر| | ├── 0001.tar| | ├── ...| | └── 1044.tar │ ├── laion400m/ # https://github.com/rom1504/img2dataset/blob/main/dataset_examples/laion400m.md| | ├──00000.قطر| | ├── 00001.tar| | ├── ...| | └── 41407.tar
يأمر:
مخطوطات باش/cc3m/lit_vit-b-32_bs16k.sh مخطوطات باش/cc12m/lit_vit-b-32_bs32k.sh مخطوطات باش/laion400m/lit_vit-b-32_bs256k.sh
هيكل بيانات التقييم:
Inf-CLIP ├── مجموعات البيانات │ ├── imagenet-1k/ # تحميل val_images.tar.gz من imagenet| | └── فال/| | | ├── ن01440764| | | ├── ن01443537| | | ├── ...| | | └── ن15075141 │ ├── مقطع معياري/ # bash datasets/benchmarks_download.sh| | ├── wds_mscoco_captions| | ├── wds_flickr8k| | ├── wds_flickr30k| | ├── wds_imagenet1k| | ├── wds_imagenetv2| | ├── wds_imagenet_sketch| | ├── wds_imagenet-a| | ├── wds_imagenet-r| | ├── wds_imagenet-o| | └── wds_objectnet
يأمر:
# البرامج النصية لتقييم imagenetbash/imagenet_eval.sh# البرامج النصية للتقييم الشامل/benchmarks_eval.sh
إذا وجدت Inf-CLIP مفيدًا لأبحاثك وتطبيقاتك، فيرجى الاستشهاد باستخدام BibTeX:
@article{damovl2024infcl, title={كسر حاجز الذاكرة: قياس حجم الدفعة اللانهائي تقريبًا للخسارة المتناقضة}، المؤلف={Zesen Cheng، Hang Zhang، Kehan Li، Sicong Leng، Zhiqiang Hu، Fei Wu، Deli Zhao، Xin Li، ليدونغ بينج}، مجلة={arXiv preprint arXiv:2410.17243}، year={2024}، url={https://arxiv.org/abs/2410.12787}}
قاعدة التعليمات البرمجية لـ Inf-CLIP مقتبسة من OpenCLIP . نحن أيضًا ممتنون للمشاريع التالية التي نشأت منها Inf-CL:
OpenAI CLIP ، img2dataset ، CLIP-Benchmark .
فلاشاتنين ، رينغاتنين ، رينغفلاشاتنين .
تم إصدار هذا المشروع بموجب ترخيص Apache 2.0 كما هو موجود في ملف الترخيص. الخدمة عبارة عن معاينة بحثية مخصصة للاستخدام غير التجاري فقط ، وتخضع لتراخيص CLIP النموذجية وشروط استخدام البيانات التي تم إنشاؤها بواسطة OpenAI وLaion. يرجى الاتصال بنا إذا وجدت أي انتهاكات محتملة.