VILA arxiv / VILA Demo / VILA Huggingface
VILA هو نموذج لغة مرئية (VLM) تم تدريبه مسبقًا باستخدام بيانات نص الصورة المتداخلة على نطاق واسع، مما يتيح فهم الفيديو وقدرات فهم الصور المتعددة . يمكن نشر VILA على الحافة من خلال تكميم AWQ 4bit وإطار عمل TinyChat. نجد: (1) أزواج الصور والنص ليست كافية، ونص الصورة المشذر ضروري؛ (2) يؤدي إلغاء تجميد LLM أثناء التدريب المسبق لنص الصورة المتداخل إلى تمكين التعلم في السياق؛ (3) تعد إعادة مزج بيانات التعليمات النصية فقط أمرًا ضروريًا لتعزيز أداء VLM والأداء النصي فقط؛ (4) يعمل ضغط الرمز المميز على توسيع إطارات الفيديو. تكشف VILA عن قدرات جذابة، بما في ذلك: الاستدلال عبر الفيديو، والتعلم في السياق، وسلسلة الأفكار المرئية، ومعرفة أفضل بالعالم.
[2024/10] تم إصدار VILA-M3، وهو VLM طبي من SOTA تم ضبطه على VILA1.5! يتفوق أداء VILA-M3 بشكل كبير على Lava-Med وعلى قدم المساواة مع Med-Gemini وهو مفتوح المصدر بالكامل! نموذج الكود
[2024/10] أطلقنا VILA-U: نموذج أساسي موحد يدمج الفيديو والصورة وفهم اللغة وتوليدها.
[2024/08] قمنا بإصدار LongVILA الذي يدعم فهم الفيديو الطويل (Captioning، QA، Needle-in-a-Haystack) حتى 1024 إطارًا.
[2024/07] احتلت VILA1.5 أيضًا المركز الأول (نموذج OSS) في لوحة المتصدرين لاختبار MLVU.
[2024/06] أصبح VILA1.5 الآن أفضل VLM مفتوح المصدر على لوحة المتصدرين MMMU ولوحة المتصدرين Video-MME!
[2024/05] أطلقنا VILA-1.5، الذي يوفر إمكانية فهم الفيديو . يأتي VILA-1.5 بأربعة أحجام للنماذج: 3B/8B/13B/40B.
[2024/05] قمنا بإصدار نماذج VILA-1.5 ذات 4 بتات AWQ. يمكن نشر VILA-1.5 بكفاءة على وحدات معالجة الرسومات NVIDIA المتنوعة (A100 و4090 و4070 Laptop وOrin وOrin Nano) بواسطة الواجهات الخلفية لـ TinyChat وTensorRT-LLM.
[2024/03] تم قبول VILA بواسطة CVPR 2024!
[2024/02] قمنا بإصدار نماذج VILA ذات 4 بت من AWQ، والتي يمكن نشرها على Jetson Orin وأجهزة الكمبيوتر المحمولة من خلال TinyChat وTinyChatEngine.
[2024/02] تم إصدار فيلا. نقترح تدريبًا مسبقًا على نص الصورة المشذّب الذي يمكّن VLM متعدد الصور . تأتي VILA بقدرات تعليمية رائعة في السياق. نحن نفتح المصدر لكل شيء: بما في ذلك كود التدريب، ورمز التقييم، ومجموعات البيانات، ونموذج ckpts.
[2023/12] الورقة موجودة على Arxiv!
Prec. | VQAv2 | GQA | VizWiz | SQA-I | VQA-T | البابا | وزارة البلدية والبيئة | إم إم بي | MMB-CN | بذور | SEED-I | مممو (فال) | MMMU (اختبار) | مقعد اللافا | مم-طبيب بيطري | متوسط | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
فيلا1.5-3ب | fp16 | 80.4 | 61.5 | 53.5 | 69.0 | 60.4 | 85.9 | 1442.44 | 63.4 | 52.7 | 60.9 | 67.9 | 33.3 | 30.8 | 75.9 | 35.4 | 60.2 |
فيلا1.5-3B-AWQ | كثافة العمليات4 | 80.0 | 61.1 | 53.8 | 67.8 | 60.4 | 85.9 | 1437.34 | 63.3 | 51.4 | 59.8 | 66.6 | 32.7 | 31.1 | 75.0 | 37.3 | 59.9 |
فيلا1.5-3B-S2 | fp16 | 79.8 | 61.4 | 61.3 | 69.6 | 63.4 | 85.3 | 1431.65 | 62.8 | 52.2 | 60.0 | 66.4 | 32.8 | 31.3 | 76.7 | 38.6 | 60.9 |
فيلا1.5-3B-S2-AWQ | كثافة العمليات4 | 79.4 | 61.3 | 62.3 | 69.2 | 63.0 | 85.8 | 1417.06 | 61.6 | 51.5 | 59.1 | 65.7 | 33.4 | 30.4 | 77.1 | 36.7 | 60.5 |
اللاما-3-فيلا1.5-8ب | fp16 | 83.0 | 63.5 | 63.2 | 82.0 | 68.5 | 85.6 | 1634.91 | 75.3 | 69.9 | 66.4 | 73.8 | 38.6 | 32.7 | 71.9 | 43.2 | 66.6 |
اللاما-3-VILA1.5-8B-AWQ | كثافة العمليات4 | 80.3 | 61.7 | 59.3 | 79.0 | 65.4 | 82.9 | 1593.65 | 71.0 | 64.9 | 64.0 | 71.1 | 36.0 | 36.1 | 79.0 | 37.2 | 64.5 |
فيلا1.5-13ب | fp16 | 82.8 | 64.3 | 62.6 | 80.1 | 65.0 | 86.3 | 1569.55 | 74.9 | 66.3 | 65.1 | 72.6 | 37.9 | 33.6 | 80.8 | 44.3 | 66.3 |
فيلا1.5-13B-AWQ | كثافة العمليات4 | 82.7 | 64.5 | 63.3 | 79.7 | 64.7 | 86.7 | 1531.35 | 74.7 | 66.7 | 65.1 | 72.6 | 37.8 | 34.0 | 81.9 | 46.4 | 66.5 |
فيلا1.5-40ب | fp16 | 84.3 | 64.6 | 62.2 | 87.2 | 73.6 | 87.3 | 1726.82 | 82.4 | 80.2 | 69.1 | 75.8 | 51.9 | 46.9 | 81.3 | 53.0 | 72.4 |
فيلا1.5-40B-AWQ | كثافة العمليات4 | 84.1 | 64.4 | 61.3 | 86.7 | 73.2 | 88.2 | 1714.79 | 83.2 | 79.6 | 68.9 | 75.6 | 49.3 | 46.2 | 83.0 | 51.4 | 72.1 |
ملاحظة: VQAV2 وVizWiz هما اختباران، ويتم حساب متوسط الدقة على جميع مجموعات البيانات ويتم تقسيم أرقام MME على 20.
Prec. | اختبار الإدراك | شبكة النشاط | MSVD | MSRVTT | تجييف | المخطط الأنا (اختبار) | سينيبيل | |
---|---|---|---|---|---|---|---|---|
فيلا1.5-3ب | fp16 | 47 | 50.2 | 76.6 | 57.5 | 51.7 | 42.6 | 37.9 |
فيلا1.5-3B-S2 | fp16 | 49.7 | 50.7 | 76.9 | 57.6 | 51.7 | ||
اللاما-3-فيلا1.5-8ب | fp16 | 54.1 | 54.3 | 78.3 | 60.1 | 54.1 | 50.4 | 48.7 |
فيلا1.5-13ب | fp16 | 53.6 | 54.7 | 77.9 | 60.2 | 56 | 52.2 | 50.1 |
فيلا1.5-40ب | fp16 | 54 | 58 | 80.1 | 63 | 58.2 | 58.7 | 51.3 |
دقة | A100 | 4090 | أورين | |
---|---|---|---|---|
فيلا1.5-3ب | fp16 | 104.6 | 137.6 | 25.4 |
فيلا1.5-3B-AWQ | كثافة العمليات4 | 182.8 | 215.5 | 42.5 |
فيلا1.5-3B-S2 | fp16 | 104.3 | 137.2 | 24.6 |
فيلا1.5-3B-S2-AWQ | كثافة العمليات4 | 180.2 | 219.3 | 40.1 |
اللاما-3-فيلا1.5-8ب | fp16 | 74.9 | 57.4 | 10.2 |
اللاما-3-VILA1.5-8B-AWQ | كثافة العمليات4 | 168.9 | 150.2 | 28.7 |
فيلا1.5-13ب | fp16 | 50.9 | أوم | 6.1 |
فيلا1.5-13B-AWQ | كثافة العمليات4 | 115.9 | 105.7 | 20.6 |
فيلا1.5-40ب | fp16 | أوم | أوم | -- |
فيلا1.5-40B-AWQ | كثافة العمليات4 | 57.0 | أوم | -- |
ملاحظة: تم القياس باستخدام واجهة TinyChat الخلفية بحجم الدفعة = 1.
مستعجل: قم بتوضيح العناصر المرئية والسردية للفيديو بالتفصيل.
التسمية التوضيحية: يُظهر الفيديو يدي شخص يعملان على سطح أبيض. إنهم يقومون بطي قطعة قماش بنمط مربعات بظلال من اللونين الأزرق والأبيض. يتم طي القماش إلى شكل أصغر وأكثر إحكاما. أظافر الشخص مطلية باللون الأحمر، ويرتدي ملابس سوداء وحمراء. هناك أيضًا مسطرة وقلم رصاص على السطح، مما يشير إلى أن القياسات والدقة متضمنة في العملية.
./environment_setup.sh فيلا
يحتوي تدريب VILA على ثلاث خطوات، بالنسبة للمعلمات الفائقة المحددة، يرجى مراجعة مجلد scripts/v1_5:
نحن نستخدم مجموعة بيانات LLaVA-CC3M-Pretrain-595K لمواءمة الطرائق النصية والمرئية.
يأخذ البرنامج النصي للمرحلة الأولى معلمتين ويمكن تشغيله على عقدة 8xA100 واحدة. يشير BASE_MODEL_PATH
إلى مستودع محلي أو عبر الإنترنت، مثل NousResearch/Llama-2-7b-hf
. يشير OUTPUT_NAME
إلى الدليل المستهدف ضمن checkpoints
، مما سيحفظ جهاز العرض متعدد الوسائط المدرب بعد ذلك.
bash scripts/v1_5/paper/1_mm_align.sh [BASE_MODEL_PATH] [OUTPUT_NAME]
نحن نستخدم مجموعة بيانات MMC4 وCoyo لتدريب VLM على أزواج الصور والنصوص المتداخلة.
bash scripts/v1_5/paper/2_pretrain_mmc4_coyo.sh [CODE_PATH] [BASE_MODEL_PATH] [STAGE1_PATH] [OUTPUT_NAME]
يأخذ نص المرحلة الثانية أربع وسيطات. CODE_PATH
هو المسار المطلق لقاعدة بيانات VILA الخاصة بنا، BASE_MODEL_PATH
له معنى مشابه لما تم تقديمه في البرنامج النصي للمرحلة الأولى. يشير STAGE1_PATH
إلى OUTPUT_NAME
للمرحلة 1 (أي حيث يتم تخزين نقطة تفتيش المرحلة 1). OUTPUT_NAME
هو اسم المجلد المطلوب ضمن checkpoints
التي تحفظ نقطة تفتيش التدريب المسبق. يتم تنفيذ البرنامج النصي الذي قدمناه لهذه المرحلة على slurm، ونتوقع تنفيذه على 16 عقدة (128 وحدة معالجة رسوميات).
هذه هي المرحلة الأخيرة من تدريب VILA، حيث نقوم بضبط النموذج لاتباع تعليمات الوسائط المتعددة على مجموعة فرعية من M3IT وFLAN وShareGPT4V. تعمل هذه المرحلة على عقدة 8xA100.
bash scripts/v1_5/paper/3_sft.sh [STAGE2_PATH] [OUTPUT_NAME]
يأخذ نص المرحلة 3 وسيطتين. يشير STAGE2_PATH
إلى OUTPUT_NAME
للبرنامج النصي للمرحلة 2 (أي حيث يتم تخزين نقطة تفتيش المرحلة 2). OUTPUT_NAME
هو اسم المجلد المطلوب ضمن checkpoints
التي تخزن نقطة التحقق النهائية.
يمكنك متابعة تقييم Lava1.5 لتنزيل جميع مجموعات البيانات. بعد تنزيل جميع مجموعات البيانات، برجاء وضعها ضمن playground/data/eval
.
يرجى إجراء التغييرات التالية على البرنامج النصي لتقييم MME. يرجى البحث عن:
data_path = "MME_Benchmark_release_version"
واستبدلها بـ:
data_path = os.path.join(script_dir, "MME_Benchmark_release_version")
نحن نقدم برنامجًا نصيًا بضغطة زر لإجراء التقييم على جميع مجموعات البيانات العشرة التي لا تتطلب تقييمًا بمساعدة GPT:
./scripts/v1_5/eval/eval_all.sh [CHECKPOINT_PATH] [MODEL_NAME] [CONV_MODE]
يأخذ هذا البرنامج النصي معلمتين، CHECKPOINT_PATH
يشير إلى نقطة تفتيش نموذج المرحلة 3، وسيكون MODEL_NAME
هو اسم نتائج التقييم.
تتم استضافة تقييمات VQAv2 وVizwiz على موقع eval.ai. تحتاج إلى تسجيل حساب وإنشاء فريق لتتمكن من تقديم التقييم.
تتم استضافة تقييم MMBench وMMBench_CN على خادم تقييم آخر. تأكد من تغيير اسم الملف قبل الإرسال، وإلا فسيقوم الخادم بتخزين النتائج وسيقوم دائمًا بإرجاع نتيجة خاطئة إليك.
نحن نقدم برنامجًا نصيًا سريعًا لتنظيم ملفات التنبؤ التي يجب إرسالها إلى الخوادم تلقائيًا:
python scripts/v1_5/eval/copy_predictions.py [MODEL_NAME]
ستتمكن من العثور على التوقعات ضمن playground/data/predictions_upload/[MODEL_NAME]
بعد تنفيذ هذا البرنامج النصي.
يرجى اتباع خطوات التقييم في Video-LLaVA لإعداد مجموعة البيانات.
./scripts/v1_5/eval/video_chatgpt/run_all.sh [CHECKPOINT_PATH] [MODEL_NAME] [CONV_MODE] ./scripts/v1_5/eval/video_chatgpt/eval_all.sh [MODEL_NAME]
نحن نقدم مقتطفات للاستدلال السريع مع مطالبات المستخدم والصور.
اللاما-3-VILA1.5-8B الاستدلال:
python -W تجاهل llava/eval/run_vila.py --نموذج المسار كفاءة-كبيرة-نموذج/لاما-3-VILA1.5-8b-Fix --conv-mode llama_3 --query "<image>n الرجاء وصف حالة حركة المرور." --ملف الصورة "av.png"
الاستدلال VILA1.5-40B:
python -W تجاهل llava/eval/run_vila.py --model-path Efficient-Large-Model/VILA1.5-40b --وضع التحويل هيرميس-2 --query "<image>n الرجاء وصف حالة حركة المرور." --ملف الصورة "av.png"
VILA1.5-3B استنتاج الفيديو:
python -W تجاهل llava/eval/run_vila.py --model-path Efficient-Large-Model/VILA1.5-3b --conv-mode vicuna_v1 --query "<video>n الرجاء وصف هذا الفيديو." --ملف الفيديو "demo.mp4"
يتم قياس نماذج VILA الخاصة بنا بواسطة AWQ إلى 4 بتات للاستدلال الفعال على الحافة. نحن نقدم برنامجًا نصيًا بضغطة زر لتقدير حجم VILA باستخدام AWQ.
نحن ندعم VILA 4 بت AWQ على منصات GPU عبر TinyChat. نحن نقدم برنامجًا تعليميًا لتشغيل النموذج باستخدام TinyChat بعد التكميم. نقدم أيضًا تعليمات لتشغيل خادم Gradio (المدعوم من TinyChat وAWQ) لخدمة نماذج VILA ذات 4 بتات.
نحن ندعم أيضًا نماذج VILA ذات 4 بت AWQ على منصات مختلفة لوحدة المعالجة المركزية مع بنيات x86 وARM من خلال TinyChatEngine. نقدم أيضًا برنامجًا تعليميًا مفصلاً لمساعدة المستخدمين على نشر VILA على وحدات المعالجة المركزية المختلفة.
تم توفير خادم API بسيط لخدمة نماذج VILA. تم بناء الخادم على أساس FastAPI وHuggingface Transformers. يمكن تشغيل الخادم بالأمر التالي:
python -W تجاهل server.py --المنفذ 8000 --model-path Efficient-Large-Model/VILA1.5-3B --conv-mode vicuna_v1
docker build -t vila-server: أحدث تشغيل .docker --gpus all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 -v ./hub:/root/.cache/huggingface/hub -it --rm -p 8000:8000 -e VILA_MODEL_PATH=نموذج كبير فعال/VILA1.5-3B -e VILA_CONV_MODE=vicuna_v1 خادم فيلا: الأحدث
ثم يمكنك الاتصال بنقطة النهاية باستخدام OpenAI SDK كما يلي:
من openai import OpenAIclient = OpenAI(base_url="http://localhost:8000"،api_key="fake-key"، )response =client.chat.completions.create(messages=[ {"الدور": "المستخدم"، "المحتوى": [ {"type": "text"، "text": "ماذا يوجد في هذه الصورة؟"}, {"type": "image_url"، "image_url": {"url": "https://blog.logomyway.com/wp-content/uploads/2022/01/NVIDIA-logo.jpg"،# أو يمكنك ذلك تمرير صورة مشفرة باستخدام base64# "url": "data:image/png;base64,<base64_encoded_image>",}, }, ]، } ],max_tokens=300,model="VILA1.5-3B",# يمكنك تمرير معلمات إضافية على النحو التاليextra_body={"num_beams": 1, "use_cache": False}, )طباعة(response.choices[0].message.content)
ملاحظة: خادم API هذا مخصص لأغراض التقييم فقط ولم يتم تحسينه للاستخدام الإنتاجي. تم اختباره فقط على وحدات معالجة الرسوميات A100 وH100.
قمنا بإصدار VILA1.5-3B، وVILA1.5-3B-S2، وLlama-3-VILA1.5-8B، وVILA1.5-13B، وVILA1.5-40B والنماذج الكمية 4 بت AWQ VILA1.5- 3B-AWQ، VILA1.5-3B-S2-AWQ، اللاما-3-VILA1.5-8B-AWQ، VILA1.5-13B-AWQ، VILA1.5-40B-AWQ.
يتم إصدار الكود بموجب ترخيص Apache 2.0 كما هو موجود في ملف الترخيص.
يتم إصدار الأوزان المدربة مسبقًا بموجب ترخيص CC-BY-NC-SA-4.0.
الخدمة عبارة عن معاينة بحثية مخصصة للاستخدام غير التجاري فقط، وتخضع للتراخيص والشروط التالية:
الترخيص النموذجي لـ LLaMA. للتعرف على شروط استخدام نقاط التفتيش LLAMA3-VILA، يرجى الرجوع إلى ترخيص LLAMA3 للحصول على تفاصيل إضافية.
شروط استخدام البيانات التي تم إنشاؤها بواسطة OpenAI
تراخيص مجموعة البيانات لكل واحدة يتم استخدامها أثناء التدريب.
* ياو لو: نفيديا | *هونجكسو يين: نفيديا | *جي لين: OpenAI (العمل المنجز في Nvidia وMIT) |
وي بينغ: نفيديا | بافلو مولتشانوف: نفيديا | أندرو تاو: نفيديا |
هاوتيان تانغ: معهد ماساتشوستس للتكنولوجيا | شانغ يانغ: معهد ماساتشوستس للتكنولوجيا | ليغنغ تشو: نفيديا، معهد ماساتشوستس للتكنولوجيا |
وي تشن وانغ: معهد ماساتشوستس للتكنولوجيا | فوزهاو شيويه: نفيديا، NUS | يونهاو فانغ: نفيديا، جامعة كاليفورنيا في سان دييغو |
يوكانغ تشين: نفيديا | تشويانغ تشانغ: نفيديا | يو شين: نفيديا |
وي مينغ تشين: نفيديا | هويزي ماو: نفيديا | بايفنغ شي: نفيديا، جامعة كاليفورنيا في بيركلي |
جان كاوتز: نفيديا | محمد الشعيبي: نفيديا | سونغ هان: نفيديا، معهد ماساتشوستس للتكنولوجيا |
@misc{lin2023vila, title={VILA: On Pre-training for Visual Language Models}, author={Ji Lin and Hongxu Yin and Wei Ping and Yao Lu and Pavlo Molchanov and Andrew Tao and Huizi Mao and Jan Kautz and Mohammad Shoeybi and Song Han}, year={2023}, eprint={2312.07533}, archivePrefix={arXiv}, primaryClass={cs.CV} }
LLaVA: قاعدة التعليمات البرمجية التي بنينا عليها. شكرا لعملهم الرائع.
InternVL: من أجل InternViT مفتوح المصدر (المستخدم في VILA1.5-40b) ومزيج بيانات InternVL-SFT (المستوحى من LLaVA-1.6) المستخدم في جميع طرز VILA1.5.
فيكونا: نموذج اللغة الكبير المذهل والمفتوح المصدر!
Video-ChatGPT: قمنا باستعارة البرنامج النصي لتقييم الفيديو من هذا المستودع.
MMC4، COYO-700M، M3IT، OpenORCA/FLAN، ShareGPT4V، WIT، GSM8K-ScRel، VisualGenome، VCR، ScienceQA، Shot2Story، Youcook2، Vatex، ShareGPT-Video لتوفير مجموعات البيانات المستخدمة في هذا البحث.