صفحة المشروع • ?Arxiv Paper • ?YouTube • ?HuggingFace Demo (WIP) • الاقتباس
LL3DA هو مساعد ثلاثي الأبعاد كبير اللغة يمكنه الاستجابة لكل من التفاعلات المرئية والنصية داخل بيئات ثلاثية الأبعاد معقدة .
أتاحت التطورات الحديثة في النماذج الكبيرة متعددة الوسائط (LMM) إمكانية تطبيق تطبيقات مختلفة في التفاعلات بين الإنسان والآلة. ومع ذلك، فإن تطوير LMMs التي يمكنها الفهم والتفكير والتخطيط في بيئات ثلاثية الأبعاد معقدة ومتنوعة يظل موضوعًا صعبًا، خاصة بالنظر إلى الطلب على فهم التمثيلات السحابية النقطية ثلاثية الأبعاد للمشهد ثلاثي الأبعاد. تطلب الأعمال الحالية المساعدة من الصور متعددة العرض، وميزات المشروع ثنائية الأبعاد إلى مساحة ثلاثية الأبعاد كتمثيلات مشهد ثلاثي الأبعاد. ومع ذلك، يؤدي هذا إلى أعباء حسابية هائلة وتدهور في الأداء. في هذه الورقة، نقدم LL3DA، وهو مساعد ثلاثي الأبعاد ذو لغة كبيرة يستخدم السحابة النقطية كمدخل مباشر ويستجيب لكل من التعليمات النصية والمطالبات المرئية. يساعد هذا LMMs على فهم التفاعلات البشرية بشكل أفضل ويساعد بشكل أكبر على إزالة الغموض في المشاهد ثلاثية الأبعاد المزدحمة. تظهر التجارب أن LL3DA يحقق نتائج رائعة، ويتفوق على العديد من نماذج لغة الرؤية ثلاثية الأبعاد في كل من التسميات التوضيحية الكثيفة ثلاثية الأبعاد والإجابة على الأسئلة ثلاثية الأبعاد.
المهام :
الخطوة 1. بناء التبعيات. تم اختبار الكود الخاص بنا باستخدام CUDA 11.6 وPython 3.8.16. لتشغيل الأكواد، عليك أولاً تثبيت الحزم التالية:
h5py
scipy
cython
plyfile
'trimesh>=2.35.39,<2.35.40'
'networkx>=2.2,<2.3'
'torch=1.13.1+cu116'
'transformers>=4.37.0'
بعد ذلك، قم ببناء pointnet2
وتسريع giou
من المصدر:
cd third_party/pointnet2
python setup.py install
cd utils
python cython_compile.py build_ext --inplace
الخطوة 2. قم بتنزيل التضمينات المدربة مسبقًا. قم بتنزيل أوزان تضمين BERT المُجهزة مسبقًا من Huggingface وقم بتخزينها ضمن مجلد ./bert-base-embedding
. الأوزان هي نفسها من نموذج BERT الرسمي، لقد قمنا فقط بتعديل أسماء بعض المعلمات.
يتطلب الريبو الخاص بنا البيانات ثلاثية الأبعاد من ScanNet، والتعليقات التوضيحية للغة الطبيعية، وأوزان LLM المدربة مسبقًا.
الخطوة 1. قم بتنزيل وإعداد بيانات ScanNet 3D.
التحديثات 2024-07-01: يمكنك تنزيل البيانات المعالجة مسبقًا من هنا.
SCANNET_DIR
إلى مجلد عمليات الفحص في data/scannet/batch_load_scannet_data.py
، وقم بتشغيل الأوامر التالية. cd data/scannet/
python batch_load_scannet_data.py
الخطوة 2. إعداد التعليقات التوضيحية للغة
لتدريب النموذج، يتعين عليك إعداد التعليقات التوضيحية اللغوية من ScanRefer
و Nr3D
و ScanQA
وجزء ScanNet من 3D-LLM
.
ScanRefer
. اتبع الأوامر هنا لتنزيل مجموعة بيانات ScanRefer
.Nr3D
. اتبع الأوامر هنا لتنزيل مجموعة بيانات Nr3D
ومعالجتها مسبقًا.ScanQA
. اتبع الأوامر هنا لتنزيل مجموعة بيانات ScanQA
.3D-LLM
. البيانات موجودة هنا. لقد قمنا أيضًا بمشاركة البرامج النصية للمعالجة المسبقة هنا.سنقوم بتحديث أحدث البيانات الصادرة (V3) من 3D-LLM.
وأخيراً قم بتنظيم الملفات في المجلدات التالية:
./data/
ScanRefer/
ScanRefer_filtered_train.json
ScanRefer_filtered_train.txt
ScanRefer_filtered_val.json
ScanRefer_filtered_val.txt
Nr3D/
nr3d_train.json
nr3d_train.txt
nr3d_val.json
nr3d_val.txt
ScanQA/
ScanQA_v1.0_test_w_obj.json
ScanQA_v1.0_test_wo_obj.json
ScanQA_v1.0_train.json
ScanQA_v1.0_val.json
3D_LLM/
3d_llm_embodied_dialogue_filtered_train.json
3d_llm_embodied_dialogue_filtered_val.json
3d_llm_embodied_planning_filtered_train.json
3d_llm_embodied_planning_filtered_val.json
3d_llm_scene_description_train.json
3d_llm_scene_description_val.json
الخطوة 3. [اختياري] قم بتنزيل أوزان LLM المدربة مسبقًا. إذا لم يواجه خادمك مشكلة في تنزيل الأوزان تلقائيًا من Huggingface؟، فلا تتردد في تخطي هذه الخطوة.
قم بتنزيل الملفات من نقطة تفتيش opt-1.3b
(أو أي LLM أخرى لوحدة فك التشفير فقط) على Huggingface، وقم بتخزينها ضمن الدليل ./facebook/opt-1.3b
. تأكد من تنزيل الملفات المطلوبة:
./facebook/opt-1.3b/
config.json
merges.txt
pytorch_model.bin
special_tokens_map.json
tokenizer_config.json
vocab.json
التحديثات 2024-07-01: الإصدار الذي تم إصداره يختلف قليلاً عن التنفيذ الورقي لدينا. في نسختنا التي تم إصدارها، قمنا بتوحيد تنسيق البيانات وإسقاط التعليقات التوضيحية النصية المكررة . لإعادة إنتاج النتائج التي تم الإبلاغ عنها، يرجى استخدام البرامج النصية المتوفرة في scripts-v0
لإنتاج الأوزان العامة.
bash scripts-v0/opt-1.3b/train.generalist.sh
يجب أن يدعم الكود الخاص بنا أي برامج LLM خاصة بوحدة فك التشفير فقط ( facebook/opt-1.3b
, gpt2-xl
, meta-llama/Llama-2-7b
أو حتى LATEST Qwen/Qwen1.5-1.8B
و Qwen/Qwen1.5-4B
). راجع الجدول التالي للحصول على ماجستير إدارة الأعمال الموصى به بمقاييس مختلفة! بشكل افتراضي، يتم تدريب النماذج باستخدام ثماني وحدات معالجة رسوميات.
<1 ب | 1ب-4ب | ~7 ب |
---|---|---|
gpt2 (124 م) | TinyLlama-1.1B (1.1ب) | facebook/opt-6.7b (6.7ب) |
facebook/opt-125m (125m) | facebook/opt-1.3b (1.3ب) | meta-llama/Llama-2-7b-hf (6.7ب) |
gpt2-medium (355 م) | gpt2-xl (1.6b) | Qwen/Qwen1.5-7B (7.7ب) |
Qwen/Qwen1.5-0.5B (620 م) | Qwen/Qwen1.5-1.8B (1.8ب) | - |
gpt2-large (774 م) | facebook/opt-2.7b (2.7ب) | - |
- | microsoft/phi-2 (2.8ب) | - |
- | Qwen/Qwen1.5-4B (3.9ب) | - |
نحن نقدم نصوصًا تدريبية في مجلد scripts
مع واجهات خلفية مختلفة لـ LLM. لا تتردد في تعديل المعلمات الفائقة في تلك الأوامر.
بالنسبة لواجهات LLM الخلفية الأخرى، يرجى تعديل الأوامر يدويًا عن طريق تغيير --vocab
إلى LLMs أخرى.
لتدريب النموذج باعتباره متخصصًا ثلاثي الأبعاد: (لقد قمنا أيضًا بتحميل الأوزان المدربة مسبقًا على Huggingface.)
bash scripts/opt-1.3b/train.generalist.sh
بعد تدريب النموذج، يمكنك ضبط النموذج على ScanQA للإجابة على الأسئلة ثلاثية الأبعاد:
bash scripts/opt-1.3b/tuning.scanqa.sh
وعلى ScanRefer / Nr3D للتسميات التوضيحية الكثيفة ثلاثية الأبعاد:
bash scripts/opt-1.3b/tuning.scanrefer.sh
bash scripts/opt-1.3b/tuning.nr3d.sh
يمكنك أيضًا ضبط النموذج للتنبؤ بالمربعات المحيطة لاكتشاف كائنات المفردات المفتوحة!
bash scripts/opt-1.3b/tuning.ovdet.sh
لتقييم النموذج باعتباره اختصاصيًا ثلاثي الأبعاد:
bash scripts/opt-1.3b/eval.generalist.sh
في ScanQA للإجابة على الأسئلة ثلاثية الأبعاد:
bash scripts/opt-1.3b/eval.scanqa.sh
وعلى ScanRefer / Nr3D للتسميات التوضيحية الكثيفة ثلاثية الأبعاد:
bash scripts/opt-1.3b/eval.scanrefer.sh
bash scripts/opt-1.3b/eval.nr3d.sh
إذا وجدت الكود أو الورقة الخاصة بنا مفيدة، فيرجى التفكير في تمييزنا بنجمة والاستشهاد بما يلي:
@misc{chen2023ll3da,
title={LL3DA: Visual Interactive Instruction Tuning for Omni-3D Understanding, Reasoning, and Planning},
author={Sijin Chen and Xin Chen and Chi Zhang and Mingsheng Li and Gang Yu and Hao Fei and Hongyuan Zhu and Jiayuan Fan and Tao Chen},
year={2023},
eprint={2311.18651},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
بفضل Vote2Cap-DETR، و3D-LLM، وScan2Cap، و3DETR. نستعير بعض رموزهم وبياناتهم.
يتم توزيع هذا الرمز بموجب ترخيص MIT. إذا كانت هناك أي مشكلة تتعلق بالورقة والرمز الخاص بنا، فلا تتردد في فتح مشكلة!