Meskipun kemajuan besar telah dicapai oleh metode pemahaman tabel berbasis LLM baru-baru ini, metode tersebut sangat bergantung pada premis bahwa tabel tertentu harus diubah menjadi urutan teks tertentu (seperti Markdown atau HTML) untuk dijadikan sebagai masukan model. Namun, sulit untuk mengakses representasi tabel tekstual berkualitas tinggi dalam beberapa skenario dunia nyata seperti dokumen yang dipindai dan tangkapan layar halaman web, dan gambar tabel jauh lebih mudah diakses. Oleh karena itu, cara memahami tabel secara langsung menggunakan informasi visual intuitif merupakan tantangan penting dan mendesak untuk mengembangkan aplikasi yang lebih praktis.
Menghadapi tantangan di atas, kami mengusulkan masalah pemahaman tabel multimodal, di mana model diperlukan untuk menghasilkan respons yang benar terhadap permintaan terkait tabel yang berbeda (misalnya pertanyaan) secara end-to-end berdasarkan gambar tabel. Sejalan dengan itu, kami membangun MMTab , kumpulan data skala besar sumber terbuka pertama untuk masalah pemahaman tabel multimodal, yang dapat mendukung pelatihan dan evaluasi MLLM generalis menuju pemahaman tabel multimodal. Berdasarkan kumpulan data MMTab yang dikurasi, kami mengembangkan MLLM tabel serbaguna bernama Table-LLaVA dengan paradigma pelatihan dua tahap yang ditingkatkan dari LLaVA v1.5. Table-LLaVA mengalahkan baseline MLLM yang kuat pada 17 tolok ukur yang ditahan dan 6 tolok ukur yang ditahan, dan bahkan bersaing dengan GPT-4V yang kuat pada 14 tolok ukur dalam subset sampel pengujian. Gambar di sebelah kanan menunjukkan perbandingan intuitif Tabel LLaVA 7B dan MLLM yang ada pada berbagai tolok ukur pemahaman tabel multimodal.
Kami membuat MMTab berdasarkan 14 kumpulan data tabel yang tersedia untuk umum dari 8 domain. Kami dengan hati-hati merancang skrip untuk mengonversi tabel tekstual asli dalam kumpulan data ini menjadi gambar tabel yang menyoroti cakupan luas struktur dan gaya tabel, dan mengubah semua sampel khusus tugas menjadi sampel penyesuaian instruksi multimodal dengan format terpadu Contoh kumpulan data ditunjukkan pada gambar berikut dan contoh lainnya ditunjukkan pada Lampiran A di makalah asli. Tabel LLaVA mengikuti arsitektur LLaVA v1.5, dengan CLIP-ViT-L-336px sebagai encoder visual (resolusi gambar 336*336), Vicuna-v1.5-7B atau Vicuna-v1.5-13B sebagai LLM dasar dan MLP dua lapis sebagai konektor bahasa visi. Pos pemeriksaan model yang disimpan dapat diunduh dari Repositori Hugging Face berikut: Catatan: Pos pemeriksaan Tabel-LLaVA di atas disimpan dari repositori LLaVA asli, yang tidak secara langsung kompatibel dengan Transformers, yaitu tidak dapat langsung dimuat dengan cara seperti Kami menggunakan basis kode LLaVA v1.5 untuk pelatihan model dan inferensi. Dengan demikian, Tabel LLaVA dapat digunakan sebagai model LLaVA v1.5 normal dan lingkungan dapat diinstal dengan cara serupa. Perhatikan bahwa basis kode kami diunduh pada bulan Desember 2023 dan mungkin bukan yang terbaru. Silakan merujuk ke github resmi LLaVA v1.5 untuk pembaruan terbarunya. Pelatihan Tabel LLaVA terdiri dari dua tahap: (1) Tahap pra-pelatihan: konektor bahasa penglihatan (MLP dua lapis) dilatih untuk menghubungkan encoder visi yang telah dilatih sebelumnya (ViT) ke LLM yang dibekukan (Vicuna v1.5) ; (2) Tahap penyetelan instruksi: konektor bahasa visi dan LLM dasar dilatih untuk mengikuti instruksi multimodal. Data pelatihan setiap tahap ditunjukkan di bawah ini: Gabungan data pra-pelatihan dan penyempurnaan instruksi dalam format data LLaVA dapat ditemukan di kumpulan data MMTab, yaitu, Tabel LLaVA dilatih pada 8 GPU A800 dengan memori 80 GB. Kami menggunakan kumpulan hyperparameter serupa seperti LLaVA v1.5, hanya saja kami meningkatkan panjang urutan maksimal dari 2048 menjadi 2560 untuk mengakomodasi urutan teks yang lebih panjang. Hyperparameter yang digunakan dalam pra-pelatihan dan penyesuaian disediakan di bawah. Data inferensi harus disimpan dalam format jsonl LLaVA. Setiap baris dalam file input sesuai dengan sampel input, yang merupakan string JSON (dihasilkan oleh Untuk inferensi pada eval MMTab, unduh sampel uji eval MMTab 49K dalam format jsonl (MMTab-eval_test_data_49K_llava_jsonl_format.jsonl) dan file gambarnya (MMTab-eval_table_images_23K.zip). Kemudian buat folder bernama 'LLaVA-Inference' dan atur datanya sebagai berikut: Inferensi pada multi-GPU: Dengan skrip inferensi resmi, format hasil inferensi di Skrip evaluasi disimpan di folder Untuk evaluasi set pengujian ToTTo, Anda perlu mengatur keluaran model ke dalam file txt dan mengunggahnya ke papan peringkat resmi ToTTo. . Dataset yang dihasilkan berisi tiga bagian dan dapat diunduh dari Dataset Hugging Face. Selama konstruksi kumpulan data, penambahan data di berbagai tingkat (misalnya, tingkat tabel, tingkat tugas) diadopsi untuk lebih meningkatkan keragaman data.
Pemisahan Kumpulan Data #Gambar Tabel #Sampel MMTab-pra 97K Sampel pengenalan tabel 150 ribu untuk pra-pelatihan MMTab-instruksikan 82K 232 ribu sampel dari 14 tugas berbasis tabel untuk penyesuaian instruksi Evaluasi MMTab 23K 45 ribu sampel dari 17 tolok ukur yang diadakan dan 4 ribu sampel dari 7 tolok ukur yang diadakan untuk evaluasi 3. Model Bobot
Versi Ukuran Jadwal Dasar LLM Pengkode Visi Lapisan proyeksi Pos pemeriksaan Tabel LLaVA 7B full_finetune-1_epoch Vicuna-v1.5-7B CLIP-ViT-L-336px MLP-2x SpursgoZmy/tabel-llava-v1.5-7b Tabel LLaVA 13B full_finetune-1_epoch Vicuna-v1.5-13B CLIP-ViT-L-336px MLP-2x SpursgoZmy/tabel-llava-v1.5-13b pretrained_mm_projector dari Tabel LLaVA 7B 5M full_finetune-1_epoch Vicuna-v1.5-7B CLIP-ViT-L-336px MLP-2x SpursgoZmy/table-llava-v1.5-pretrained_mm_projector pretrained_mm_projector dari Tabel LLaVA 13B 5M full_finetune-1_epoch Vicuna-v1.5-13B CLIP-ViT-L-336px MLP-2x SpursgoZmy/table-llava-v1.5-pretrained_mm_projector LlavaForConditionalGeneration.from_pretrained('SpursgoZmy/table-llava-v1.5-7b')
. Masalah ini disebutkan dalam masalah github ini. Saya akan mencoba skrip konversi yang disediakan untuk membuat pos pemeriksaan Table-LLaVa kompatibel dengan Transformers dan mengunggah pos pemeriksaan baru ke hub baru. Namun untuk saat ini, mungkin checkpoint hanya bisa dimuat dengan repositori LLaVA seperti ini daripada langsung memuat dari HuggingFace. Maaf atas ketidaknyamanan ini! 4. Pelatihan
4.1 Pengaturan Lingkungan
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 Data Pelatihan dan Hyperparameter
Tahap Pelatihan Deskripsi Data Ukuran Data Kumpulan Data Wajah Memeluk Pra-pelatihan 558K data pra-pelatihan LLaVA-1.5 asli 558K blip_laion_cc_sbu_558k.json Data pengenalan tabel 150K (MMTab-pra) 150K MMTab-pre_pretrain_data_llava_format_150K.json Instruksi Penyempurnaan 665 ribu data penyempurnaan LLaVA-1.5 asli 665K llava_v1_5_mix665k.json Data penyetelan instruksi multimodal 232K dari 14 tugas tabel (MMTab-instruct) 232K MMTab-instruct_sft_data_llava_format_232K.json enhanced_llava_pretrain_data_708K.json
dan enhanced_llava_sft_data_898K.json
, yang dapat langsung digunakan untuk melatih Tabel LLaVA. Panggung Beban Terlatih Ukuran Batch Global Kecepatan pembelajaran zaman Panjang maksimal Penurunan berat badan rasio pemanasan Tahap Kecepatan Dalam Pra-pelatihan konektor bahasa penglihatan 256 1e-3 1 2560 0 0,03 ZeRO-2 Instruksi Penyempurnaan LLM dasar dan konektor bahasa visi 128 2e-5 1 2048 0 0,03 ZeRO-3 4.3 Pra-pelatihan
images.zip
dari sini. Letakkan di bawah ./LLaVA-Pretrain/images
dan unzip.MMTab-instruct_table_images_82K.zip
dan MMTab-pre_table_images_part_2_16K.zip
dari kumpulan data MMTab. Letakkan di bawah ./LLaVA-Pretrain/images
dan unzip. Ganti nama direktori IID_train_image
menjadi table_pretrain_part_1
.enhanced_llava_pretrain_data_708K.json
dari kumpulan data MMTab ke ./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
. Jika Anda tidak dapat mengunduh model dasar Vicuna v1.5 dan ViT secara otomatis melalui HuggingFace, Anda dapat mengunduh model ini secara manual dan mengatur parameter baris perintah yang sesuai ( model_name_or_path
dan vision_tower
) ke jalur model lokal. Setelah pra-pelatihan selesai, proyektor bahasa penglihatan yang dilatih akan disimpan pada output_dir
yang ditentukan. 4.4 Penyempurnaan
./LLaVA-Finetune/images
yang masing-masing bernama coco
, gqa
, ocr_vqa
, textvqa
dan vg
. Ikuti instruksi dari sini untuk mengunduh gambar dari 5 kumpulan data ini untuk penyempurnaan LLaVA v1.5. Letakkan file zip di folder yang sesuai dan unzip.MMTab-instruct_table_images_82K.zip
dari kumpulan data MMTab. Letakkan di bawah ./LLaVA-Finetune/images/table_instructV
dan unzip. Ganti nama direktori IID_train_image
yang dihasilkan menjadi images
.enhanced_llava_sft_data_898K.json
dari kumpulan data MMTab ke ./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
. Tetapkan parameter pretrain_mm_mlp_adapter
ke jalur proyektor bahasa visi terlatih Anda, seperti ./pretrained_mm_projector/llava-v1.5-7b-with-table-pretrain/mm_projector.bin
. Model tabel llava yang dilatih akan disimpan pada output_dir
yang ditentukan. 5. Inferensi
json.dumps()
) dari dict Python. Format sampelnya akan terlihat seperti: { "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
. Anda juga dapat menyimpulkan data Anda sendiri. Ingat sesuaikan parameter seperti ' question-file
' (jalur file masukan), ' image-folder
' (jalur folder gambar) di table_llava_inference.sh
. Hasil inferensi ( merge.jsonl
) akan disimpan di jalur parameter ' answers-file
', misalnya ./eval_results/answers/MMTab_eval/table-llava-v1.5-7b/merge.jsonl
.merge.jsonl
akan terlihat seperti: { '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. Evaluasi
MMTab-eval_evaluation
. Pertama, cd MMTab-eval_evaluation
dan pip install -r eval_requirements.txt
untuk menginstal paket yang diperlukan seperti 'Sacrebleu' untuk evaluasi. Untuk tugas pengenalan tabel, kami menggunakan skrip komputasi TEDS PubTabNet untuk evaluasi. Kemudian, unduh data pengujian MMTab-eval_test_data_49K.json (MMTab-eval_test_data_49K.json) dan tabel pengujian (MMTab-eval_test_tables_23K.json), lalu masukkan ke dalam folder MMTab-eval_evaluation
bersama dengan hasil inferensi LLaVA ( merge.jsonl
). Gunakan buku catatan MMTab_evaluation.ipynb untuk evaluasi otomatis. 7. Keterbatasan dan Arah Masa Depan
TODO
LlavaForConditionalGeneration.from_pretrained('SpursgoZmy/table-llava-v1.5-7b')
. Masalah ini disebutkan dalam edisi ini Kutipan
@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 } ,
}
}