على الرغم من التقدم الكبير الذي تم إحرازه من خلال أساليب فهم الجدول الحديثة المستندة إلى LLM، إلا أنها تعتمد بشكل كبير على فرضية مفادها أنه يجب تحويل الجداول المحددة إلى تسلسل نصي معين (مثل Markdown أو HTML) لتكون بمثابة مدخلات نموذجية. ومع ذلك، من الصعب الوصول إلى تمثيلات جداول نصية عالية الجودة في بعض سيناريوهات العالم الحقيقي مثل المستندات الممسوحة ضوئيًا ولقطات شاشة صفحات الويب، كما أن الوصول إلى صور الجدول أكثر سهولة. ولذلك، فإن كيفية فهم الجداول بشكل مباشر باستخدام المعلومات المرئية البديهية يمثل تحديًا حاسمًا وعاجلًا لتطوير المزيد من التطبيقات العملية.
في مواجهة التحدي المذكور أعلاه، نقترح مشكلة فهم الجدول متعدد الوسائط، حيث يُطلب من النموذج إنشاء استجابات صحيحة لمختلف الطلبات المتعلقة بالجدول (مثل الأسئلة) بطريقة شاملة استنادًا إلى صورة الجدول. في المقابل، قمنا ببناء MMTab ، أول مجموعة بيانات مفتوحة المصدر واسعة النطاق لمشكلة فهم الجدول متعدد الوسائط، والتي يمكن أن تدعم كلاً من تدريب وتقييم MLLMs العموميين نحو فهم الجدول متعدد الوسائط. استنادًا إلى مجموعة بيانات MMTab المنسقة، قمنا بتطوير MLLM جدولي متعدد الاستخدامات يُسمى Table-LLaVA مع نموذج تدريب مُحسّن على مرحلتين لـ LLaVA v1.5. يتفوق Table-LLaVA على خطوط أساس MLLM القوية على 17 معيارًا محتجزًا و6 معايير محتجزة، كما أنه قادر على المنافسة مع GPT-4V القوي على 14 معيارًا ضمن مجموعة فرعية من عينات الاختبار. يوضح الشكل الصحيح مقارنة بديهية بين الجدول LLaVA 7B وMLLMs الموجودة في معايير فهم الجدول متعدد الوسائط المختلفة.
لقد أنشأنا MMTab استنادًا إلى 14 مجموعة بيانات جدول متاحة للجمهور في 8 مجالات. نقوم بتصميم نصوص برمجية بعناية لتحويل الجداول النصية الأصلية في مجموعات البيانات هذه إلى صور جدول تسلط الضوء على تغطية واسعة لهياكل الجدول وأنماطه، وتحويل جميع العينات الخاصة بالمهمة إلى عينات ضبط تعليمات متعددة الوسائط بتنسيق موحد تظهر أمثلة مجموعة البيانات في الشكل التالي ويتم عرض المزيد من الأمثلة في الملحق أ في الورقة الأصلية. يتبع الجدول LLaVA بنية LLaVA v1.5، مع CLIP-ViT-L-336px باعتباره المشفر المرئي (دقة الصورة 336*336)، أو Vicuna-v1.5-7B أو Vicuna-v1.5-13B باعتباره LLM الأساسي و MLP ذو طبقتين كموصل للغة الرؤية. يمكن تنزيل نقاط التحقق النموذجية المحفوظة من Hugging Face Repository التالي: ملحوظة: يتم حفظ نقاط فحص Table-LLaVA أعلاه من مستودع LLaVA الأصلي، وهو غير متوافق بشكل مباشر مع المحولات، أي أنه لا يمكن تحميله مباشرة بالطريقة مثل نحن نستخدم قاعدة الكود الخاصة بـ LLaVA v1.5 للتدريب النموذجي والاستدلال. وبالتالي، يمكن استخدام Table LLaVA كنموذج LLaVA v1.5 العادي ويمكن تثبيت البيئة بطريقة مماثلة. لاحظ أنه تم تنزيل قاعدة الأكواد الخاصة بنا في ديسمبر 2023 وربما ليس الأحدث. يرجى الرجوع إلى LLaVA v1.5 github الرسمي للحصول على آخر تحديث. يتكون تدريب Table LLaVA من مرحلتين: (1) مرحلة ما قبل التدريب: يتم تدريب موصل لغة الرؤية (MLP ذو طبقتين) لتوصيل جهاز تشفير الرؤية المُدرب مسبقًا (ViT) بـ LLM المجمد (Vicuna v1.5) ; (2) مرحلة ضبط التعليمات: يتم تدريب موصل لغة الرؤية وماجستير القانون الأساسي على اتباع التعليمات متعددة الوسائط. فيما يلي بيانات التدريب لكل مرحلة: يمكن العثور على بيانات التدريب المسبق والتعليمات الدقيقة المدمجة في تنسيق بيانات LLaVA في مجموعة بيانات MMTab، على سبيل المثال، تم تدريب Table LLaVA على 8 وحدات معالجة رسوميات A800 بذاكرة 80 جيجابايت. نحن نستخدم مجموعة مماثلة من المعلمات الفائقة مثل LLaVA v1.5 باستثناء أننا قمنا بزيادة الحد الأقصى لطول التسلسل من 2048 إلى 2560 لاستيعاب تسلسلات نصية أطول. يتم توفير المعلمات الفائقة المستخدمة في التدريب المسبق والضبط الدقيق أدناه. يجب أن يتم تخزين بيانات الاستدلال بتنسيق jsonl الخاص بـ LLaVA. يتوافق كل سطر في ملف الإدخال مع عينة إدخال، وهي عبارة عن سلسلة JSON (تم إنشاؤها بواسطة للاستدلال على تقييم MMTab، قم بتنزيل عينات اختبار تقييم MMTab 49K بتنسيق jsonl (MMTab-eval_test_data_49K_llava_jsonl_format.jsonl) وملفات الصور الخاصة به (MMTab-eval_table_images_23K.zip). ثم قم بإنشاء مجلد باسم "LLaVA-Inference" وقم بتنظيم البيانات على النحو التالي: الاستدلال على وحدات معالجة الرسومات المتعددة: باستخدام البرنامج النصي للاستدلال الرسمي، يجب أن يبدو تنسيق نتيجة الاستدلال في يتم تخزين البرامج النصية للتقييم في المجلد لتقييم مجموعة اختبار ToTTo، تحتاج إلى تنظيم مخرجات النموذج في ملف txt وتحميله إلى لوحة المتصدرين ToTTo الرسمية. . تحتوي مجموعة البيانات الناتجة على ثلاثة أجزاء ويمكن تنزيلها من Hugging Face Dataset. أثناء إنشاء مجموعة البيانات، تم اعتماد زيادات البيانات على مستويات متعددة (على سبيل المثال، مستوى الجدول، ومستوى المهمة) لزيادة تحسين تنوع البيانات.
تقسيم مجموعة البيانات #صور الجدول #عينات MMTab-قبل 97 ألف 150 ألف عينة للتعرف على الجدول للتدريب المسبق MMTab-instruct 82 ألف 232 ألف عينة من 14 مهمة قائمة على الجدول لضبط التعليمات تقييم MMTab 23 ألف 45 ألف عينة من 17 معيارًا محتجزًا و4 آلاف عينة من 7 معايير محتجزة للتقييم 3. الأوزان النموذجية
إصدار مقاس جدول قاعدة LLM التشفير الرؤية طبقة الإسقاط نقاط التفتيش الجدول لافا 7 ب full_finetune-1_epoch فيكونا-v1.5-7B مقطع-ViT-L-336px ملب-2x SpursgoZmy/table-llava-v1.5-7b الجدول لافا 13 ب full_finetune-1_epoch فيكونا-v1.5-13B مقطع-ViT-L-336px ملب-2x SpursgoZmy/table-llava-v1.5-13b pretrained_mm_projector من الجدول LLaVA 7B 5 م full_finetune-1_epoch فيكونا-v1.5-7B مقطع-ViT-L-336px ملب-2x SpursgoZmy/table-llava-v1.5-pretrained_mm_projector جهاز عرض مُدرب مسبقًا للجدول LLaVA 13B 5 م full_finetune-1_epoch فيكونا-v1.5-13B مقطع-ViT-L-336px ملب-2x SpursgoZmy/table-llava-v1.5-pretrained_mm_projector LlavaForConditionalGeneration.from_pretrained('SpursgoZmy/table-llava-v1.5-7b')
. تم ذكر هذه المشكلة في مشكلة جيثب هذه. سأحاول برنامج التحويل النصي المقدم لجعل نقاط فحص Table-LLaVa متوافقة مع المحولات وتحميل نقاط فحص جديدة إلى مركز جديد. لكن في الوقت الحالي، ربما لا يمكن تحميل نقاط التفتيش إلا باستخدام مستودع LLaVA مثل هذا بدلاً من التحميل المباشر من HuggingFace. آسف لهذا الإزعاج! 4. التدريب
4.1 إعداد البيئة
git clone https://github.com/SpursGoZmy/Table-LLaVA.git
cd Table-LLaVA
conda create -n table_llava python=3.10 -y
conda activate table_llava
pip install --upgrade pip # enable PEP 660 support
pip install -e .
4.2 بيانات التدريب والمعلمات الفائقة
مرحلة التدريب وصف البيانات حجم البيانات معانقة مجموعة بيانات الوجه التدريب المسبق 558K بيانات ما قبل التدريب الأصلية LLaVA-1.5 558 ك blip_laion_cc_sbu_558k.json بيانات التعرف على الجدول 150 ألفًا (MMTab-pre) 150 ألف MMTab-pre_pretrain_data_llava_format_150K.json تعليمات الضبط الدقيق 665K بيانات الضبط الدقيق LLaVA-1.5 الأصلية 665 ألف llava_v1_5_mix665k.json 232K بيانات ضبط التعليمات متعددة الوسائط لـ 14 مهمة جدولية (MMTab-instruct) 232 ألف MMTab-instruct_sft_data_llava_format_232K.json enhanced_llava_pretrain_data_708K.json
و enhanced_llava_sft_data_898K.json
، والتي يمكن استخدامها مباشرة لتدريب جدول LLaVA. منصة الأوزان المدربة حجم الدفعة العالمية معدل التعلم العصور أقصى طول اضمحلال الوزن نسبة الاحماء مرحلة السرعة العميقة التدريب المسبق موصل لغة الرؤية 256 1ه-3 1 2560 0 0.03 صفر-2 تعليمات الضبط الدقيق قاعدة LLM وموصل لغة الرؤية 128 2ه-5 1 2048 0 0.03 صفر-3 4.3 التدريب المسبق
images.zip
من هنا. ضعه ضمن ./LLaVA-Pretrain/images
وقم بفك ضغطه.MMTab-instruct_table_images_82K.zip
و MMTab-pre_table_images_part_2_16K.zip
من مجموعة بيانات MMTab. ضعها ضمن ./LLaVA-Pretrain/images
وقم بفك ضغطها. أعد تسمية IID_train_image
dir إلى table_pretrain_part_1
.enhanced_llava_pretrain_data_708K.json
من مجموعة بيانات MMTab إلى ./LLaVA-Pretrain
.
LLaVA-Pretrain
├── images
│ ├── table_pretrain_part_1
| ├── table_pretrain_part_2
| ├── 00453
| ├── 00019
| ├── ...
| └── 00095
└── enhanced_llava_pretrain_data_708K.json
pretrain_table_llava.sh
. إذا لم تتمكن من تنزيل نموذج Vicuna v1.5 وViT الأساسي تلقائيًا من خلال HuggingFace، فيمكنك تنزيل هذه النماذج يدويًا وتعيين معلمات سطر الأوامر المقابلة ( model_name_or_path
و vision_tower
) على مسارات النموذج المحلي. بمجرد الانتهاء من التدريب المسبق، سيتم حفظ جهاز عرض لغة الرؤية المدرب في output_dir
المحدد. 4.4 الضبط الدقيق
./LLaVA-Finetune/images
أسماؤها coco
و gqa
و ocr_vqa
و textvqa
و vg
على التوالي. اتبع التعليمات من هنا لتنزيل الصور من مجموعات البيانات الخمس هذه لضبط LLaVA v1.5. ضع الملفات المضغوطة في المجلدات المناسبة وقم بفك ضغطها.MMTab-instruct_table_images_82K.zip
من مجموعة بيانات MMTab. ضعه ضمن ./LLaVA-Finetune/images/table_instructV
وقم بفك ضغطه. أعد تسمية IID_train_image
dir الناتج إلى images
.enhanced_llava_sft_data_898K.json
من مجموعة بيانات MMTab إلى ./LLaVA-Finetune
.
LLaVA-Finetune
├── images
│ ├── coco
| | └── train2017
| ├── gqa
| | └── images
| ├── ocr_vqa
| | └── images
| ├── textvqa
| | └── train_images
| ├── vg
| | ├── VG_100K
| | └── VG_100K_2
| ├── table_instructV
| | └── images
└── enhanced_llava_sft_data_898K.json
continue_sft_table_llava.sh
. قم بتعيين المعلمة pretrain_mm_mlp_adapter
على مسار جهاز عرض لغة الرؤية الذي تم تدريبه مسبقًا، مثل ./pretrained_mm_projector/llava-v1.5-7b-with-table-pretrain/mm_projector.bin
. سيتم حفظ نموذج الجدول المُدرب في output_dir
المحدد. 5. الاستدلال
json.dumps()
) لإملاء Python. يجب أن يبدو تنسيق العينة كما يلي: { "question_id" : "TSD_test_item_17" , # item_id
"image" : "TABMWP_24663.jpg" , # corresponding image file
"text" : "This image displays a table. Could you provide me ..." , # input text
"category" : "TABMWP_for_TSD" # {dataset_name}_for_{task_type}, which can be used to separate data of different benchmarks.
}
LLaVA-Inference
├── MMTab-eval_test_data_49K_llava_jsonl_format.jsonl
└── all_test_image
start_multicard_inference.sh
. يمكنك أيضًا الاستدلال على بياناتك الخاصة. تذكر ضبط المعلمات مثل " question-file
" (مسار ملف الإدخال)، و" image-folder
" (مسار مجلد الصور) في table_llava_inference.sh
. سيتم تخزين نتائج الاستدلال ( merge.jsonl
) في مسار معلمة ' answers-file
'، على سبيل المثال، ./eval_results/answers/MMTab_eval/table-llava-v1.5-7b/merge.jsonl
.merge.jsonl
كما يلي: { 'question_id' : 'TABMWP_8' , # item_id
'prompt' : 'Problem: n Hannah baked cookies each day ...' , # input_prompt
'text' : 'Find the numbers in the table. n n Saturday: ...' , # model_output
'answer_id' : 'jELcxSPcXHBj3xvHfm5r8T' , # answer_id
'model_id' : 'table-llava-7b' , # model_id
'category' : 'TABMWP_for_TQA'
} # item category
6. التقييم
MMTab-eval_evaluation
. أولاً، قم بتثبيت cd MMTab-eval_evaluation
و pip install -r eval_requirements.txt
لتثبيت الحزم الضرورية مثل 'Sacrebleu' للتقييم. بالنسبة لمهمة التعرف على الجدول، نستخدم البرنامج النصي لحساب TEDS الخاص بـ PubTabNet للتقييم. بعد ذلك، قم بتنزيل بيانات اختبار تقييم MMTab (MMTab-eval_test_data_49K.json) وجداول الاختبار (MMTab-eval_test_tables_23K.json)، وضعها في مجلد MMTab-eval_evaluation
مع نتيجة استنتاج LLaVA ( merge.jsonl
). استخدم دفتر ملاحظات MMTab_evaluation.ipynb للتقييم التلقائي. 7. القيود والاتجاهات المستقبلية
المهام
LlavaForConditionalGeneration.from_pretrained('SpursgoZmy/table-llava-v1.5-7b')
. هذه المشكلة مذكورة في هذا الموضوع الاقتباس
@misc { zheng2024multimodal ,
title = { Multimodal Table Understanding } ,
author = { Mingyu Zheng and Xinwei Feng and Qingyi Si and Qiaoqiao She and Zheng Lin and Wenbin Jiang and Weiping Wang } ,
year = { 2024 } ,
eprint = { 2406.08100 } ,
archivePrefix = { arXiv } ,
}
}