GPT التالي: من أي من LLM متعددة الوسائطShengqiong Wu ، Hao Fei*، Leigang qu ، Wei Ji ، و Tat-Seng Chua. (*مراسلة )
ICML 2024 ، ورقة عن طريق الفم
مركز أبحاث ++ ، كلية الحوسبة ، الجامعة الوطنية في سنغافورة
يستضيف هذا المستودع الرمز والبيانات ووزن النموذج لـ GPT التالي ، وهو أول MM-LLM من طرف إلى طرف يدرك الإدخال وينشئ الإخراج في مجموعات تعسفية (من أي من أي) من النص والصورة والفيديو والصوت وخارجها.
لاحظت : نلتف قاعدة الكود القديمة السابقة في Lagacy المقبل. يرجى الرجوع إلى قاعدة الكود الجديدة هذه لجميع إجراءات التدريب والضبط.
7b_tiva_v0 . هنا نعرض أمثلة تم إنشاؤها من GPT التالي. لمزيد من الأمثلة ، يرجى زيارة صفحة الويب ، أو العرض التجريبي المباشر عبر الإنترنت.
تم تصميمها على قمة LLM التي تم تدريبها مسبقًا ، وموظف تشفير متعدد الوسائط ونماذج نشر SOTA ، مع ضبط تعليمات من طرف إلى طرف كافي.

لمزيد من التفاصيل الفنية ، يرجى الرجوع إلى الورقة.
. |-- NExT-GPT-Lagacy # the previous version of the model |-- assets |-- checkpoints # save the pretraining and tuning checkpoints |-- data | |-- IT_data | | |-- MosIT_data | | |-- T+X-T_data # text+[image/audio/video] to text instruction data | | `-- T-T+X_data # synthesized text to text+[image/audio/video] instruction data | |-- T_X_pair_data # text-autio pairs data | | |-- audiocap | | |-- cc3m | | `-- webvid | |-- embed | `-- prepare_data.py |-- figures |-- merge_lora_weights.py |-- nextgpt | |-- __init__.py | |-- constants.py | |-- conversation.py | |-- dataset | | |-- __init__.py | | |-- audio_processor.py | | |-- base_dataset.py | | |-- catalog.py | | |-- concat_dataset.py | | |-- dataset_utils.py | | `-- sampler.py | |-- mm_utils.py | |-- model | | |-- __init__.py | | |-- apply_delta.py | | |-- builder.py | | |-- consolidate.py | | |-- language_model | | |-- make_delta.py | | |-- multimodal_decoder | | |-- multimodal_encoder | | |-- multimodal_projector | | |-- nextgpt_arch.py | | `-- utils.py | `-- utils.py |-- scripts | |-- finetune.sh | |-- pretrain_dec.sh | |-- pretrain_enc.sh | |-- zero2.json | |-- zero3.json | `-- zero3_offload.json |-- LICENSE.md |-- README.md |-- nextgpt_trainer.py |-- predict.py |-- preprocess_embeddings.py |-- requirements.txt |-- train.py |-- train_mem.py `-- training_utils.pyيرجى أولاً استنساخ الريبو وتثبيت البيئة المطلوبة ، والتي يمكن القيام بها عن طريق تشغيل الأوامر التالية:
conda env create -n nextgpt python=3.8 conda activate nextgpt # CUDA 12.1 conda install pytorch==2.1.2 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia git clone https://github.com/NExT-GPT/NExT-GPT.git cd NExT-GPT pip install -r requirements.txtيتم تدريب GPT التالي على أساس النماذج الموجودة الممتازة. يرجى اتباع التعليمات لإعداد نقاط التفتيش.
ImageBind هو تشفير الصورة/الفيديو/الصوت الموحد. يمكن تنزيل نقطة التفتيش التي تم تدريبها مسبقًا من هنا مع الإصدار huge . بعد ذلك ، ضع ملف imagebind_huge.pth على [.pretrain_ckpt/ImageBind].Vicuna : إعداد Vicuna المسبق من [هنا]. ثم ضع النموذج الذي تم تدريبه مسبقًا على [./pretrain_ckpt/vicuna-7b-v1.5/].Image Diffusion لإنشاء الصور. يستخدم GPT التالي انتشار مستقر مع الإصدار v2 . ( سيتم تنزيله تلقائيًا )Audio Diffusion لإنتاج محتوى صوتي. توظف GPT Next GPT Audioldm مع الإصدار l-full . ( سيتم تنزيله تلقائيًا )Video Diffusion لتوليد الفيديو. نحن نستخدم Zeroscope مع الإصدار v2_576w . ( سيتم تنزيله تلقائيًا )يرجى تنزيل مجموعات البيانات التالية المستخدمة للتدريب على النموذج:
أ) بيانات TX بيانات
CC3M من أزواج صورة النص ، يرجى اتباع هذه التعليمات [هنا]. ثم ضع البيانات على [./data/t-x_pair_data/cc3m].WebVid من أزواج النصوص النصية ، انظر [التعليمات]. يجب حفظ الملف على [./data/t-x_pair_data/webvid].AudioCap من أزواج النص ، انظر [التعليمات]. احفظ البيانات في [./data/t-x_pair_data/audiocap].ب) بيانات التعليمات
t+xt
LLaVA من بيانات التعليمات المرئية ، وقم بتنزيلها من هنا ، ثم ضعها على [./data/it_data/t+x-t_data/llava].Alpaca من بيانات التعليمات النصية ، وقم بتنزيلها من هنا ، ثم وضعها على [./data/it_data/t+x-t_data/alpaca/].VideoChat ، قم بتنزيل بيانات تعليمات الفيديو هنا ، ثم ضعها على [./data/it_data/t+x-t_data/videochat/].ملاحظة جانبية : بعد تنزيل مجموعة البيانات ، يرجى تشغيل prepare_data.py للمعالجة المسبقة لمجموعة البيانات.
T-X+T (T2M)
T-X+T (T2M) على [./data/it_data/t-t+x_data].MOST
في التدريب على محاذاة جانب فك التشفير ، نقدم إلى الحد الأدنى من المسافة بين تمثيل رموز الإشارة والتسميات التوضيحية. لتوفير تكاليف الوقت والذاكرة ، نقوم بتجهيزات النصوص النصية للصور والصوت والفيديو باستخدام مشفر النص ضمن نماذج الانتشار المعنية.
يرجى تشغيل هذا الأمر قبل التدريب التالي لـ GPT التالي ، حيث سيتم حفظ ملف embedding المنتجة على [./data/embed].
cd ./code/ python preprocess_embeddings.py ../data/T-X_pair_data/cc3m/cc3m_generation.json image ../data/embed/ stabilityai/stable-diffusion-2ملاحظة الوسيطات:
image video audio ؛أولاً وقبل كل شيء ، يرجى الرجوع إلى ملف التكوين الأساسي [Training_utils.py] لإعداد النظام الأساسي للوحدات الإجمالية ، وتكوين مجموعة البيانات NextGPT/DataSet/Catalog.py. يتضمن التدريب بأكمله في GPT 3 خطوات:
الخطوة 1 : توصيل متعدد الوسائط المتمحور حول LLM. تدرب هذه المرحلة طبقة إسقاط الإدخال أثناء تجميد طبقة ImageBind ، LLM ، طبقة إسقاط الإخراج.
# Encoding-side LLM-centric Multimodal Alignment bash scripts/pretrain_enc.shالخطوة الثانية : محاذاة تتبع التعليمات في جانب فك التشفير. تدرب هذه المرحلة طبقات إسقاط الإخراج مع تجميد طبقات ImageBind و LLM.
# Encoding-side LLM-centric Multimodal Alignment bash scripts/pretrain_enc.shالخطوة 3 : ضبط التعليمات. هذه المرحلة تعليمية تون 1) LLM عبر Lora ، 2) طبقة إسقاط الإدخال و 3) طبقة إسقاط الإخراج في مجموعة بيانات التعليمات.
# Encoding-side LLM-centric Multimodal Alignment bash scripts/pretrain_enc.shأولاً ، قم بتحميل نظام GPT التالي الذي تم تدريبه مسبقًا.
الخطوة 1 : تحميل Frozen parameters . يرجى الرجوع إلى 3.1 إعداد نقطة تفتيش تدريب مسبقًا.
الخطوة الثانية : تحميل Tunable parameters . يرجى وضع نظام GPT التالي على ./checkpoints/nextgpt-v1.5-7b. يمكنك إما 1) استخدام params المدربين أنفسكم ، أو 2) قم بتنزيل نقاط التفتيش الخاصة بنا من Luggingface.
عند الانتهاء من تحميل نقطة التفتيش ، يمكنك تشغيل التنبؤ عبر:
python predict.pyيمكنك تحديد مجموعة البيانات الخاصة بك ، يرجى الرجوع إلى base_dataset.py ، ثم إضافة catalog مجموعة البيانات في catalog.py ، بما في ذلك target parameters .
يمكنك تعريف النموذج والبيانات والمعلمات مسبقًا في Training_Utils.py. يرجى إحالة finetune.sh لضبط النموذج الخاص بك.
للحصول على أي أسئلة أو ملاحظات ، لا تتردد في الاتصال بـ Shengqiong Wu و Hao Fei.
إذا وجدت NextGPT مفيدًا في بحثك أو تطبيقاتك ، يرجى التكرم في:
@inproceedings{wu24next, title={{NE}x{T}-{GPT}: Any-to-Any Multimodal {LLM}}, author={Wu, Shengqiong and Fei, Hao and Qu, Leigang and Ji, Wei and Chua, Tat-Seng}, booktitle={Proceedings of the International Conference on Machine Learning}, pages = {53366--53397}, year={2024} }يمكنك الرجوع إلى العمل ذي الصلة التي تعمل كمؤسسات لمستودع إطار العمل والرمز ، Vicuna ، ImageBind ، الانتشار المستقر ، Audioldm ، و Zeroscope. كما نرسم جزئيًا إلهامًا من Pandagpt ،
Gill ، Codi ، Video-Llama ، Llava ، and Minigpt-4. شكرا لأعمالهم الرائعة.
هذا المستودع تحت رخصة BSD 3 لا يتجزأ. Next-GPT هو مشروع بحثي مخصص للاستخدام غير التجاري فقط. يجب على المرء ألا يستخدم مدونة GPT التالية لأي أغراض غير قانونية أو ضارة أو عنيفة أو عنصرية أو جنسية. يُحظر بشكل صارم على الانخراط في أي نشاط من شأنه أن ينتهك هذه الإرشادات. يجب الموافقة على أي استخدام تجاري محتمل لهذا الرمز من قبل المؤلفين.